<?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-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>
    <author initials="G." surname="Mishra" fullname="Gyan Mishra">
      <organization>Verizon Inc.</organization>
      <address>
        <email>gyan.s.mishra@verizon.com</email>
      </address>
    </author>

    <date year="2022" month="February" day="25"/>

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

    <abstract>


<t>Path computation algorithms are not limited to return a single optimal path.
Multiple paths may exist that satisfy the given objectives and constraints.
This document defines a mechanism to encode multiple paths for a single set of
objectives and constraints.
This is a generic PCEP mechanism, not specific to
any path setup type or dataplane.
The mechanism is applicable to both stateless and stateful PCEP.</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, 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 anchor="reverse-path-information" title="Reverse Path Information">

<t>Certain applications, such as Circuit Style SR Policy <xref target="I-D.schmutzer-pce-cs-sr-policy"/>,
require the head-end to know both forward and reverse paths for each of the
segment lists of an SR Policy in order to run OAM/PM/BFD protocols on each
Segment List as a separate circuit.</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        |O|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>W-flag: whether MULTIPATH-WEIGHT-TLV is supported.</t>

<t>B-flag: whether MULTIPATH-BACKUP-TLV is supported.</t>

<t>O-flag: whether MULTIPATH-OPPDIR-PATH-TLV is supported.</t>

</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                         |R|  O  |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                         Path ID                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ~                          Optional TLVs                        ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure>

<t>O (Operational - 3 bits): operational state of the path, same 
values as the identically named field in the LSP object <xref target="RFC8231"/>.</t>

<t>R (Reverse): Indicates this path is reverse,
i.e., it
originates on the Tunnel destination and terminates on the
Tunnel source (usually the PCC headend itself).
Paths with this flag set MUST NOT
be installed into forwarding, they serve only informational
purposes.</t>

<t>Path ID: 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>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="fig-multipath-backup"><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>B: If set, indicates a pure backup path. This is a path that only
carries rerouted traffic after the protected path fails. If this flag
is not set, or if the MULTIPATH-BACKUP TLV is absent,
then the path is assumed to be primary that
carries normal traffic.</t>

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

</section>
<section anchor="OPPDIR-PATH-TLV" title="Multipath Opposite Direction Path TLV">

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

<t>This TLV is used to indicate whether the given path is a forward path or a
reverse path in its PCEP Tunnel, as well as give information about the
opposite-direction path(s) of the given path.
Note that all reverse paths MUST have the I-flag (Informational) set in
the PATH-ATTRIB object, to indicate that these are not to be installed
into forwarding by the PCC.</t>

<figure title="MULTIPATH-OPPDIR-PATH TLV format" anchor="fig-multipath-oppdir"><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 (MBZ)         |             Flags         |L|N|
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                 Opposite Direction Path ID                    |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork></figure>

<t>Type: TBD9 for “MULTIPATH-OPPDIR-PATH” TLV</t>

<t>Length: 16.</t>

<t>N (Node co-routed): If set, indicates this path is
node co-routed with
its opposite direction path, specified in this TLV.
Two opposite direction paths are node co-routed if they
traverse the same nodes,
but MAY traverse different links.</t>

<t>L (Link co-routed): If set, indicates this path is
link co-routed with
its opposite directions path, specified in this TLV.
Two opposite direction paths are link co-routed if they
traverse the same links (but in the opposite directions).</t>

<t>Opposite Direction Path ID: Identifies a path that
goes in the opposite direction to this path.
If no such path exists, then this field MUST be set to 0x0,
which is reserved to indicate the absense of a Path ID.</t>

<t>Multiple instances of this TLV
present in the same PATH-ATTRIB object indicate that there are multiple
opposite-direction paths corresponding to the given path. This allows for
many-to-many relationship among the paths of two opposite direction Tunnels.</t>

<t>Whenever path A references another path B as being the
opposite-direction path, then path B typically also reference path A as its
own opposite-direction path.</t>

<t>See <xref target="OPPDIREX"/> for an example of usage.</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.draft-rajagopalan-pce-pcep-color"/>. For a Composite Candidate Path, the COLOR TLV
is included in the PATH-ATTRIB Object, thus allowing each Composite Candidate Path
to do ECMP/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 ERO object MUST be included as per the existing RBNF, i.e.,
ERO MUST contain no sub-objects.
If the head-end receives a non-empty ERO,
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">

<section anchor="capability-negotiation" title="Capability Negotiation">

<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
either (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.</t>

</section>
<section anchor="PATH-ID" title="Path ID">

<t>The Path ID uniquely identifies a Path within the context of a
PCEP Tunnel.
Note that when the PCEP Tunnel is an SR Policy Candidate Path, the 
Paths within that tunnel are the Segment Lists of that Candidate Path.</t>

<t>Value 0x0 is reserved to indicate the absense of a Path ID.
The value of 0x0 MAY be used when this Path is not being referenced 
and the allocation of a Path ID is not necessary.</t>

<t>Path IDs are allocated by the PCEP peer that currently owns the Tunnel.
If the Tunnel is delegated to the PCE, then the PCE allocates the Path IDs
and sends them in the PCReply/PCUpd/PCInit messages.
If the Tunnel is locally computed on the PCC, then the PCC allocates the
Path IDs and sends them in the PCReq/PCRpt messages.</t>

<t>If a PCEP speaker detects that there are two Paths with the same Path ID,
then the PCEP speaker SHOULD send PCError message with
Error-Type = 1 (“Reception of an invalid object”) and
Error-Value = TBD5 (“Conflicting Path ID”).</t>

</section>
<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 MAY be added inside the PATH-ATTRIB object for each
ERO that is protected. The backup path ID(s) are populated in the
MULTIPATH-BACKUP TLV to reflect the set of backup 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 primary paths which do not include the MULTIPATH-BACKUP TLV are assumed
to be protected by all the backup paths. I.e., omitting the TLV is equivalent to
including the TLV with all the backup path IDs filled in.</t>

<t>Note that a given PCC may not support certain backup combinations,
such as a backup path that is itself protected by another backup path, etc.
If a PCC 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>>
        <ERO (empty)>
        <PATH-ATTRIB Path_ID=2
            <WEIGHT-TLV Weight=W2>
            <COLOR-TLV Color=2>>
        <ERO (empty)>
]]></artwork></figure>

</section>
<section anchor="OPPDIREX" title="Opposite Direction Tunnels">

<t>Consider the two opposite-direction SR Policies between
end-points H1 and E1.</t>

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

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

<figure><artwork><![CDATA[
    <state-report> =
        <LSP PLSP_ID=100>
        <BIDIRECTIONAL ASSOCIATION = A1>
        <PATH-ATTRIB PathID=1
            <OPPDIR-PATH-TLV R-flag=0 OppositePathID=3>>
        <ERO <H1,M1,M2,E1>>
        <PATH-ATTRIB PathID=2
            <OPPDIR-PATH-TLV R-flag=0 OppositePathID=4>>
        <ERO <H1,M3,M4,E1>>
        <PATH-ATTRIB PathID=3
            <OPPDIR-PATH-TLV R-flag=1 OppositePathID=1>>
        <ERO <E1,M2,M1,H1>>
        <PATH-ATTRIB PathID=4
            <OPPDIR-PATH-TLV R-flag=1 OppositePathID=2>>
        <ERO <E1,M4,M3,H1>>
]]></artwork></figure>

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

<figure><artwork><![CDATA[
    <state-report> =
        <LSP PLSP_ID=200>
        <BIDIRECTIONAL ASSOCIATION = A2>
        <PATH-ATTRIB PathID=1
            <OPPDIR-PATH-TLV R-flag=0 OppositePathID=3>>
        <ERO <H1,M5,N6,E1>>
        <PATH-ATTRIB PathID=2
            <OPPDIR-PATH-TLV R-flag=0 OppositePathID=0>>
        <ERO <H1,M7,M8,E1>>
        <PATH-ATTRIB PathID=3
            <OPPDIR-PATH-TLV R-flag=1 OppositePathID=1>>
        <ERO <E1,M6,M5,H1>>
]]></artwork></figure>

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

<figure><artwork><![CDATA[
    <state-report> =
        <LSP PLSP_ID=100>
        <BIDIRECTIONAL ASSOCIATION = A1>
        <PATH-ATTRIB PathID=1
            <OPPDIR-PATH-TLV R-flag=0 OppositePathID=3>>
        <ERO <E1,M2,M1,H1>>
        <PATH-ATTRIB PathID=2
            <OPPDIR-PATH-TLV R-flag=0 OppositePathID=4>>
        <ERO <E1,M4,M3,H1>>
        <PATH-ATTRIB PathID=3
            <OPPDIR-PATH-TLV R-flag=1 OppositePathID=1>>
        <ERO <H1,M1,M2,E1>>
        <PATH-ATTRIB PathID=4
            <OPPDIR-PATH-TLV R-flag=1 OppositePathID=2>>
        <ERO <H1,M3,M4,E1>>
]]></artwork></figure>

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

<figure><artwork><![CDATA[
    <state-report> =
        <LSP PLSP_ID=200>
        <BIDIRECTIONAL ASSOCIATION = A2>
        <PATH-ATTRIB PathID=1
            <OPPDIR-PATH-TLV R-flag=0 OppositePathID=3>>
        <ERO <E1,M6,M5,H1>>
        <PATH-ATTRIB PathID=2
            <OPPDIR-PATH-TLV R-flag=1 OppositePathID=0>>
        <ERO <H1,M7,M8,E1>>
        <PATH-ATTRIB PathID=3
            <OPPDIR-PATH-TLV R-flag=1 OppositePathID=1>>
        <ERO <H1,M5,N6,E1>>
]]></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   |
 +------------+-----------------------------------+-----------------+
 | TBD9       | MULTIPATH-OPPDIR-PATH             | 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   |
 +------------+-----------------------------------+-----------------+
 | 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”.
New values are to be assigned by Standards Action <xref target="RFC8126"/></t>

<figure><artwork><![CDATA[
 +------------+-----------------------------------+-----------------+
 | Bit        | Description                       | Reference       |
 +------------+-----------------------------------+-----------------+
 | 0-12       | Unassigned                        | This document   |
 +------------+-----------------------------------+-----------------+
 | 13         | 0-flag: support for processing    | This document   |
 |            | MULTIPATH-OPPDIR-PATH TLV         |                 |
 +------------+-----------------------------------+-----------------+
 | 14         | B-flag: support for processing    | This document   |
 |            | MULTIPATH-BACKUP TLV              |                 |
 +------------+-----------------------------------+-----------------+
 | 15         | W-flag: support for processing    | This document   |
 |            | MULTIPATH-WEIGHT TLV              |                 |
 +------------+-----------------------------------+-----------------+
]]></artwork></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”.
New values are to be assigned by Standards Action <xref target="RFC8126"/></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”.
New values are to be assigned by Standards Action <xref target="RFC8126"/></t>

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

</section>
<section anchor="flags-in-the-multipath-opposite-direction-path-tlv" title="Flags in the Multipath Opposite Direction Path TLV">

<t>IANA is requested to create a new sub-registry to manage the flag
fields of the MULTIPATH-OPPDIR-PATH TLV,
called “Flags in the MULTIPATH-OPPDIR-PATH TLV”.
New values are to be assigned by Standards Action <xref target="RFC8126"/></t>

<figure><artwork><![CDATA[
 +------------+-----------------------------------+-----------------+
 | Bit        | Description                       | Reference       |
 +------------+-----------------------------------+-----------------+
 | 0-12       | Unassigned                        | This document   |
 +------------+-----------------------------------+-----------------+
 | 14         | L-flag: Link co-routed            | This document   |
 +------------+-----------------------------------+-----------------+
 | 15         | N-flag: Node co-routed            | This document   |
 +------------+-----------------------------------+-----------------+
]]></artwork></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>British Telecom</organization>
      </author>
      <author fullname='Paul Mattes'>
	 <organization>Microsoft</organization>
      </author>
      <date day='17' month='February' 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 a 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.

   This document updates RFC8402 as it 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-18'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-spring-segment-routing-policy-18.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='22' month='October' 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-06'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-pce-segment-routing-policy-cp-06.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='2022'/>
      <abstract>
	 <t>   This document proposes some important simplifications to the original
   PCEP protocol and also serves to clarify certain aspects of PCEP
   operation.  The content of this document has been compiled based on
   the feedback from several multi-vendor interop exercises.  Several
   constructs are introduced, such as the LSP-DB and the ASSO-DB.


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


<reference anchor='I-D.schmutzer-pce-cs-sr-policy'>
   <front>
      <title>Circuit Style Segment Routing Policies</title>
      <author fullname='Christian Schmutzer'>
	 <organization>Cisco Systems</organization>
      </author>
      <author fullname='Clarence Filsfils'>
	 <organization>Cisco Systems</organization>
      </author>
      <author fullname='Zafar Ali'>
	 <organization>Cisco Systems</organization>
      </author>
      <author fullname='Francois Clad'>
	 <organization>Cisco Systems</organization>
      </author>
      <date day='30' month='September' year='2021'/>
      <abstract>
	 <t>   This document describes how Segment Routing (SR) policies can be used
   to satisfy the requirements for strict bandwidth guarantees, end-to-
   end recovery and persistent paths within a segment routing network.
   SR policies satisfying these requirements are called &quot;circuit-style&quot;
   SR policies (CS-SR policies).

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-schmutzer-pce-cs-sr-policy-00'/>
   <format target='https://www.ietf.org/archive/id/draft-schmutzer-pce-cs-sr-policy-00.txt' type='TXT'/>
</reference>


<reference anchor='I-D.draft-rajagopalan-pce-pcep-color'>
   <front>
      <title>Path Computation Element Protocol(PCEP) Extension for Color</title>
      <author fullname='Balaji Rajagopalan'>
	 <organization>Juniper Networks</organization>
      </author>
      <author fullname='Vishnu Pavan Beeram'>
	 <organization>Juniper Networks</organization>
      </author>
      <author fullname='Shaofu Peng'>
	 <organization>ZTE Corporation</organization>
      </author>
      <author fullname='Quan Xiong'>
	 <organization>ZTE Corporation</organization>
      </author>
      <author fullname='Mike Koldychev'>
	 <organization>Cisco Systems Inc.</organization>
      </author>
      <author fullname='Gyan Mishra'>
	 <organization>Verizon Communications Inc.</organization>
      </author>
      <date day='14' month='November' year='2021'/>
      <abstract>
	 <t>   Color is a 32-bit numerical attribute that is used to associate a
   Traffic Engineering (TE) tunnel or policy with an intent or objective
   (e.g. low latency).  This document specifies an extension to Path
   Computation Element Protocol (PCEP) to carry the color attribute.


	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-rajagopalan-pce-pcep-color-01'/>
   <format target='https://www.ietf.org/archive/id/draft-rajagopalan-pce-pcep-color-01.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>



<reference anchor='RFC8126' target='https://www.rfc-editor.org/info/rfc8126'>
<front>
<title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
<author fullname='M. Cotton' initials='M.' surname='Cotton'><organization/></author>
<author fullname='B. Leiba' initials='B.' surname='Leiba'><organization/></author>
<author fullname='T. Narten' initials='T.' surname='Narten'><organization/></author>
<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>




    </references>



  </back>

<!-- ##markdown-source:
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
Ewh86o6Ej7dcSYhA6vGsXy758icJtFT2cIlfWmgG+xc8iqyuwWEfXE84dUv2
y7pBcFesRk88FC7dbQcOldi3dU2J/Rfh5O43ZVy+Blwai7S+MC4vCBf3dOYX
liq+osXWozb+KYtaOZskBvcjWK5KIkFCGGF9Gw6LMBTvxsTVWnc5wdXSE76U
dyNHqNQGr7Td6KhTK8Cp8zfL3FqH8/zP4+1zklj+vEy39/zTpweWt4MgK9bp
kKrI+ezJHyBv2+1uL4fzNspJ0ojLY/L4jgNnW67it/Wict8knsVCPdCEy8cy
ts136BRt1ub4gDPadeAcPPCMnP3Hyho95oyeOXDePfCMnPKDLzSjWm1GNib/
Qw7533F4YFXmRD1vLwb5VbZr6qzSjrH5S6U14/LvpdLaVmIgVhdxGa7dvf/4
uNxitos7ih/RZBcKq4bN65r9xeXNuACXFyHfH83lrlGwZm7kHLb5UrjcwuU3
3Pf5mWw/zdk+Xef7iutRw/w3tv9LCppx+bfS9a6zdyxSUL518I+RyFPBpXzh
45eUSI3HgJYJRoXVbD3AOsU7mWyBXhbwn63VwMn4Bx5BUGZU0UtNLy49vAIR
BODwMllewX9jnxMlMKbHuRasCVvStTo8DkBkVy5O0nzDZz/yExCq8wz/iDrh
8D7wCMRg7gXhHo4EDTopNvg2wredSTyn7v8PLdpHYuGIAAA=

-->

</rfc>

