<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.16 (Ruby 2.7.0) -->
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-mpls-sfl-control-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.13.1 -->
  <front>
    <title abbrev="MPLS SFL Control">A Simple Control Protocol for MPLS SFLs</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-mpls-sfl-control-03"/>
    <author initials="S." surname="Bryant" fullname="Stewart Bryant">
      <organization>University of Surrey</organization>
      <address>
        <email>sb@stewartbryant.com</email>
      </address>
    </author>
    <author initials="G." surname="Swallow" fullname="George Swallow">
      <organization>Southend Technical Center</organization>
      <address>
        <email>swallow.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="S." surname="Sivabalan" fullname="Siva Sivabalan">
      <organization>Ciena Corporation</organization>
      <address>
        <email>ssivabal@ciena.com</email>
      </address>
    </author>
    <date year="2022" month="August" day="06"/>
    <workgroup>MPLS Working Group</workgroup>
    <abstract>
      <t>In RFC 8957 the concept of MPLS
synonymos flow labels (SFL) was introduced.  This document describes
a simple control protocol that runs over an associated control header to
request, withdraw, and extend the lifetime of such labels. It is not the
only control protocol that might be used to support SFL, but it has the benefit of being
able to be used without modifying of the existing MPLS control protocols. The
existence of this design is not intended to restrict the ability to enhance
an existing MPLS control protocol to add a similar capability.</t>
      <t>A Querier MUST wait a configured time (suggested wait of 60 seconds)
before re-attempting a Withdraw request.
No more than three Withdraw
requests SHOULD be made. These restrictions are to prevent overloading the
control plane of the actioning router.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>In <xref target="RFC8957"/> the concept of MPLS
synonymous flow labels (SFL) was introduced.</t>
      <t>This document describes a simple control protocol, that runs over an associated control header
to request, withdraw, and extend the lifetime of such labels.
This protocol is designed for use in a well-managed MPLS network
It is not the only control protocol that might be used to support SFL, but it has the benefit of being
able to be used without modifying of the existing MPLS control prodocols.
The existance of this design is not intended to restrict the ability to enhance
an existing MPLS control protocol to add a similar capability.</t>
    </section>
    <section anchor="requirements-language">
      <name>Requirements Language</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP 14
<xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all
capitals, as shown here.</t>
    </section>
    <section anchor="sfl-control">
      <name>SFL Control</name>
      <t>This document uses the terminology standardized in <xref target="RFC6374"/> which it is
assumed that the reader is familiar with.</t>
      <t>This section describes the process by which the <xref target="RFC6374"/> Querier
requests SFLs, the process by which the <xref target="RFC6374"/> Responder sends them
to the Querier, and the process for managing the SFL lifetime.  SFL
Control Messages are carried over the Generalized Associated Channel (GAcH),
and are identified by a new Associated Channel Header (ACH), allocated by
this document. The SFL ACH is carried over a Pseudowire(PW) in place of the PW Control Word
(CW), over an MPLS LSP using the GAL, or over some other mutually
agreed path.  Similarly the response may be returned over a PW, over
a bidirectional LSP or over some other mutually agreed path.  See
<xref target="RP"/>.</t>
      <section anchor="sfl-control-message">
        <name>SFL Control Message</name>
        <t>The format of an SFL Control message, which follows the ACH, is as follows:</t>
        <figure anchor="Figure1">
          <name>SFL Control Message Format</name>
          <artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| Flags |  Control Code |        Message Length         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Session Identifier          | SFL Batch |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               Lifetime (seconds)              |   Num-SFL     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                 SFL 0                 |      LFlags           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
.                                                               .
.                                                               .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                 SFL n                 |      LFlags           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                 Forwarding Equivalence Class (FEC)            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>The values for the fields are as follows:</t>
        <artwork><![CDATA[
Version        Protocol version. Set to zero in this specification.

Flags          Message control flags.

Control Code   Code identifying the query or response type.

Message Length Total length of this message in bytes.

Session Identifier  Set arbitrarily by the querier and used as a
               message handle.

SFL Batch      (6 bits) Used where the SFLs for this Session
               Identifier are managed across multiple SFL Control
               Messages. A given set of SFLs MUST be retained
               in the same batch.

Lifetime       The lifetime in seconds of the SFLs in this message.
               In a Query message it is the requested lifetime.
               In a Response message it is the lifetime that the
               SFLs have been allocated for by the Responder.
               The Querier MUST NOT use an SFL after expiry of
               its lifetime, a Responder MUST make the SFL
               available for at least its lifetime.

Num-SFL        The number of SFLs in this SFL Batch.  This MUST be
               constant for the lifetime of the batch.

SFL n          The n'th SFL carried in this TLV.  This is an MPLS
               label which is a component of a label stack entry as
               defined in Section 2.1 of [RFC3032].  The position
               of a label within a batch is constant for the
               lifetime of the batch.  Enumeration starts at zero.

LFlags         The set of flags associated with the immediately
               preceding SFL.  See below.

FEC            The Forwarding Equivalence Class that the SFLs in
               this TLV correspond to.  This is encoded as per
               Section 3.4.1 of [RFC5036].
]]></artwork>
        <t>Flags: The format of the Flags field is shown below.</t>
        <artwork><![CDATA[
                       +-+-+-+-+
                       |R|0|0|0|
                       +-+-+-+-+

                SFL Control Message Flags.
]]></artwork>
        <t>The meanings of the flag bits are:</t>
        <artwork><![CDATA[
R: Query/Response indicator.  Set to 0 for a Query and set
   to 1 for a Response.

0: Set to zero by the Sender and ignored by the Receiver.
]]></artwork>
        <t>Control Code: Set as follows according to whether the message is a
Query or a Response as identified by the R flag.</t>
        <t>For a Query:</t>
        <artwork><![CDATA[
0x0: SFL Request. This indicates that the responder is requested
to allocate the set of SFLs marked with the R LFlag in this
message.

0x1: SFL Refresh. This indicates that the responder is requested
to refresh the set of SFLs marked with the V LFlag in this message.

0x2: SFL Withdraw. This indicates that the querier will no longer
use the set of SFLs marked with the V Lflag and the responder
may expire their lifetime.
]]></artwork>
        <t>For a Response:</t>
        <artwork><![CDATA[
Codes 0x0-0xF are reserved for non-error responses.

0x1: SFL Grant. This indicates that the responder allocated the
set of SFLs marked with the A LFlag in this Message.

0x2: SFL Refresh-Ack. This indicates that the responder has
refreshed the set of SFLs marked with the V LFlag in this message,
and the lifetime is now as indicated by the lifetime field.

0x3: SFL Withdraw-Ack. This indicates that the responder has
received the Withdraw message and will withdraw the SFLs

0x10: Unspecified Error.  Indicates that the operation
failed for an unspecified reason.

0x11: SFL-Unable. The Responder was unable to satisfy the SFL
Request.  The details of the failure can be determined by
comparing the Request and Grant messages.
]]></artwork>
        <t>Editors Note - We need to revisit the RFC6374 errors and the protocol
to see if we need some more error codes.</t>
        <t>The LFlags field is defined as follows:</t>
        <figure anchor="Figure2">
          <name>LFlags Bit Definition</name>
          <artwork><![CDATA[
     0                   1
     0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+
    |0|1|2|3|        MBZ    |
    +-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>Where:</t>
        <artwork><![CDATA[
0 (Valid (V))  The Label value of the corresponding SFL is valid.
               In an SFL Request setting the V Lflag indicates a
               request for the specified label value.  Where an
               SFL has a valid flag clear in a request message
               this indicates that any SFL value is acceptable.

1 (Request (R))  Indicates to the Querier that this member of the
               SFL batch is requested.  Where a value is specified
               in the request, but the Responder is unable honour
               that request, no SFL is allocated and the
               corresponding A flag MUST be cleared.

2 (Allocated (A)  Indicates to the Querier that this SFL was
               allocated.

3 (Withdraw (W))  Indicates to the Responder that this SFL is to be
               withdrawn and to the Querier that the withdrawal has
               been carried out.

MBZ            MUST be sent as zero and ignored on receive.
]]></artwork>
        <t>A flag value of one is true/set and a flag value of zero is false/
clear.  The use of these bits is described in more detail in the
following sub-sections.</t>
      </section>
      <section anchor="sfl-control-procedures">
        <name>SFL Control Procedures</name>
        <section anchor="requestgrant">
          <name>Request/Grant</name>
          <t>To request a batch of SFLs the Querier constructs an SFL Control
Request, encapsulates it in an SFL Control ACH and sends it to the
Responder via an appropriate path.  The Querier sets the Control Message Flag
to Query and the Control Code to Request.  The Querier chooses a session
identifier as a handle for this transaction and as a way of binding
this batch of SFLs to other operations that will use members of this
SFL batch.  Since members of the batch are treated as a group, the
SFL Batch identifier is used to identify different SFL batches used
in conjunction with the same session identifier.</t>
          <t>The Querier sets the requested lifetime.  This is the number of seconds from
the time of the query to the time when the batch of SFLs will expire
unless refreshed.</t>
          <t>The Num-SFL field is set to the SFL batch size.</t>
          <t>Each SFL is set as follows: if a specific value is requested (for
example for continuity across system restarts) this is written into
the SFL n field and the V LFlag set.  Otherwise, and including spare
SFLs where an allocation is not requested, the label value is set to
zero and the V LFlag is cleared.  For each SFL entry where an
allocation is requested the R LFlag is set.  All other LFlags are
cleared.</t>
          <t>The Forwarding Equivalence Class (FEC) is set to the FEC for which
the SFLs are requested.</t>
          <t>The Message Length is determined and filled in.</t>
          <t>The Responder proceeds as follows:</t>
          <t>The Responder sets the control Message Flag to Response and initially sets the
Control Code to Grant.</t>
          <t>For each SFL with an R flag set, the Responder determines whether it can honour
the request. If it can honour the request, it sets the A Lflag, and if the SFL value in the
query was zero it overwrites it with the allocated SFL label value.
In all other cases it leaves the SFL value and LFlag unchanged.</t>
          <t>The lifetime field is updated with the lifetime of the SFLs if this
is different from the requested lifetime.</t>
          <t>All other fields in the Query message are left unchanged and the
message is sent back to the Querier using the signaled or previously
agreed message path.</t>
          <t>Where the offered lifetime is other than the requested lifetime the
Querier may accept the proposed value, or withdraw the SFLs and
attempt to negotiate a new set of SFLs with a different lifetime.</t>
          <t>If the Responder is unable to allocate all of the requested SFLs it
MUST respond with a response code of SFL-Unable.  The Querier MUST
determine whether the allocated SFLs were adequate for its purposes
and MUST send a withdraw if there are not adequate.  A Querier MUST
NOT attempt to hoard labels in the hope that the residual labels
needed may become available in the future.</t>
          <t>A Querier MUST wait a configured time (suggested wait of 60 seconds)
before re-attempting negotiation for a resource.  Any failure to
negotiate the required resources MUST be notified through the
management interface of both Querier and Responder.</t>
          <t>A Querier MUST NOT send an expired SFL to a Responder since to do so
may invalidate another SFL operation.</t>
        </section>
        <section anchor="refresh">
          <name>Refresh</name>
          <t>To request the lifetime refresh of a batch of SFLs the Querier
constructs an SFL Refresh Request, encapsulates it in an SFL Control
ACH and sends it to the Responder via an appropriate path.  The Querier sets
the Control Message Flag to Query and the Control Code to Refresh.
The Querier uses the session identifier and the SFL Batch identifier that it
used to request this SFL batch.</t>
          <t>The Querier sets the requested lifetime.  This is the number of seconds from
the time of the query to the time when the batch of SFLs will expire
unless refreshed.</t>
          <t>The Querier sets the Num-SFL field to the SFL batch size.</t>
          <t>The Querier sets each SFL as follows: the allocated SFL label value is written
into the SFL n field and the V LFlag set.  All other LFlags are
cleared.</t>
          <t>The Forwarding Equivalence Class (FEC) is set to the FEC for which
the SFLs are requested.</t>
          <t>The Message Length is determined and filled in.</t>
          <t>The Responder proceeds as follows:</t>
          <t>The Responder sets the control Message Flag to Response and sets the Control
Code to Refresh-Ack.</t>
          <t>The Responder sets the lifetime to the lifetime of the SFL.</t>
          <t>All other fields in the Query message are left unchanged and the
message is sent back to the Querier using the signaled or previously
agreed message path.</t>
          <t>Where the offered lifetime is other than the requested lifetime the
Querier may accept the proposed value, or withdraw the SFLs and
attempt to negotiate a new set of SFLs with a different lifetime.</t>
          <t>A Querier MUST wait a configured time (suggested wait of 60 seconds)
before re-attempting negotiation for a resource.  Any failure to
negotiate the required resources MUST be notified through the
management interface of both Querier and Responder.</t>
        </section>
        <section anchor="withdraw">
          <name>Withdraw</name>
          <t>To request the withdrawal of some or all of a batch of SFLs the
Querier constructs an SFL Withdraw Request, encapsulates it in an SFL
Control ACH and sends it to the Responder via an appropriate path.
The Querier sets the Control Message Flag to Query and the Control Code to
Withdraw.  It uses the session identifier and the SFL Batch
identifier that it used to request this SFL batch.</t>
          <t>The Querier sets the requested lifetime to zero.</t>
          <t>The Querier sets the Num-SFL field to the SFL batch size.</t>
          <t>Each SFL being withdrawn is set as follows: the allocated SFL label
value is written into the SFL n field and the V and W LFlags set.
All other LFlags are cleared.</t>
          <t>The Forwarding Equivalence Class (FEC) is set to the FEC for which
the SFLs are requested.</t>
          <t>The Message Length field is determined and filled in.</t>
          <t>The Responder proceeds as follows:</t>
          <t>The Responder sets the control Message Flag to Response and sets the Control
Code to Withdraw-Ack.</t>
          <t>All other fields in the Query message are left unchanged and the
message is sent back to the Querier using the signaled or previously
agreed message path.</t>
          <t>A Querier MUST wait a configured time (suggested wait of 60 seconds)
before re-attempting a Withdraw request.
No more than three Withdraw
requests SHOULD be made. These restrictions are to prevent overloading the
control plane of the actioning router.</t>
        </section>
        <section anchor="timer-accuracy">
          <name>Timer Accuracy</name>
          <t>The lifetime of SFLs is expected to be sufficiently long that there
are no significant constraints on timer accuracy.  A node should be
conservative in its assumptions concerning the lifetime of an SFL.  A
Querier MUST stop using a SFL significantly before the expiry of its
lifetime and a Responder must maintain an SFL in active operation
significantly beyond nominal expiry.  A margin of the order of
minutes is RECOMMENDED.</t>
        </section>
      </section>
    </section>
    <section anchor="RP">
      <name>Return Path</name>
      <t>Where the LSP (or other MPLS construct) is multi-point to point, or multi-point to multi-
point the RFC6374 Address TLV MUST
be included in Query packet, even if the response is requested in-band,
since this is needed to provide the necessary return address
for this request.</t>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>The inclusion of originating and/or flow information in a packet
provides more identity information and hence potentially degrades the
privacy of the communication.  Whilst the inclusion of the additional
granularity does allow greater insight into the flow characteristics
it does not specifically identify which node originated the packet
other than by inspection of the network at the point of ingress, or
inspection of the control protocol packets.  This privacy threat may
be mitigated by encrypting the control protocol packets, regularly
changing the synonymous labels and by concurrently using a number of
such labels.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>It is assumed that this protocol is run in a well-managed MPLS
network with strict access controls preventing unwanted parties from
generating MPLS packets.  The control protocol described in this
memo thus introduced no additional MPLS security vulnerabilities.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="allocation-of-mpls-generalized-associated-channel-g-ach-type">
        <name>Allocation of MPLS Generalized Associated Channel (G-ACh) Type</name>
        <t>As per the IANA considerations in <xref target="RFC5586"/>, IANA is requested to
allocate the following Channel Type in the "MPLS Generalized
Associated Channel (G-ACh) Types" registry:</t>
        <artwork><![CDATA[
Value  Description                          TLV Follows Reference
------ ------------------------------------ ----------- ---------
0x0XXX SFL Control                              No          This
]]></artwork>
        <t>A value of 0x5A is suggested.</t>
      </section>
      <section anchor="creation-of-sfl-simple-control-code-registry">
        <name>Creation of SFL Simple Control Code Registry</name>
        <t>IANA is requested to created a new "SFL Simple Control Code"
registry within the Generic Associated Channel (G-ACh) Parameters namespace.
This registry is divided into two separate parts, one for
Query Codes and the other for Response Codes, with formats and
initial allocations as follows:</t>
        <artwork><![CDATA[
Query Codes

Code Description                         Reference
---- ----------------------------------- ---------
0x0  SFL Request                         This document
0x1  SFL Refresh                         This document
0x2  SFL Withdraw                        This document

Response Codes

Code Description                         Reference
---- ----------------------------------- ---------
0x0  Reserved                            This document
0x1  SFL Grant                           This document
0x2  SFL Refresh-Ack                     This document
0x3  SFL Withdraw-Ack                    This document
0x10 Unspecified Error                   This document
0x11 SFL-Unable
]]></artwork>
        <t>IANA should indicate that the values 0x0 - 0xF in the Response Code
section are reserved for non-error response codes.</t>
        <t>The range of the Code field is 0 - 255.</t>
        <t>The allocation policy for this registry is IETF Review.</t>
      </section>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors thank Haomian Zheng for his review comments.</t>
      <t>RFC Editor please remove this note which is used to force the following references to appear <xref target="RFC3032"/> <xref target="RFC5036"/></t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC3032" target="https://www.rfc-editor.org/info/rfc3032">
          <front>
            <title>MPLS Label Stack Encoding</title>
            <author fullname="E. Rosen" initials="E." surname="Rosen">
              <organization/>
            </author>
            <author fullname="D. Tappan" initials="D." surname="Tappan">
              <organization/>
            </author>
            <author fullname="G. Fedorkow" initials="G." surname="Fedorkow">
              <organization/>
            </author>
            <author fullname="Y. Rekhter" initials="Y." surname="Rekhter">
              <organization/>
            </author>
            <author fullname="D. Farinacci" initials="D." surname="Farinacci">
              <organization/>
            </author>
            <author fullname="T. Li" initials="T." surname="Li">
              <organization/>
            </author>
            <author fullname="A. Conta" initials="A." surname="Conta">
              <organization/>
            </author>
            <date month="January" year="2001"/>
            <abstract>
              <t>This document specifies the encoding to be used by an LSR in order to transmit labeled packets on Point-to-Point Protocol (PPP) data links, on LAN data links, and possibly on other data links as well.  This document also specifies rules and procedures for processing the various fields of the label stack encoding.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3032"/>
          <seriesInfo name="DOI" value="10.17487/RFC3032"/>
        </reference>
        <reference anchor="RFC5036" target="https://www.rfc-editor.org/info/rfc5036">
          <front>
            <title>LDP Specification</title>
            <author fullname="L. Andersson" initials="L." role="editor" surname="Andersson">
              <organization/>
            </author>
            <author fullname="I. Minei" initials="I." role="editor" surname="Minei">
              <organization/>
            </author>
            <author fullname="B. Thomas" initials="B." role="editor" surname="Thomas">
              <organization/>
            </author>
            <date month="October" year="2007"/>
            <abstract>
              <t>The architecture for Multiprotocol Label Switching (MPLS) is described in RFC 3031.  A fundamental concept in MPLS is that two Label Switching Routers (LSRs) must agree on the meaning of the labels used to forward traffic between and through them.  This common understanding is achieved by using a set of procedures, called a label distribution protocol, by which one LSR informs another of label bindings it has made.  This document defines a set of such procedures called LDP (for Label Distribution Protocol) by which LSRs distribute labels to support MPLS forwarding along normally routed paths.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5036"/>
          <seriesInfo name="DOI" value="10.17487/RFC5036"/>
        </reference>
        <reference anchor="RFC5586" target="https://www.rfc-editor.org/info/rfc5586">
          <front>
            <title>MPLS Generic Associated Channel</title>
            <author fullname="M. Bocci" initials="M." role="editor" surname="Bocci">
              <organization/>
            </author>
            <author fullname="M. Vigoureux" initials="M." role="editor" surname="Vigoureux">
              <organization/>
            </author>
            <author fullname="S. Bryant" initials="S." role="editor" surname="Bryant">
              <organization/>
            </author>
            <date month="June" year="2009"/>
            <abstract>
              <t>This document generalizes the applicability of the pseudowire (PW) Associated Channel Header (ACH), enabling the realization of a control channel associated to MPLS Label Switched Paths (LSPs) and MPLS Sections in addition to MPLS pseudowires.  In order to identify the presence of this Associated Channel Header in the label stack, this document also assigns one of the reserved MPLS label values to the Generic Associated Channel Label (GAL), to be used as a label based exception mechanism.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5586"/>
          <seriesInfo name="DOI" value="10.17487/RFC5586"/>
        </reference>
        <reference anchor="RFC6374" target="https://www.rfc-editor.org/info/rfc6374">
          <front>
            <title>Packet Loss and Delay Measurement for MPLS Networks</title>
            <author fullname="D. Frost" initials="D." surname="Frost">
              <organization/>
            </author>
            <author fullname="S. Bryant" initials="S." surname="Bryant">
              <organization/>
            </author>
            <date month="September" year="2011"/>
            <abstract>
              <t>Many service provider service level agreements (SLAs) depend on the ability to measure and monitor performance metrics for packet loss and one-way and two-way delay, as well as related metrics such as delay variation and channel throughput.  This measurement capability also provides operators with greater visibility into the performance characteristics of their networks, thereby facilitating planning, troubleshooting, and network performance evaluation.  This document specifies protocol mechanisms to enable the efficient and accurate measurement of these performance metrics in MPLS networks.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6374"/>
          <seriesInfo name="DOI" value="10.17487/RFC6374"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC8957" target="https://www.rfc-editor.org/info/rfc8957">
          <front>
            <title>Synonymous Flow Label Framework</title>
            <author fullname="S. Bryant" initials="S." surname="Bryant">
              <organization/>
            </author>
            <author fullname="M. Chen" initials="M." surname="Chen">
              <organization/>
            </author>
            <author fullname="G. Swallow" initials="G." surname="Swallow">
              <organization/>
            </author>
            <author fullname="S. Sivabalan" initials="S." surname="Sivabalan">
              <organization/>
            </author>
            <author fullname="G. Mirsky" initials="G." surname="Mirsky">
              <organization/>
            </author>
            <date month="January" year="2021"/>
            <abstract>
              <t>RFC 8372 ("MPLS Flow Identification Considerations") describes the requirement for introducing flow identities within the MPLS architecture.  This document describes a method of accomplishing this by using a technique called "Synonymous Flow Labels" in which labels that mimic the behavior of other labels provide the identification service. These identifiers can be used to trigger per-flow operations on the packet at the receiving label switching router.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8957"/>
          <seriesInfo name="DOI" value="10.17487/RFC8957"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
