<?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.7.29 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-pce-multipath-16" category="std" consensus="true" submissionType="IETF" updates="8231" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="PCEP Extensions for Multipath">Path Computation Element Communication Protocol (PCEP) Extensions for Signaling Multipath Information</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-pce-multipath-16"/>
    <author initials="M." surname="Koldychev" fullname="Mike Koldychev">
      <organization>Ciena Corporation</organization>
      <address>
        <email>mkoldych@ciena.com</email>
      </address>
    </author>
    <author initials="S." surname="Sivabalan" fullname="Siva Sivabalan">
      <organization>Ciena Corporation</organization>
      <address>
        <email>ssivabal@ciena.com</email>
      </address>
    </author>
    <author initials="T." surname="Saad" fullname="Tarek Saad">
      <organization>Cisco Systems</organization>
      <address>
        <email>tsaad@cisco.com</email>
      </address>
    </author>
    <author initials="V." surname="Beeram" fullname="Vishnu Pavan Beeram">
      <organization>Juniper Networks, Inc.</organization>
      <address>
        <email>vbeeram@juniper.net</email>
      </address>
    </author>
    <author initials="H." surname="Bidgoli" fullname="Hooman Bidgoli">
      <organization>Nokia</organization>
      <address>
        <email>hooman.bidgoli@nokia.com</email>
      </address>
    </author>
    <author initials="B." surname="Yadav" fullname="Bhupendra Yadav">
      <organization>Ciena</organization>
      <address>
        <email>byadav@ciena.com</email>
      </address>
    </author>
    <author initials="S." surname="Peng" fullname="Shuping Peng">
      <organization>Huawei Technologies</organization>
      <address>
        <email>pengshuping@huawei.com</email>
      </address>
    </author>
    <author initials="G." surname="Mishra" fullname="Gyan Mishra">
      <organization>Verizon Inc.</organization>
      <address>
        <email>gyan.s.mishra@verizon.com</email>
      </address>
    </author>
    <author initials="S." surname="Sidor" fullname="Samuel Sidor" role="editor">
      <organization>Cisco Systems.</organization>
      <address>
        <email>ssidor@cisco.com</email>
      </address>
    </author>
    <date year="2025" month="October" day="17"/>
    <area>Routing</area>
    <workgroup>PCE Working Group</workgroup>
    <abstract>
      <?line 68?>

<t>Certain traffic engineering path computation problems require solutions that
consist of multiple traffic paths that together form a solution.
Returning a single traffic path does not provide a valid solution.
This document defines mechanisms to encode multiple paths for a single set of
objectives and constraints.
This allows encoding of multiple Segment Lists per
Candidate Path within a Segment Routing Policy.
The new Path Computation Element Communication Protocol (PCEP) mechanisms are designed to be generic,
where possible, to allow for future re-use outside of SR Policy.
The new PCEP mechanisms are applicable to both stateless and stateful PCEP. Additionally,
this document updates RFC 8231 to allow encoding of multiple Segment Lists in PCEP.</t>
    </abstract>
  </front>
  <middle>
    <?line 82?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Segment Routing Policy for Traffic Engineering
<xref target="RFC9256"/> details the concepts of SR
Policy and approaches to steering traffic into an SR Policy.  In
particular, it describes the SR Candidate Path as a collection of one
or more Segment Lists.  The current PCEP standards only allow for
signaling of one Segment List per Candidate Path.  The PCEP extension to
support Segment Routing Policy Candidate Paths
<xref target="I-D.ietf-pce-segment-routing-policy-cp"/> specifically avoids
defining how to signal multiple Segment Lists.</t>
      <t>This document defines the required extensions that allow the signaling
of multipath information via PCEP. Although these extensions are
motivated by the SR Policy use case, they are also applicable
to other data plane types.</t>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, 
they appear in all capitals, as shown here.</t>
      </section>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The following terms are used in this document:</t>
        <t>ECMP:</t>
        <ul empty="true">
          <li>
            <t>Equal Cost Multi Path, equally distributing traffic among multiple paths/links, where each path/link gets the same share of traffic as others.</t>
          </li>
        </ul>
        <t>W-ECMP:</t>
        <ul empty="true">
          <li>
            <t>Weighted ECMP, unequally distributing traffic among multiple paths/links, where some paths/links get more traffic than others.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="motivation">
      <name>Motivation</name>
      <t>This extension is motivated by the use-cases described below.</t>
      <section anchor="signaling-multiple-segment-lists-of-an-sr-candidate-path">
        <name>Signaling Multiple Segment Lists of an SR Candidate Path</name>
        <t>The Candidate Path of an SR Policy is the unit of signaling in PCEP, see
<xref target="I-D.ietf-pce-segment-routing-policy-cp"/>.  Each Candidate Path can
contain multiple Segment Lists and each Segment List is encoded by
one Explicit Route Object (ERO).  However, each PCEP LSP can contain only a
single ERO, which prevents us from encoding multiple Segment Lists 
within the same SR Candidate Path.</t>
      </section>
      <section anchor="splitting-of-requested-bandwidth">
        <name>Splitting of Requested Bandwidth</name>
        <t>A PCC may request a path with 80 Gbps of bandwidth, but all links in the
network have only 60 Gbps capacity.  The PCE can return two paths, that can
together carry 80 Gbps. The PCC can then equally or unequally split the incoming
80 Gbps of traffic among the two paths. <xref target="WEIGHT-TLV"/> introduces a
new TLV that carries the path weight that facilitates control of load-balancing
of traffic among the multiple paths.</t>
      </section>
      <section anchor="reverse-path-information">
        <name>Reverse Path Information</name>
        <t>Path Computation Element Communication Protocol (PCEP) Extensions for Associated 
Bidirectional Label Switched Paths (LSPs) <xref target="RFC9059"/> defines a mechanism in PCEP
to associate two opposite direction SR Policy Candidate Paths. 
However, within each Candidate Path there can be multiple Segment Lists,
and <xref target="RFC9059"/> does not define a mechanism to specify 
mapping between Segment Lists of the forward and reverse Candidate Paths.
Certain applications such as Circuit Style SR Policy <xref target="I-D.ietf-spring-cs-sr-policy"/>,
require the knowledge of reverse path(s) per Segment List, not just per Candidate Path.
For example, when the headend knows the reverse Segment List for each forward Segment List, 
then PM/BFD can run a separate session on every Segment List, 
by imposing a double stack (forward stack followed by reverse stack) onto the packet.
If the reverse Segment List is co-routed with the forward Segment List, then 
the PM/BFD session would traverse the same links in the forward and reverse directions,
thus allowing detection of link/node failures in both directions.</t>
      </section>
    </section>
    <section anchor="protocol-extensions">
      <name>Protocol Extensions</name>
      <section anchor="path-attrib-object">
        <name>PATH-ATTRIB Object</name>
        <t>We define the PATH-ATTRIB object that is used to carry per-path
information and to act as a separator between several ERO/RRO objects
in the &lt;intended-path&gt;/&lt;actual-path&gt; RBNF element.
The PATH-ATTRIB object always precedes the ERO/RRO that it applies to.  If
multiple ERO/RRO objects are present, then each ERO/RRO object MUST be
preceded by an PATH-ATTRIB object that describes it.</t>
        <t>The PATH-ATTRIB Object-Class value is 45.</t>
        <t>The PATH-ATTRIB Object-Type value is 1.</t>
        <figure anchor="fig-path-attrib">
          <name>PATH-ATTRIB object format</name>
          <artwork><![CDATA[
   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                         Flags                         |R|  O  |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                        Path ID                                |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ~                     Optional TLVs                             ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>Flags (32 bits):</t>
        <ul spacing="normal">
          <li>
            <t>O (Operational - 3 bits): operational state of the path, same 
values as the identically named field in the LSP object <xref target="RFC8231"/>.</t>
          </li>
          <li>
            <t>R (Reverse - 1 bit): Indicates this path is reverse, i.e., it
originates on the LSP destination and terminates on the
LSP source (usually the PCC headend itself).
Paths with this flag set serve only informational
purpose to the PCC.</t>
          </li>
          <li>
            <t>Unassigned bits MUST be set to '0' on transmission and MUST be
ignored on receipt.</t>
          </li>
        </ul>
        <t>Path ID (32 bits): 4-octet identifier that identifies a path (encoded
in the ERO/RRO) within the set of multiple paths under the PCEP LSP.
See <xref target="PATH-ID"/> for details.</t>
      </section>
      <section anchor="METRIC">
        <name>METRIC Object</name>
        <t>The PCEP METRIC object can continue to be used at the LSP level.
The metric value encoded into the LSP level METRIC object SHOULD be
the maximum value of all the per PATH metrics. Per-path metrics are
outside the scope of this document and would require further extensions.</t>
      </section>
      <section anchor="WEIGHT-TLV">
        <name>MULTIPATH-WEIGHT TLV</name>
        <t>New MULTIPATH-WEIGHT TLV is optional in the PATH-ATTRIB object.</t>
        <figure anchor="fig-multipath-weight">
          <name>MULTIPATH-WEIGHT TLV format</name>
          <artwork><![CDATA[
   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |             Type              |             Length            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                             Weight                            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>Type (16 bits): 61 for "MULTIPATH-WEIGHT" TLV.</t>
        <t>Length (16 bits): 4.</t>
        <t>Weight (32 bits): weight of this path within the multipath, if W-ECMP
is desired. The fraction of flows a specific ERO/RRO carries is derived
from the ratio of its weight to the sum of the weights of all other paths.</t>
        <t>When the MULTIPATH-WEIGHT TLV is absent from the PATH-ATTRIB object,
or the PATH-ATTRIB object is absent from the
&lt;intended-path&gt;/&lt;actual-path&gt;, then the Weight of the corresponding
path is taken to be "1".</t>
      </section>
      <section anchor="BACKUP-TLV">
        <name>MULTIPATH-BACKUP TLV</name>
        <t>New MULTIPATH-BACKUP TLV is optional in the PATH-ATTRIB object.</t>
        <t>This TLV is used to specify protecting standby path(s),
for each ECMP path within a PCEP LSP.
This is similar to path protection, but works at the ECMP path level
instead of at the PCEP LSP level.</t>
        <t>This functionality is not part of the SR Policy Architecture <xref target="RFC9256"/>,
but is something optional that may be implemented for certain 
specialized use cases.
One such use case is the P2MP SR Policy <xref target="I-D.draft-ietf-pce-sr-p2mp-policy"/>.</t>
        <figure anchor="fig-multipath-backup">
          <name>MULTIPATH-BACKUP TLV format</name>
          <artwork><![CDATA[
   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |             Type              |             Length            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |       Backup Path Count       |             Flags           |B|
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                         Backup Path ID 1                      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                         Backup Path ID 2                      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                              ...                              |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                         Backup Path ID n                      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
        </figure>
        <t>Type (16 bits): 62 for "MULTIPATH-BACKUP" TLV</t>
        <t>Length (16 bits): 4 + (N * 4) (where N is the Backup Path Count)</t>
        <t>Backup Path Count (16 bits): Number of backup path(s).</t>
        <t>Flags (16 bits):</t>
        <ul spacing="normal">
          <li>
            <t>B: If set, indicates a pure backup path. This is a path that only
carries rerouted traffic after the protected path fails. If this flag
is not set, or if the MULTIPATH-BACKUP TLV is absent,
then the path is assumed to be primary that
carries normal traffic.</t>
          </li>
          <li>
            <t>Unassigned bits MUST be set to '0' on transmission and MUST be
ignored on receipt.</t>
          </li>
        </ul>
        <t>Backup Path ID(s): a series of 4-octet identifier(s) that identify the
backup path(s) in the set that protect this primary path.</t>
      </section>
      <section anchor="OPPDIR-PATH-TLV">
        <name>MULTIPATH-OPPDIR-PATH TLV</name>
        <t>New MULTIPATH-OPPDIR-PATH TLV is optional in the PATH-ATTRIB object.
Multiple instances of the TLV are allowed in the same PATH-ATTRIB object.
This TLV encodes a many-to-many mapping between forward and reverse
paths.</t>
        <t>Many-to-many mapping means that a single forward path MAY map
to multiple reverse paths and conversely that a single reverse
path MAY map to multiple forward paths.
Many-to-many mapping can happen for an SR Policy,
when a Segment List contains Node Segment(s)
which traverse parallel links at the midpoint.
The reverse of this Segment List may not be able to be expressed as a single
Reverse Segment List, but requires multiple Reverse Segment Lists
to cover all the parallel links at the midpoint.</t>
        <figure anchor="fig-multipath-oppdir">
          <name>MULTIPATH-OPPDIR-PATH TLV format</name>
          <artwork><![CDATA[
   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |             Type              |             Length            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |           Reserved            |             Flags         |L|N|
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                 Opposite Direction Path ID                    |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
        </figure>
        <t>Type (16 bits): 63 for "MULTIPATH-OPPDIR-PATH" TLV</t>
        <t>Length (16 bits): 16.</t>
        <t>Reserved: This field MUST be set to zero on transmission and MUST be
ignored on receipt.</t>
        <t>Flags (16 bits):</t>
        <ul spacing="normal">
          <li>
            <t>N (Node co-routed): If set, indicates this path is
node co-routed with
its opposite direction path, specified in this TLV.
Two opposite direction paths are node co-routed if they
traverse the same nodes,
but MAY traverse different links.</t>
          </li>
          <li>
            <t>L (Link co-routed): If set, indicates this path is
link co-routed with
its opposite directions path, specified in this TLV.
Two opposite direction paths are link co-routed if they
traverse the same links (but in opposite directions).</t>
          </li>
          <li>
            <t>Unassigned bits MUST be set to '0' on transmission and MUST be
ignored on receipt.</t>
          </li>
        </ul>
        <t>Opposite Direction Path ID (32 bits): Identifies a path that
goes in the opposite direction to this path.
If no such path exists, then this field MUST be set to 0,
a value reserved to indicate the absence of a Path ID.</t>
        <t>Multiple instances of this TLV
present in the same PATH-ATTRIB object indicate that there are multiple
opposite-direction paths corresponding to the given path. This allows for
many-to-many relationship among the paths of two opposite direction LSPs.</t>
        <t>Whenever path A references another path B as being the
opposite-direction path, then path B MUST also reference path A as its
own opposite-direction path.
Furthermore, their values of the R-flag (Reverse) in the PATH-ATTRIB
object MUST have opposite values. If a PCEP speaker receives an
opposite-direction path mapping that is asymmetric or where the
R-flags are inconsistent, it MUST treat this as an error. The PCEP
speaker MUST send a PCError message with Error-Type = 19
("Invalid Operation") and Error-Value = TBD3 ("Invalid
opposite-direction path mapping").</t>
        <t>See <xref target="OPPDIREX"/> for an example of usage.</t>
      </section>
      <section anchor="CCP">
        <name>Composite Candidate Path</name>
        <t>SR Policy Architecture <xref target="RFC9256"/> defines the concept of a
Composite Candidate Path. 
A regular SR Policy Candidate Path outputs traffic to a set of Segment Lists, 
while an SR Policy Composite Candidate Path outputs traffic recursively to 
a set of SR Policies on the same headend.
In PCEP, the Composite Candidate Path still consists of PATH-ATTRIB objects,
but ERO is replaced by Color of the recursively used SR Policy.</t>
        <t>To signal the Composite Candidate Path, we make use of the COLOR TLV, defined in
<xref target="I-D.draft-ietf-pce-pcep-color"/>. For a Composite Candidate Path, the COLOR TLV
is included in the PATH-ATTRIB Object, thus allowing each Composite Candidate Path
to do ECMP/W-ECMP among SR Policies identified by its constituent Colors.
Only one COLOR TLV MUST be included into the PATH-ATTRIB object. If multiple
COLOR TLVs are contained in the PATH-ATTRIB object, only the first one MUST be
processed and the others MUST be ignored.</t>
        <t>An ERO object MUST be included as per the existing RBNF, 
this ERO MUST contain no sub-objects. This empty ERO serves as a placeholder
to maintain compatibility with existing implementations based on the RBNF defined in <xref target="RFC8231"/>.
If the head-end receives a non-empty ERO for a Composite Candidate Path,
it MUST send a PCError message with Error-Type = 19 ("Invalid Operation")
and Error-Value = 21 ("Non-empty path").</t>
        <t>See <xref target="CCPEX"/> for an example of the encoding.</t>
        <section anchor="PFP">
          <name>Per-Flow Candidate Path</name>
          <t>Per-Flow Candidate Path builds on top of the concept of the Composite Candidate Path.
Each Path in a Per-Flow Candidate Path is assigned a 3-bit forward class value, 
which allows Quality of Service (QoS) classified traffic to be steered depending on the forward class.</t>
          <t>New MULTIPATH-FORWARD-CLASS TLV is optional in the PATH-ATTRIB object.</t>
          <figure anchor="fig-multipath-forward-class">
            <name>MULTIPATH-FORWARD-CLASS TLV format</name>
            <artwork><![CDATA[
   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |             Type              |             Length            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                          Reserved                       | FC  |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <t>Type (16 bits): TBD1 for "MULTIPATH-FORWARD-CLASS" TLV.</t>
          <t>Length (16 bits): 4.</t>
          <t>Reserved: This field MUST be set to zero on transmission and MUST be
ignored on receipt.</t>
          <t>FC (3 bits): Forward class value that is given by the QoS classifier to
traffic entering the given Candidate Path. Different classes of traffic
that enter the given Candidate Path can be differentially steered into
different Colors.</t>
        </section>
      </section>
    </section>
    <section anchor="OP">
      <name>Operation</name>
      <section anchor="capability-negotiation">
        <name>Capability Negotiation</name>
        <section anchor="multipath-capability-tlv">
          <name>Multipath Capability TLV</name>
          <t>New MULTIPATH-CAP TLV is defined. 
This TLV MAY be present in the OPEN object during PCEP session establishment.</t>
          <figure anchor="fig-multipath-cap">
            <name>MULTIPATH-CAP TLV format</name>
            <artwork><![CDATA[
   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |             Type              |             Length            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     Number of Multipaths      |            Flags    |C|F|O|B|W|
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <t>Type (16 bits): 60 for "MULTIPATH-CAP" TLV.</t>
          <t>Length (16 bits): 4.</t>
          <t>Number of Multipaths (16 bits): When sent from a PCC, it indicates how many multipaths the PCC
can install in forwarding. 
From a PCE, it indicates how many multipaths the PCE can compute.
The value 255 indicates an unlimited number.
The value 0 is reserved.</t>
          <t>Flags (16 bits):</t>
          <ul spacing="normal">
            <li>
              <t>W-flag: whether MULTIPATH-WEIGHT TLV is supported.</t>
            </li>
            <li>
              <t>B-flag: whether MULTIPATH-BACKUP TLV is supported.</t>
            </li>
            <li>
              <t>O-flag: whether MULTIPATH-OPPDIR-PATH TLV is supported and requested. 
If this flag is set, the PCE SHOULD tell the PCC the reverse path information, if it is able to.</t>
            </li>
            <li>
              <t>F-flag: whether MULTIPATH-FORWARD-CLASS TLV is supported.</t>
            </li>
            <li>
              <t>C-flag: whether Composite Candidate Path (<xref target="CCP"/>) is supported.</t>
            </li>
            <li>
              <t>Unassigned bits MUST be set to '0' on transmission and MUST be ignored on receipt.</t>
            </li>
          </ul>
          <t>Note that F-flag and C-flag can be set independently,
i.e., F-flag can be set, but C-flag not set, etc.</t>
          <t>When PCE computes the LSP path, it MUST NOT return more forward 
multipaths than the corresponding value of "Number of Multipaths"
from the MULTIPATH-CAP TLV.  If this TLV is absent (from both OPEN
and LSP objects), then the "Number of Multipaths" is assumed to be 1.</t>
          <t>From the PCC, the MULTIPATH-CAP TLV MAY also be present in the LSP object for each individual LSP, to specify per-LSP values.
The PCC MUST NOT include this TLV in the LSP object if the TLV was not
present in the OPEN objects of both PCEP peers.
TLV values in the LSP object override the session default values 
in the OPEN object. If a PCEP speaker receives a PATH-ATTRIB object but the multipath
capability was not successfully negotiated during session
establishment, it MUST treat this as an error. The PCEP speaker
MUST send a PCError message with Error-Type = 10 ("Reception of an
invalid object") and Error-Value = TBD2 ("Unexpected PATH-ATTRIB
object").</t>
          <t>For example, the PCC includes this TLV in the OPEN object at session establishment,
setting "Number of Multipaths" to 4 and "O-flag" to 0.
The PCC also includes this TLV in the LSP object for a particular LSP,
setting "Number of Multipaths" to 16 and "O-flag" to 1.
This indicates that the PCC only wants to receive the reverse path information for that
particular LSP and that this LSP can have up to 16 multipaths,
while other LSPs can only have up to 4 multipaths.</t>
        </section>
      </section>
      <section anchor="PATH-ID">
        <name>Path ID</name>
        <t>The Path ID uniquely identifies a Path within the context of an LSP.
Note that when the LSP is an SR Policy Candidate Path, the 
Paths within that LSP are the Segment Lists.</t>
        <t>Value 0 indicates an unallocated Path ID.
The value of 0 MAY be used when this Path is not referenced 
and the allocation of a Path ID is not necessary.</t>
        <t>Path IDs are allocated by the PCEP peer that owns the LSP.
If the LSP is delegated to the PCE, then the PCE allocates the Path IDs
and sends them in the PCReply/PCUpd/PCInitiate messages.
If the LSP is locally computed on the PCC, then the PCC allocates the
Path IDs and sends them in the PCReq/PCRpt messages.</t>
        <t>If a PCEP speaker detects that there are two Paths with the same Path ID,
then the PCEP speaker MUST send PCError message with
Error-Type = 1 ("Reception of an invalid object") and
Error-Value = 38 ("Conflicting Path ID").</t>
      </section>
      <section anchor="signaling-multiple-paths-for-loadbalancing">
        <name>Signaling Multiple Paths for Loadbalancing</name>
        <t>The PATH-ATTRIB object can be used to signal multiple path(s) and indicate
(un)equal loadbalancing amongst the set of multipaths. In this case, the
PATH-ATTRIB is populated for each ERO as follows:</t>
        <ol spacing="normal" type="1"><li>
            <t>The PCE MAY assign a unique Path ID to each ERO path and populate
it inside the PATH-ATTRIB object. The Path ID is unique within the
context of a PLSP (when non-zero).</t>
          </li>
          <li>
            <t>The MULTIPATH-WEIGHT TLV MAY be carried inside the PATH-ATTRIB object. A
weight is populated to reflect the relative loadshare that is to be
carried by the path. If the MULTIPATH-WEIGHT is not carried inside a
PATH-ATTRIB object, the default weight 1 MUST be assumed when computing
the loadshare.</t>
          </li>
          <li>
            <t>The fraction of flows carried by a specific primary path is derived
from the ratio of its weight to the sum of all other multipath weights.</t>
          </li>
        </ol>
      </section>
      <section anchor="signaling-multiple-paths-for-protection">
        <name>Signaling Multiple Paths for Protection</name>
        <t>The PATH-ATTRIB object can be used to describe a set of backup path(s) protecting
a primary path within a PCEP LSP. In this case, the PATH-ATTRIB is populated for each ERO as
follows:</t>
        <ol spacing="normal" type="1"><li>
            <t>The PCE assigns a unique Path ID to each ERO path and populates
it inside the PATH-ATTRIB object. The Path ID is unique within the
context of a PLSP.</t>
          </li>
          <li>
            <t>The MULTIPATH-BACKUP TLV MAY be added inside the PATH-ATTRIB object for each
ERO that is protected. The backup path ID(s) are populated in the
MULTIPATH-BACKUP TLV to reflect the set of backup paths protecting the
primary path. The Length field and Backup Path Count in the MULTIPATH-BACKUP
are updated according to the number of backup path ID(s) included.</t>
          </li>
          <li>
            <t>The MULTIPATH-BACKUP TLV MAY be added inside the PATH-ATTRIB object for each
ERO that is unprotected. In this case, MULTIPATH-BACKUP does not carry
any backup path IDs in the TLV. If the path acts as a pure backup i.e.,
the path only carries rerouted traffic after the protected path(s) fail then
the B flag MUST be set.</t>
          </li>
        </ol>
        <t>Primary paths which do not include the MULTIPATH-BACKUP TLV are assumed
to be protected by all the backup paths. I.e., omitting the TLV is equivalent to
including the TLV with all the backup path IDs filled in.</t>
        <t>Note that a given PCC may not support certain backup combinations,
such as a backup path that is itself protected by another backup path, etc.
If a PCC does not support a requested backup scenario,
the PCC MUST send a PCError message with
Error-Type = 19 ("Invalid Operation") and
Error-Value = 20 ("Not supported path backup").</t>
      </section>
    </section>
    <section anchor="RBNF">
      <name>PCEP Message Extensions</name>
      <t>The RBNF of PCRpt, PCUpd and PCInitiate messages currently use a combination of &lt;intended-path&gt; and/or &lt;actual-path&gt;. PCReq and PCRep messages, as defined in <xref target="RFC5440"/> and extended by <xref target="RFC8231"/>, directly include ERO and RRO objects within their respective message structures rather than encapsulating them within &lt;intended-path&gt; or &lt;actual-path&gt; constructs. As specified in Section 6.1 of <xref target="RFC8231"/>, within the context of messages that utilize these constructs, &lt;intended-path&gt; is represented by the ERO object and &lt;actual-path&gt; is represented by the RRO object:</t>
      <artwork><![CDATA[
   <intended-path> ::= <ERO>

   <actual-path> ::= <RRO>
]]></artwork>
      <t>This document updates <xref target="RFC8231"/> to allow multiple ERO/RRO objects to be
present in the &lt;intended-path&gt;/&lt;actual-path&gt;:</t>
      <artwork><![CDATA[
   <intended-path> ::= (<ERO>|
                       (<PATH-ATTRIB><ERO>)
                       [<intended-path>])
              

   <actual-path> ::= (<RRO>|
                      (<PATH-ATTRIB><RRO>)
                      [<actual-path>])
]]></artwork>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <section anchor="sr-policy-candidate-path-with-multiple-segment-lists">
        <name>SR Policy Candidate Path with Multiple Segment Lists</name>
        <t>Consider the following sample SR Policy, taken from<br/>
          <xref target="RFC9256"/>.</t>
        <artwork><![CDATA[
SR policy POL1 <headend, color, endpoint>
    Candidate Path CP1 <protocol-origin = 20, originator =
                        100:1.1.1.1, discriminator = 1>
        Preference 200
        Weight W1, SID-List1 <SID11...SID1i>
        Weight W2, SID-List2 <SID21...SID2j>
    Candidate Path CP2 <protocol-origin = 20, originator =
                        100:2.2.2.2, discriminator = 2>
        Preference 100
        Weight W3, SID-List3 <SID31...SID3i>
        Weight W4, SID-List4 <SID41...SID4j>
]]></artwork>
        <t>As specified in <xref target="I-D.ietf-pce-segment-routing-policy-cp"/>, CP1 and CP2 
are signaled as separate state-report elements and each has 
a unique PLSP-ID, assigned by the PCC. 
Let us assign PLSP-ID 100 to CP1 and PLSP-ID 200 to CP2.</t>
        <t>The state-report for CP1 can be encoded as:</t>
        <artwork><![CDATA[
<state-report> =
    <LSP PLSP_ID=100>
    <ASSOCIATION>
    <END-POINT>
    <PATH-ATTRIB Path_ID=1 <WEIGHT-TLV Weight=W1>>
    <ERO SID-List1>
    <PATH-ATTRIB Path_ID=2 <WEIGHT-TLV Weight=W2>>
    <ERO SID-List2>
]]></artwork>
        <t>The state-report for CP2 can be encoded as:</t>
        <artwork><![CDATA[
<state-report> =
    <LSP PLSP_ID=200>
    <ASSOCIATION>
    <END-POINT>
    <PATH-ATTRIB Path_ID=1 <WEIGHT-TLV Weight=W3>>
    <ERO SID-List3>
    <PATH-ATTRIB Path_ID=2 <WEIGHT-TLV Weight=W4>>
    <ERO SID-List4>
]]></artwork>
        <t>The above sample state-report elements only 
specify the minimum mandatory objects, 
of course other objects like SRP, LSPA, METRIC, etc., are allowed to be 
inserted.</t>
        <t>Note that the syntax</t>
        <artwork><![CDATA[
<PATH-ATTRIB Path_ID=1 <WEIGHT-TLV Weight=W1>>
]]></artwork>
        <t>means that this is PATH-ATTRIB object 
with Path ID field set to "1" and 
with a MULTIPATH-WEIGHT TLV carrying weight of "W1".</t>
      </section>
      <section anchor="two-primary-paths-protected-by-one-backup-path">
        <name>Two Primary Paths Protected by One Backup Path</name>
        <t>Suppose there are 3 paths: A, B, C.
Where A and B are primary and C is to be used only when A or B fail.
Suppose the Path IDs for A, B, C are respectively 1, 2, 3.
This would be encoded in a state-report as:</t>
        <artwork><![CDATA[
<state-report> =
    <LSP>
    <ASSOCIATION>
    <END-POINT>
    <PATH-ATTRIB Path_ID=1 <BACKUP-TLV B=0, Backup_Paths=[3]>>
    <ERO A>
    <PATH-ATTRIB Path_ID=2 <BACKUP-TLV B=0, Backup_Paths=[3]>>
    <ERO B>
    <PATH-ATTRIB Path_ID=3 <BACKUP-TLV B=1, Backup_Paths=[]>>
    <ERO C>
]]></artwork>
        <t>Note that the syntax</t>
        <artwork><![CDATA[
<PATH-ATTRIB Path_ID=1 <BACKUP-TLV B=0, Backup_Paths=[3]>>
]]></artwork>
        <t>means that this is PATH-ATTRIB object 
with Path ID field set to "1" and 
with a MULTIPATH-BACKUP TLV that has B-flag cleared and contains
a single backup path with Backup Path ID of 3.</t>
      </section>
      <section anchor="CCPEX">
        <name>Composite Candidate Path</name>
        <t>Consider the following Composite Candidate Path, taken from<br/>
          <xref target="RFC9256"/>.</t>
        <artwork><![CDATA[
SR policy POL100 <headend = H1, color = 100, endpoint = E1>
    Candidate Path CP1 <protocol-origin = 20, originator =
                        100:1.1.1.1, discriminator = 1>
        Preference 200
        Weight W1, SR policy <color = 1>
        Weight W2, SR policy <color = 2>
]]></artwork>
        <t>This is signaled in PCEP as:</t>
        <artwork><![CDATA[
    <LSP PLSP_ID=100>
        <ASSOCIATION>
        <END-POINT>
        <PATH-ATTRIB Path_ID=1
            <WEIGHT-TLV Weight=W1>
            <COLOR-TLV Color=1>>
        <ERO (empty)>
        <PATH-ATTRIB Path_ID=2
            <WEIGHT-TLV Weight=W2>
            <COLOR-TLV Color=2>>
        <ERO (empty)>
]]></artwork>
      </section>
      <section anchor="OPPDIREX">
        <name>Opposite Direction Tunnels</name>
        <t>Consider the two opposite-direction SR Policies between
endpoints H1 and E1.</t>
        <artwork><![CDATA[
SR policy POL1 <headend = H1, color, endpoint = E1>
    Candidate Path CP1
        Preference 200
        Bidirectional Association = A1
        SID-List = <H1,M1,M2,E1>
        SID-List = <H1,M3,M4,E1>
    Candidate Path CP2
        Preference 100
        Bidirectional Association = A2
        SID-List = <H1,M5,M6,E1>
        SID-List = <H1,M7,M8,E1>

SR policy POL2 <headend = E1, color, endpoint = H1>
    Candidate Path CP1
        Preference 200
        Bidirectional Association = A1
        SID-List = <E1,M2,M1,H1>
        SID-List = <E1,M4,M3,H1>
    Candidate Path CP2
        Preference 100
        Bidirectional Association = A2
        SID-List = <E1,M6,M5,H1>
]]></artwork>
        <t>The state-report for POL1, CP1 can be encoded as:</t>
        <artwork><![CDATA[
<state-report> =
    <LSP PLSP_ID=100>
    <BIDIRECTIONAL ASSOCIATION = A1>
    <PATH-ATTRIB PathID=1 R-flag=0
        <OPPDIR-PATH-TLV OppositePathID=3>>
    <ERO <H1,M1,M2,E1>>
    <PATH-ATTRIB PathID=2 R-flag=0
        <OPPDIR-PATH-TLV OppositePathID=4>>
    <ERO <H1,M3,M4,E1>>
    <PATH-ATTRIB PathID=3 R-flag=1
        <OPPDIR-PATH-TLV OppositePathID=1>>
    <ERO <E1,M2,M1,H1>>
    <PATH-ATTRIB PathID=4 R-flag=1
        <OPPDIR-PATH-TLV OppositePathID=2>>
    <ERO <E1,M4,M3,H1>>
]]></artwork>
        <t>The state-report for POL1, CP2 can be encoded as:</t>
        <artwork><![CDATA[
<state-report> =
    <LSP PLSP_ID=200>
    <BIDIRECTIONAL ASSOCIATION = A2>
    <PATH-ATTRIB PathID=1 R-flag=0
        <OPPDIR-PATH-TLV OppositePathID=3>>
    <ERO <H1,M5,N6,E1>>
    <PATH-ATTRIB PathID=2 R-flag=0
        <OPPDIR-PATH-TLV OppositePathID=0>>
    <ERO <H1,M7,M8,E1>>
    <PATH-ATTRIB PathID=3 R-flag=1
        <OPPDIR-PATH-TLV OppositePathID=1>>
    <ERO <E1,M6,M5,H1>>
]]></artwork>
        <t>The state-report for POL2, CP1 can be encoded as:</t>
        <artwork><![CDATA[
<state-report> =
    <LSP PLSP_ID=100>
    <BIDIRECTIONAL ASSOCIATION = A1>
    <PATH-ATTRIB PathID=1 R-flag=0
        <OPPDIR-PATH-TLV OppositePathID=3>>
    <ERO <E1,M2,M1,H1>>
    <PATH-ATTRIB PathID=2 R-flag=0
        <OPPDIR-PATH-TLV OppositePathID=4>>
    <ERO <E1,M4,M3,H1>>
    <PATH-ATTRIB PathID=3 R-flag=1
        <OPPDIR-PATH-TLV OppositePathID=1>>
    <ERO <H1,M1,M2,E1>>
    <PATH-ATTRIB PathID=4 R-flag=1
        <OPPDIR-PATH-TLV OppositePathID=2>>
    <ERO <H1,M3,M4,E1>>
]]></artwork>
        <t>The state-report for POL2, CP2 can be encoded as:</t>
        <artwork><![CDATA[
<state-report> =
    <LSP PLSP_ID=200>
    <BIDIRECTIONAL ASSOCIATION = A2>
    <PATH-ATTRIB PathID=1 R-flag=0
        <OPPDIR-PATH-TLV OppositePathID=3>>
    <ERO <E1,M6,M5,H1>>
    <PATH-ATTRIB PathID=2 R-flag=1
        <OPPDIR-PATH-TLV OppositePathID=0>>
    <ERO <H1,M7,M8,E1>>
    <PATH-ATTRIB PathID=3 R-flag=1
        <OPPDIR-PATH-TLV OppositePathID=1>>
    <ERO <H1,M5,N6,E1>>
]]></artwork>
      </section>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>Note to the RFC Editor - remove this section before publication, as
well as remove the reference to <xref target="RFC7942"/>.</t>
      <t>This section records the status of known implementations of the
protocol defined by this specification at the time of posting of this
Internet-Draft, and is based on a proposal described in <xref target="RFC7942"/>.
The description of implementations in this section
is intended to assist the IETF in its decision processes in progressing
drafts to RFCs. Please note that the listing of any individual
implementation here does not imply endorsement by the IETF. Furthermore,
no effort has been spent to verify the information presented here that
was supplied by IETF contributors. This is not intended as, and must not
be construed to be, a catalog of available implementations or their
features. Readers are advised to note that other implementations may
exist.</t>
      <t>According to <xref target="RFC7942"/>, "this will allow reviewers and
working groups to assign due consideration to documents that have the
benefit of running code, which may serve as evidence of valuable
experimentation and feedback that have made the implemented protocols
more mature. It is up to the individual working groups to use this
information as they see fit".</t>
      <section anchor="cisco-systems">
        <name>Cisco Systems</name>
        <artwork><![CDATA[
Organization: Cisco Systems
Implementation: IOS-XR PCC and PCE
Description: Circuit-Style SR Policies
Maturity Level: Supported feature
Coverage: Multiple Segment Lists and reverse paths in SR Policy
Contact: mkoldych@cisco.com
]]></artwork>
      </section>
      <section anchor="ciena-corp">
        <name>Ciena Corp</name>
        <artwork><![CDATA[
Organization: Ciena Corp
Implementation: Head-end and controller
Maturity Level: Proof of concept
Coverage: Full
Contact: byadav@ciena.com
]]></artwork>
      </section>
      <section anchor="huawei-technologies">
        <name>Huawei Technologies</name>
        <artwork><![CDATA[
Organization: Huawei Technologies Co.,Ltd.
Implementation: Huawei's Router and Controller
Maturity Level: Proof of concept
Coverage: Partial
Contact: tanren@huawei.com 
]]></artwork>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="pcep-object">
        <name>PCEP Object</name>
        <t>IANA is requested to confirm the following allocation in the "PCEP Objects"
   within the "Path Computation Element Protocol (PCEP) Numbers" registry
   group:</t>
        <artwork><![CDATA[
 +--------------+-------------+-------------------+-----------------+
 | Object-Class | Name        | Object-Type       | Reference       |
 | Value        |             | Value             |                 |
 +--------------+-------------+-------------------+-----------------+
 | 45           | PATH-ATTRIB | 1                 | This document   |
 +--------------+-------------+-------------------+-----------------+
]]></artwork>
      </section>
      <section anchor="pcep-tlv">
        <name>PCEP TLV</name>
        <t>IANA is requested to confirm the following allocations within the
   "PCEP TLV Type Indicators" within the "Path Computation Element Protocol
   (PCEP) Numbers" registry group:</t>
        <artwork><![CDATA[
 +------------+-----------------------------------+-----------------+
 | TLV Type   | TLV Name                          | Reference       |
 | Value      |                                   |                 |
 +------------+-----------------------------------+-----------------+
 | 60         | MULTIPATH-CAP                     | This document   |
 +------------+-----------------------------------+-----------------+
 | 61         | MULTIPATH-WEIGHT                  | This document   |
 +------------+-----------------------------------+-----------------+
 | 62         | MULTIPATH-BACKUP                  | This document   |
 +------------+-----------------------------------+-----------------+
 | 63         | MULTIPATH-OPPDIR-PATH             | This document   |
 +------------+-----------------------------------+-----------------+
]]></artwork>
        <t>IANA is requested to make new allocations within the
   "PCEP TLV Type Indicators" within the "Path Computation Element Protocol
   (PCEP) Numbers" registry group:</t>
        <artwork><![CDATA[
 +------------+-----------------------------------+-----------------+
 | TLV Type   | TLV Name                          | Reference       |
 | Value      |                                   |                 |
 +------------+-----------------------------------+-----------------+
 | TBD1       | MULTIPATH-FORWARD-CLASS           | This document   |
 +------------+-----------------------------------+-----------------+
]]></artwork>
      </section>
      <section anchor="pcep-error-object">
        <name>PCEP-Error Object</name>
        <t>IANA is requested to confirm the following allocations within the
   "PCEP-ERROR Object Error Types and Values" within the "Path
   Computation Element Protocol (PCEP) Numbers" registry group:</t>
        <artwork><![CDATA[
 +------------+-----------------------------------+-----------------+
 | Error-Type | Error-Value                       | Reference       |
 +------------+-----------------------------------+-----------------+
 | 10         | 38 - Conflicting Path ID          | This document   |
 +------------+-----------------------------------+-----------------+
 | 19         | 20 - Not supported path backup    | This document   |
 +------------+-----------------------------------+-----------------+
 | 19         | 21 - Non-empty path               | This document   |
 +------------+-----------------------------------+-----------------+
]]></artwork>
        <t>IANA is requested to make new allocations within the
   "PCEP-ERROR Object Error Types and Values" within the "Path
   Computation Element Protocol (PCEP) Numbers" registry group:</t>
        <artwork><![CDATA[
 +------------+-----------------------------------+-----------------+
 | Error-Type | Error-Value                       | Reference       |
 +------------+-----------------------------------+-----------------+
 | 10         | TBD2 - Unexpected PATH-ATTRIB     | This document   |
 |            |        Object                     |                 |
 +------------+-----------------------------------+-----------------+
 | 19         | TBD3 - Invalid opposite-direction | This document   |
 |            |        path mapping               |                 |
 +------------+-----------------------------------+-----------------+
]]></artwork>
      </section>
      <section anchor="flags-in-the-multipath-cap-tlv">
        <name>Flags in the MULTIPATH-CAP TLV</name>
        <t>IANA is requested to create a new sub-registry to manage the Flag
field of the MULTIPATH-CAP TLV, called "Flags in MULTIPATH-CAP
TLV" within the "Path Computation Element Protocol (PCEP) Numbers"
registry group.
New values are to be assigned by "IETF review" <xref target="RFC8126"/></t>
        <artwork><![CDATA[
 +------------+-----------------------------------+-----------------+
 | Bit        | Description                       | Reference       |
 +------------+-----------------------------------+-----------------+
 | 0-10       | Unassigned                        | This document   |
 +------------+-----------------------------------+-----------------+
 | 11         | C-flag: support for Composite     | This document   |
 |            |  Candidate Path processing        |                 |
 +------------+-----------------------------------+-----------------+
 | 12         | F-flag: support for processing    | This document   |
 |            | MULTIPATH-FORWARD-CLASS TLV       |                 |
 +------------+-----------------------------------+-----------------+
 | 13         | 0-flag: support for processing    | This document   |
 |            | MULTIPATH-OPPDIR-PATH TLV         |                 |
 +------------+-----------------------------------+-----------------+
 | 14         | B-flag: support for processing    | This document   |
 |            | MULTIPATH-BACKUP TLV              |                 |
 +------------+-----------------------------------+-----------------+
 | 15         | W-flag: support for processing    | This document   |
 |            | MULTIPATH-WEIGHT TLV              |                 |
 +------------+-----------------------------------+-----------------+
]]></artwork>
      </section>
      <section anchor="flags-in-the-path-attribute-object">
        <name>Flags in the PATH-ATTRIBUTE Object</name>
        <t>IANA is requested to create a new sub-registry to manage the Flag
field of the PATH-ATTRIBUTE object,
called "Flags in PATH-ATTRIBUTE Object" within the "Path Computation
Element Protocol (PCEP) Numbers" registry group.
New values are to be assigned by "IETF review" <xref target="RFC8126"/></t>
        <artwork><![CDATA[
 +------------+-----------------------------------+-----------------+
 | Bit        | Description                       | Reference       |
 +------------+-----------------------------------+-----------------+
 | 0-12       | Unassigned                        | This document   |
 +------------+-----------------------------------+-----------------+
 | 13-15      | O-flag: Operational state         | This document   |
 +------------+-----------------------------------+-----------------+
]]></artwork>
      </section>
      <section anchor="flags-in-the-multipath-backup-tlv">
        <name>Flags in the MULTIPATH-BACKUP TLV</name>
        <t>IANA is requested to create a new sub-registry to manage the Flag
field of the MULTIPATH-BACKUP TLV,
called "Flags in MULTIPATH-BACKUP TLV" within the "Path Computation
Element Protocol (PCEP) Numbers" registry group.
New values are to be assigned by "IETF review" <xref target="RFC8126"/></t>
        <artwork><![CDATA[
 +------------+-----------------------------------+-----------------+
 | Bit        | Description                       | Reference       |
 +------------+-----------------------------------+-----------------+
 | 0-14       | Unassigned                        | This document   |
 +------------+-----------------------------------+-----------------+
 | 15         | B-flag: Pure backup               | This document   |
 +------------+-----------------------------------+-----------------+
]]></artwork>
      </section>
      <section anchor="flags-in-the-multipath-oppdir-path-tlv">
        <name>Flags in the MULTIPATH-OPPDIR-PATH TLV</name>
        <t>IANA is requested to create a new sub-registry to manage the flag
fields of the MULTIPATH-OPPDIR-PATH TLV,
called "Flags in the MULTIPATH-OPPDIR-PATH TLV" within the "Path
Computation Element Protocol (PCEP) Numbers" registry group.
New values are to be assigned by "IETF review" <xref target="RFC8126"/></t>
        <artwork><![CDATA[
 +------------+-----------------------------------+-----------------+
 | Bit        | Description                       | Reference       |
 +------------+-----------------------------------+-----------------+
 | 0-12       | Unassigned                        | This document   |
 +------------+-----------------------------------+-----------------+
 | 14         | L-flag: Link co-routed            | This document   |
 +------------+-----------------------------------+-----------------+
 | 15         | N-flag: Node co-routed            | This document   |
 +------------+-----------------------------------+-----------------+
]]></artwork>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The security considerations described in <xref target="RFC5440"/>, <xref target="RFC8231"/>,
<xref target="RFC8281"/>, <xref target="RFC8664"/>, <xref target="RFC9256"/>,
<xref target="I-D.ietf-pce-segment-routing-policy-cp"/> and
<xref target="I-D.draft-ietf-pce-pcep-color"/> are applicable to this specification.</t>
      <t>As per <xref target="RFC8231"/>, it is RECOMMENDED that these PCEP extensions can only
be activated on authenticated and encrypted sessions across PCEs and PCCs
belonging to the same administrative authority, using Transport Layer
Security (TLS) <xref target="RFC8253"/><xref target="I-D.ietf-pce-pceps-tls13"/> as per the recommendations and best current
practices in <xref target="RFC9325"/>.</t>
    </section>
    <section anchor="manageability-considerations">
      <name>Manageability Considerations</name>
      <t>All manageability requirements and considerations listed in <xref target="RFC5440"/>,
<xref target="RFC8231"/>, <xref target="RFC8664"/>, and <xref target="RFC9256"/> apply to the PCEP protocol
extensions defined in this document. In addition, the requirements and
considerations listed in this section apply.</t>
      <section anchor="control-of-function-and-policy">
        <name>Control of Function and Policy</name>
        <t>A PCEP speaker (PCC or PCE) implementation SHOULD allow an operator to enable
or disable the multipath capabilities advertised in the MULTIPATH-CAP TLV
(see <xref target="OP"/>).</t>
      </section>
      <section anchor="information-and-data-models">
        <name>Information and Data Models</name>
        <t>It is expected that a future version of the PCEP YANG module
<xref target="I-D.ietf-pce-pcep-yang"/> will be extended to include the PCEP extensions
defined in this document.</t>
      </section>
      <section anchor="liveness-detection-and-monitoring">
        <name>Liveness Detection and Monitoring</name>
        <t>The mechanisms defined in this document do not introduce any new liveness
detection or monitoring requirements in addition to those already defined
in <xref target="RFC5440"/> and <xref target="RFC8231"/>.</t>
      </section>
      <section anchor="verify-correct-operations">
        <name>Verify Correct Operations</name>
        <t>In addition to the verification requirements in <xref target="RFC5440"/> and <xref target="RFC8231"/>,
the following considerations apply:</t>
        <ul spacing="normal">
          <li>
            <t>An implementation SHOULD allow an operator to view the capabilities
advertised in the MULTIPATH-CAP TLV by each PCEP peer for a session
and for individual LSPs.</t>
          </li>
          <li>
            <t>An implementation SHOULD allow an operator to view the PATH-ATTRIB
object and all its associated TLVs for each path within an LSP. This
includes the Path ID, weight, backup information, and
opposite-direction path associations.</t>
          </li>
          <li>
            <t>An implementation SHOULD provide a mechanism to log and display
the new PCEP errors defined in this document</t>
          </li>
        </ul>
      </section>
      <section anchor="requirements-on-other-protocols">
        <name>Requirements On Other Protocols</name>
        <t>The PCEP extensions defined in this document do not impose any new
requirements on other protocols.</t>
      </section>
      <section anchor="impact-on-network-operations">
        <name>Impact On Network Operations</name>
        <t>The mechanisms in this document allow for more complex LSP structures
with multiple paths. Network operators should be aware of the potential
increase in PCEP message sizes and the additional state that must be
maintained by PCEP speakers. The "Number of Multipaths" field in the
MULTIPATH-CAP TLV can be used to control the scale of multipath
computations and state.</t>
      </section>
    </section>
    <section anchor="acknowledgement">
      <name>Acknowledgement</name>
      <t>Thanks to Dhruv Dhody for ideas and discussion.
   Thanks to Yuan Yaping for review comments.</t>
    </section>
    <section anchor="contributors">
      <name>Contributors</name>
      <artwork><![CDATA[
   Zafar Ali
   Cisco Systems
   Email: zali@cisco.com

   Andrew Stone
   Nokia
   Email: andrew.stone@nokia.com

   Chen Ran
   ZTE
   Email: chen.ran@zte.com.cn
]]></artwork>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="RFC9256">
          <front>
            <title>Segment Routing Policy Architecture</title>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
            <author fullname="K. Talaulikar" initials="K." role="editor" surname="Talaulikar"/>
            <author fullname="D. Voyer" initials="D." surname="Voyer"/>
            <author fullname="A. Bogdanov" initials="A." surname="Bogdanov"/>
            <author fullname="P. Mattes" initials="P." surname="Mattes"/>
            <date month="July" year="2022"/>
            <abstract>
              <t>Segment Routing (SR) allows a node to steer a packet flow along any path. Intermediate per-path states are eliminated thanks to source routing. SR Policy is an ordered list of segments (i.e., instructions) that represent a source-routed policy. Packet flows are steered into an SR Policy on a node where it is instantiated called a headend node. The packets steered into an SR Policy carry an ordered list of segments associated with that SR Policy.</t>
              <t>This document updates RFC 8402 as it details the concepts of SR Policy and steering into an SR Policy.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9256"/>
          <seriesInfo name="DOI" value="10.17487/RFC9256"/>
        </reference>
        <reference anchor="I-D.ietf-pce-segment-routing-policy-cp">
          <front>
            <title>Path Computation Element Communication Protocol (PCEP) Extensions for Segment Routing (SR) Policy Candidate Paths</title>
            <author fullname="Mike Koldychev" initials="M." surname="Koldychev">
              <organization>Ciena Corporation</organization>
            </author>
            <author fullname="Siva Sivabalan" initials="S." surname="Sivabalan">
              <organization>Ciena Corporation</organization>
            </author>
            <author fullname="Samuel Sidor" initials="S." surname="Sidor">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Colby Barth" initials="C." surname="Barth">
              <organization>Juniper Networks, Inc.</organization>
            </author>
            <author fullname="Shuping Peng" initials="S." surname="Peng">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Hooman Bidgoli" initials="H." surname="Bidgoli">
              <organization>Nokia</organization>
            </author>
            <date day="4" month="April" year="2025"/>
            <abstract>
              <t>   A Segment Routing (SR) Policy is an ordered list of instructions,
   called "segments" that represent a source-routed policy.  Packet
   flows are steered into an SR Policy on a node where it is
   instantiated.  An SR Policy is made of one or more candidate paths.

   This document specifies the Path Computation Element Communication
   Protocol (PCEP) extension to signal candidate paths of an SR Policy.
   Additionally, this document updates RFC 8231 to allow delegation and
   setup of an SR Label Switched Path (LSP), without using the path
   computation request and reply messages.  This document is applicable
   to both Segment Routing over MPLS (SR-MPLS) and Segment Routing over
   IPv6 (SRv6).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-pce-segment-routing-policy-cp-27"/>
        </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>
        <reference anchor="RFC8231">
          <front>
            <title>Path Computation Element Communication Protocol (PCEP) Extensions for Stateful PCE</title>
            <author fullname="E. Crabbe" initials="E." surname="Crabbe"/>
            <author fullname="I. Minei" initials="I." surname="Minei"/>
            <author fullname="J. Medved" initials="J." surname="Medved"/>
            <author fullname="R. Varga" initials="R." surname="Varga"/>
            <date month="September" year="2017"/>
            <abstract>
              <t>The Path Computation Element Communication Protocol (PCEP) provides mechanisms for Path Computation Elements (PCEs) to perform path computations in response to Path Computation Client (PCC) requests.</t>
              <t>Although PCEP explicitly makes no assumptions regarding the information available to the PCE, it also makes no provisions for PCE control of timing and sequence of path computations within and across PCEP sessions. This document describes a set of extensions to PCEP to enable stateful control of MPLS-TE and GMPLS Label Switched Paths (LSPs) via PCEP.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8231"/>
          <seriesInfo name="DOI" value="10.17487/RFC8231"/>
        </reference>
        <reference anchor="I-D.draft-ietf-pce-pcep-color">
          <front>
            <title>Path Computation Element Protocol (PCEP) Extension for Color</title>
            <author fullname="Balaji Rajagopalan" initials="B." surname="Rajagopalan">
              <organization>Juniper Networks</organization>
            </author>
            <author fullname="Vishnu Pavan Beeram" initials="V. P." surname="Beeram">
              <organization>Juniper Networks</organization>
            </author>
            <author fullname="Shaofu Peng" initials="S." surname="Peng">
              <organization>ZTE Corporation</organization>
            </author>
            <author fullname="Mike Koldychev" initials="M." surname="Koldychev">
              <organization>Ciena Corporation</organization>
            </author>
            <author fullname="Gyan Mishra" initials="G. S." surname="Mishra">
              <organization>Verizon Communications Inc.</organization>
            </author>
            <date day="26" month="February" year="2025"/>
            <abstract>
              <t>   Color is a 32-bit numerical (unsigned integer) attribute used to
   associate a Traffic Engineering (TE) tunnel or policy with an intent
   or objective.  For example, a TE Tunnel constructed to deliver low
   latency services and whose path is optimized for delay can be tagged
   with a color that represents "low latency."  This document specifies
   extensions to the Path Computation Element Protocol (PCEP) to carry
   the color attribute.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-pce-pcep-color-12"/>
        </reference>
        <reference anchor="RFC5440">
          <front>
            <title>Path Computation Element (PCE) Communication Protocol (PCEP)</title>
            <author fullname="JP. Vasseur" initials="JP." role="editor" surname="Vasseur"/>
            <author fullname="JL. Le Roux" initials="JL." role="editor" surname="Le Roux"/>
            <date month="March" year="2009"/>
            <abstract>
              <t>This document specifies the Path Computation Element (PCE) Communication Protocol (PCEP) for communications between a Path Computation Client (PCC) and a PCE, or between two PCEs. Such interactions include path computation requests and path computation replies as well as notifications of specific states related to the use of a PCE in the context of Multiprotocol Label Switching (MPLS) and Generalized MPLS (GMPLS) Traffic Engineering. PCEP is designed to be flexible and extensible so as to easily allow for the addition of further messages and objects, should further requirements be expressed in the future. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5440"/>
          <seriesInfo name="DOI" value="10.17487/RFC5440"/>
        </reference>
        <reference anchor="RFC8281">
          <front>
            <title>Path Computation Element Communication Protocol (PCEP) Extensions for PCE-Initiated LSP Setup in a Stateful PCE Model</title>
            <author fullname="E. Crabbe" initials="E." surname="Crabbe"/>
            <author fullname="I. Minei" initials="I." surname="Minei"/>
            <author fullname="S. Sivabalan" initials="S." surname="Sivabalan"/>
            <author fullname="R. Varga" initials="R." surname="Varga"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>The Path Computation Element Communication Protocol (PCEP) provides mechanisms for Path Computation Elements (PCEs) to perform path computations in response to Path Computation Client (PCC) requests.</t>
              <t>The extensions for stateful PCE provide active control of Multiprotocol Label Switching (MPLS) Traffic Engineering Label Switched Paths (TE LSPs) via PCEP, for a model where the PCC delegates control over one or more locally configured LSPs to the PCE. This document describes the creation and deletion of PCE-initiated LSPs under the stateful PCE model.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8281"/>
          <seriesInfo name="DOI" value="10.17487/RFC8281"/>
        </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="RFC8253">
          <front>
            <title>PCEPS: Usage of TLS to Provide a Secure Transport for the Path Computation Element Communication Protocol (PCEP)</title>
            <author fullname="D. Lopez" initials="D." surname="Lopez"/>
            <author fullname="O. Gonzalez de Dios" initials="O." surname="Gonzalez de Dios"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <author fullname="D. Dhody" initials="D." surname="Dhody"/>
            <date month="October" year="2017"/>
            <abstract>
              <t>The Path Computation Element Communication Protocol (PCEP) defines the mechanisms for the communication between a Path Computation Client (PCC) and a Path Computation Element (PCE), or among PCEs. This document describes PCEPS -- the usage of Transport Layer Security (TLS) to provide a secure transport for PCEP. The additional security mechanisms are provided by the transport protocol supporting PCEP; therefore, they do not affect the flexibility and extensibility of PCEP.</t>
              <t>This document updates RFC 5440 in regards to the PCEP initialization phase procedures.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8253"/>
          <seriesInfo name="DOI" value="10.17487/RFC8253"/>
        </reference>
        <reference anchor="I-D.ietf-pce-pceps-tls13">
          <front>
            <title>Updates for PCEPS: TLS Connection Establishment Restrictions</title>
            <author fullname="Dhruv Dhody" initials="D." surname="Dhody">
              <organization>Huawei</organization>
            </author>
            <author fullname="Sean Turner" initials="S." surname="Turner">
              <organization>sn3rd</organization>
            </author>
            <author fullname="Russ Housley" initials="R." surname="Housley">
              <organization>Vigil Security, LLC</organization>
            </author>
            <date day="9" month="January" year="2024"/>
            <abstract>
              <t>   Section 3.4 of RFC 8253 specifies TLS connection establishment
   restrictions for PCEPS; PCEPS refers to usage of TLS to provide a
   secure transport for PCEP (Path Computation Element Communication
   Protocol).  This document adds restrictions to specify what PCEPS
   implementations do if they support more than one version of the TLS
   protocol and to restrict the use of TLS 1.3's early data.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-pce-pceps-tls13-04"/>
        </reference>
        <reference anchor="RFC9325">
          <front>
            <title>Recommendations for Secure Use of Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <date month="November" year="2022"/>
            <abstract>
              <t>Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) are used to protect data exchanged over a wide range of application protocols and can also form the basis for secure transport protocols. Over the years, the industry has witnessed several serious attacks on TLS and DTLS, including attacks on the most commonly used cipher suites and their modes of operation. This document provides the latest recommendations for ensuring the security of deployed services that use TLS and DTLS. These recommendations are applicable to the majority of use cases.</t>
              <t>RFC 7525, an earlier version of the TLS recommendations, was published when the industry was transitioning to TLS 1.2. Years later, this transition is largely complete, and TLS 1.3 is widely available. This document updates the guidance given the new environment and obsoletes RFC 7525. In addition, this document updates RFCs 5288 and 6066 in view of recent attacks.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="195"/>
          <seriesInfo name="RFC" value="9325"/>
          <seriesInfo name="DOI" value="10.17487/RFC9325"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9059">
          <front>
            <title>Path Computation Element Communication Protocol (PCEP) Extensions for Associated Bidirectional Label Switched Paths (LSPs)</title>
            <author fullname="R. Gandhi" initials="R." role="editor" surname="Gandhi"/>
            <author fullname="C. Barth" initials="C." surname="Barth"/>
            <author fullname="B. Wen" initials="B." surname="Wen"/>
            <date month="June" year="2021"/>
            <abstract>
              <t>This document defines Path Computation Element Communication Protocol (PCEP) extensions for grouping two unidirectional MPLS-TE Label Switched Paths (LSPs), one in each direction in the network, into an associated bidirectional LSP. These PCEP extensions can be applied either using a stateful PCE for both PCE-initiated and PCC-initiated LSPs or using a stateless PCE. The PCEP procedures defined are applicable to the LSPs using RSVP-TE for signaling.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9059"/>
          <seriesInfo name="DOI" value="10.17487/RFC9059"/>
        </reference>
        <reference anchor="I-D.ietf-spring-cs-sr-policy">
          <front>
            <title>Circuit Style Segment Routing Policy</title>
            <author fullname="Christian Schmutzer" initials="C." surname="Schmutzer">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Zafar Ali" initials="Z." surname="Ali">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Praveen Maheshwari" initials="P." surname="Maheshwari">
              <organization>Airtel India</organization>
            </author>
            <author fullname="Reza Rokui" initials="R." surname="Rokui">
              <organization>Ciena</organization>
            </author>
            <author fullname="Andrew Stone" initials="A." surname="Stone">
              <organization>Nokia</organization>
            </author>
            <date day="15" month="September" year="2025"/>
            <abstract>
              <t>   This document describes how Segment Routing (SR) policies can be used
   to satisfy the requirements for bandwidth, end-to-end recovery and
   persistent paths within a SR network.  The association of two co-
   routed unidirectional SR Policies satisfying these requirements is
   called "circuit-style" SR Policy (CS-SR Policy).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-spring-cs-sr-policy-11"/>
        </reference>
        <reference anchor="I-D.draft-ietf-pce-sr-p2mp-policy">
          <front>
            <title>PCEP extensions for P2MP SR Policy</title>
            <author fullname="Hooman Bidgoli" initials="H." surname="Bidgoli">
              <organization>Nokia</organization>
            </author>
            <author fullname="Daniel Voyer" initials="D." surname="Voyer">
              <organization>Bell Canada</organization>
            </author>
            <author fullname="Anuj Budhiraja" initials="A." surname="Budhiraja">
              <organization>Cisco System</organization>
            </author>
            <author fullname="Rishabh Parekh (editor)" initials="R." surname="Parekh">
              <organization>Arrcus</organization>
            </author>
            <author fullname="Siva Sivabalan" initials="S." surname="Sivabalan">
              <organization>Ciena</organization>
            </author>
            <date day="19" month="February" year="2025"/>
            <abstract>
              <t>   Segment Routing (SR) Point-to-Multipoint (P2MP) Policies are a set of
   policies that enable architecture for P2MP service delivery.  This
   document specifies extensions to the Path Computation Element
   Communication Protocol (PCEP) that allow a stateful PCE to compute
   and initiate P2MP paths from a Root to a set of Leaf nodes.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-pce-sr-p2mp-policy-11"/>
        </reference>
        <reference anchor="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="I-D.ietf-pce-pcep-yang">
          <front>
            <title>A YANG Data Model for Path Computation Element Communications Protocol (PCEP)</title>
            <author fullname="Dhruv Dhody" initials="D." surname="Dhody">
              <organization>Huawei</organization>
            </author>
            <author fullname="Vishnu Pavan Beeram" initials="V. P." surname="Beeram">
              <organization>Juniper Networks</organization>
            </author>
            <author fullname="Jonathan Hardwick" initials="J." surname="Hardwick">
         </author>
            <author fullname="Jeff Tantsura" initials="J." surname="Tantsura">
              <organization>Nvidia</organization>
            </author>
            <date day="26" month="January" year="2025"/>
            <abstract>
              <t>   This document defines a YANG data model for the management of the
   Path Computation Element communications Protocol (PCEP) for
   communications between a Path Computation Client (PCC) and a Path
   Computation Element (PCE), or between two PCEs.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-pce-pcep-yang-30"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
XAku8WPu3d8CrNZ7jLzceIw/5EGYV77mbj8vbWMZ5RfZ29fu3tYX/sbWiLCh
wwy/TZs1lnWapfhd2Zktj+Ctar+I4xLIxtfELYhtHwZvgbWlGUA+6B3mWFem
Dj01/oPmryNmHJD/XYs4xWsXgbeOPEhAj3nfKJelQt0+3pZjnwv5wJ0Cc+bb
VdI0i7SXYUTFJZNZlM1r0VPvMoFJd1jxBtMrOJyXRLJiEgCb3+Crf3WPL7Xo
FSwqhB8EpXQ5YjAbPvyqX/n56o7fup59JeRt9bNQt/IY8+/Nz23lQ1D22Zmz
FMwTHIUzo1wb/6f2sqWFGeVTrWjzeWUm32C7bblgfiuryS+fDhbLQUQSeNf+
9xKXrqXdrtgR+bq5+YhQivTyKGrDsboI7g5qa1v/A/fGwSzNLz69NX/up7Z7
KpY/kNo+YkUv1r15qlc922G5j9o+BpZhKyzmEPYzwzJqhcUchn1mWDZaYfGv
on8eWEgiyA4pQDXM8MOxXxj//wLjUyGcJlFVawZ8NqIyaqbPWc4facy0kl1/
7+zs5Mx+0oznwR1lO5h2poUMsfvvMniehgy9jO/byl3qR5Dhp4Jl6GuOjW9k
X7ZcOPwcBISwfOvNM1oHWDrT2z8zLEOCxa8219ijf2tp/YVtnpJtqABCX7YX
QOgmj9sqtObH7FH7ihpPnojgqURuX9qLKC05C49YEbGLLSD8uVZkstqfmSJT
jZtupgqKEO26CSts4OUW5C2s0+kom5guwWsiOB4OLjgDK63flDUz9CTeeodh
VxwklTZYtuSRhlOd70SV7wZUTc1+MjazH73wU5hXKE7KYcMVE138Zjh68eHD
J+bZnSgv99oLirXS9xPz7Hrfce2tX+uoE5anVC++k2SrN9l7ZZT97FLiOmGp
c1stzcMcAXhM97Tyw3e19ltWVIXnISu6qwbW51iR77Ctf+IV1SuQfZ492vTm
2fnEK/IyTKvwP+mKnnvzvP3EK/Lyxj/TiqwXVVFanjHxw8Wedas+teKqzWI/
ldpQXq3Q3K3AxCMNxy8KrB0WUGAjN8+/WoFt9C3v3bpCiyeNb9k/PSytLNMm
lZ7Q1CsnaWGYtmZf+OUz8cumm+dfzS++orKq99SrIPG5YLmHX2p2yUcyzcwx
jW5yTW2qFta5s31LvOIjghVfeKgdln8rneObr4eGh6rfOfvX8POxgaX6kbnP
yc8Sa0hwukI9t4AyMO3LSvqPrueolXU2etUiFML+9s3Qe/fixWb5m/2k+iOu
bFO20v2fw+EsKszxCu03PJuJewO6PI7fYKlWz+BSy2d745Ojo73j3b1dl+Wm
TUE/VRZFseUuMRsMK4tdB6ZMYVBgMZ484tqLdFk8CbPlAn8zhUlBaoRZqjUO
qk0e0FjDSHGaXHqFk6i2YDDFy7ogfbgwGw6f4v70ZEGuygXWWCYf5jBYqky4
zV29ODxfc0t8vvHhQx3fiDndz2M93EDUld+lwZzJOWzF1Ow9gjhR+DFWLugi
FlRNLeScQbOpG6PnlH35TB6RVLeFbOtEth3HRu7bFuabqeX1+hrpYY5hC92J
6vZVKQ2HqXwjC6li6dWzPHWZY8LbVq+WTO5zIRWLCqbTiHNSGUlVqEUn1JUU
V4LD3oKkDCJUd/tFErrUN5OPJbarZSRXqeRrhg/XavmAtrY45/ghaZJ5jemG
KdAfJdnBL9NIM1tceUWHpSs6TMVWp9cqyykLsTMQuqrNN84+fLDlJQ/8xDlY
wm6QB/IIZFwMO865eC7ibeo1zQr6kBmmo5nEVrczP20ffy/n6bQAsEF5Noi2
vwySS9hTymukj/SW6a5+Lasa04rO3aU1HGIBKeBQ0KO5KnfjKE0wY9lVxpyr
8CoAjpx3U0tZVwv2d1qEinJj0QCKzRxi6ubAIk9uiipVRSXNMeXize4gBotq
urSTi7ayR9XPNOHifuRE2TFWKQ/z0v3C7anPojit1uY510G6czauZlUe0taY
gqifPrQq5XY9AftOKkZTiisbeeQqHkCuaI9RvY6yAC5XaLalsynbFD/TXilb
zl9H/d1QNutaE6roOwxUFY7vyQHc9IkyV0SxUpCRaxuTPSC8ytNlwVlTm6Dn
asv5Xw9AmdT1xcKgvKd370JBTl5Tyc6S9HGpmOyMSwKhsoiDJe07kjgzHZ65
dTMIkeSZT1cniTyhROdTl89rKm9X9e69LDen8geG30SFdpHZaA6XM8y8cTBf
BMgTiTxWOWYHV9ijxvONiZkOZsTG9KE5ROJ7qmRclgfjW/aVWrl64KazFARa
4srWXwhu0JYxUnGR5vy1HSSDjNLw7QVtV4os+sWc0WIHy9AuukJCl1LYJ0rY
78Kxs+IrGc0VGDuKlHNMwxwYNxmtVpHUZPmyKQMOm6pU+RVh6YGZes0IKJei
2w7xggZ4eJeKyQXo8wJ24B2la+9eZcU1/D8FKUiMO1WBtrQYFsTVg2qXnwqA
7aeAzhWxC7tmks0crsgqWR+bywDu0vv/BLMgk9txREfcleRueLAHqIy35C9B
HHnZ0oLYaZrBDOd5mtDh+nH6Lgq8LgG9H2h8/12CL13XMVb1OAuoouP/XOx5
nUJ4MwCD77tfAFPQfBAmBOf/Aqfi/5o7rQAA

-->

</rfc>
