<?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.39 (Ruby 3.0.2) -->
<?rfc tocompact="yes"?>
<?rfc tocindent="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-spring-mpls-path-segment-10" category="std" consensus="true" submissionType="IETF" tocDepth="3" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.5 -->
  <front>
    <title abbrev="Path Segment in SR-MPLS">Path Segment in MPLS Based Segment Routing Network</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-spring-mpls-path-segment-10"/>
    <author initials="W." surname="Cheng" fullname="Weiqiang Cheng">
      <organization>China Mobile</organization>
      <address>
        <email>chengweiqiang@chinamobile.com</email>
      </address>
    </author>
    <author initials="H." surname="Li" fullname="Han Li">
      <organization>China Mobile</organization>
      <address>
        <email>lihan@chinamobile.com</email>
      </address>
    </author>
    <author initials="C." surname="Li" fullname="Cheng Li">
      <organization>Huawei Technologies Co., Ltd</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>c.l@huawei.com</email>
      </address>
    </author>
    <author initials="R." surname="Gandhi" fullname="Rakesh Gandhi">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <country>Canada</country>
        </postal>
        <email>rgandhi@cisco.com</email>
      </address>
    </author>
    <author initials="R." surname="Zigler" fullname="Royi Zigler">
      <organization>Broadcom</organization>
      <address>
        <email>royi.zigler@broadcom.com</email>
      </address>
    </author>
    <date year="2023" month="July" day="31"/>
    <area>Routing Area</area>
    <workgroup>SPRING Working Group</workgroup>
    <abstract>
      <?line 71?>

<t>A Segment Routing (SR) path is identified by an SR segment list. A
sub-set of segments from the segment list cannot distinguish one SR path
from another as they may be partially congruent. SR path identification
is a pre-requisite for various use-cases such as Performance Measurement
(PM), and end-to-end 1+1 path protection.</t>
      <t>In SR for MPLS data plane (SR-MPLS), an Egress node can not determine on which SR path a packet traversed the network from the label stack because the segment identifiers are stripped from the label stack as the packet transits the network.</t>
      <t>This document defines Path Segment to identify an SR path on the egress node of the path.</t>
    </abstract>
  </front>
  <middle>
    <?line 84?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Segment Routing (SR) <xref target="RFC8402"/> leverages the
source-routing paradigm to steer packets from a source node through a
controlled set of instructions, called segments, by prepending the
packet with an SR header in the MPLS data plane SR-MPLS <xref target="RFC8660"/>
through a label stack to construct an SR path.</t>
      <t>In an SR-MPLS network, when a packet is transmitted along an SR path,
the labels in the MPLS label stack will be swapped or popped. So that no
label or only the last label (e.g. a service label or an Explicit-Null label) may be left in the MPLS label stack when the packet reaches the egress node. Thus, the egress node cannot use the SR label stack to determine along which SR path the packet came.</t>
      <t>However, to support various use-cases in SR-MPLS networks, like
end-to-end 1+1 path protection (Live-Live case) <xref target="psid-for-protection"/>,
bidirectional path <xref target="psid-for-bpath"/>, or Performance Measurement (PM)
<xref target="psid-for-pm"/>, the ability to implement path identification on the egress
node is a pre-requisite.</t>
      <t>Therefore, this document introduces a new segment type that is
referred to as the Path Segment. A Path Segment is defined to uniquely
identify an SR path on the egress node of the path. It <bcp14>MAY</bcp14> be used by the egress
nodes for path identification hence to support various use-cases
including SR path PM, end-to-end 1+1 SR path protection, and
bidirectional SR paths correlation. Note that, Per-path states will be maintained in the egress node due to the requirements in these use cases, though in normal cases that the per-path states will be maintained in the ingress node only in the SR architecture.</t>
      <section anchor="requirements-language">
        <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 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

</section>
      <section anchor="abbreviations-and-terms">
        <name>Abbreviations and Terms</name>
        <t>DM: Delay Measurement.</t>
        <t>LM: Loss Measurement.</t>
        <t>MPLS: Multiprotocol Label Switching.</t>
        <t>MSD: Maximum SID Depth.</t>
        <t>PM: Performance Measurement.</t>
        <t>PSID: Path Segment ID.</t>
        <t>SID: Segment ID.</t>
        <t>SL: Segment List.</t>
        <t>SR: Segment Routing.</t>
        <t>SRLB: SR Local Block</t>
        <t>SRGB: SR Global Block</t>
        <t>SR-MPLS: Instantiation of SR on the MPLS data plane.</t>
        <t>Sub-Path: A sub-path is a part of the a path, which contains a sub-set of the nodes and links of the path.</t>
      </section>
    </section>
    <section anchor="path-segment">
      <name>Path Segment</name>
      <t>A Path Segment Identifier(PSID) is a single label that is assigned from the Segment Routing Local Block (SRLB) <xref target="RFC8402"/> or Segment Routing Global Block (SRGB) <xref target="RFC8402"/> or dynamic MPLS label pool of the egress node of an SR path. Whether a PSID is allocated from the SRLB, SRGB, or a dynamic range depends on specific use cases. If the PSID is only used by the egress node to identify an SR path, the SRLB, SRGB or dynamic MPLS label pool can be used. Three use cases are introduced in Section 5, 6, and 7 of this document.</t>
      <t>The term of SR path used in this document is a path described by a Segment-List (SL). A PSID is used to identify a Segment List. However, one PSID can be used to identify multiple Segment Lists in some use cases if needed. For example, all the Segment lists in a Candidate path can use a single PSID, and all the Segment Lists in an SR policy can share the same PSID, if customers would like to aggregate the data among the Segment Lists. How to use the PSID to Segment Lists depends on the requirements of the use cases.</t>
      <t>When a PSID is used, the PSID <bcp14>MUST</bcp14> be inserted at the ingress node and <bcp14>MUST</bcp14> immediately follow the last label of the SR path, in other words, inserted after the routing segment (adjacency/node/prefix segment) pointing to the egress node of the SR path. Otherwise, the PSID may be processed by an intermediate node, which may cause error in forwarding because of mis-matching if the PSID is allocated from a SRLB.</t>
      <t>The value of the TTL field in the MPLS label stack entry containing the PSID can be set to any value including 0, or the same value as the TTL of the last label stack entry for the last segment in the SR path. If the Path Segment is the bottom label, the S bit <bcp14>MUST</bcp14> be set.</t>
      <t>A PSID can be used in the case of Penultimate Hop Popping (PHP), where some labels are be popped off at the penultimate hop of an SR path. As per regular MPLS processing, the label below (including the PSID in this case) will not be popped by the penultimate node.</t>
      <t>The egress node <bcp14>MUST</bcp14> pop the PSID. The egress node <bcp14>MAY</bcp14> use the PSID for further processing. For example, when performance measurement is enabled on the SR path, it can trigger packet counting or timestamping.</t>
      <t>In some deployments, service labels may be added after the Path Segment label in the MPLS label stack. In this case, the egress node
<bcp14>MUST</bcp14> be capable of processing more than one label. The additional processing required, may have an impact on forwarding performance.</t>
      <t>Generic Associated Label (GAL) <bcp14>MAY</bcp14> be used for Operations, Administration and Maintenance (OAM) in MPLS networks. As per <xref target="RFC5586"/>, when GAL is used, it the ACH appears immediately after the bottom of the label stack.</t>
      <t>If Entropy Label is also used on this egress node, as per <xref target="RFC6790"/> the Entropy label Indicator (ELI) and Entropy Label (EL) would be placed before the tunnel label and hence does not interfere with the PSID which is placed below.</t>
      <t>The SR path computation needs to know the Maximum SID Depth (MSD) that can be imposed at the ingress node of a given SR path <xref target="RFC8664"/>. This ensures that the SID stack depth of a computed path does not exceed the number of SIDs the node is capable of imposing. As per RFC8491 the MSD signals the total number of MPLS labels that can be imposed. This includes the PSID.</t>
      <t>The label stack with Path Segment is shown in <xref target="figure1"/>:</t>
      <figure anchor="figure1">
        <name>Label Stack with Path Segment</name>
        <artwork><![CDATA[
            +--------------------+
            |       ...          |
            +--------------------+
            |      Label 1       |
            +--------------------+
            |      Label 2       |
            +--------------------+
            |       ...          |
            +--------------------+
            |      Label n       |
            +--------------------+
            |        PSID        |
            +--------------------+
            ~       Payload      ~
            +--------------------+
]]></artwork>
      </figure>
      <t>Where:</t>
      <ul spacing="normal">
        <li>The Labels 1 to n are the segment label stack used to direct how
to steer the packets along the SR path.</li>
        <li>The PSID identifies the SR path in the context of the egress node of the SR path.</li>
      </ul>
      <t>There may be multiple paths (or sub-path(s)) carried in the
label stack, for each path (or sub-path), there may be a corresponding
Path Segment carried. A use case can be found in Section 4.</t>
    </section>
    <section anchor="psid-allocation-and-distribution">
      <name>PSID Allocation and Distribution</name>
      <t>There are some ways to assign and distribute the PSID. The PSID can be configured locally or allocated by a centralized controller or by other means, this is out of the scope of this document.  If an egress cannot support the use of the PSID, it <bcp14>MUST</bcp14> reject the attempt to configure the label.</t>
    </section>
    <section anchor="nesting-of-path-segments">
      <name>Nesting of Path Segments</name>
      <t>Binding SID (BSID) <xref target="RFC8402"/> can be used for SID list
compression. With BSID, an end-to-end SR path can be split into several
sub-paths, each sub-path is identified by a BSID. Then an end-to-end SR
path can be identified by a list of BSIDs, therefore, it can provide
better scalability.</t>
      <t>BSID and PSID can be combined to achieve both sub-path and
end-to-end path monitoring. A reference model for such a combination in
(Figure 2) shows an end-to-end path (A-&gt;D) that spans three domains
(Access, Aggregation and Core domain) and consists of three sub-paths,
one in each sub-domain (sub-path (A-&gt;B), sub-path (B-&gt;C) and
sub-path (C-&gt;D)). Each sub-path is associated with a BSID and a s-PSID.</t>
      <t>The SID list of the end-to-end path can be expressed as &lt;BSID1, BSID2, ..., BSIDn, e-PSID&gt;, where the e-PSID is the PSID of the end-to-end path. The SID
list of a sub-path can be expressed as &lt;SID1, SID2, ...SIDn, s-PSID&gt;, where the s-PSID is the PSID of the sub-path.</t>
      <t><xref target="figure2"/> shows the details of the label stacks when PSID and BSID are
used to support both sub-path and end-to-end path monitoring in a
multi-domain scenario.</t>
      <figure anchor="figure2">
        <name>Nesting of Path Segments</name>
        <artwork><![CDATA[
         /--------\       /--------\       /--------\
       /            \   /            \   /            \
     A{    Access    }B{  Aggregation }C{     Core     }D
       \            /   \            /   \            /
         \--------/       \--------/       \--------/
       Sub-path(A->B)    Sub-path(B->C)   Sub-path(C->D)
    |<--------------->|<-------------->|<-------------->|
                          E2E Path(A->D)
    |<------------------------------------------------->|

 +------------+
 ~A->B SubPath~
 +------------+  +------------+
 |s-PSID(A->B)|  ~B->C SubPath~
 +------------+  +------------+
 | BSID(B->C) |  |s-PSID(B->C)|
 +------------+  +------------+  +------------+
 | BSID(C->D) |  | BSID(C->D) |  ~C->D SubPath~
 +------------+  +------------+  +------------+  +------------+
 |e-PSID(A->D)|  |e-PSID(A->D)|  |e-PSID(A->D)|  |e-PSID(A->D)|
 +------------+  +------------+  +------------+  +------------+
]]></artwork>
      </figure>
    </section>
    <section anchor="psid-for-pm">
      <name>Path Segment for Performance Measurement</name>
      <t>As defined in <xref target="RFC7799"/>, performance measurement can
be classified into Passive, Active, and Hybrid measurement. Since Path
Segment is encoded in the SR-MPLS Label Stack as shown in Figure 1,
existing implementation on the egress node can be leveraged for
measuring packet counts using the incoming SID (the PSID).</t>
      <t>For Passive performance measurement, path identification at the
measuring points is the pre-requisite. Path Segment can be used by the
measuring points (e.g., the ingress and egress nodes of the SR path or a
centralized controller) to correlate the packet counts and timestamps
from the ingress and egress nodes for a specific SR path, then packet
loss and delay can be calculated for the end-to-end path, respectively.</t>
      <t>Path Segment can also be used for Active performance measurement for
an SR path in SR-MPLS networks for collecting packet counters and
timestamps from the egress node using probe messages.</t>
      <t>Path Segment can also be used for In-situ OAM for SR-MPLS to identify
the SR Path associated with the in-situ data fields in the data packets
on the egress node.</t>
      <t>Path Segment can also be used for In-band PM for SR-MPLS to identify
the SR Path associated with the collected performance metrics.</t>
    </section>
    <section anchor="psid-for-bpath">
      <name>Path Segment for Bidirectional SR Path</name>
      <t>In some scenarios, for example, mobile backhaul transport networks,
there are requirements to support bidirectional paths, and the path is
normally treated as a single entity. Forward and reverse directions of the path
have the same fate, for example, failure in one direction will result in
switching traffic at both directions. MPLS supports this by introducing
the concepts of co-routed bidirectional LSP and associated bidirectional
LSP <xref target="RFC5654"/>.</t>
      <t>In the current SR architecture, an SR path is a unidirectional path
<xref target="RFC8402"/>.
In order to support bidirectional SR paths, a straightforward way is
to bind two unidirectional SR paths to a single bidirectional SR
path. Path Segments can then be used to identify and correlate the
traffic for the two unidirectional SR paths at both ends of the
bidirectional path.</t>
    </section>
    <section anchor="psid-for-protection">
      <name>Path Segment for End-to-end Path Protection</name>
      <t>For end-to-end 1+1 path protection (i.e., Live-Live case), the egress
node of the path needs to know the set of paths that constitute the
primary and the secondaries, in order to select the primary path packets
for onward transmission, and to discard the packets from the secondaries <xref target="RFC4426"/>.</t>
      <t>To do this in Segment Routing, each SR path needs a path identifier
that is unique at the egress node. For SR-MPLS, this can be the Path
Segment label allocated by the egress node.</t>
      <t>There then needs to be a method of binding this SR path identifiers
into equivalence groups such that the egress node can determine for
example, the set of packets that represent a single primary path. This equivalence group can be instantiated in the network
by an SDN controller using the Path Segments of the SR paths.</t>
    </section>
    <section anchor="Security">
      <name>Security Considerations</name>
      <t>A Path Segment in SR-MPLS is a label similar to other labels/Segment, such as a VPN label or a Prefix SID, defined in MPLS and SR-MPLS. The data plane processing of a PSID is a local implementation of an ingress node, or an egress node, which follows the same logic of existing MPLS dataplane.</t>
      <t>A Path Segment is used within an SR-MPLS domain <xref target="RFC8402"/> and <bcp14>SHOULD</bcp14> not leak outside the domain, therefore no new security threats are introduced comparing to current SR-MPLS. The security consideration of SR-MPLS, such as boundary filtering described in <xref section="8.1" sectionFormat="of" target="RFC8402"/> applies to this document.</t>
      <t>A PSID is allocated by an egress node and distributed to an ingress. The distribution is performed within an SR trusted domain. However, the mechanism of distributing a PSID is out of the scope of this document, and its security consideration will be described in other documents.</t>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <t>This document does not require any IANA actions.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC8402">
          <front>
            <title>Segment Routing Architecture</title>
            <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
            <author fullname="S. Previdi" initials="S." role="editor" surname="Previdi"/>
            <author fullname="L. Ginsberg" initials="L." surname="Ginsberg"/>
            <author fullname="B. Decraene" initials="B." surname="Decraene"/>
            <author fullname="S. Litkowski" initials="S." surname="Litkowski"/>
            <author fullname="R. Shakir" initials="R." surname="Shakir"/>
            <date month="July" year="2018"/>
            <abstract>
              <t>Segment Routing (SR) leverages the source routing paradigm. A node steers a packet through an ordered list of instructions, called "segments". A segment can represent any instruction, topological or service based. A segment can have a semantic local to an SR node or global within an SR domain. SR provides a mechanism that allows a flow to be restricted to a specific topological path, while maintaining per-flow state only at the ingress node(s) to the SR domain.</t>
              <t>SR can be directly applied to the MPLS architecture with no change to the forwarding plane. A segment is encoded as an MPLS label. An ordered list of segments is encoded as a stack of labels. The segment to process is on the top of the stack. Upon completion of a segment, the related label is popped from the stack.</t>
              <t>SR can be applied to the IPv6 architecture, with a new type of routing header. A segment is encoded as an IPv6 address. An ordered list of segments is encoded as an ordered list of IPv6 addresses in the routing header. The active segment is indicated by the Destination Address (DA) of the packet. The next active segment is indicated by a pointer in the new routing header.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8402"/>
          <seriesInfo name="DOI" value="10.17487/RFC8402"/>
        </reference>
        <reference anchor="RFC8660">
          <front>
            <title>Segment Routing with the MPLS Data Plane</title>
            <author fullname="A. Bashandy" initials="A." role="editor" surname="Bashandy"/>
            <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
            <author fullname="S. Previdi" initials="S." surname="Previdi"/>
            <author fullname="B. Decraene" initials="B." surname="Decraene"/>
            <author fullname="S. Litkowski" initials="S." surname="Litkowski"/>
            <author fullname="R. Shakir" initials="R." surname="Shakir"/>
            <date month="December" year="2019"/>
            <abstract>
              <t>Segment Routing (SR) leverages the source-routing paradigm. A node steers a packet through a controlled set of instructions, called segments, by prepending the packet with an SR header. In the MPLS data plane, the SR header is instantiated through a label stack. This document specifies the forwarding behavior to allow instantiating SR over the MPLS data plane (SR-MPLS).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8660"/>
          <seriesInfo name="DOI" value="10.17487/RFC8660"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <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="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <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="RFC4426">
          <front>
            <title>Generalized Multi-Protocol Label Switching (GMPLS) Recovery Functional Specification</title>
            <author fullname="J. Lang" initials="J." role="editor" surname="Lang"/>
            <author fullname="B. Rajagopalan" initials="B." role="editor" surname="Rajagopalan"/>
            <author fullname="D. Papadimitriou" initials="D." role="editor" surname="Papadimitriou"/>
            <date month="March" year="2006"/>
            <abstract>
              <t>This document presents a functional description of the protocol extensions needed to support Generalized Multi-Protocol Label Switching (GMPLS)-based recovery (i.e., protection and restoration). Protocol specific formats and mechanisms will be described in companion documents. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4426"/>
          <seriesInfo name="DOI" value="10.17487/RFC4426"/>
        </reference>
        <reference anchor="RFC5586">
          <front>
            <title>MPLS Generic Associated Channel</title>
            <author fullname="M. Bocci" initials="M." role="editor" surname="Bocci"/>
            <author fullname="M. Vigoureux" initials="M." role="editor" surname="Vigoureux"/>
            <author fullname="S. Bryant" initials="S." role="editor" surname="Bryant"/>
            <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="RFC5654">
          <front>
            <title>Requirements of an MPLS Transport Profile</title>
            <author fullname="B. Niven-Jenkins" initials="B." role="editor" surname="Niven-Jenkins"/>
            <author fullname="D. Brungard" initials="D." role="editor" surname="Brungard"/>
            <author fullname="M. Betts" initials="M." role="editor" surname="Betts"/>
            <author fullname="N. Sprecher" initials="N." surname="Sprecher"/>
            <author fullname="S. Ueno" initials="S." surname="Ueno"/>
            <date month="September" year="2009"/>
            <abstract>
              <t>This document specifies the requirements of an MPLS Transport Profile (MPLS-TP). This document is a product of a joint effort of the International Telecommunications Union (ITU) and IETF to include an MPLS Transport Profile within the IETF MPLS and PWE3 architectures to support the capabilities and functionalities of a packet transport network as defined by International Telecommunications Union - Telecommunications Standardization Sector (ITU-T).</t>
              <t>This work is based on two sources of requirements: MPLS and PWE3 architectures as defined by IETF, and packet transport networks as defined by ITU-T.</t>
              <t>The requirements expressed in this document are for the behavior of the protocol mechanisms and procedures that constitute building blocks out of which the MPLS Transport Profile is constructed. The requirements are not implementation requirements. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5654"/>
          <seriesInfo name="DOI" value="10.17487/RFC5654"/>
        </reference>
        <reference anchor="RFC6790">
          <front>
            <title>The Use of Entropy Labels in MPLS Forwarding</title>
            <author fullname="K. Kompella" initials="K." surname="Kompella"/>
            <author fullname="J. Drake" initials="J." surname="Drake"/>
            <author fullname="S. Amante" initials="S." surname="Amante"/>
            <author fullname="W. Henderickx" initials="W." surname="Henderickx"/>
            <author fullname="L. Yong" initials="L." surname="Yong"/>
            <date month="November" year="2012"/>
            <abstract>
              <t>Load balancing is a powerful tool for engineering traffic across a network. This memo suggests ways of improving load balancing across MPLS networks using the concept of "entropy labels". It defines the concept, describes why entropy labels are useful, enumerates properties of entropy labels that allow maximal benefit, and shows how they can be signaled and used for various applications. This document updates RFCs 3031, 3107, 3209, and 5036. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6790"/>
          <seriesInfo name="DOI" value="10.17487/RFC6790"/>
        </reference>
        <reference anchor="RFC8664">
          <front>
            <title>Path Computation Element Communication Protocol (PCEP) Extensions for Segment Routing</title>
            <author fullname="S. Sivabalan" initials="S." surname="Sivabalan"/>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
            <author fullname="J. Tantsura" initials="J." surname="Tantsura"/>
            <author fullname="W. Henderickx" initials="W." surname="Henderickx"/>
            <author fullname="J. Hardwick" initials="J." surname="Hardwick"/>
            <date month="December" year="2019"/>
            <abstract>
              <t>Segment Routing (SR) enables any head-end node to select any path without relying on a hop-by-hop signaling technique (e.g., LDP or RSVP-TE). It depends only on "segments" that are advertised by link-state Interior Gateway Protocols (IGPs). An SR path can be derived from a variety of mechanisms, including an IGP Shortest Path Tree (SPT), an explicit configuration, or a Path Computation Element (PCE). This document specifies extensions to the Path Computation Element Communication Protocol (PCEP) that allow a stateful PCE to compute and initiate Traffic-Engineering (TE) paths, as well as a Path Computation Client (PCC) to request a path subject to certain constraints and optimization criteria in SR networks.</t>
              <t>This document updates RFC 8408.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8664"/>
          <seriesInfo name="DOI" value="10.17487/RFC8664"/>
        </reference>
        <reference anchor="RFC7799">
          <front>
            <title>Active and Passive Metrics and Methods (with Hybrid Types In-Between)</title>
            <author fullname="A. Morton" initials="A." surname="Morton"/>
            <date month="May" year="2016"/>
            <abstract>
              <t>This memo provides clear definitions for Active and Passive performance assessment. The construction of Metrics and Methods can be described as either "Active" or "Passive". Some methods may use a subset of both Active and Passive attributes, and we refer to these as "Hybrid Methods". This memo also describes multiple dimensions to help evaluate new methods as they emerge.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7799"/>
          <seriesInfo name="DOI" value="10.17487/RFC7799"/>
        </reference>
      </references>
    </references>
    <?line 350?>

<section numbered="false" anchor="Acknowledgements">
      <name>Acknowledgements</name>
      <t>The authors would like to thank Adrian Farrel, Stewart Bryant,
Shuangping Zhan, Alexander Vainshtein, Andrew G. Malis, Ketan
Talaulikar, Shraddha Hegde, and Loa Andersson for their review,
suggestions and comments to this document.</t>
      <t>The authors would like to acknowledge the contribution from Alexander
Vainshtein on "Nesting of Path Segments".</t>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <?line 363?>

<t>The following people have substantially contributed to this document.</t>
      <contact initials="M." surname="Chen" fullname="Mach(Guoyi) Chen">
        <organization>Huawei Technologies Co., Ltd</organization>
        <address>
          <email>mach.chen@huawei.com</email>
        </address>
      </contact>
      <contact initials="L." surname="Wang" fullname="Lei Wang">
        <organization>China Mobile</organization>
        <address>
          <email>wangleiyj@chinamobile.com</email>
        </address>
      </contact>
      <contact initials="A." surname="Liu" fullname="Aihua Liu">
        <organization>ZTE Corp</organization>
        <address>
          <email>liu.aihua@zte.com.cn</email>
        </address>
      </contact>
      <contact initials="G." surname="Mirsky" fullname="Greg Mirsky">
        <organization>ZTE Corp</organization>
        <address>
          <email>gregimirsky@gmail.com</email>
        </address>
      </contact>
      <contact initials="G. S." surname="Mishra" fullname="Gyan S. Mishra">
        <organization>Verizon Inc.</organization>
        <address>
          <email>gyan.s.mishra@verizon.com</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA61b63IbN5b+zyq+A9b+MdKEpC3Ht6gyHlMXy6qlZK2kxDXZ
7A+wGyQRdTeYRrdkxpGfZZ9ln2zPBUCjm6TtSeKqmVAgcAAcnMt3LhwOh/3e
7b74tt9LTVLIXO2LtJSzaqhVNRvaZamL+TBfZna4lNViaNU8V0U13Hvc7yWy
2he2Svs9W5VK5vvi9Pj6DYybwqrC1nZfVGWt+r2l3u/3hKhMsi/+tlL2b+4v
ky9lUrXHUrWsFjD0rR/QRQobRpPsKi/VzMYjpqw6Q0AbzxkP6SLThWrP6exv
62kzWBgYq3SVwZoLuLu44rsDIXF2MbkSB9KqNIxemroCXolzVd2Z8qbfk9Np
qW7X115dDnE5TACm7Yd1Y/ir37ub74uri8vT8xPxHqjgFyelqZfwPLKCgzx5
/OTb4eMXw2/3+j2gUFcLUwJzh4Kf7r3Sv2oJiw4XqpjjlUwJFA8XupDizEx1
pnBQ5VJn+yLBSXduyesEJ+U0ZwRcaIi+lYWY6C8Ry/RCFtuJ0IFiMm9rCVuL
a5UsCpOZuVZWHJrRQExQovB16qIqV26/+NSj7PWCFrd3uJQ3yi7EiSzSRXRa
bRMjrla2UrkdiNMiGbWpy0KmMflyTgReJ7iws4NZafGTnmeqDPQPSiNTmtVQ
gGmj32ja66n7mgmRblSlntZV69nOZLLYOalh3S4x6quZ5HbMYf0IX3MjYyZA
4b38sjjcwZxM6dUv219xrGEDeMU60Prp+hhOVC5bklCPJE58/VtF60dJ0ZA4
KdVcnOnS3qw+R2QO03RO017Pcah9kJMVCOXVCAjZRSkDoR9VqX8zRXhmTwxm
j+wop8mvb3mSf5LClLms9K0iI3X55vDl08dPwufnzx/DZ13MurOePn3y3H9+
9uxl8/n5s6f+8/MX3z2OKIXxFy+++24f9x4Oh0JOwXyCycG/+73xmkHZubrc
FWh8hbZCozHUMw2GZ7oSyINL4Wwy8N1WIzEGc1xPwVBXwsz8d1bMSpOLaqFa
s0Uii8JUIoXPsFUN/BGmUEgUN+z3aJWEKQtVCmmRwAqkbSWmCmaUlZZZtgJl
KuZg6AvY3a0M5wQfoQ28PhxdimWphqX6FbbRlRLAUXErS21qK2qrhgmYUwsm
OFngTheqJJYXiRJnStq6VHjsfm/n4mx3AGdKhSrSYWWG8B+x980e77ssTaUS
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
NgbLkoTdbT11rsP9zjNWmO59/h+Ny0zsTEAAAA==

-->

</rfc>
