<?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.39 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-pce-multipath-29" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.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-29"/>
    <author initials="M." surname="Koldychev" fullname="Mike Koldychev" role="editor">
      <organization>Ciena Corporation</organization>
      <address>
        <email>mkoldych@ciena.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="2026" month="June" day="23"/>
    <area>Routing</area>
    <workgroup>PCE Working Group</workgroup>
    <abstract>
      <?line 33?>

<t>This document defines Path Computation Element Communication Protocol (PCEP)
extensions to signal multipath information, associating multiple forwarding
paths with a single PCEP Label Switched Path (LSP) to allow load-balancing and
redundancy across diverse paths. The extensions are generic and applicable to
both stateless and stateful PCEP, and are designed to be reusable for future
path types. Their primary application is Segment Routing (SR) Policy, where a
Candidate Path can contain multiple Segment Lists: current PCEP extensions for
SR Policy only allow signaling of a single Segment List per Candidate Path.
These extensions enable multipath capabilities such as weighted or equal-cost
load-balancing across paths.</t>
    </abstract>
  </front>
  <middle>
    <?line 46?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Segment Routing Policy for Traffic Engineering
<xref target="RFC9256"/> details the concepts of Segment Routing (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 specifications only allow for
signaling of one Segment List per Candidate Path.  The PCEP extension to
support Segment Routing Policy Candidate Paths
<xref target="RFC9862"/> specifically kept the
signaling of multiple Segment Lists outside its scope.</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 technologies. For SR Policy, support for <xref target="RFC9862"/> is a
prerequisite for using the multipath extensions defined in this document
with SR Policy Candidate Paths.</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 Multipath, 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 Equal-Cost Multipath, unequally distributing traffic among multiple paths/links, where some paths/links get more traffic than others.</t>
          </li>
        </ul>
        <t>PLSP:</t>
        <ul empty="true">
          <li>
            <t>PCE Label Switched Path, a path or set of paths computed or controlled by the PCE. In the context of SR Policy, a PLSP corresponds to a Candidate Path.</t>
          </li>
        </ul>
        <t>Segment List:</t>
        <ul empty="true">
          <li>
            <t>An ordered list of segments that defines a forwarding path in Segment Routing, as defined in <xref target="RFC9256"/>. In PCEP for SR Policy, each Segment List is encoded as an ERO or RRO.</t>
          </li>
        </ul>
        <t>ERO:</t>
        <ul empty="true">
          <li>
            <t>Explicit Route Object, defined in <xref target="RFC5440"/>, encodes an explicit path. In the context of SR Policy, an ERO encodes a Segment List.</t>
          </li>
        </ul>
        <t>RRO:</t>
        <ul empty="true">
          <li>
            <t>Record Route Object, defined in <xref target="RFC5440"/>, encodes the actual signaled path. In the context of SR Policy, an RRO reports a Segment List.</t>
          </li>
        </ul>
        <t>Path:</t>
        <ul empty="true">
          <li>
            <t>In the context of this document, a path refers to a single forwarding path encoded in an ERO or RRO. For SR Policy, a path corresponds to a Segment List. The mechanisms defined in this document use the generic term "path" to allow applicability beyond SR Policy.</t>
          </li>
        </ul>
        <t>LSP:</t>
        <ul empty="true">
          <li>
            <t>Label Switched Path. The base PCEP specification <xref target="RFC4655"/> originally defined the use of the PCE architecture for MPLS and GMPLS networks with LSPs instantiated using the RSVP-TE signaling protocol <xref target="RFC3209"/>. Over time, support for additional path setup types such as SRv6 has been introduced <xref target="RFC9603"/>. The term "LSP" is used extensively in PCEP specifications and, while the multipath extensions defined in this document are applicable beyond SR Policy, in the context of PCEP for SR Policy <xref target="RFC9862"/>, an LSP object represents an SR Policy Candidate Path, which may be an SRv6 path (still represented using the LSP object as specified in <xref target="RFC8231"/>). A single LSP may contain multiple paths (Segment Lists).</t>
          </li>
        </ul>
        <t>SR Policy:</t>
        <ul empty="true">
          <li>
            <t>A Segment Routing Policy as defined in <xref target="RFC9256"/>, identified by the tuple (headend, color, endpoint).</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 
<xref target="RFC9862"/>. A single Candidate Path can consist of multiple Segment Lists. 
Each Segment List is represented by an Explicit Route Object (ERO). In 
existing PCEP specifications, a PCEP Label Switched Path (LSP) object is associated 
with exactly one ERO. This restriction prevents the encoding of multiple 
Segment Lists (i.e., multiple EROs) within the single LSP.</t>
      </section>
      <section anchor="splitting-of-requested-bandwidth">
        <name>Splitting of Requested Bandwidth</name>
        <t>For example, a Path Computation Client (PCC) may request a path whose bandwidth 
demand cannot be accommodated on any single link along an available path in the 
network.  The Path Computation Element (PCE) can return multiple paths that 
together can carry the requested bandwidth. The PCC can then equally or 
unequally split the incoming traffic among these paths.</t>
      </section>
      <section anchor="reverse-path-information">
        <name>Reverse Path Information</name>
        <t>Path Computation Element Communication Protocol (PCEP) Extensions for 
Associated Bidirectional 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.</t>
        <t>Certain applications such as Circuit Style SR Policy 
<xref target="I-D.ietf-spring-cs-sr-policy"/>, require the knowledge of reverse paths per 
Segment List, not just per Candidate Path. For example, when the headend knows 
the reverse Segment List for each forward Segment List, then Performance 
Measurement (PM)/Bidirectional Forwarding Detection (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">
        <name>PATH-ATTRIB Object</name>
        <t>This document defines the PATH-ATTRIB object that is used to carry per-path
information and to act as a separator between EROs/RROs in the &lt;intended-path&gt;/&lt;actual-path&gt; Routing
Backus-Naur Form (RBNF) <xref target="RFC5511"/> element.
The PATH-ATTRIB object always precedes the ERO or RRO that it applies to.  If
multiple EROs or RROs are present, then each ERO or RRO MUST be
preceded by a 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>
        <t>The format of the PATH-ATTRIB object is shown in <xref target="fig-path-attrib"/>.</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"/>.
The relationship between the per-path Operational state and the
LSP-level Operational state in the LSP object is outside the scope
of this document; for SR Policy, the Candidate Path validity
criterion is defined in Section 2.8 of <xref target="RFC9256"/>.</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 are not installed in forwarding for
load-balancing purposes, but MAY be used by the PCC for operations
such as Performance Measurement (PM) or Bidirectional Forwarding
Detection (BFD).</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>
        <t>Optional TLVs: Variable length field that can contain zero or more
Type-Length-Value (TLV) elements
that carry additional per-path information.  The specific TLVs that can
be included are defined in subsequent sections of this document.</t>
      </section>
      <section anchor="METRIC">
        <name>METRIC Object</name>
        <t>The PCEP METRIC object can continue to be used at the LSP level to 
describe properties of the overall LSP. 
Mechanisms for encoding per-path metrics (e.g., a separate METRIC 
for each path) are outside the scope of this document and would 
require further extensions.</t>
      </section>
      <section anchor="WEIGHT-TLV">
        <name>MULTIPATH-WEIGHT TLV</name>
        <t>A 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): MUST be set to 4.</t>
        <t>Weight (32 bits): unsigned integer weight of the path described by the 
enclosing PATH-ATTRIB object, if W-ECMP is desired. The fraction of flows that a specific 
ERO/RRO carries is derived from the ratio of its weight to the sum of the 
weights of all paths in the multipath (including that path): see <xref target="LOADBALANCING"/> for details.
For SR Policy, if the Weight value is 0, the corresponding Segment List
is declared invalid per Section 5.1 of <xref target="RFC9256"/> and carries no
traffic. If all paths within an LSP have Weight 0, the sum of weights
is zero, making the candidate path invalid per Section 2.11 of
<xref target="RFC9256"/>. Signaling a zero-weight path alongside paths with
non-zero weights can be used to drain traffic from a path while
retaining its forwarding instructions.</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="OPPDIR-PATH-TLV">
        <name>MULTIPATH-OPPDIR-PATH TLV</name>
        <t>A 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.
Each TLV instance identifies one opposite-direction path for the path 
described by this PATH-ATTRIB object. This provides per-path level 
opposite-direction mapping within an LSP. In the context of SR Policy, 
this corresponds to per-Segment List mapping within a Candidate Path, 
complementing the Candidate Path level bidirectional association defined 
in <xref target="I-D.ietf-pce-sr-bidir-path"/>, which also describes the usage of 
this TLV in the context of associated bidirectional SR Paths.
See <xref target="OPPDIR"/> for operational details.</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): MUST be set to 8.</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.
If not set, the paths are not guaranteed to be node co-routed
(they may or may not traverse the same set of nodes).</t>
          </li>
          <li>
            <t>L (Link co-routed): If set, indicates this path is
link co-routed with its opposite direction path, specified in this TLV.
Two opposite direction paths are link co-routed if they
traverse the same links (but in opposite directions).
Link co-routing implies node co-routing; therefore, it is not
necessary to set the N flag when the L flag is set.</t>
          </li>
          <li>
            <t>The terms "link" and "node" used by the N-flag and L-flag refer to the
links and nodes as represented in the topology that the PCE uses for path
computation. The exact nature of a link is determined by the PCE's
topology view and is out of scope of this document. The same notion of
"link" and "node" MUST be used consistently for both the forward and the
opposite-direction path when evaluating co-routing; a path and its
opposite-direction path are represented in the same topology view.</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): References the Path ID field 
(see <xref target="PATH-ID"/>) of a PATH-ATTRIB object that identifies a path going 
in the opposite direction to this path. The value 0 is reserved and 
MUST NOT be used in this field. If no opposite-direction path exists, 
the MULTIPATH-OPPDIR-PATH TLV MUST NOT be included in the PATH-ATTRIB 
object (see <xref target="OPPDIR"/>). If a PCEP speaker receives a 
MULTIPATH-OPPDIR-PATH TLV with Opposite Direction Path ID set to 0, it 
MUST send a PCError message with Error-Type = 19 ("Invalid Operation") 
and Error-Value = TBD4 ("Invalid opposite-direction path mapping").</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, this document makes use of the COLOR TLV, defined in
<xref target="RFC9863"/>. 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.
To achieve W-ECMP, the MULTIPATH-WEIGHT TLV (<xref target="WEIGHT-TLV"/>) is included 
alongside the COLOR TLV in each PATH-ATTRIB object.
Each PATH-ATTRIB object identifies one constituent Color of the Composite
Candidate Path.
If multiple COLOR TLVs are contained in the PATH-ATTRIB object, the first one 
is processed and the others MUST be ignored.</t>
        <t>An ERO 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 the concept of the Composite Candidate Path.
Each Path in a Per-Flow Candidate Path is assigned a 3-bit forwarding class value, 
which allows Quality of Service (QoS) classified traffic to be steered depending on the forwarding class.</t>
          <t>A 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            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |T|                         Flags                         | FC  |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <t>Type (16 bits): TBD1 for "MULTIPATH-FORWARD-CLASS" TLV.</t>
          <t>Length (16 bits): MUST be set to 4.</t>
          <t>Flags (32 bits):</t>
          <ul spacing="normal">
            <li>
              <t>T (1 bit): MPLS TC type. This is the most significant bit of the 
Flags field. When set, indicates that the FC value is derived from the 
MPLS Traffic Class (TC) bits as described in Section 8.6 of 
<xref target="RFC9256"/>. When not set, the interpretation of the FC value is 
reserved for future use; a future specification MAY define a wider, 
right-aligned classifier value occupying additional low-order bits of 
the Flags field (e.g., for a non-MPLS dataplane).</t>
            </li>
            <li>
              <t>FC (3 bits): Forwarding class value. When the T flag is set, this 
carries the MPLS TC-based forwarding class value as defined in 
Section 8.6 of <xref target="RFC9256"/>.
This value 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. The FC field allows 
up to 8 different forwarding classes (values 0-7). The semantics of specific FC 
values are significant at the headend node (PCC) that implements the SR Policy 
and are determined by that node's local QoS policy or configuration. 
Coordination of FC value meanings between PCEP peers (e.g., through out-of-band 
configuration management or operational procedures) is outside the scope of 
this document.</t>
            </li>
            <li>
              <t>Unassigned bits MUST be set to 0 on transmission and MUST be
ignored on receipt.</t>
            </li>
          </ul>
        </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>A new MULTIPATH-CAP TLV is defined. 
This TLV MAY be present in the OPEN object during PCEP session establishment.
It MAY also be present in the LSP object for each individual LSP from the PCC.</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| |W|
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <t>Type (16 bits): 60 for "MULTIPATH-CAP" TLV.</t>
          <t>Length (16 bits): MUST be set to 4.</t>
          <t>Number of Multipaths (16 bits): When sent from a PCC, it indicates how many 
forward primary multipaths the PCC can install in forwarding. 
From a PCE, it indicates how many forward primary multipaths the PCE can compute.
This value is per-LSP when carried in the LSP object; the effective value
governing a given LSP is the LSP object value if present, otherwise the
OPEN object value (see below).
This count does not include reverse paths (R-flag=1, where the R flag is
defined in <xref target="PATH-ATTRIB"/>), which are not 
installed in forwarding for load-balancing purposes. 
Therefore, the total number of PATH-ATTRIB objects in an LSP may exceed 
this value when reverse paths are also signaled.
The value 0 indicates an unlimited number.</t>
          <t>Flags (16 bits):</t>
          <ul spacing="normal">
            <li>
              <t>W-flag: whether MULTIPATH-WEIGHT TLV is supported. This flag 
covers the use of MULTIPATH-WEIGHT for both regular and Composite 
Candidate Paths.</t>
            </li>
            <li>
              <t>O-flag: In the OPEN object, this flag indicates whether the 
MULTIPATH-OPPDIR-PATH TLV is supported. In the LSP object, this flag 
indicates that opposite-direction path information is requested or provided 
for that specific LSP. When set by the PCC (in PCRpt/PCReq), it requests 
the PCE to provide reverse path information. When set by the PCE (in 
PCInit/PCUpd/PCRep), it indicates the PCE is providing or will provide 
reverse path information. In both cases, the PCE SHOULD provide the reverse 
path information, if it is able to.
For PCC-Initiated LSPs, if the PCC has not set the O-flag in the 
MULTIPATH-CAP TLV of the LSP object, the PCE SHOULD NOT include reverse 
path information in the corresponding response. If the PCC receives 
unsolicited reverse path information, it MAY ignore it.</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, 
including the use of the COLOR TLV in the PATH-ATTRIB object.</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 for capability
negotiation purposes. While Per-Flow Candidate Path (<xref target="PFP"/>) builds on
top of Composite Candidate Path, the F-flag reflects whether the
MULTIPATH-FORWARD-CLASS TLV is supported, and the C-flag reflects whether
Composite Candidate Path signaling is supported. A peer that supports
Per-Flow Candidate Path MUST set both C-flag and F-flag. Note that the
F-flag is defined independently of the C-flag to allow for future use
cases that may use the MULTIPATH-FORWARD-CLASS TLV for purposes other
than Per-Flow Candidate Path; in such cases, the F-flag MAY be set
without the C-flag.</t>
          <t>When a PCE computes an LSP path, it MUST NOT return more forward 
multipaths than the minimum of the effective "Number of Multipaths" 
values of both the PCE and PCC. The effective value for a given LSP is 
determined by the per-LSP MULTIPATH-CAP TLV in the LSP object if 
present; otherwise, it defaults to the value from the MULTIPATH-CAP TLV 
in the OPEN object. This ensures the PCE does not exceed either 
its own computation capability or the PCC's installation capability. 
If this TLV is absent from both OPEN and LSP objects, the PCEP speaker 
does not support multipath and the behavior is consistent with existing 
PCEP specifications, where a single path is associated with each LSP.</t>
          <t>If a PCC receives more paths than it advertised support for, it MUST 
send a PCError message with Error-Type = 19 ("Invalid Operation") and 
Error-Value = TBD3 ("Unsupported multipath capability").
When a PCE receives a PCRpt message containing more paths
than its own computation capability, it MUST NOT treat this as an
error condition; PCRpt conveys PCC-reported operational state and is
not subject to the PCE's computation limits.</t>
          <t>The PCC MAY also include the MULTIPATH-CAP TLV 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>
          <t>Additionally, if a PCEP speaker receives a TLV within the PATH-ATTRIB object
(such as MULTIPATH-WEIGHT, MULTIPATH-OPPDIR-PATH, or
MULTIPATH-FORWARD-CLASS) but the corresponding capability flag was not set
in the negotiated MULTIPATH-CAP TLV, 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 ("Unsupported multipath capability").</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.
A single Path ID space is shared among all paths within the LSP, 
including forward paths and reverse paths (R-flag=1). Path IDs MUST be 
unique across forward and reverse paths within the same LSP.
The meaning of "Path" depends on the type of LSP:</t>
        <ul spacing="normal">
          <li>
            <t>For a regular SR Policy Candidate Path, the Paths within that LSP
are the Segment Lists.</t>
          </li>
          <li>
            <t>For a Composite Candidate Path (<xref target="CCP"/>), the Paths within that LSP
are the constituent SR Policies, each of which is identified by its
Color (carried in the COLOR TLV within the corresponding PATH-ATTRIB
object).</t>
          </li>
        </ul>
        <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.
When LSP delegation changes (e.g., the PCC revokes delegation from the PCE),
the new path owner SHOULD retain the existing Path IDs to simplify path
correlation in the event of re-delegation. If the new owner cannot retain
them, it MAY allocate new Path IDs.</t>
        <t>If a PCEP speaker detects that there are two Paths with the same non-zero 
Path ID, then the PCEP speaker MUST send a PCError message with
Error-Type = 10 ("Reception of an invalid object") and
Error-Value = 38 ("Conflicting Path ID"). Multiple paths MAY have Path ID 
set to 0, as this value indicates those paths are not referenced and do 
not require unique identification.</t>
      </section>
      <section anchor="LOADBALANCING">
        <name>Signaling Multiple Paths for Load-Balancing</name>
        <t>The PATH-ATTRIB object can be used to signal multiple paths and indicate
equal or unequal load-balancing among 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 (PCE Label Switched Path) (when non-zero).</t>
          </li>
          <li>
            <t>The PCE MAY include the MULTIPATH-WEIGHT TLV inside the PATH-ATTRIB object,
populating a weight value to reflect the relative share of traffic 
to be carried by the path. If the MULTIPATH-WEIGHT is not carried inside a
PATH-ATTRIB object, the PCC MUST assume the default weight of 1 when computing
the traffic share.</t>
          </li>
          <li>
            <t>The PCC derives the fraction of flows carried by a specific primary path
from the ratio of its weight to the sum of the weights of all paths in the multipath.
For SR Policy, the use of weights for load-balancing between Segment 
Lists of a Candidate Path is described in Section 2.11 of <xref target="RFC9256"/>.</t>
          </li>
        </ol>
      </section>
      <section anchor="OPPDIR">
        <name>Signaling Opposite-Direction Path Information</name>
        <t>The PATH-ATTRIB object can be used to signal opposite-direction path 
associations within a PCEP LSP. This capability is used to establish 
bidirectional path relationships where forward and reverse paths can be 
explicitly mapped to each other. In this case, the
PATH-ATTRIB is populated for each ERO as follows:</t>
        <ol spacing="normal" type="1"><li>
            <t>The PCEP peer (PCC or PCE) allocates a unique Path ID to each path 
and populates it inside the PATH-ATTRIB object. The Path ID is unique 
within the context of a PLSP (PCE Label Switched Path).</t>
          </li>
          <li>
            <t>For paths that have opposite-direction counterparts, the 
MULTIPATH-OPPDIR-PATH TLV is added to the PATH-ATTRIB object. The 
Opposite Direction Path ID field is set to reference the Path ID of 
the corresponding opposite-direction path.</t>
          </li>
          <li>
            <t>Multiple instances of the MULTIPATH-OPPDIR-PATH TLV MAY be present 
in the same PATH-ATTRIB object to support many-to-many mappings 
between forward and reverse paths. This allows a single forward path 
to map to multiple reverse paths and vice versa. Many-to-many 
mapping can occur when a Segment List contains Node Segment(s) that 
traverse parallel links at a midpoint. The reverse of this Segment 
List may require multiple Reverse Segment Lists to cover all the 
parallel links at the midpoint.</t>
          </li>
          <li>
            <t>The N-flag and L-flag in the MULTIPATH-OPPDIR-PATH TLV MAY be set 
to indicate node co-routing or link co-routing respectively. These 
flags inform the receiver about the relationship between the forward 
and reverse paths.  </t>
            <t>
The N-flag and L-flag describe the relationship between the signaled
paths as known to the PCEP speaker at the time the message is sent. They
do not guarantee that transient local protection, local repair, or local
policy actions in the network will preserve node or link co-routing for
all forwarded traffic.</t>
          </li>
          <li>
            <t>For paths that have no opposite-direction counterpart, the 
MULTIPATH-OPPDIR-PATH TLV is omitted from the PATH-ATTRIB object.</t>
          </li>
        </ol>
        <t>Forward paths (R-flag=0) and reverse paths (R-flag=1) are included in the 
same PCEP LSP, allowing bidirectional relationships to be established 
in a single message exchange. The opposite-direction path associations MUST be symmetric
within the same LSP: for each (A -&gt; B) reference expressed via a
MULTIPATH-OPPDIR-PATH TLV instance in path A's PATH-ATTRIB object, the
corresponding (B -&gt; A) reference MUST also be present as a
MULTIPATH-OPPDIR-PATH TLV instance in path B's PATH-ATTRIB object.
Multiple MULTIPATH-OPPDIR-PATH TLV instances per PATH-ATTRIB object are
permitted, supporting many-to-many mappings. Additionally, the R-flags of
opposite-direction paths MUST have opposite values (one set to 0, the other to 1).</t>
        <t>If a PCEP speaker receives an opposite-direction path mapping that is 
asymmetric or where the R-flags are inconsistent, it MUST send a PCError 
message with Error-Type = 19 ("Invalid Operation") and Error-Value = TBD4 
("Invalid opposite-direction path mapping").</t>
        <t>See <xref target="OPPDIREX"/> for an example of usage.</t>
      </section>
    </section>
    <section anchor="RBNF">
      <name>PCEP Message Extensions</name>
      <t>The RBNF of PCRpt and PCUpd messages, as defined in <xref target="RFC8231"/>, uses 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 within their respective message structures rather 
than encapsulating them within &lt;intended-path&gt; or &lt;actual-path&gt; constructs.</t>
      <t>As specified in Section 6.1 of <xref target="RFC8231"/>, within the context of messages 
that use these constructs, &lt;intended-path&gt; is represented by the ERO 
and &lt;actual-path&gt; is represented by the RRO:</t>
      <artwork><![CDATA[
   <intended-path> ::= <ERO>

   <actual-path> ::= <RRO>
]]></artwork>
      <t>This document extends <xref target="RFC8231"/> by allowing multiple EROs/RROs to be
present in the &lt;intended-path&gt;/&lt;actual-path&gt;:</t>
      <artwork><![CDATA[
   <intended-path> ::= <ERO> |
                       <PATH-ATTRIB><ERO>[<intended-path-multipath>]

   <intended-path-multipath> ::= <PATH-ATTRIB><ERO>
                                 [<intended-path-multipath>]

   <actual-path> ::= <RRO> |
                     <PATH-ATTRIB><RRO>[<actual-path-multipath>]

   <actual-path-multipath> ::= <PATH-ATTRIB><RRO>
                               [<actual-path-multipath>]
]]></artwork>
      <t>Similarly, this document extends <xref target="RFC8281"/> by allowing multiple paths 
in the PCInitiate message by allowing multiple EROs with their 
associated path attributes. The PCE-initiated LSP instantiation format is 
updated to:</t>
      <artwork><![CDATA[
   <PCE-initiated-lsp-instantiation> ::= <SRP>
                                          <LSP>
                                          [<END-POINTS>]
                                          <intended-path>
                                          [<attribute-list>]
]]></artwork>
      <t>where &lt;intended-path&gt; follows the recursive definition above, allowing 
multiple paths to be signaled in a single PCInitiate message. When multiple 
paths are present, each ERO MUST be preceded by a PATH-ATTRIB object that 
describes it. A single path MAY be sent as a bare ERO without PATH-ATTRIB 
for backward compatibility.</t>
      <t>This document also extends the PCRep and PCReq messages, defined in
<xref target="RFC5440"/>, to carry multipath information. Because these messages
include the ERO and RRO directly rather than within the
&lt;intended-path&gt;/&lt;actual-path&gt; constructs, the extension allows a
PATH-ATTRIB object to precede each ERO or RRO that it describes.</t>
      <t>In the PCRep message, the &lt;path&gt; element is updated to allow a
PATH-ATTRIB object to precede the ERO, with multiple &lt;path&gt; elements
in the existing &lt;path-list&gt; used to signal multiple paths:</t>
      <artwork><![CDATA[
   <path> ::= <ERO><attribute-list> |
              <PATH-ATTRIB><ERO><attribute-list>
]]></artwork>
      <t>When multiple paths are returned for load-balancing, each &lt;path&gt; in
the &lt;path-list&gt; MUST include a PATH-ATTRIB object preceding its ERO. A
single &lt;path&gt; MAY be sent as a bare ERO without PATH-ATTRIB for
backward compatibility.</t>
      <t>In the PCReq message, the existing path reported for reoptimization is
updated to allow multiple RROs, each preceded by a PATH-ATTRIB object:</t>
      <artwork><![CDATA[
   <request> ::= <RP>
                 <END-POINTS>
                 [<LSP>]
                 [<LSPA>]
                 [<BANDWIDTH>]
                 [<metric-list>]
                 [<reported-path>]
                 [<IRO>]
                 [<LOAD-BALANCING>]

   <reported-path> ::= <RRO>[<BANDWIDTH>] |
                       <PATH-ATTRIB><RRO>[<BANDWIDTH>]
                       [<reported-path-multipath>]

   <reported-path-multipath> ::= <PATH-ATTRIB><RRO>[<BANDWIDTH>]
                                 [<reported-path-multipath>]
]]></artwork>
      <t>When multiple existing paths are reported, each RRO MUST be preceded by
a PATH-ATTRIB object. A single reported path MAY be sent as a bare RRO
without PATH-ATTRIB for backward compatibility.</t>
      <t>The LOAD-BALANCING object <xref target="RFC5440"/> and the multipath extensions
defined in this document are two different mechanisms for requesting
multiple paths and MUST NOT be combined. The LOAD-BALANCING object
requests a set of independent TE LSPs, each with its own bandwidth,
whereas these extensions return multiple paths within a single LSP.
Accordingly, a PCReq message MUST NOT contain both a LOAD-BALANCING
object and a MULTIPATH-CAP TLV (in the LSP object) for the same
request. A PCEP speaker that receives such a request MUST send a
PCError message with Error-Type = 19 ("Invalid Operation") and
Error-Value = TBD5 ("LOAD-BALANCING and MULTIPATH-CAP TLV in the same
request").</t>
      <t>The capability negotiation and error handling defined in <xref target="OP"/> apply
equally to the PCReq and PCRep messages. In particular, a PCEP speaker
that receives a PATH-ATTRIB object, or a TLV within it, in a PCReq or
PCRep message without having negotiated the corresponding capability in
the MULTIPATH-CAP TLV MUST treat it as an error as specified in <xref target="OP"/>.</t>
      <t>The RBNF extensions defined in this section are additive and apply
only to sessions where the capabilities from the MULTIPATH-CAP TLV
have been successfully negotiated (<xref target="OP"/>). Legacy PCEP peers that do
not advertise the MULTIPATH-CAP TLV will not receive PATH-ATTRIB
objects introduced by the updated RBNF.</t>
    </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: ssidor@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: Partial
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>
      <t>All IANA actions in this section pertain to the "Path Computation 
Element Protocol (PCEP) Numbers" registry group, available at
<eref target="https://www.iana.org/assignments/pcep/">https://www.iana.org/assignments/pcep/</eref>.</t>
      <section anchor="pcep-object">
        <name>PCEP Object</name>
        <t>IANA is requested to confirm the following allocation in the 
   "PCEP Objects" registry
   (<eref target="https://www.iana.org/assignments/pcep/pcep.xhtml#pcep-objects">https://www.iana.org/assignments/pcep/pcep.xhtml#pcep-objects</eref>):</t>
        <artwork><![CDATA[
 +--------------+-------------+-------------------+-----------------+
 | Object-Class | Name        | Object-Type       | Reference       |
 | Value        |             | Value             |                 |
 +--------------+-------------+-------------------+-----------------+
 | 45           | PATH-ATTRIB | 0: Reserved       |                 |
 |              |             | 1: PATH-ATTRIB    | This document   |
 |              |             | 2-15: Unassigned  |                 |
 +--------------+-------------+-------------------+-----------------+
]]></artwork>
        <t>Object-Type values are managed via the IETF Review policy as per <xref target="RFC8126"/>.</t>
      </section>
      <section anchor="pcep-tlv">
        <name>PCEP TLV</name>
        <t>IANA is requested to confirm the following allocations in the
   "PCEP TLV Type Indicators" registry
   (<eref target="https://www.iana.org/assignments/pcep/pcep.xhtml#pcep-tlv-type-indicators">https://www.iana.org/assignments/pcep/pcep.xhtml#pcep-tlv-type-indicators</eref>):</t>
        <artwork><![CDATA[
 +------------+-----------------------------------+-----------------+
 | TLV Type   | TLV Name                          | Reference       |
 | Value      |                                   |                 |
 +------------+-----------------------------------+-----------------+
 | 60         | MULTIPATH-CAP                     | This document   |
 +------------+-----------------------------------+-----------------+
 | 61         | MULTIPATH-WEIGHT                  | This document   |
 +------------+-----------------------------------+-----------------+
 | 63         | MULTIPATH-OPPDIR-PATH             | This document   |
 +------------+-----------------------------------+-----------------+
]]></artwork>
        <t>IANA is requested to make new allocations in the
   "PCEP TLV Type Indicators" registry:</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 in the
   "PCEP-ERROR Object Error Types and Values" registry
   (<eref target="https://www.iana.org/assignments/pcep/pcep.xhtml#pcep-error-object">https://www.iana.org/assignments/pcep/pcep.xhtml#pcep-error-object</eref>):</t>
        <artwork><![CDATA[
 +------------+-----------------------------------+-----------------+
 | Error-Type | Error-Value                       | Reference       |
 +------------+-----------------------------------+-----------------+
 | 10         | 38 - Conflicting Path ID          | This document   |
 +------------+-----------------------------------+-----------------+
 | 19         | 21 - Non-empty path               | This document   |
 +------------+-----------------------------------+-----------------+
]]></artwork>
        <t>IANA is requested to make new allocations in the
   "PCEP-ERROR Object Error Types and Values" registry:</t>
        <artwork><![CDATA[
 +------------+-----------------------------------+-----------------+
 | Error-Type | Error-Value                       | Reference       |
 +------------+-----------------------------------+-----------------+
 | 10         | TBD2 - Unexpected PATH-ATTRIB     | This document   |
 |            |        Object                     |                 |
 +------------+-----------------------------------+-----------------+
 | 19         | TBD3 - Unsupported multipath      | This document   |
 |            |        capability                 |                 |
 +------------+-----------------------------------+-----------------+
 | 19         | TBD4 - Invalid opposite-direction | This document   |
 |            |        path mapping               |                 |
 +------------+-----------------------------------+-----------------+
 | 19         | TBD5 - LOAD-BALANCING and         | This document   |
 |            |        MULTIPATH-CAP TLV in the   |                 |
 |            |        same request               |                 |
 +------------+-----------------------------------+-----------------+
]]></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 registry called "Flags in 
MULTIPATH-CAP TLV" to manage the Flag field of the MULTIPATH-CAP TLV.
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: Composite Candidate       | This document   |
 |            |  Path support                     |                 |
 +------------+-----------------------------------+-----------------+
 | 12         | F-flag: MULTIPATH-FORWARD-CLASS   | This document   |
 |            |  TLV support                      |                 |
 +------------+-----------------------------------+-----------------+
 | 13         | O-flag: MULTIPATH-OPPDIR-PATH     | This document   |
 |            |  TLV support                      |                 |
 +------------+-----------------------------------+-----------------+
 | 14         | Unassigned                        | This document   |
 +------------+-----------------------------------+-----------------+
 | 15         | W-flag: MULTIPATH-WEIGHT TLV      | This document   |
 |            |  support                          |                 |
 +------------+-----------------------------------+-----------------+
]]></artwork>
      </section>
      <section anchor="flags-in-the-path-attrib-object">
        <name>Flags in the PATH-ATTRIB Object</name>
        <t>IANA is requested to create a new registry called "Flags in 
PATH-ATTRIB Object" to manage the Flag field of the PATH-ATTRIB object.
New values are to be assigned by "IETF review" <xref target="RFC8126"/></t>
        <artwork><![CDATA[
 +------------+-----------------------------------+-----------------+
 | Bit        | Description                       | Reference       |
 +------------+-----------------------------------+-----------------+
 | 0-27       | Unassigned                        | This document   |
 +------------+-----------------------------------+-----------------+
 | 28         | R-flag: Reverse path              | This document   |
 +------------+-----------------------------------+-----------------+
 | 29-31      | O-flag: Operational state         | 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 registry called "Flags in 
MULTIPATH-OPPDIR-PATH TLV" to manage the Flag field of the 
MULTIPATH-OPPDIR-PATH TLV.
New values are to be assigned by "IETF review" <xref target="RFC8126"/></t>
        <artwork><![CDATA[
 +------------+-----------------------------------+-----------------+
 | Bit        | Description                       | Reference       |
 +------------+-----------------------------------+-----------------+
 | 0-13       | Unassigned                        | This document   |
 +------------+-----------------------------------+-----------------+
 | 14         | L-flag: Link co-routed            | This document   |
 +------------+-----------------------------------+-----------------+
 | 15         | N-flag: Node co-routed            | This document   |
 +------------+-----------------------------------+-----------------+
]]></artwork>
      </section>
      <section anchor="flags-in-the-multipath-forward-class-tlv">
        <name>Flags in the MULTIPATH-FORWARD-CLASS TLV</name>
        <t>IANA is requested to create a new registry called "Flags in 
MULTIPATH-FORWARD-CLASS TLV" to manage the Flag field of the 
MULTIPATH-FORWARD-CLASS TLV.
New values are to be assigned by "IETF review" <xref target="RFC8126"/></t>
        <artwork><![CDATA[
 +------------+-----------------------------------+-----------------+
 | Bit        | Description                       | Reference       |
 +------------+-----------------------------------+-----------------+
 | 0          | T-flag: MPLS TC type              | This document   |
 +------------+-----------------------------------+-----------------+
 | 1-28       | Unassigned                        | This document   |
 +------------+-----------------------------------+-----------------+
 | 29-31      | FC: Forwarding class              | 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="RFC9862"/> and
<xref target="RFC9863"/> 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>
      <t>The multipath extensions defined in this document allow a PCE to signal
multiple paths per LSP, which increases the per-LSP state maintained by
the PCC. A misbehaving or compromised PCE could exploit this to amplify
state at the PCC by maximizing multipath fan-out. The "Number of Multipaths"
field in the MULTIPATH-CAP TLV provides an upper bound on the number of
paths a PCC will accept per LSP, and operators SHOULD configure a non-zero
value to limit exposure. The existing PCEP authentication and encryption
recommendations (TLS per <xref target="RFC8253"/>) mitigate the risk of unauthorized
PCE access.</t>
    </section>
    <section anchor="operational-considerations">
      <name>Operational 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="RFC9826"/> 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, 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>
        <t>Paths within a single LSP may have significantly different properties,
such as MTU, latency, and available bandwidth. When flow-based
load-balancing is used across such paths, individual flows are hashed to
a single path, so per-path MTU or latency divergence is a per-flow concern
rather than a per-packet one. However, operators should be aware that
advertising weighted load-balancing across paths with very different
latencies can degrade application performance. Similarly, if paths have
different MTUs, the effective MTU for flows on each path will differ;
operators should ensure that PMTUD or consistent MTU configuration is
in place. For bidirectional applications relying on Performance Measurement
(PM) or BFD, note that forward and reverse paths may have asymmetric
properties, and implementations should account for this.</t>
        <t>PCE implementations should minimize unnecessary churn in multipath state.
With multiple paths per LSP, frequent re-computation or weight changes
cause flow redistribution across Segment Lists, which may perturb
congestion control state and trigger PMTUD re-discovery on a broader
scale than with single-path LSPs.</t>
        <t>For Composite Candidate Paths, recursive policy resolution is therefore
bounded, as Section 2.2 of <xref target="RFC9256"/> prohibits constituent SR Policies
of a composite Candidate Path from themselves using composite Candidate Paths.</t>
      </section>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Thanks to Adrian Farrel for shepherding this document, Ketan 
   Talaulikar for his thorough AD review, Dhruv
   Dhody for ideas and discussion, and Diego Achaval, Quan Xiong, Giuseppe Fioccola, Italo
   Busi, Yuan Yaping, Cheng Li, Eric Vyncke, Mohamed Boucadair, Gunter
   Van de Velde, Christopher Inacio, Mike Bishop, Mahesh
   Jethanandani, Vidhi Goel, Gorry Fairhurst, and David Mandelberg for
   their reviews.</t>
    </section>
    <section anchor="contributors">
      <name>Contributors</name>
      <section anchor="original-authors">
        <name>Original Authors</name>
        <t>The following individuals are the original authors who initiated and
developed the core work of this document. Mike Koldychev is also listed
as editor in the Authors' Addresses section. The remaining individuals
appear here rather than in the Authors' Addresses section due to the
IETF guidelines on the maximum number of listed authors, but should be
considered co-authors of this document. Samuel Sidor joined the effort
at a later stage as an additional editor.</t>
        <artwork><![CDATA[
   Mike Koldychev (also listed as editor)
   Ciena Corporation
   Email: mkoldych@ciena.com

   Siva Sivabalan
   Ciena Corporation
   Email: ssivabal@ciena.com

   Tarek Saad
   Cisco Systems
   Email: tsaad@cisco.com

   Vishnu Pavan Beeram
   Juniper Networks, Inc.
   Email: vbeeram@juniper.net

   Hooman Bidgoli
   Nokia
   Email: hooman.bidgoli@nokia.com

   Shuping Peng
   Huawei Technologies
   Email: pengshuping@huawei.com

   Bhupendra Yadav
   Ciena
   Email: byadav@ciena.com

   Gyan Mishra
   Verizon Inc.
   Email: hayabusagsm@gmail.com
]]></artwork>
      </section>
      <section anchor="additional-contributors">
        <name>Additional Contributors</name>
        <t>The following individuals made contributions to this document:</t>
        <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>
    </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="RFC9862">
          <front>
            <title>Path Computation Element Communication Protocol (PCEP) Extensions for Segment Routing (SR) Policy Candidate Paths</title>
            <author fullname="M. Koldychev" initials="M." surname="Koldychev"/>
            <author fullname="S. Sivabalan" initials="S." surname="Sivabalan"/>
            <author fullname="S. Sidor" initials="S." surname="Sidor"/>
            <author fullname="C. Barth" initials="C." surname="Barth"/>
            <author fullname="S. Peng" initials="S." surname="Peng"/>
            <author fullname="H. Bidgoli" initials="H." surname="Bidgoli"/>
            <date month="October" 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.</t>
              <t>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="RFC" value="9862"/>
          <seriesInfo name="DOI" value="10.17487/RFC9862"/>
        </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="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="RFC9603">
          <front>
            <title>Path Computation Element Communication Protocol (PCEP) Extensions for IPv6 Segment Routing</title>
            <author fullname="C. Li" initials="C." role="editor" surname="Li"/>
            <author fullname="P. Kaladharan" initials="P." surname="Kaladharan"/>
            <author fullname="S. Sivabalan" initials="S." surname="Sivabalan"/>
            <author fullname="M. Koldychev" initials="M." surname="Koldychev"/>
            <author fullname="Y. Zhu" initials="Y." surname="Zhu"/>
            <date month="July" year="2024"/>
            <abstract>
              <t>Segment Routing (SR) can be used to steer packets through a network using the IPv6 or MPLS data plane, employing the source routing paradigm.</t>
              <t>An SR Path can be derived from a variety of mechanisms, including an IGP Shortest Path Tree (SPT), explicit configuration, or a Path Computation Element (PCE).</t>
              <t>Since SR can be applied to both MPLS and IPv6 data planes, a PCE should be able to compute an SR Path for both MPLS and IPv6 data planes. The Path Computation Element Communication Protocol (PCEP) extension and mechanisms to support SR-MPLS have been defined. This document outlines the necessary extensions to support SR for the IPv6 data plane within PCEP.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9603"/>
          <seriesInfo name="DOI" value="10.17487/RFC9603"/>
        </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="RFC5511">
          <front>
            <title>Routing Backus-Naur Form (RBNF): A Syntax Used to Form Encoding Rules in Various Routing Protocol Specifications</title>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="April" year="2009"/>
            <abstract>
              <t>Several protocols have been specified in the Routing Area of the IETF using a common variant of the Backus-Naur Form (BNF) of representing message syntax. However, there is no formal definition of this version of BNF.</t>
              <t>There is value in using the same variant of BNF for the set of protocols that are commonly used together. This reduces confusion and simplifies implementation.</t>
              <t>Updating existing documents to use some other variant of BNF that is already formally documented would be a substantial piece of work.</t>
              <t>This document provides a formal definition of the variant of BNF that has been used (that we call Routing BNF) and makes it available for use by new protocols. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5511"/>
          <seriesInfo name="DOI" value="10.17487/RFC5511"/>
        </reference>
        <reference anchor="RFC9863">
          <front>
            <title>Path Computation Element Protocol (PCEP) Extension for Color</title>
            <author fullname="B. Rajagopalan" initials="B." surname="Rajagopalan"/>
            <author fullname="V. Beeram" initials="V." surname="Beeram"/>
            <author fullname="S. Peng" initials="S." surname="Peng"/>
            <author fullname="M. Koldychev" initials="M." surname="Koldychev"/>
            <author fullname="G. Mishra" initials="G." surname="Mishra"/>
            <date month="October" 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="RFC" value="9863"/>
          <seriesInfo name="DOI" value="10.17487/RFC9863"/>
        </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="RFC4655">
          <front>
            <title>A Path Computation Element (PCE)-Based Architecture</title>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <author fullname="J.-P. Vasseur" initials="J.-P." surname="Vasseur"/>
            <author fullname="J. Ash" initials="J." surname="Ash"/>
            <date month="August" year="2006"/>
            <abstract>
              <t>Constraint-based path computation is a fundamental building block for traffic engineering systems such as Multiprotocol Label Switching (MPLS) and Generalized Multiprotocol Label Switching (GMPLS) networks. Path computation in large, multi-domain, multi-region, or multi-layer networks is complex and may require special computational components and cooperation between the different network domains.</t>
              <t>This document specifies the architecture for a Path Computation Element (PCE)-based model to address this problem space. This document does not attempt to provide a detailed description of all the architectural components, but rather it describes a set of building blocks for the PCE architecture from which solutions may be constructed. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4655"/>
          <seriesInfo name="DOI" value="10.17487/RFC4655"/>
        </reference>
        <reference anchor="RFC3209">
          <front>
            <title>RSVP-TE: Extensions to RSVP for LSP Tunnels</title>
            <author fullname="D. Awduche" initials="D." surname="Awduche"/>
            <author fullname="L. Berger" initials="L." surname="Berger"/>
            <author fullname="D. Gan" initials="D." surname="Gan"/>
            <author fullname="T. Li" initials="T." surname="Li"/>
            <author fullname="V. Srinivasan" initials="V." surname="Srinivasan"/>
            <author fullname="G. Swallow" initials="G." surname="Swallow"/>
            <date month="December" year="2001"/>
            <abstract>
              <t>This document describes the use of RSVP (Resource Reservation Protocol), including all the necessary extensions, to establish label-switched paths (LSPs) in MPLS (Multi-Protocol Label Switching). Since the flow along an LSP is completely identified by the label applied at the ingress node of the path, these paths may be treated as tunnels. A key application of LSP tunnels is traffic engineering with MPLS as specified in RFC 2702. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3209"/>
          <seriesInfo name="DOI" value="10.17487/RFC3209"/>
        </reference>
        <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="12" month="March" year="2026"/>
            <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-17"/>
        </reference>
        <reference anchor="I-D.ietf-pce-sr-bidir-path">
          <front>
            <title>Path Computation Element Communication Protocol (PCEP) Extensions for Associated Bidirectional Segment Routing (SR) LSPs</title>
            <author fullname="Cheng Li" initials="C." surname="Li">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Mach Chen" initials="M." surname="Chen">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Weiqiang Cheng" initials="W." surname="Cheng">
              <organization>China Mobile</organization>
            </author>
            <author fullname="Rakesh Gandhi" initials="R." surname="Gandhi">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Quan Xiong" initials="Q." surname="Xiong">
              <organization>ZTE Corporation</organization>
            </author>
            <date day="6" month="March" year="2026"/>
            <abstract>
              <t>   Segment Routing (SR) steers packets through a network using the IPv6
   or MPLS data planes via source routing.  Stateful Path Computation
   Element Communication Protocol (PCEP) extensions are defined for SR
   Traffic Engineering (TE) LSPs.

   PCEP supports grouping two RSVP-TE signaled, unidirectional MPLS-TE
   Label-Switched Paths (LSPs) with one in each direction in a network
   into an associated bidirectional LSP.  This document extends PCEP
   support to group two unidirectional SR LSPs into an associated
   bidirectional SR LSP.  The mechanisms defined in this document apply
   to both stateless and stateful PCEs for PCE-initiated and PCC-
   initiated LSPs.


              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-pce-sr-bidir-path-25"/>
        </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="RFC9826">
          <front>
            <title>A YANG Data Model for the Path Computation Element Communication Protocol (PCEP)</title>
            <author fullname="D. Dhody" initials="D." role="editor" surname="Dhody"/>
            <author fullname="V. Beeram" initials="V." surname="Beeram"/>
            <author fullname="J. Hardwick" initials="J." surname="Hardwick"/>
            <author fullname="J. Tantsura" initials="J." surname="Tantsura"/>
            <date month="September" year="2025"/>
            <abstract>
              <t>This document defines a YANG data model for the management of the Path Computation Element Communication 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="RFC" value="9826"/>
          <seriesInfo name="DOI" value="10.17487/RFC9826"/>
        </reference>
      </references>
    </references>
    <?line 1176?>

<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.</t>
        <artwork><![CDATA[
SR policy POL1 <headend, color, endpoint>
    Candidate Path CP1 <protocol-origin = 20, originator-asn = 100,
                        originator-address = 192.0.2.1,
                        discriminator = 1>
        Preference 200
        Weight W1, SID-List1 <SID11...SID1i>
        Weight W2, SID-List2 <SID21...SID2j>
    Candidate Path CP2 <protocol-origin = 20, originator-asn = 100,
                        originator-address = 198.51.100.1,
                        discriminator = 2>
        Preference 100
        Weight W3, SID-List3 <SID31...SID3i>
        Weight W4, SID-List4 <SID41...SID4j>
]]></artwork>
        <t>As specified in <xref target="RFC9862"/>, CP1 and CP2 
are signaled as separate state-report elements and each has 
a unique PLSP-ID, assigned by the PCC. 
For this example, PLSP-ID 100 is assigned to CP1 and PLSP-ID 200 to CP2.</t>
        <t>The state-report (as defined in <xref target="RFC8231"/>) for CP1 can be encoded as:</t>
        <artwork><![CDATA[
<state-report> =
    <LSP PLSP-ID=100>
    <ASSOCIATION>
    <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>
    <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="CCPEX">
        <name>Composite Candidate Path</name>
        <t>Consider the following Composite Candidate Path.</t>
        <artwork><![CDATA[
SR policy POL100 <headend = H1, color = 100, endpoint = E1>
    Candidate Path CP1 <protocol-origin = 20, originator-asn = 100,
                        originator-address = 192.0.2.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>
        <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 Path ID=1 R-flag=0
        <OPPDIR-PATH-TLV OppositePath ID=3>>
    <ERO <H1,M1,M2,E1>>
    <PATH-ATTRIB Path ID=2 R-flag=0
        <OPPDIR-PATH-TLV OppositePath ID=4>>
    <ERO <H1,M3,M4,E1>>
    <PATH-ATTRIB Path ID=3 R-flag=1
        <OPPDIR-PATH-TLV OppositePath ID=1>>
    <ERO <E1,M2,M1,H1>>
    <PATH-ATTRIB Path ID=4 R-flag=1
        <OPPDIR-PATH-TLV OppositePath ID=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 Path ID=1 R-flag=0
        <OPPDIR-PATH-TLV OppositePath ID=3>>
    <ERO <H1,M5,M6,E1>>
    <PATH-ATTRIB Path ID=2 R-flag=0>
    <ERO <H1,M7,M8,E1>>
    <PATH-ATTRIB Path ID=3 R-flag=1
        <OPPDIR-PATH-TLV OppositePath ID=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 Path ID=1 R-flag=0
        <OPPDIR-PATH-TLV OppositePath ID=3>>
    <ERO <E1,M2,M1,H1>>
    <PATH-ATTRIB Path ID=2 R-flag=0
        <OPPDIR-PATH-TLV OppositePath ID=4>>
    <ERO <E1,M4,M3,H1>>
    <PATH-ATTRIB Path ID=3 R-flag=1
        <OPPDIR-PATH-TLV OppositePath ID=1>>
    <ERO <H1,M1,M2,E1>>
    <PATH-ATTRIB Path ID=4 R-flag=1
        <OPPDIR-PATH-TLV OppositePath ID=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 Path ID=1 R-flag=0
        <OPPDIR-PATH-TLV OppositePath ID=3>>
    <ERO <E1,M6,M5,H1>>
    <PATH-ATTRIB Path ID=2 R-flag=1>
    <ERO <H1,M7,M8,E1>>
    <PATH-ATTRIB Path ID=3 R-flag=1
        <OPPDIR-PATH-TLV OppositePath ID=1>>
    <ERO <H1,M5,M6,E1>>
]]></artwork>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
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
C4eCBtH7/wAK9ruOGOUAAA==

-->

</rfc>
