<?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-11" category="std" consensus="true" submissionType="IETF" tocDepth="3" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.0 -->
  <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-11"/>
    <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="August" day="29"/>
    <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>The addition of the PSID will require the egress to read and process the PSID label in addition to the regular processing (such as a below MPLS label or the MPLS payload). 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, 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 <xref target="psid-nesting"/>.</t>
      <t>Signaling of the PSID between the egress, ingress and possibly a centralized controller is out of the scope of this document.</t>
    </section>
    <section anchor="use-cases">
      <name>Use cases</name>
      <t>This section describes use cases which can leveage the Path Segment.</t>
      <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="psid-nesting">
        <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>
    <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 should 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 349?>

<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 362?>

<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:
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
Z+xF5d4/AAA=

-->

</rfc>
