<?xml version='1.0' encoding='UTF-8'?>

<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>

<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" ipr="trust200902" docName="draft-ietf-mpls-inband-pm-encapsulation-18" number="9714" consensus="true" submissionType="IETF" tocInclude="true" updates="" obsoletes="" symRefs="true" sortRefs="true" version="3" xml:lang="en">

  <front>
    <title abbrev="Encap for MPLS PM with AMM">Encapsulation for MPLS Performance Measurement with the Alternate-Marking Method</title>
    <seriesInfo name="RFC" value="9714"/>
    <author fullname="Weiqiang Cheng" initials="W" surname="Cheng" role="editor">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>chengweiqiang@chinamobile.com</email>
     </address>
    </author>
    <author fullname="Xiao Min" initials="X" surname="Min" role="editor">
      <organization>ZTE Corp.</organization>
      <address>
        <postal>
          <city>Nanjing</city>
          <country>China</country>
        </postal>
        <email>xiao.min2@zte.com.cn</email>
     </address>
    </author>
    <author fullname="Tianran Zhou" initials="T" surname="Zhou">
      <organization>Huawei</organization>
      <address>
        <postal>
         <city>Beijing</city>
          <country>China</country>
        </postal>
        <phone/>
        <email>zhoutianran@huawei.com</email>
     </address>
    </author>
    <author fullname="Jinyou Dai" initials="J" surname="Dai">
      <organization>FiberHome</organization>
      <address>
        <postal>
          <city>Wuhan</city>
          <country>China</country>
        </postal>
        <email>djy@fiberhome.com</email>
     </address>
    </author>
    <author fullname="Yoav Peleg" initials="Y" surname="Peleg">
      <organization>Broadcom</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>yoav.peleg@broadcom.com</email>
     </address>
    </author>
    <date year="2025" month="February"/>
    <area>RTG</area>
    <workgroup>mpls</workgroup>

<keyword>Flow-ID Label Indicator</keyword>
<keyword>Flow-ID Label</keyword>

    <abstract>
      <t>This document defines the encapsulation for MPLS performance measurement with the Alternate-Marking Method, which performs 
   flow-based packet loss, delay, and jitter measurements on MPLS traffic.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t> <xref target="RFC9341"/> describes a performance measurement method, which can be used to measure packet loss, delay, and jitter 
   on data traffic. Since this method is based on marking consecutive batches of packets, it is referred to as the Alternate-Marking 
   Method. <xref target="RFC8372"/> outlines key considerations for developing a solution for MPLS flow identification, intended for 
   use in performance monitoring of MPLS flows.</t>
      <t> This document defines the encapsulation for MPLS performance measurement with the Alternate-Marking Method, which performs 
   flow-based packet loss, delay, and jitter measurements on the MPLS traffic. The encapsulation defined in this document supports 
   performance monitoring at the intermediate nodes and MPLS flow identification at both transport and service layers.</t>
      <t>
  Note that, at the time of writing, there is ongoing
  work on MPLS Network Actions (MNAs) <xref target="RFC9613"/>. The MPLS performance
  measurement with the Alternate-Marking Method can also be achieved by
  MNA encapsulation. In addition, MNA will provide a broader use-case
  applicability. That means the MNA encapsulation is expected to
  provide a more advanced solution.  The MPLS Working Group has agreed
  that this document will be made Historic when that solution is published as an RFC.
      </t>
    </section>
    <section anchor="conventions">
      <name>Conventions Used in This Document</name>
      <section anchor="abbrevs">
        <name>Abbreviations</name>
	<dl spacing="normal" newline="false">
          <dt>ACL:</dt><dd>Access Control List</dd>
          <dt>BoS:</dt><dd>Bottom of Stack</dd>
          <dt>cSPL:</dt><dd>Composite Special Purpose Label, the combination of the Extension Label (value 15) and an Extended Special Purpose Label</dd>
          <dt>DSCP:</dt><dd>Differentiated Services Code Point</dd>
          <dt>ELC:</dt><dd>Entropy Label Capability</dd>
          <dt>ERLD:</dt><dd>Entropy Readable Label Depth</dd>
          <dt>eSPL:</dt><dd>Extended Special Purpose Label, a special-purpose label that is placed in the label stack after the Extension Label (value 15)</dd>
          <dt>FL:</dt><dd>Flow-ID Label</dd>
          <dt>FLC:</dt><dd>Flow-ID Label Capability</dd>
          <dt>FLI:</dt><dd>Flow-ID Label Indicator</dd>
          <dt>FRLD:</dt><dd>Flow-ID Readable Label Depth</dd>
          <dt>IPFIX:</dt><dd>IP Flow Information Export <xref target="RFC7011"/></dd>
          <dt>LSP:</dt><dd>Label Switched Path</dd>
          <dt>LSR:</dt><dd>Label Switching Router</dd>
          <dt>MPLS:</dt><dd>Multi-Protocol Label Switching</dd>
          <dt>NMS:</dt><dd>Network Management System</dd>
          <dt>PHP:</dt><dd>Penultimate Hop Popping</dd>
          <dt>PM:</dt><dd>Performance Measurement</dd>
          <dt>PW:</dt><dd>Pseudowire</dd>
          <dt>SFL:</dt><dd>Synonymous Flow Label</dd>
          <dt>SID:</dt><dd>Segment ID</dd>
          <dt>SR:</dt><dd>Segment Routing</dd>
          <dt>TC:</dt><dd>Traffic Class</dd>
          <dt>TTL:</dt><dd>Time to Live</dd>
          <dt>VC:</dt><dd>Virtual Channel</dd>
          <dt>VPN:</dt><dd>Virtual Private Network</dd>
          <dt>XL:</dt><dd>Extension Label</dd>
	</dl>
      </section>
      <section anchor="requirements">
        <name>Requirements Language</name>
        <t>
    The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
    NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
    "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
    described in BCP&nbsp;14 <xref target="RFC2119"/> <xref target="RFC8174"/> 
    when, and only when, they appear in all capitals, as shown here.
        </t>
      </section>
    </section>
    <section anchor="flow-based-pm-encapsulation">
      <name>Flow-Based PM Encapsulation in MPLS</name>
      <t> This document defines the Flow-based MPLS performance measurement encapsulation with the Alternate-Marking Method, as shown 
	in <xref target="Figure_1"/>.</t>
      <figure anchor="Figure_1">
        <name>Flow-based PM Encapsulation in MPLS</name>
        <artwork align="left"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Extension Label (15)         |  TC |S|      TTL      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Flow-ID Label Indicator (18)      |  TC |S|      TTL      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             Flow-ID Label             |L|D|T|S|      TTL      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
      </figure>
      <t>
	The Flow-ID Label Indicator (FLI) is an Extended Special Purpose Label (eSPL), which is combined with the Extension
	Label (XL, value 15) to form a Composite Special Purpose Label (cSPL), as defined in <xref target="RFC9017"/>. The
	FLI is defined in this document as value 18.
      </t>
      <t>
	The Traffic Class (TC) and Time To Live (TTL) fields of the XL and FLI <bcp14>MUST</bcp14> use the same values of the label immediately 
	preceding the XL. The Bottom of the Stack (BoS) bit <xref target="RFC3032"/> for the XL and FLI <bcp14>MUST</bcp14> be zero. If any XL or FLI 
	processed by a node has the BoS bit set, the node <bcp14>MUST</bcp14> discard the packet and <bcp14>MAY</bcp14> log an error.
      </t>
      <t>
	The Flow-ID Label (FL) is used as an MPLS flow identification <xref target="RFC8372"/>. Its value <bcp14>MUST</bcp14> be unique within the 
	administrative domain. The FL values <bcp14>MAY</bcp14> be allocated by an external NMS or controller based on the measurement 
	object instances (such as LSP or PW). There is a one-to-one mapping between a Flow-ID and a flow. The specific method
	on how to allocate the FL values is described in <xref target="procedures-of-flow-id-alloc"/>.
      </t>
      <t>
	The FL, preceded by a cSPL, can be placed either at the bottom or in the middle, but not at the top, of the MPLS label stack, 
	and it <bcp14>MAY</bcp14> appear multiple times within a label stack. <xref target="examples-for-flow-id"/> of this document provides several examples to illustrate the 
	application of FL in a label stack. The TTL for the FL <bcp14>MUST</bcp14> be zero to ensure that it is not used inadvertently for forwarding. 
	The BoS bit	for the FL depends on whether the FL is placed at the bottom of the MPLS label stack, i.e., the BoS bit for the FL 
	is set only when the FL is placed at the bottom of the MPLS label stack.
      </t>

      <t>
	Besides the flow identification, a color-marking field is also necessary for the Alternate-Marking Method. To color the MPLS traffic and to distinguish between hop-by-hop measurement and edge-to-edge measurement, the 
	TC for the FL is defined as follows:
      </t>
      <ul spacing="normal">
        <li>
          <t>
	L(oss) bit is used for coloring the MPLS packets for loss measurement. Setting the bit means color 1, and unsetting the bit means 
	color 0.
          </t>
        </li>
        <li>
          <t>
	D(elay) bit is used for coloring the MPLS packets for delay/jitter measurement. Setting the bit means color for delay measurement.
          </t>
        </li>
        <li>
          <t>
    T(ype) bit is used to indicate the measurement type. When the T bit is set to 1, that means edge-to-edge performance
	measurement. When the T bit is set to 0, that means hop-by-hop performance measurement.
          </t>
        </li>
      </ul>
      <t>
	Considering the FL is not used as a forwarding label, the repurposing of the TC for the FL is feasible and viable.
      </t>
      <section anchor="examples-for-flow-id">
        <name>Examples for Applying Flow-ID Label in a Label Stack</name>
        <t> Three examples of different layouts of the FL (4
        octets) are illustrated as follows. Note that more examples may
        exist.</t>

	<section anchor="example-one">
        <name>Layout of the Flow-ID Label when Applied to MPLS Transport</name>
        <figure anchor="Figure_2">
          <name>Applying Flow-ID to MPLS Transport</name>
          <artwork align="center"><![CDATA[
+----------------------+
|          LSP         |
|         Label        |
+----------------------+ <--+
|       Extension      |    |
|         Label        |    |
+----------------------+    |--- cSPL
|     Flow-ID Label    |    |
|       Indicator      |    |
+----------------------+ <--+
|        Flow-ID       |
|         Label        |
+----------------------+
|      Application     |
|         Label        |
+----------------------+ <= Bottom of stack
|                      |
|        Payload       |
|                      |
+----------------------+]]></artwork>
        </figure>
        <t> With penultimate hop popping (PHP <xref sectionFormat="of"
        section="3.16" target="RFC3031"/>), the top label is "popped at the
        penultimate LSR of the LSP, rather than at the LSP Egress". The final bullet of 
        <xref target="procedures-of-encap"/> of the present document requires that "[t]he processing node <bcp14>MUST</bcp14> pop the
        XL, FLI, and FL from the MPLS label stack when it needs to pop the
        preceding forwarding label", which implies that the penultimate Label
        Switching Router (LSR) needs to follow the requirement of <xref
        target="procedures-of-encap"/> in order to support this
        specification. If this is done, the egress LSR is excluded from
        the performance measurement. Therefore, when this specification is in
        use, PHP should be disabled, unless the penultimate LSR is known to
        have the necessary support and unless it's acceptable to exclude the
        egress LSR.</t>
        <t> Also note that in other examples of applying Flow-ID to MPLS
        transport, one LSP label can be substituted by multiple SID labels in
        the case of using SR Policy, and the combination of cSPL and FL can be placed between SID labels, as specified in <xref
        target="flc-frld-considerations"/>.</t>
	</section>

	<section anchor="example-two">
        <name>Layout of the Flow-ID Label when Applied to MPLS Service</name>
        <figure anchor="Figure_3">
          <name>Applying Flow-ID to MPLS Service</name>
          <artwork align="center"><![CDATA[
+----------------------+
|          LSP         |
|         Label        |
+----------------------+
|      Application     |
|         Label        |
+----------------------+ <--+
|       Extension      |    |
|         Label        |    |
+----------------------+    |--- cSPL
|     Flow-ID Label    |    |
|       Indicator      |    |
+----------------------+ <--+
|        Flow-ID       |
|         Label        |
+----------------------+ <= Bottom of stack
|                      |
|        Payload       |
|                      |
+----------------------+]]></artwork>
        </figure>
        <t> Note that in this case, the application label can be an MPLS PW
        label, MPLS Ethernet VPN label, or MPLS IP VPN label, and it is also
        called a VC label as defined in <xref target="RFC4026"/>.</t>
	</section>

	<section anchor="example-three">
        <name>Layout of the Flow-ID Label when Applied to both MPLS Transport and MPLS Service</name>
        <figure anchor="Figure_4">
          <name>Applying Flow-ID to both MPLS Transport and MPLS Service</name>
          <artwork align="center"><![CDATA[
+----------------------+
|          LSP         |
|         Label        |
+----------------------+ <--+
|       Extension      |    |
|         Label        |    |
+----------------------+    |--- cSPL
|     Flow-ID Label    |    |
|       Indicator      |    |
+----------------------+ <--+
|        Flow-ID       |
|         Label        |
+----------------------+
|      Application     |
|         Label        |
+----------------------+ <--+
|       Extension      |    |
|         Label        |    |
+----------------------+    |--- cSPL
|     Flow-ID Label    |    |
|       Indicator      |    |
+----------------------+ <--+
|        Flow-ID       |
|         Label        |
+----------------------+ <= Bottom of stack
|                      |
|        Payload       |
|                      |
+----------------------+]]></artwork>
        </figure>
        <t>Note that for this example, the two FL values appearing
        in a label stack must be different. In other words, the FL
        applied to the MPLS transport and the FL applied to the
        MPLS service must be different. Also, note that the two FL
        values are independent of each other. For example, two packets can
        belong to the same VPN flow but different LSP flows, or two packets
        can belong to different VPN flows but the same LSP flow.</t>
	</section>
      </section>
    </section>
    <section anchor="procedures-of-encap">
      <name>Procedures of Encapsulation, Look-Up, and Decapsulation</name>
      <t>
    The procedures for FL encapsulation, look-up, and decapsulation are summarized as follows:
      </t>
      <ul spacing="normal">
        <li>
          <t>
    The MPLS ingress node <xref target="RFC3031"/> inserts the XL, FLI, and FL into the MPLS label stack. At the same time,
	the ingress node sets the FL value, the two color-marking bits, and the T bit, as defined in <xref target="flow-based-pm-encapsulation"/>.
          </t>
        </li>
        <li>
          <t>
    If edge-to-edge measurement is applied, i.e., the T bit is set to 1, then only the MPLS ingress/egress node <xref target="RFC3031"/>
	is the processing node; otherwise, all the MPLS nodes along the LSP are the processing nodes. The processing node looks
	up the FL with the help of the XL and FLI, and exports the collected data (such as the Flow-ID, block counters, and timestamps)
	to an external NMS/controller, referring to the Alternate-Marking Method. Section 6 of <xref target="I-D.ietf-ippm-alt-mark-deployment"/>
	describes protocols for collected data export; the details on how to export the collected data are outside the scope
	of this document. Note that
      while looking up the FL, the transit node needs to
      inspect beyond the label at the top
      of the label stack used to make forwarding decisions.
          </t>
        </li>
        <li>
          <t>
    The processing node <bcp14>MUST</bcp14> pop the XL, FLI, and FL from the MPLS label stack when it needs to pop the preceding forwarding label. 
	The egress node <bcp14>MUST</bcp14> pop the whole MPLS label stack. This document doesn't introduce any new process to the decapsulated packet.
          </t>
        </li>
      </ul>
    </section>
    <section anchor="procedures-of-flow-id-alloc">
      <name>Procedures of Flow-ID Allocation</name>
      <t>
    There are at least two ways of allocating Flow-ID. One way is to allocate Flow-ID by a manual trigger from the network
	operator, and the other way is to allocate Flow-ID by an automatic trigger from the ingress node. Details are as follows:
      </t>
      <ul spacing="normal">
        <li>
          <t>
    In the case of a manual trigger, the network operator manually inputs the characteristics (e.g., IP five
	tuples and IP DSCP) of the measured flow; then the NMS/controller generates one or two
	Flow-IDs based on the input from the network operator and provisions the ingress node with the characteristics
	of the measured flow and the corresponding allocated Flow-ID(s).
          </t>
        </li>
        <li>
          <t>
    In the case of an automatic trigger, the ingress node identifies the flow entering the measured path and
	exports the characteristics of the identified flow to the NMS/controller by IPFIX <xref target="RFC7011"/>;
	then the NMS/controller generates one or two Flow-IDs based on the characteristics exported from the ingress node
	and provisions the ingress node with the characteristics of the identified flow and the corresponding allocated Flow-ID(s).
          </t>
        </li>
      </ul>
      <t>
    The policy preconfigured at the NMS/controller decides whether one Flow-ID or two Flow-IDs are generated.
	If the performance measurement on the MPLS service is enabled, then one Flow-ID applied to the MPLS service is generated.
	If the performance measurement on the MPLS transport is enabled, then one Flow-ID applied to the MPLS transport is generated.
	If both of them are enabled, then two Flow-IDs are respectively applied to the MPLS service and the MPLS transport are generated. 
	In this case, a transit node needs to look up both of the two Flow-IDs by default. However, this behavior can be changed through 
	configuration, such as by setting it to look up only the Flow-ID applied to the MPLS transport.
      </t>
      <t>
    Whether using the two methods mentioned above or other methods to allocate Flow-ID, the NMS/controller <bcp14>MUST</bcp14> ensure that every
	generated Flow-ID is unique within the administrative domain and <bcp14>MUST NOT</bcp14> have any value in the reserved label space
	(0-15) <xref target="RFC3032"/>. Specifically, the statement of "Flow-ID is unique" means that the values of Flow-ID are distinct 
	and non-redundant for any flow at any given time within an administrative domain, such that no two flows share the same Flow-ID. 
	This uniqueness ensures that each flow can be individually identified, tracked, and differentiated from others for accurate performance 
	monitoring and management.
      </t>
    </section>
    <section anchor="flc-frld-considerations">
      <name>FLC and FRLD Considerations</name>
      <t> Analogous to the Entropy Label Capability (ELC) defined in <xref sectionFormat="of" section="5" target="RFC6790"/> and the
  Entropy Readable Label Depth (ERLD) defined in <xref sectionFormat="of" section="4" target="RFC8662"/>, the Flow-ID Label
  Capability (FLC) and the Flow-ID Readable Label Depth (FRLD) are defined in this document. Both FLC and FRLD have
  similar semantics with the ELC and ERLD to a router, except that the Flow-ID is used in its flow identification
  function while the Entropy is used in its load-balancing function.</t>
      <t> The ingress node <bcp14>MUST</bcp14> insert each FL at an appropriate depth, which ensures the node to which the
  FL is exposed has the FLC. The ingress node <bcp14>SHOULD</bcp14> insert each FL within an appropriate FRLD, which is the
  minimum FRLD of all the on-path nodes that need to read and use the FL in question. How the ingress node knows
  the FLC and FRLD of all the on-path nodes is outside the scope of this document.</t>
      <t> When the SR paths are used for transport, the label stack grows as the number of on-path segments increases. If
  the number of on-path segments is high, that may become a challenge for the FL to be placed within an
  appropriate FRLD. To overcome this potential challenge, an implementation <bcp14>MAY</bcp14> allow
  the ingress node to place FL between SID labels. This means that multiple identical FLs at different depths <bcp14>MAY</bcp14> be
  interleaved with SID labels. When this occurs, sophisticated network planning may be needed, which is beyond the scope of this document.</t>
    </section>
    <section anchor="ecmp">
      <name>Equal-Cost Multipath Considerations</name>
      <t> Analogous to what's described in <xref sectionFormat="of" section="5" target="RFC8957"/>, under conditions of equal-cost multipath, the introduction of the FL may lead to the same problem that is caused by the Synonymous Flow Label (SFL) <xref target="RFC8957"/>. 
  The two solutions proposed for SFL also apply here. Specifically, adding FL to an existing flow may cause that flow to take a different
  path. If the operator expects to resolve this problem, they can choose to apply entropy labels <xref target="RFC6790"/> or add FL to all flows.</t>
    </section>
    <section anchor="sec-considerations">
      <name>Security Considerations</name>
      <t> As specified in <xref sectionFormat="of" section="7.1" target="RFC9341"/>, "for security reasons, the Alternate-Marking Method <bcp14>MUST</bcp14> only be applied 
  to controlled domains." This requirement applies when the MPLS performance measurement with Alternate-Marking Method is taken into 
  account, which means the MPLS encapsulation and related procedures defined in this document <bcp14>MUST</bcp14> only be applied to controlled domains; 
  otherwise, the potential attacks discussed in <xref sectionFormat="of" section="10" target="RFC9341"/> may be applied to the deployed MPLS networks. </t>
      <t> As specified in <xref target="flow-based-pm-encapsulation"/>, the value of an FL <bcp14>MUST</bcp14> be unique within the administrative domain. In other words, the 
  administrative domain is the scope of an FL. The method for achieving multi-domain performance measurement with the same 
  FL is outside the scope of this document. The FL <bcp14>MUST NOT</bcp14> be signaled and distributed outside the administrative 
  domain. Improper configuration that allows the FL to be passed from one administrative domain to another would result in 
  Flow-ID conflicts. </t>
      <t> To prevent packets carrying FLs from leaking from one domain to another, domain boundary
  nodes <bcp14>MUST</bcp14> deploy policies (e.g., ACL) to filter out these packets.  Specifically, at the sending edge,
  the domain boundary node <bcp14>MUST</bcp14> filter out the packets that carry the FLI and are sent
  to other domains. At the receiving edge, the domain boundary node <bcp14>MUST</bcp14> drop the packets that carry the
  FLI and are from other domains. Note that packet leakage is neither breaching privacy 
  nor a source of DoS.</t>
    </section>


    <section anchor="iana-considerations">
      <name>IANA Considerations</name>

      <t>IANA has assigned the following value in the "Extended Special-Purpose MPLS Label Values" registry within the "Special-Purpose Multiprotocol Label Switching (MPLS) Label Values" registry group: </t>

      <table anchor="Table_1">
        <name>New Extended Special-Purpose MPLS Label Value for Flow-ID Label Indicator</name>
        <thead>
          <tr>
            <th align="left">Value</th>
            <th align="left">Description</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">18</td>
            <td align="left">Flow-ID Label Indicator (FLI)</td>
            <td align="left">RFC 9714</td>
          </tr>
        </tbody>
      </table>
    </section>
  </middle>
  <back>
<displayreference target="I-D.ietf-ippm-alt-mark-deployment" to="ALT-MARK"/>

    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3031.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3032.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9017.xml"/>
      </references>
      <references>
        <name>Informative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4026.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7011.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8372.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6790.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8662.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8957.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9341.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9613.xml"/>
<!-- [I-D.ietf-ippm-alt-mark-deployment] IESG State: I-D Exists as of 10/23/2024 -->
        <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-ippm-alt-mark-deployment.xml"/>
      </references>
    </references>

    <section anchor="acknowledgements" numbered="false">
      <name>Acknowledgements</name>
      <t> The authors acknowledge <contact fullname="Loa
      Andersson"/>, <contact fullname="Tarek Saad"/>, <contact
      fullname="Stewart Bryant"/>, <contact fullname="Rakesh Gandhi"/>,
      <contact fullname="Greg Mirsky"/>, <contact fullname="Aihua Liu"/>,
      <contact fullname="Shuangping Zhan"/>, <contact fullname="Ming Ke"/>,
      <contact fullname="Wei He"/>, <contact fullname="Ximing Dong"/>,
      <contact fullname="Darren Dukes"/>, <contact fullname="Tony Li"/>,
      <contact fullname="James Guichard"/>, <contact fullname="Daniele
      Ceccarelli"/>, <contact fullname="Éric Vyncke"/>, <contact
      fullname="John Scudder"/>, <contact fullname="Gunter van de Velde"/>,
      <contact fullname="Roman Danyliw"/>, <contact fullname="Warren
      Kumari"/>, <contact fullname="Murray Kucherawy"/>, <contact
      fullname="Deb Cooley"/>, <contact fullname="Zaheduzzaman Sarker"/>, and
      <contact fullname="Deborah Brungard"/> for their careful review and
      very helpful comments.</t>
      <t> They also acknowledge <contact fullname="Italo Busi"/> and
      <contact fullname="Chandrasekar Ramachandran"/> for their insightful
      MPLS-RT review and constructive comments.</t>
      <t> Additionally, the authors thank <contact
      fullname="Dhruv Dhody"/> for the English grammar review.</t>
    </section>
    <section anchor="contrib" numbered="false">
      <name>Contributors</name>

      <contact fullname="Minxue Wang">
      <organization>China Mobile</organization>
      <address>
        <email>wangminxue@chinamobile.com</email>
      </address>
      </contact>

      <contact fullname="Wen Ye">
      <organization>China Mobile</organization>
      <address>
        <email>yewen@chinamobile.com</email>
      </address>
      </contact>

    </section>

  </back>
</rfc>
