<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.4.7 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>

<rfc ipr="trust200902" docName="draft-ietf-pce-multipath-00" category="std">

  <front>
    <title abbrev="PCEP Extensions for Multipath">PCEP Extensions for Signaling Multipath Information</title>

    <author initials="M." surname="Koldychev" fullname="Mike Koldychev">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <email>mkoldych@cisco.com</email>
      </address>
    </author>
    <author initials="S." surname="Sivabalan" fullname="Siva Sivabalan">
      <organization>Ciena Corporation</organization>
      <address>
        <email>ssivabal@ciena.com</email>
      </address>
    </author>
    <author initials="T." surname="Saad" fullname="Tarek Saad">
      <organization>Juniper Networks, Inc.</organization>
      <address>
        <email>tsaad@juniper.net</email>
      </address>
    </author>
    <author initials="V." surname="Beeram" fullname="Vishnu Pavan Beeram">
      <organization>Juniper Networks, Inc.</organization>
      <address>
        <email>vbeeram@juniper.net</email>
      </address>
    </author>
    <author initials="H." surname="Bidgoli" fullname="Hooman Bidgoli">
      <organization>Nokia</organization>
      <address>
        <email>hooman.bidgoli@nokia.com</email>
      </address>
    </author>
    <author initials="B." surname="Yadav" fullname="Bhupendra Yadav">
      <organization>Ciena</organization>
      <address>
        <email>byadav@ciena.com</email>
      </address>
    </author>
    <author initials="S." surname="Peng" fullname="Shuping Peng">
      <organization>Huawei Technologies</organization>
      <address>
        <email>pengshuping@huawei.com</email>
      </address>
    </author>

    <date year="2021" month="May" day="03"/>

    <area>Routing</area>
    <workgroup>PCE Working Group</workgroup>
    

    <abstract>


<t>Current PCEP standards allow only one intended and/or actual path to be present
in a PCEP report or update. Applications that require multipath support such as
SR Policy require an extension to allow signaling multiple intended and/or
actual paths within a single PCEP message. This document introduces such an
extension. Encoding of multiple intended and/or actual paths is done by
encoding multiple Explicit Route Objects (EROs) and/or multiple Record Route
Objects (RROs). A special separator object is defined in this document, to
facilitate this. This mechanism is applicable to SR-TE and RSVP-TE and is
dataplane agnostic.</t>



    </abstract>


  </front>

  <middle>


<section anchor="introduction" title="Introduction">

<t>Path Computation Element (PCE) Communication Protocol (PCEP)
<xref target="RFC5440"/> enables the communication between a Path Computation Client
(PCC) and a Path Control Element (PCE), or between two PCEs based on
the PCE architecture <xref target="RFC4655"/>.</t>

<t>PCEP Extensions for the Stateful PCE Model <xref target="RFC8231"/> describes a set
of extensions to PCEP that enable active control of Multiprotocol Label
Switching Traffic Engineering (MPLS-TE) and Generalized MPLS (GMPLS)
tunnels.  <xref target="RFC8281"/> describes the setup and teardown of PCE-initiated
LSPs under the active stateful PCE model, without the need for local
configuration on the PCC, thus allowing for dynamic centralized
control of a network.</t>

<t>PCEP Extensions for Segment Routing <xref target="RFC8664"/>
specifies extensions to the Path Computation Element Protocol (PCEP)
that allow a stateful PCE to compute and initiate Traffic Engineering
(TE) paths, as well as for a PCC to request a path subject to certain
constraint(s) and optimization criteria in SR networks.</t>

<t>Segment Routing Policy for Traffic Engineering
<xref target="I-D.ietf-spring-segment-routing-policy"/> details the concepts of SR
Policy and approaches to steering traffic into an SR Policy.  In
particular, it describes the SR candidate-path as a collection of one
or more Segment-Lists.  The current PCEP standards only allow for
signaling of one Segment-List per Candidate-Path.  PCEP extension to
support Segment Routing Policy Candidate Paths
<xref target="I-D.ietf-pce-segment-routing-policy-cp"/> specifically avoids
defining how to signal multipath information, and states that this
will be defined in another document.</t>

<t>This document defines the required extensions that allow the signaling
of multipath information via PCEP.</t>

</section>
<section anchor="terminology" title="Terminology">

<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 anchor="terms-and-abbreviations" title="Terms and Abbreviations">

<t>The following terms are used in this document:</t>

<t>PCEP Tunnel:</t>

<t><list style='empty'>
  <t>The object identified by the PLSP-ID, see <xref target="I-D.koldychev-pce-operational"/> for more details.</t>
</list></t>

</section>
</section>
<section anchor="motivation" title="Motivation">

<t>This extension is motivated by the use-cases described below.</t>

<section anchor="signaling-multiple-segment-lists-of-an-sr-candidate-path" title="Signaling Multiple Segment-Lists of an SR Candidate-Path">

<t>The Candidate-Path of an SR Policy is the unit of report/update in PCEP, see
<xref target="I-D.ietf-pce-segment-routing-policy-cp"/>.  Each Candidate-Path can
contain multiple Segment-Lists and each Segment-List is encoded by
one ERO.  However, each PCEP LSP can contain only a
single ERO (containing multiple SR-ERO subobject), which prevents us from encoding multiple Segment-
Lists within the same SR Candidate-Path.</t>

<t>With the help of the protocol extensions defined in this document,
this limitation is overcome.</t>

</section>
<section anchor="splitting-of-requested-bandwidth" title="Splitting of Requested Bandwidth">

<t>A PCC may request a path with 80 Gbps of bandwidth, but all links in the
network have only 50 Gbps capacity.  The PCE can return two paths, that can
together carry 80 Gbps. The PCC can then equally or unequally split the incoming
80 Gbps of traffic among the two paths. <xref target="WEIGHT-TLV"/> introduces a
new TLV that carries the path weight that allows for distribution of incoming
traffic on to the multiple paths.</t>

</section>
<section anchor="providing-backup-path-for-protection" title="Providing Backup path for Protection">

<t>It is desirable for the PCE to compute and signal to the PCC a backup path
that is used to protect a primary path within the multipaths in a given LSP.</t>

<t>Note that <xref target="RFC8745"/> specify the Path Protection association among LSPs. The use of <xref target="RFC8745"/> with multipath is out of scope of this document and is for future study.</t>

<t>When multipath is used, a backup path may protect one or more primary
paths.  For this reason, primary and backup path identifiers are needed to
indicate which backup path(s) protect which primary path(s).
<xref target="BACKUP-TLV"/> introduces a new TLV that carries the required information.</t>

</section>
</section>
<section anchor="protocol-extensions" title="Protocol Extensions">

<section anchor="multipath-capability-tlv" title="Multipath Capability TLV">

<t>We define the MULTIPATH-CAP TLV that MAY be present in the OPEN
object and/or the LSP object.  The purpose of this TLV is two-fold:</t>

<t><list style="numbers">
  <t>From PCC: it tells how many multipaths per PCEP Tunnel, the PCC can install in
forwarding.</t>
  <t>From PCE: it tells that the PCE supports this standard and how
many multipaths per PCEP Tunnel, the PCE can compute.</t>
</list></t>

<t>Only the first instance of this TLV can be processed, subsequent
instances SHOULD be ignored.</t>

<t><xref target="OP"/> specify the usage of this TLV with Open message (within the OPEN object) and other PCEP messages (within the LSP object).</t>

<figure title="MULTIPATH-CAP TLV format" anchor="fig-multipath-cap"><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          |B|W|
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure>

<t>Type: TBD1 for “MULTIPATH-CAP” TLV.</t>

<t>Length: 4.</t>

<t>Number of Multipaths: the maximum number of multipaths per PCEP 
   Tunnel. The value 0 indicates unlimited number.</t>

<t>Flags: Following bits are defined:</t>

<figure><artwork><![CDATA[
 W-flag: whether MULTIPATH-WEIGHT-TLV is supported.

 B-flag: whether MULTIPATH-BACKUP-TLV is supported.
 
 Unassigned bits are for future use. They MUST be set to 0 on
 transmission and MUST be ignored on receipt. 
]]></artwork></figure>

</section>
<section anchor="path-attributes-object" title="Path Attributes Object">

<t>We define the PATH-ATTRIB object that is used to carry per-path
information and to act as a separator between several ERO/RRO objects
in the &lt;intended-path&gt;/&lt;actual-path&gt; RBNF element.
The PATH-ATTRIB object always precedes the ERO/RRO that it applies to.  If
multiple ERO/RRO objects are present, then each ERO/RRO object MUST be
preceded by an PATH-ATTRIB object that describes it.</t>

<t>The PATH-ATTRIB Object-Class value is TBD2.</t>

<t>The PATH-ATTRIB Object-Type value is 1.</t>

<figure title="PATH-ATTRIB object format" anchor="fig-path-attrib"><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                           |  O  |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                         Path ID                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ~                          Optional TLVs                        ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure>

<t>Flags (32-bits): Following bits are assigned -</t>

<figure><artwork><![CDATA[
 O (Operational - 3 bits): operational state of the path, same 
 values as the identically named field in the LSP object {{RFC8231}}.

 Unassigned bits are for future use. They MUST be set to 0 on
 transmission and MUST be ignored on receipt. 
]]></artwork></figure>

<t>Path ID: 4-octet identifier that identifies a path in the set of
   multiple paths. It uniquely identifies a path (encoded in the 
   ERO/RRO) within the set of multiple paths under the PCEP LSP. Once a 
   path changes, a new Path ID is assigned.</t>

<t>TLVs that may be included in the PATH-ATTRIB object are described in the
   following sections.  Other optional TLVs could be defined by future
   documents to be included within the PATH-ATTRIB object body.</t>

</section>
<section anchor="WEIGHT-TLV" title="Multipath Weight TLV">

<t>We define the MULTIPATH-WEIGHT TLV that MAY be present in the
   PATH-ATTRIB object.</t>

<figure title="MULTIPATH-WEIGHT TLV format" anchor="fig-multipath-path-attrib"><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: TBD3 for “MULTIPATH-WEIGHT” TLV.</t>

<t>Length: 4.</t>

<t>Weight: weight of this path within the multipath, if W-ECMP is
   desired. The fraction of flows a specific ERO/RRO carries is derived
   from the ratio of its weight to the sum of all other multipath ERO/RRO weights.</t>

<t>When the MULTIPATH-WEIGHT TLV is absent from the PATH-ATTRIB object,
   or the PATH-ATTRIB object is absent from the
   &lt;intended-path&gt;/&lt;actual-path&gt;, then the Weight of the corresponding
   path is taken to be “1”.</t>

</section>
<section anchor="BACKUP-TLV" title="Multipath Backup TLV">

<t>This document introduces a new MULTIPATH-BACKUP TLV that is optional and can
   be present in the PATH-ATTRIB object.</t>

<t>This TLV is used to indicate the presence of a backup path that is
   used for protection in case of failure of the primary path. The format of
   the MULTIPATH-BACKUP TLV is:</t>

<figure title="MULTIPATH-BACKUP TLV format" anchor="figctrl"><artwork><![CDATA[
   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |             Type              |             Length            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |       Backup Path Count       |             Flags           |B|
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                         Backup Path ID 1                      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                         Backup Path ID 2                      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                              ...                              |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                         Backup Path ID n                      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork></figure>

<t>Type: TBD4 for “MULTIPATH-BACKUP” TLV</t>

<t>Length: 4 + (N * 4) (where N is the Backup Path Count)</t>

<t>Backup Path Count: Number of backup path(s).</t>

<t>Flags (16 bits): a flag field. Currently a single flag “B bit” is defined.<vspace />
   Unused flags MUST be set to zero while sending and ignored on receipt.</t>

<figure><artwork><![CDATA[
 B: If set, indicates a pure backup path. This is a path that only
 carries rerouted traffic after the protected path fails. If this flag
 is not set, or if the MULTIPATH-BACKUP TLV is absent,
 then the path is assumed to be primary that
 carries normal traffic.
]]></artwork></figure>

<t>Backup Path ID(s): a series of 4-octet identifier(s) that identify the
   backup path(s) in the set that protect this primary path.</t>

</section>
<section anchor="CCP" title="Composite Candidate Path">

<t>SR Policy Architecture <xref target="I-D.ietf-spring-segment-routing-policy"/> defines the concept of a
Composite Candidate Path. Unlike a Non-Composite Candidate Path, which contains
Segment Lists, the Composite Candidate Path contains
Colors of other policies. The traffic that is steered into a Composite Candidate Path is
split among the policies that are identified by the Colors contained in
the Composite Candidate Path. The split can be either ECMP or UCMP by adjusting the
weight of each color in the Composite Candidate Path,
in the same manner as the weight of each
Segment List in the Non-Composite Candidate Path is adjusted.</t>

<t>To signal the Composite Candidate Path, we make use of the COLOR TLV, defined in
<xref target="I-D.peng-pce-te-constraints"/>. For a Composite Candidate Path, the COLOR TLV
is included in the PATH-ATTRIB Object, thus allowing each Composite Candidate Path
to do ECMP/UCMP among SR Policies or Tunnels identified by its constituent Colors.
Only one COLOR TLV SHOULD be included into the PATH-ATTRIB object. If multiple
COLOR TLVs are contained in the PATH-ATTRIB object, only the first one MUST be
processed and the others SHOULD be ignored.</t>

<t>An empty SR-ERO/SR-RRO object MUST be included as per the existing RBNF, i.e.,
SR-ERO/SR-RRO MUST contain no sub-objects.
If the head-end receives a non-empty SR-ERO/SR-RRO,
then it MUST send PCError message with Error-Type 19 (“Invalid Operation”) and
Error-Value = TBD8 (“Non-empty path”).</t>

<t>See <xref target="CCPEX"/> for an example of the encoding.</t>

</section>
</section>
<section anchor="OP" title="Operation">

<t>When the PCC wants to indicate to the PCE that it wants to get
multipaths for a PCEP Tunnel, instead of a single path, it can do (1) or both (1) and (2) of the
following:</t>

<t>(1) Send the MULTIPATH-CAP TLV in the OPEN object during session
       establishment.  This applies to all PCEP Tunnels on the PCC,
       unless overridden by PCEP Tunnel specific information.</t>

<t>(2) Additionally send the MULTIPATH-CAP TLV in the LSP object for a particular
       PCEP Tunnel in the PCRpt or PCReq message.  This applies to the specified
       PCEP Tunnel and overrides the information from the OPEN object.</t>

<t>When PCE computes the path for a PCEP Tunnel, it MUST NOT return more
multipaths than the corresponding value of “Number of Multipaths”
from the MULTIPATH-CAP TLV.  If this TLV is absent (from both OPEN
and LSP objects), then the “Number of Multipaths” is assumed to be 1.</t>

<t>If the PCE supports this standard, then it MUST include the
MULTIPATH-CAP TLV in the OPEN object.  This tells the PCC that it can
report multiple ERO/RRO objects per PCEP Tunnel to this PCE.  If the PCE does not include
the MULTIPATH-CAP TLV in the OPEN object, then the PCC MUST assume
that the PCE does not support this standard and fall back to
reporting only a single ERO/RRO. The PCE MUST NOT include MULTIPATH-CAP TLV
in the LSP object in any other PCEP message towards the PCC and the PCC MUST ignore it if received.</t>

<t>The Path ID of each ERO/RRO MUST be unique within that LSP.
If a PCEP speaker detects that there are two paths with the same Path ID,
then the PCEP speaker SHOULD send PCError message with
Error-Type = 1 (“Reception of an invalid object”) and
Error-Value = TBD5 (“Conflicting Path ID”).</t>

<section anchor="signaling-multiple-paths-for-loadbalancing" title="Signaling Multiple Paths for Loadbalancing">

<t>The PATH-ATTRIB object can be used to signal multiple path(s) and indicate
(un)equal loadbalancing amongst the set of multipaths. In this case, the
PATH-ATTRIB is populated for each ERO as follows:</t>

<t><list style="numbers">
  <t>The PCE assigns a unique Path ID to each ERO path and populates
it inside the PATH-ATTRIB object. The Path ID is unique within the
context of a PLSP or PCEP Tunnel.</t>
  <t>The MULTIPATH-WEIGHT TLV MAY be carried inside the PATH-ATTRIB object. A
weight is populated to reflect the relative loadshare that is to be
carried by the path. If the MULTIPATH-WEIGHT is not carried inside a
PATH-ATTRIB object, the default weight 1 MUST be assumed when computing
the loadshare.</t>
  <t>The fraction of flows carried by a specific primary path is derived
from the ratio of its weight to the sum of all other multipath weights.</t>
</list></t>

</section>
<section anchor="signaling-multiple-paths-for-protection" title="Signaling Multiple Paths for Protection">

<t>The PATH-ATTRIB object can be used to describe a set of backup path(s) protecting
a primary path within a PCEP Tunnel. In this case, the PATH-ATTRIB is populated for each ERO as
follows:</t>

<t><list style="numbers">
  <t>The PCE assigns a unique Path ID to each ERO path and populates
it inside the PATH-ATTRIB object. The Path ID is unique within the
context of a PLSP or PCEP Tunnel.</t>
  <t>The MULTIPATH-BACKUP TLV MUST be added inside the PATH-ATTRIB object for each
ERO that is protected. The backup path ID(s) are populated in the
MULTIPATH-BACKUP TLV to reflect the set of backup path(s) protecting the
primary path. The Length field and Backup Path Number in the MULTIPATH-BACKUP
are updated according to the number of backup path ID(s) included.</t>
  <t>The MULTIPATH-BACKUP TLV MAY be added inside the PATH-ATTRIB object for each
ERO that is unprotected. In this case, MULTIPATH-BACKUP does not carry
any backup path IDs in the TLV. If the path acts as a pure backup – i.e.
the path only carries rerouted traffic after the protected path(s) fail– then
the B flag MUST be set.</t>
</list></t>

<t>Note that if a given path has the B-flag set, then there MUST be some other path
within the same LSP that uses the given path as a backup.
If this condition is violated, then the PCEP speaker SHOULD send a PCError message
with Error-Type = 10 (“Reception of an invalid object”) and
Error-Value = TBD6 (“No primary path for pure backup”).</t>

<t>Note that a given PCC may not support certain backup combinations,
such as a backup path that is itself protected by another backup path, etc.
If a PCC is not able to implement a requested backup scenario,
the PCC SHOULD send a PCError message with
Error-Type = 19 (“Invalid Operation”) and
Error-Value = TBD7 (“Not supported path backup”).</t>

</section>
</section>
<section anchor="RBNF" title="PCEP Message Extensions">

<t>The RBNF of PCReq, PCRep, PCRpt, PCUpd and PCInit messages currently use a combination
of &lt;intended-path&gt; and/or &lt;actual-path&gt;.
As specified in Section 6.1 of <xref target="RFC8231"/>, &lt;intended-path&gt; is represented by the
ERO object and &lt;actual-path&gt; is represented by the RRO object:</t>

<figure><artwork><![CDATA[
   <intended-path> ::= <ERO>

   <actual-path> ::= <RRO>
]]></artwork></figure>

<t>In this standard, we extend these two elements to allow multiple ERO/RRO objects to be
present in the &lt;intended-path&gt;/&lt;actual-path&gt;:</t>

<figure><artwork><![CDATA[
   <intended-path> ::= (<ERO>|
                       (<PATH-ATTRIB><ERO>)
                       [<intended-path>])
              

   <actual-path> ::= (<RRO>|
                      (<PATH-ATTRIB><RRO>)
                      [<actual-path>])
]]></artwork></figure>

</section>
<section anchor="examples" title="Examples">

<section anchor="sr-policy-candidate-path-with-multiple-segment-lists" title="SR Policy Candidate-Path with Multiple Segment-Lists">

<t>Consider the following sample SR Policy, taken from<vspace />
<xref target="I-D.ietf-spring-segment-routing-policy"/>.</t>

<figure><artwork><![CDATA[
        SR policy POL1 <headend, color, endpoint>
            Candidate-path CP1 <protocol-origin = 20, originator =
    100:1.1.1.1, discriminator = 1>
                Preference 200
                Weight W1, SID-List1 <SID11...SID1i>
                Weight W2, SID-List2 <SID21...SID2j>
            Candidate-path CP2 <protocol-origin = 20, originator =
    100:2.2.2.2, discriminator = 2>
                Preference 100
                Weight W3, SID-List3 <SID31...SID3i>
                Weight W4, SID-List4 <SID41...SID4j>
]]></artwork></figure>

<t>As specified in <xref target="I-D.ietf-pce-segment-routing-policy-cp"/>, CP1 and CP2 
are signaled as separate state-report elements and each has 
a unique PLSP-ID, assigned by the PCC. 
Let us assign PLSP-ID 100 to CP1 and PLSP-ID 200 to CP2.</t>

<t>The state-report for CP1 can be encoded as:</t>

<figure><artwork><![CDATA[
<state-report> =
        <LSP PLSP_ID=100>
        <ASSOCIATION>
        <END-POINT>
        <PATH-ATTRIB Path_ID=1 <WEIGHT-TLV Weight=W1>>
        <ERO SID-List1>
        <PATH-ATTRIB Path_ID=2 <WEIGHT-TLV Weight=W2>>
        <ERO SID-List2>
]]></artwork></figure>

<t>The state-report for CP2 can be encoded as:</t>

<figure><artwork><![CDATA[
<state-report> =
        <LSP PLSP_ID=200>
        <ASSOCIATION>
        <END-POINT>
        <PATH-ATTRIB Path_ID=1 <WEIGHT-TLV Weight=W3>>
        <ERO SID-List3>
        <PATH-ATTRIB Path_ID=2 <WEIGHT-TLV Weight=W4>>
        <ERO SID-List4>
]]></artwork></figure>

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

<figure><artwork><![CDATA[
<PATH-ATTRIB Path_ID=1 <WEIGHT-TLV Weight=W1>>
]]></artwork></figure>

<t>, simply means that this is PATH-ATTRIB object 
with Path ID field set to “1” and 
with a MULTIPATH-WEIGHT TLV carrying weight of “W1”.</t>

</section>
<section anchor="two-primary-paths-protected-by-one-backup-path" title="Two Primary Paths Protected by One Backup Path">

<t>Suppose there are 3 paths: A, B, C.
Where A,B are primary and C is to be used only when A or B fail.
Suppose the Path IDs for A, B, C are respectively 1, 2, 3.
This would be encoded in a state-report as:</t>

<figure><artwork><![CDATA[
<state-report> =
        <LSP>
        <ASSOCIATION>
        <END-POINT>
        <PATH-ATTRIB Path_ID=1 <BACKUP-TLV B=0, Backup_Paths=[3]>>
        <ERO A>
        <PATH-ATTRIB Path_ID=2 <BACKUP-TLV B=0, Backup_Paths=[3]>>
        <ERO B>
        <PATH-ATTRIB Path_ID=3 <BACKUP-TLV B=1, Backup_Paths=[]>>
        <ERO C>
]]></artwork></figure>

<t>Note that the syntax</t>

<figure><artwork><![CDATA[
<PATH-ATTRIB Path_ID=1 <BACKUP-TLV B=0, Backup_Paths=[3]>>
]]></artwork></figure>

<t>, simply means that this is PATH-ATTRIB object 
with Path ID field set to “1” and 
with a MULTIPATH-BACKUP TLV that has B-flag cleared and contains
a single backup path with Backup Path ID of 3.</t>

</section>
<section anchor="CCPEX" title="Composite Candidate Path">

<t>Consider the following Composite Candidate Path, taken from<vspace />
<xref target="I-D.ietf-spring-segment-routing-policy"/>.</t>

<figure><artwork><![CDATA[
   SR policy POL100 <headend = H1, color = 100, endpoint = E1>
        Candidate-path CP1 <protocol-origin = 20, originator =
   100:1.1.1.1, discriminator = 1>
            Preference 200
            Weight W1, SR policy <color = 1>
            Weight W2, SR policy <color = 2>
]]></artwork></figure>

<t>This is signaled in PCEP as:</t>

<figure><artwork><![CDATA[
        <LSP PLSP_ID=100>
        <ASSOCIATION>
        <END-POINT>
        <PATH-ATTRIB Path_ID=1 <WEIGHT-TLV Weight=W1> <COLOR-TLV Color=1>>
        <SR-ERO (empty)>
        <PATH-ATTRIB Path_ID=2 <WEIGHT-TLV Weight=W2> <COLOR-TLV Color=2>>
        <SR-ERO (empty)>
]]></artwork></figure>

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

<section anchor="pcep-object" title="PCEP Object">
<t>IANA is requested to make the assignment of a new value for the
   existing “PCEP Objects” registry as follows:</t>

<figure><artwork><![CDATA[
 +--------------+-------------+-------------------+-----------------+
 | Object-Class | Name        | Object-Type       | Reference       |
 | Value        |             | Value             |                 |
 +--------------+-------------+-------------------+-----------------+
 | TBD2         | PATH-ATTRIB | 1                 | This document   |
 +--------------+-------------+-------------------+-----------------+
]]></artwork></figure>

</section>
<section anchor="pcep-tlv" title="PCEP TLV">
<t>IANA is requested to make the assignment of a new value for the
   existing “PCEP TLV Type Indicators” registry as follows:</t>

<figure><artwork><![CDATA[
 +------------+-----------------------------------+-----------------+
 | TLV Type   | TLV Name                          | Reference       |
 | Value      |                                   |                 |
 +------------+-----------------------------------+-----------------+
 | TBD1       | MULTIPATH-CAP                     | This document   |
 +------------+-----------------------------------+-----------------+
 | TBD3       | MULTIPATH-WEIGHT                  | This document   |
 +------------+-----------------------------------+-----------------+
 | TBD4       | MULTIPATH-BACKUP                  | This document   |
 +------------+-----------------------------------+-----------------+
]]></artwork></figure>

</section>
<section anchor="pcep-error-object" title="PCEP-Error Object">
<t>IANA is requested to make the assignment of a new value for the
   existing “PCEP-ERROR Object Error Types and Values” sub-registry of the
   PCEP Numbers registry for the following errors:</t>

<figure><artwork><![CDATA[
 +------------+-----------------------------------+-----------------+
 | Error-Type | Error-Value                       | Reference       |
 +------------+-----------------------------------+-----------------+
 | 10         | TBD5 - Conflicting Path ID        | This document   |
 +------------+-----------------------------------+-----------------+
 | 10         | TBD6 - No primary path for pure   | This document   |
 |            |        backup                     |                 |
 +------------+-----------------------------------+-----------------+
 | 19         | TBD7 - Not supported path backup  | This document   |
 +------------+-----------------------------------+-----------------+
 | 19         | TBD8 - Non-empty path             | This document   |
 +------------+-----------------------------------+-----------------+
]]></artwork></figure>

</section>
<section anchor="flags-in-the-multipath-capability-tlv" title="Flags in the Multipath Capability TLV">

<t>IANA is requested to create a new sub-registry to manage the Flag
field of the MULTIPATH-CAP TLV, called “Flags in MULTIPATH-CAP
TLV”.</t>

<t>Following bits are defined:</t>

<figure><artwork><![CDATA[
 +------------+-----------------------------------+-----------------+
 | Bit        | Description                       | Reference       |
 +------------+-----------------------------------+-----------------+
 | 0-13       | Unassigned                        | This document   |
 +------------+-----------------------------------+-----------------+
 | 14         | B-flag: Backup support            | This document   |
 +------------+-----------------------------------+-----------------+
 | 15         | W-flag: Weighted ECMP support     | This document   |
 +------------+-----------------------------------+-----------------+
]]></artwork></figure>

</section>
<section anchor="flags-in-the-path-attribute-object" title="Flags in the Path Attribute Object">

<t>IANA is requested to create a new sub-registry to manage the Flag
field of the PATH-ATTRIBUTE object,
called “Flags in PATH-ATTRIBUTE Object”.</t>

<t>Following bits are defined:</t>

<figure><artwork><![CDATA[
 +------------+-----------------------------------+-----------------+
 | Bit        | Description                       | Reference       |
 +------------+-----------------------------------+-----------------+
 | 0-12       | Unassigned                        | This document   |
 +------------+-----------------------------------+-----------------+
 | 13-15      | O-flag: Operational state         | This document   |
 +------------+-----------------------------------+-----------------+
]]></artwork></figure>

</section>
<section anchor="flags-in-the-multipath-backup-tlv" title="Flags in the Multipath Backup TLV">

<t>IANA is requested to create a new sub-registry to manage the Flag
field of the MULTIPATH-BACKUP TLV,
called “Flags in MULTIPATH-BACKUP TLV”.</t>

<t>Following bits are defined:</t>

<figure><artwork><![CDATA[
 +------------+-----------------------------------+-----------------+
 | Bit        | Description                       | Reference       |
 +------------+-----------------------------------+-----------------+
 | 0-14       | Unassigned                        | This document   |
 +------------+-----------------------------------+-----------------+
 | 15         | B-flag: Pure backup               | This document   |
 +------------+-----------------------------------+-----------------+
]]></artwork></figure>

</section>
</section>
<section anchor="security-considerations" title="Security Considerations">

<t>None at this time.</t>

</section>
<section anchor="acknowledgement" title="Acknowledgement">

<t>Thanks to Dhruv Dhody for ideas and discussion.</t>

</section>
<section anchor="contributors" title="Contributors">

<figure><artwork><![CDATA[
   Andrew Stone
   Nokia

   Email: andrew.stone@nokia.com
]]></artwork></figure>

</section>


  </middle>

  <back>

    <references title='Normative References'>





<reference anchor='RFC2119' target='https://www.rfc-editor.org/info/rfc2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author fullname='S. Bradner' initials='S.' surname='Bradner'><organization/></author>
<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='RFC5440' target='https://www.rfc-editor.org/info/rfc5440'>
<front>
<title>Path Computation Element (PCE) Communication Protocol (PCEP)</title>
<author fullname='JP. Vasseur' initials='JP.' role='editor' surname='Vasseur'><organization/></author>
<author fullname='JL. Le Roux' initials='JL.' role='editor' surname='Le Roux'><organization/></author>
<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='RFC8231' target='https://www.rfc-editor.org/info/rfc8231'>
<front>
<title>Path Computation Element Communication Protocol (PCEP) Extensions for Stateful PCE</title>
<author fullname='E. Crabbe' initials='E.' surname='Crabbe'><organization/></author>
<author fullname='I. Minei' initials='I.' surname='Minei'><organization/></author>
<author fullname='J. Medved' initials='J.' surname='Medved'><organization/></author>
<author fullname='R. Varga' initials='R.' surname='Varga'><organization/></author>
<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='RFC8281' target='https://www.rfc-editor.org/info/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'><organization/></author>
<author fullname='I. Minei' initials='I.' surname='Minei'><organization/></author>
<author fullname='S. Sivabalan' initials='S.' surname='Sivabalan'><organization/></author>
<author fullname='R. Varga' initials='R.' surname='Varga'><organization/></author>
<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' target='https://www.rfc-editor.org/info/rfc8664'>
<front>
<title>Path Computation Element Communication Protocol (PCEP) Extensions for Segment Routing</title>
<author fullname='S. Sivabalan' initials='S.' surname='Sivabalan'><organization/></author>
<author fullname='C. Filsfils' initials='C.' surname='Filsfils'><organization/></author>
<author fullname='J. Tantsura' initials='J.' surname='Tantsura'><organization/></author>
<author fullname='W. Henderickx' initials='W.' surname='Henderickx'><organization/></author>
<author fullname='J. Hardwick' initials='J.' surname='Hardwick'><organization/></author>
<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 &quot;segments&quot; 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='I-D.ietf-spring-segment-routing-policy'>
   <front>
      <title>Segment Routing Policy Architecture</title>
      <author fullname='Clarence Filsfils'>
	 <organization>Cisco Systems</organization>
      </author>
      <author fullname='Ketan Talaulikar'>
	 <organization>Cisco Systems</organization>
      </author>
      <author fullname='Daniel Voyer'>
	 <organization>Bell Canada</organization>
      </author>
      <author fullname='Alex Bogdanov'>
	 <organization>Google, Inc.</organization>
      </author>
      <author fullname='Paul Mattes'>
	 <organization>Microsoft</organization>
      </author>
      <date day='30' month='April' year='2021'/>
      <abstract>
	 <t>   Segment Routing (SR) allows a headend node to steer a packet flow
   along any path.  Intermediate per-path states are eliminated thanks
   to source routing.  The headend node steers a flow into an SR Policy.
   The packets steered into an SR Policy carry an ordered list of
   segments associated with that SR Policy.  This document details the
   concepts of SR Policy and steering into an SR Policy.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-spring-segment-routing-policy-11'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-spring-segment-routing-policy-11.txt' type='TXT'/>
</reference>


<reference anchor='I-D.ietf-pce-segment-routing-policy-cp'>
   <front>
      <title>PCEP extension to support Segment Routing Policy Candidate Paths</title>
      <author fullname='Mike Koldychev'>
	 <organization>Cisco Systems, Inc.</organization>
      </author>
      <author fullname='Siva Sivabalan'>
	 <organization>Ciena Corporation</organization>
      </author>
      <author fullname='Colby Barth'>
	 <organization>Juniper Networks, Inc.</organization>
      </author>
      <author fullname='Shuping Peng'>
	 <organization>Huawei Technologies</organization>
      </author>
      <author fullname='Hooman Bidgoli'>
	 <organization>Nokia</organization>
      </author>
      <date day='8' month='March' year='2021'/>
      <abstract>
	 <t>   This document introduces a mechanism to specify a Segment Routing
   (SR) policy, as a collection of SR candidate paths.  An SR policy is
   identified by &lt;headend, color, endpoint&gt; tuple.  An SR policy can
   contain one or more candidate paths where each candidate path is
   identified in PCEP by its uniquely assigned PLSP-ID.  This document
   proposes extension to PCEP to support association among candidate
   paths of a given SR policy.  The mechanism proposed in this document
   is applicable to both MPLS and IPv6 data planes of SR.


	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-pce-segment-routing-policy-cp-04'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-pce-segment-routing-policy-cp-04.txt' type='TXT'/>
</reference>



<reference anchor='RFC8174' target='https://www.rfc-editor.org/info/rfc8174'>
<front>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
<author fullname='B. Leiba' initials='B.' surname='Leiba'><organization/></author>
<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='I-D.koldychev-pce-operational'>
   <front>
      <title>PCEP Operational Clarification</title>
      <author fullname='Mike Koldychev'>
	 <organization>Cisco Systems, Inc.</organization>
      </author>
      <author fullname='Siva Sivabalan'>
	 <organization>Ciena Corporation</organization>
      </author>
      <author fullname='Shuping Peng'>
	 <organization>Huawei Technologies</organization>
      </author>
      <author fullname='Diego Achaval'>
	 <organization>Nokia</organization>
      </author>
      <author fullname='Hari Kotni'>
	 <organization>Juniper Networks, Inc</organization>
      </author>
      <date day='19' month='February' year='2021'/>
      <abstract>
	 <t>   This document is meant to provide better clarity about how PCEP
   operates and hence to facilitate better interoperability between
   different equipment vendors.  The content of this document has been
   compiled based on the feedback from several multi-vendor interop
   exercises.  Several constructs are introduced to facilitate this,
   such as the LSP-DB and the ASSO-DB.


	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-koldychev-pce-operational-03'/>
   <format target='https://www.ietf.org/archive/id/draft-koldychev-pce-operational-03.txt' type='TXT'/>
</reference>


<reference anchor='I-D.peng-pce-te-constraints'>
   <front>
      <title>PCE TE Constraints for Network Slicing</title>
      <author fullname='Shaofu Peng'>
	 <organization>ZTE Corporation</organization>
      </author>
      <author fullname='Quan Xiong'>
	 <organization>ZTE Corporation</organization>
      </author>
      <author fullname='Fengwei Qin'>
	 <organization>China Mobile</organization>
      </author>
      <date day='11' month='April' year='2021'/>
      <abstract>
	 <t>   This document proposes a set of extensions for PCEP to support the TE
   constraints of network slicing during path computation, e.g, IGP
   instance, virtual network, Slice-id, specific application, color
   template and FA-id etc.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-peng-pce-te-constraints-05'/>
   <format target='https://www.ietf.org/archive/id/draft-peng-pce-te-constraints-05.txt' type='TXT'/>
</reference>




    </references>

    <references title='Informative References'>





<reference anchor='RFC8745' target='https://www.rfc-editor.org/info/rfc8745'>
<front>
<title>Path Computation Element Communication Protocol (PCEP) Extensions for Associating Working and Protection Label Switched Paths (LSPs) with Stateful PCE</title>
<author fullname='H. Ananthakrishnan' initials='H.' surname='Ananthakrishnan'><organization/></author>
<author fullname='S. Sivabalan' initials='S.' surname='Sivabalan'><organization/></author>
<author fullname='C. Barth' initials='C.' surname='Barth'><organization/></author>
<author fullname='I. Minei' initials='I.' surname='Minei'><organization/></author>
<author fullname='M. Negi' initials='M.' surname='Negi'><organization/></author>
<date month='March' year='2020'/>
<abstract><t>An active stateful Path Computation Element (PCE) is capable of computing as well as controlling via Path Computation Element Communication Protocol (PCEP) Multiprotocol Label Switching Traffic Engineering (MPLS-TE) Label Switched Paths (LSPs). Furthermore, it is also possible for an active stateful PCE to create, maintain, and delete LSPs. This document defines the PCEP extension to associate two or more LSPs to provide end-to-end path protection.</t></abstract>
</front>
<seriesInfo name='RFC' value='8745'/>
<seriesInfo name='DOI' value='10.17487/RFC8745'/>
</reference>



<reference anchor='RFC4655' target='https://www.rfc-editor.org/info/rfc4655'>
<front>
<title>A Path Computation Element (PCE)-Based Architecture</title>
<author fullname='A. Farrel' initials='A.' surname='Farrel'><organization/></author>
<author fullname='J.-P. Vasseur' initials='J.-P.' surname='Vasseur'><organization/></author>
<author fullname='J. Ash' initials='J.' surname='Ash'><organization/></author>
<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>




    </references>



  </back>

<!-- ##markdown-source:
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
kFwa0EtxgPVPPOH0/wMm7HK7Nm0AAA==

-->

</rfc>

