<?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.2.13 -->

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

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

<rfc ipr="trust200902" docName="draft-koldychev-pce-multipath-04" 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="2020" month="October" day="27"/>

    <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>
<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="pcep-message-extensions" 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 how the following sample SR Policy, taken from<vspace />
<xref target="I-D.ietf-spring-segment-routing-policy"/>, would be
represented in a PCRpt message.</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>
<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   |
 +------------+-----------------------------------+-----------------+
]]></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 initials='S.' surname='Bradner' fullname='S. Bradner'><organization /></author>
<date year='1997' month='March' />
<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 initials='JP.' surname='Vasseur' fullname='JP. Vasseur' role='editor'><organization /></author>
<author initials='JL.' surname='Le Roux' fullname='JL. Le Roux' role='editor'><organization /></author>
<date year='2009' month='March' />
<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 initials='E.' surname='Crabbe' fullname='E. Crabbe'><organization /></author>
<author initials='I.' surname='Minei' fullname='I. Minei'><organization /></author>
<author initials='J.' surname='Medved' fullname='J. Medved'><organization /></author>
<author initials='R.' surname='Varga' fullname='R. Varga'><organization /></author>
<date year='2017' month='September' />
<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 initials='E.' surname='Crabbe' fullname='E. Crabbe'><organization /></author>
<author initials='I.' surname='Minei' fullname='I. Minei'><organization /></author>
<author initials='S.' surname='Sivabalan' fullname='S. Sivabalan'><organization /></author>
<author initials='R.' surname='Varga' fullname='R. Varga'><organization /></author>
<date year='2017' month='December' />
<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 initials='S.' surname='Sivabalan' fullname='S. Sivabalan'><organization /></author>
<author initials='C.' surname='Filsfils' fullname='C. Filsfils'><organization /></author>
<author initials='J.' surname='Tantsura' fullname='J. Tantsura'><organization /></author>
<author initials='W.' surname='Henderickx' fullname='W. Henderickx'><organization /></author>
<author initials='J.' surname='Hardwick' fullname='J. Hardwick'><organization /></author>
<date year='2019' month='December' />
<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 initials='C' surname='Filsfils' fullname='Clarence Filsfils'>
    <organization />
</author>

<author initials='K' surname='Talaulikar' fullname='Ketan Talaulikar'>
    <organization />
</author>

<author initials='D' surname='Voyer' fullname='Daniel Voyer'>
    <organization />
</author>

<author initials='A' surname='Bogdanov' fullname='Alex Bogdanov'>
    <organization />
</author>

<author initials='P' surname='Mattes' fullname='Paul Mattes'>
    <organization />
</author>

<date month='July' day='8' year='2020' />

<abstract><t>Segment Routing (SR) allows a headend node to steer a packet flow along any path.  Intermediate per-flow states are eliminated thanks to source routing.  The headend node steers a flow into an SR Policy. The header of a packet steered in an SR Policy is augmented with 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-08' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-spring-segment-routing-policy-08.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 initials='M' surname='Koldychev' fullname='Mike Koldychev'>
    <organization />
</author>

<author initials='S' surname='Sivabalan' fullname='Siva Sivabalan'>
    <organization />
</author>

<author initials='C' surname='Barth' fullname='Colby Barth'>
    <organization />
</author>

<author initials='S' surname='Peng' fullname='Shuping Peng'>
    <organization />
</author>

<author initials='H' surname='Bidgoli' fullname='Hooman Bidgoli'>
    <organization />
</author>

<date month='June' day='24' year='2020' />

<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, end-point> tuple.  An SR policy can contain one or more candidate paths where each candidate path is identified in PCEP via an 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-00' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-pce-segment-routing-policy-cp-00.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 initials='B.' surname='Leiba' fullname='B. Leiba'><organization /></author>
<date year='2017' month='May' />
<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 initials='M' surname='Koldychev' fullname='Mike Koldychev'>
    <organization />
</author>

<author initials='S' surname='Sivabalan' fullname='Siva Sivabalan'>
    <organization />
</author>

<author initials='M' surname='Negi' fullname='Mahendra Negi'>
    <organization />
</author>

<author initials='D' surname='Achaval' fullname='Diego Achaval'>
    <organization />
</author>

<author initials='H' surname='Kotni' fullname='Hari Kotni'>
    <organization />
</author>

<date month='August' day='26' year='2020' />

<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-02' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-koldychev-pce-operational-02.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 initials='H.' surname='Ananthakrishnan' fullname='H. Ananthakrishnan'><organization /></author>
<author initials='S.' surname='Sivabalan' fullname='S. Sivabalan'><organization /></author>
<author initials='C.' surname='Barth' fullname='C. Barth'><organization /></author>
<author initials='I.' surname='Minei' fullname='I. Minei'><organization /></author>
<author initials='M.' surname='Negi' fullname='M. Negi'><organization /></author>
<date year='2020' month='March' />
<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 initials='A.' surname='Farrel' fullname='A. Farrel'><organization /></author>
<author initials='J.-P.' surname='Vasseur' fullname='J.-P. Vasseur'><organization /></author>
<author initials='J.' surname='Ash' fullname='J. Ash'><organization /></author>
<date year='2006' month='August' />
<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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
E/4Bf58G9A0OcP5vCXD6/wE1EmVh72MAAA==

-->

</rfc>

