<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.30 (Ruby 3.4.7) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-pce-operational-02" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="PCEP-OPERATIONAL">PCEP Operational Clarification</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-pce-operational-02"/>
    <author fullname="Mike Koldychev">
      <organization>Ciena Corporation</organization>
      <address>
        <email>mkoldych@proton.me</email>
      </address>
    </author>
    <author fullname="Siva Sivabalan">
      <organization>Ciena Corporation</organization>
      <address>
        <email>ssivabal@ciena.com</email>
      </address>
    </author>
    <author fullname="Shuping Peng">
      <organization>Huawei Technologies</organization>
      <address>
        <email>pengshuping@huawei.com</email>
      </address>
    </author>
    <author fullname="Diego Achaval">
      <organization>Nokia</organization>
      <address>
        <email>diego.achaval@nokia.com</email>
      </address>
    </author>
    <author fullname="Hari Kotni">
      <organization>Juniper Networks, Inc</organization>
      <address>
        <email>hkotni@juniper.net</email>
      </address>
    </author>
    <author fullname="Andrew Stone">
      <organization>Nokia</organization>
      <address>
        <email>andrew.stone@nokia.com</email>
      </address>
    </author>
    <date/>
    <area/>
    <workgroup>Path Computation Element</workgroup>
    <abstract>
      <?line 51?>

<t>This document clarifies certain operational behavior aspects of
the PCEP protocol.  The content of this document has been compiled
based on several interop exercises.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Path Computation Element  mailing list (pce@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/pce/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/ietf-wg-pce/draft-ietf-pce-operational"/>.</t>
    </note>
  </front>
  <middle>
    <?line 58?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Due to different interpretations of PCEP standards, it was found that
implementations often had to adjust their behavior in order to
interoperate.  The current document serves to clarify certain aspects
of PCEP to make it easier to produce interoperable implementations of
PCEP.</t>
    </section>
    <section anchor="requirements-language">
      <name>Requirements Language</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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>
      <?line -18?>

</section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The following terminologies are used in this document:</t>
      <t>PCC:  Path Computation Client.  Any client application requesting a
path computation to be performed by a Path Computation Element.</t>
      <t>PCE:  Path Computation Element.  An entity (component, application,
or network node) that is capable of computing a network path or
route based on a network graph and applying computational
constraints.</t>
      <t>PCEP:  Path Computation Element Protocol.</t>
      <t>MBB:  Make-Before-Break.  A procedure during which the head-end of a
traffic-engineered path wishes to move traffic to a new path
without losing any traffic, by first "making" a new path and then
"breaking" the old path.</t>
      <t>Association parameters:  As described in <xref target="RFC8697"/>, the combination
of the mandatory fields Association type, Association ID and
Association Source in the ASSOCIATION object uniquely identify the
association group.  If the optional TLVs - Global Association
Source or Extended Association ID are included, then they are
included in combination with mandatory fields to uniquely identify
the association group.</t>
      <t>Association information:  As described in <xref target="RFC8697"/>, the ASSOCIATION
object could also include other optional TLVs based on the
association types, that provides 'information' related to the
association type.</t>
      <t>ERO: Explicit Route Object is the path of the LSP encoded into a PCEP object.
In this document, an empty ERO object, i.e., without any subobjects,
is represented with notation "ERO={}". An ERO object containing a given
sequence of subobjects is represented as "ERO={A}".</t>
      <t>PCRPT-LSP-DB: PCEP Reported Label Switched Path Database. A logical datastore
that captures the reported state information of Label Switched Paths (LSPs)
within a PCEP speaker. This term is not defined in the PCE architecture;
however, it is used in this document to describe how a PCEP speaker
internally maintains LSP-related state information reported via PCRpt messages.</t>
      <t>EXTENDED-LSP-DB: Extended Label Switched Path Database. An implementation-specific
logical datastore used to capture information related to a Label Switched Path.
It may be keyed using the same identifiers as the PCRPT-LSP-DB. This term is not
defined in the PCE architecture; however is used in this document to refer to a conceptual
datastore that can include additional attributes—such as desired state,
telemetry data, and other information not defined within IETF PCE working group documents.</t>
      <t>PLSP-ID (Path LSP Identifier): Introduced in <xref target="RFC8231"/>. A unique identifier used in PCEP to
distinguish a specific LSP between a PCC and a PCE which is constant for the lifetime of
a PCEP session.</t>
    </section>
    <section anchor="pcep-lsp-database">
      <name>PCEP LSP Database</name>
      <t>This document uses the concept of the PCRPT-LSP-DB, a database of actual LSP
state in the network, to illustrate the internal state of PCEP speakers in
response to PcRpt messages.</t>
      <t>Note that the term "LSP", which stands for "Label Switched Path", if
taken too literally, would restrict the discussion to the MPLS dataplane
only. In this document, the term "LSP" is applied to non-MPLS paths as well,
to avoid renaming the term. Alternatively, the term "LSP" could be replaced with "Instance".</t>
      <section anchor="structure">
        <name>Structure</name>
        <t>The distinction between Tunnels and LSPs in the PCRPT-LSP-DB is essential for accurately
modeling state information in PCEP, including procedures such as make-before-break,
and for maintaining consistent state management across PCEP speakers.</t>
        <t>The PCRPT-LSP-DB contains two types of information: LSPs and Tunnels. An LSP is identified
by the LSP-IDENTIFIERS TLV, while a Tunnel is identified by the PLSP-ID in the LSP
object and/or the SYMBOLIC-NAME (see <xref target="RFC8231"/>).</t>
        <t>A Tunnel may or may not correspond to an actual tunnel on the router. For
example, working and protect paths can be implemented as a single
tunnel interface, but in PCEP, these are represented as two different
Tunnels with different PLSP-IDs.</t>
        <t>An LSP can be viewed as an instance of a Tunnel. In steady state,
a Tunnel typically has a single LSP; however, during make-before-break
procedures (see <xref target="RFC3209"/>), multiple LSPs may exist simultaneously to represent
both the new and old instances during the transition.</t>
      </section>
      <section anchor="synchronization">
        <name>Synchronization</name>
        <t>Since the PCRPT-LSP-DB contains PCEP-specific information such as PLSP-IDs,
which remain constant for the duration of a PCEP session, both the PCE and
PCC maintain their own local copies of the PCRPT-LSP-DB.
The PCE PCRPT-LSP-DB is only modified by PCRpt messages, no other PCEP message
may modify the PCE PCRPT-LSP-DB.  The PCC PCRPT-LSP-DB is built from actual
forwarding state that PCC has installed.  PCC uses PCRpt messages to
synchronize its local PCRPT-LSP-DB to the PCE.</t>
        <t>The PCE is intended to act based on the most recent state available in the PCRPT-LSP-DB,
which represents the actual state of Label Switched Paths (LSPs) in the network. This
does not preclude the PCE from leveraging information obtained outside the PCRPT-LSP-DB.
For example, implementation-specific mechanisms may be used to collect traffic statistics
that can be considered during path computation. Such information is not part of the
PCRPT-LSP-DB itself, but may reference it. Additional data such as desired state, telemetry,
or operator-intended configurations—may be maintained in a separate, implementation-specific
logical datastore referred to as the EXTENDED-LSP-DB.</t>
        <t>Both the PCE and PCC maintain a PCRPT-LSP-DB that reflects the reported (actual) state of LSPs.
Implementations may choose to store desired state information or other attributes in the
EXTENDED-LSP-DB. It is important to note that the PCRPT-LSP-DB reflects only the live view
of the network and does not imply alignment with the desired state.</t>
        <t>For example, in the case of a PCE-initiated LSP, a change in the LSP configuration made by
an operator represents a modification to the desired state. However, the actual state does
not change until the PCE sends a PCInit or PCUpd message to the PCC. Upon receipt of such a
message, the PCC may act on the request, update its local PCRPT-LSP-DB, and generate a PCRpt
message to inform the PCE of the change. The PCE then updates its own PCRPT-LSP-DB accordingly.
Once this exchange is complete, the PCRPT-LSP-DBs on both the PCC and the PCE are synchronized.</t>
      </section>
      <section anchor="make-before-break-mbb">
        <name>Make before Break (MBB)</name>
        <t>Due to variations in how different implementations interpret or handle MBB
procedures—sometimes resulting in incorrect message processing or misinterpretation—the
following section provides illustrative examples to clarify expected MBB behavior.</t>
        <section anchor="successful-mbb">
          <name>Successful MBB</name>
          <t>Below is an example of performing MBB to switch a Tunnel from one
path to another. The path encoded into the ERO object
is represented as ERO={A} and ERO={B}.</t>
          <t>PCC has an existing LSP in UP state, with LSP-ID=2.  PCC sends
PCRpt(R-FLAG=0, PLSP-ID=100, LSP-ID=2, ERO={A}, OPER-FLAG=UP).</t>
          <artwork><![CDATA[
+---------------------------------------------------------------+
| TUNNEL          | LSP                                         |
+-----------------+---------------------------------------------+
| PLSP-ID=100     | LSP-ID=2, ERO={A}, OPER=UP                  |
+---------------------------------------------------------------+

                Figure 1: Content of LSP DB
]]></artwork>
          <t>PCC initiates the MBB procedure by creating a new LSP with LSP-ID=3.
It does not matter what triggered the creation of the new LSP, it
could have been due to a new path received via PCUpd (if the given
Tunnel is delegated), or it could have been local computation on the
PCC (if the Tunnel is locally computed on the PCC), or it could have
been a change in configuration on the PCC (if the Tunnel's path is
explicitly configured on the PCC).  It is important to emphasize that
the procedure for updating the PCRPT-LSP-DB is common, regardless of the
trigger that caused the change.</t>
          <t>PCC sends PCRpt(R-FLAG=0, PLSP-ID=100, LSP-ID=3, ERO={B}, OPER-
FLAG=UP).</t>
          <artwork><![CDATA[
+---------------------------------------------------------------+
| TUNNEL          | LSP                                         |
+-----------------+---------------------------------------------+
| PLSP-ID=100     | LSP-ID=2, ERO={A}, OPER=UP                  |
|                 | LSP-ID=3, ERO={B}, OPER=UP                  |
+---------------------------------------------------------------+

                Figure 2: Content of LSP DB
]]></artwork>
          <t>After traffic has successfully switched to the new LSP, the PCC
cleans up the old LSP.  PCC sends PCRpt(R-FLAG=1, PLSP-ID=100, LSP-
ID=2).</t>
          <artwork><![CDATA[
+---------------------------------------------------------------+
| TUNNEL          | LSP                                         |
+-----------------+---------------------------------------------+
| PLSP-ID=100     | LSP-ID=3, ERO={B}, OPER=UP                  |
+---------------------------------------------------------------+

                Figure 3: Content of LSP DB
]]></artwork>
        </section>
        <section anchor="aborted-mbb">
          <name>Aborted MBB</name>
          <t>The MBB process can abort when the newly created LSP is destroyed
before it is installed as traffic carrying.  This scenario is
described below.</t>
          <t>PCC has an existing LSP in UP state, with LSP-ID=2.  PCC sends
PCRpt(R-FLAG=0, OPER-FLAG=UP, PLSP-ID=100, LSP-ID=2).</t>
          <artwork><![CDATA[
+---------------------------------------------------------------+
| TUNNEL          | LSP                                         |
+-----------------+---------------------------------------------+
| PLSP-ID=100     | LSP-ID=2, OPER=UP                           |
+---------------------------------------------------------------+

                Figure 4: Content of LSP DB
]]></artwork>
          <t>MBB procedure is initiated, a new LSP is created with LSP-ID=3.  LSP
is currently being established, so its oper state is DOWN.  PCC sends
PCRpt(R-FLAG=0, OPER-FLAG=DOWN, PLSP-ID=100, LSP-ID=3).</t>
          <artwork><![CDATA[
+---------------------------------------------------------------+
| TUNNEL          | LSP                                         |
+-----------------+---------------------------------------------+
| PLSP-ID=100     | LSP-ID=2, OPER=UP                           |
|                 | LSP-ID=3, OPER=DOWN                         |
+---------------------------------------------------------------+

                Figure 5: Content of LSP DB
]]></artwork>
          <t>MBB procedure is aborted.  PCC sends PCRpt(R-FLAG=1, PLSP-ID=100,
LSP-ID=3).</t>
          <artwork><![CDATA[
+---------------------------------------------------------------+
| TUNNEL          | LSP                                         |
+-----------------+---------------------------------------------+
| PLSP-ID=100     | LSP-ID=2, OPER=UP                           |
+---------------------------------------------------------------+

                Figure 6: Content of LSP DB
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="pcep-association-database">
      <name>PCEP Association Database</name>
      <t>PCEP Association is the instantiate of a group containing at least one LSP.</t>
      <t>The PCE ASSO DB is populated by PCRpt messages and/or via
configuration on the PCE itself. An Association is identified by the
Association Parameters. As the Association Parameters contain many fields,
all fields are grouped into a single value for convenience.
The notation ASSO_PARAM=A and ASSO_PARAM=B is used to refer to
different PCEP Associations: A and B, respectively.</t>
      <section anchor="lsps-in-same-association">
        <name>LSPs in same Association</name>
        <t>The following example illustrates how LSPs join the same Association.</t>
        <t>PCC creates the first LSP.  PCC sends PCRpt(R-FLAG=0, PLSP-ID=100,
LSP-ID=1, ASSO_PARAM=A, ASSO_R_FLAG=0).</t>
        <artwork><![CDATA[
+---------------------------------------------------------------+
| ASSO            | LSP                                         |
+-----------------+---------------------------------------------+
| ASSO_PARAM=A    | PLSP-ID=100, LSP-ID=1                       |
+---------------------------------------------------------------+

                Figure 7: Content of PCE ASSO DB
]]></artwork>
        <t>PCC creates the second LSP.  PCC sends PCRpt(R-FLAG=0, PLSP-ID=200,
LSP-ID=1, ASSO_PARAM=A, ASSO_R_FLAG=0).</t>
        <artwork><![CDATA[
+---------------------------------------------------------------+
| ASSO            | LSP                                         |
+-----------------+---------------------------------------------+
| ASSO_PARAM=A    | PLSP-ID=100, LSP-ID=1                       |
|                 | PLSP-ID=200, LSP-ID=1                       |
+---------------------------------------------------------------+

                Figure 8: Content of PCE ASSO DB
]]></artwork>
        <t>PCC updates the first LSP. As <xref target="RFC8697"/> indicates, subsequent PcRpt
should include only the associations that are being modified or removed.
Therefore it is optional as to send the
ASSOCIATION object in this PCRpt, since the LSP is already in the
Association.  PCC sends PCRpt(R-FLAG=0, PLSP-ID=100, LSP-ID=1).  The
content of the PCE ASSO DB is unchanged.  Note that the PCC sends the
ASSOCIATION OBJECT in the first PCRpt during SYNC state, even if it
has already issued a PCRpt with the association object sometime in
the past with this PCE.  The synchronization steps outlined in
<xref target="RFC8697"/> are to be followed.</t>
        <artwork><![CDATA[
+---------------------------------------------------------------+
| ASSO            | LSP                                         |
+-----------------+---------------------------------------------+
| ASSO_PARAM=A    | PLSP-ID=100, LSP-ID=1                       |
|                 | PLSP-ID=200, LSP-ID=1                       |
+---------------------------------------------------------------+

                Figure 9: Content of PCE ASSO DB
]]></artwork>
        <t>PCC decides to delete the second LSP.  PCC sends PCRpt(R-FLAG=1,
PLSP-ID=200, LSP-ID=1).</t>
        <artwork><![CDATA[
+---------------------------------------------------------------+
| ASSO            | LSP                                         |
+-----------------+---------------------------------------------+
| ASSO_PARAM=A    | PLSP-ID=100, LSP-ID=1                       |
+---------------------------------------------------------------+

                Figure 10: Content of PCE ASSO DB
]]></artwork>
        <t>PCC decides to remove the first LSP from the Association, but not
delete the LSP itself.  PCC sends PCRpt(R-FLAG=0, PLSP-ID=100, LSP-
ID=1, ASSO_PARAM=A, ASSO_R_FLAG=1).  The PCE ASSO DB is now empty.</t>
        <artwork><![CDATA[
+---------------------------------------------------------------+
| ASSO            | LSP                                         |
+-----------------+---------------------------------------------+
| -               |                                             |
+---------------------------------------------------------------+

                Figure 11: Content of PCE ASSO DB
]]></artwork>
      </section>
      <section anchor="switch-association-during-mbb">
        <name>Switch Association during MBB</name>
        <t>The following example illustrates how a Tunnel goes through MBB
and switches from Association A to Association B.</t>
        <t>Each new LSP (identified by the LSP-ID) does not inherit the
Association membership of any previous LSPs within the same Tunnel.
This is so that a Tunnel can have two LSPs that are in different
Associations, this may be done when switching from one Association to
another.</t>
        <t>PCC creates the first LSP.  PCC sends PCRpt(R-FLAG=0, PLSP-ID=100,
LSP-ID=1, ASSO_PARAM=A, ASSO_R_FLAG=0).</t>
        <artwork><![CDATA[
+---------------------------------------------------------------+
| ASSO            | LSP                                         |
+-----------------+---------------------------------------------+
| ASSO_PARAM=A    | PLSP-ID=100, LSP-ID=1                       |
+---------------------------------------------------------------+

                Figure 12: Content of PCE ASSO DB
]]></artwork>
        <t>PCC creates the MBB LSP in a different Association.  PCC sends
PCRpt(R-FLAG=0, PLSP-ID=100, LSP-ID=2, ASSO_PARAM=B, ASSO_R_FLAG=0).</t>
        <artwork><![CDATA[
+---------------------------------------------------------------+
| ASSO            | LSP                                         |
+-----------------+---------------------------------------------+
| ASSO_PARAM=A    | PLSP-ID=100, LSP-ID=1                       |
+---------------------------------------------------------------+
| ASSO_PARAM=B    | PLSP-ID=100, LSP-ID=2                       |
+---------------------------------------------------------------+

                Figure 13: Content of PCE ASSO DB
]]></artwork>
        <t>PCC deletes the old LSP.  PCC sends PCRpt(R-FLAG=1, PLSP-ID=100, LSP-
ID=1).</t>
        <artwork><![CDATA[
+---------------------------------------------------------------+
| ASSO            | LSP                                         |
+-----------------+---------------------------------------------+
| ASSO_PARAM=B    | PLSP-ID=100, LSP-ID=2                       |
+---------------------------------------------------------------+

                Figure 14: Content of PCE ASSO DB
]]></artwork>
      </section>
    </section>
    <section anchor="computation-constraints">
      <name>Computation Constraints</name>
      <t>As well as reporting any state change in the network on a PCRpt message,
a PCC may also change the parameters of a delegated LSP. For example, it may remove or
modify the computation constraints that it wishes the PCE to apply as it
computes any updated paths in the future. For any PCEP object that
specifies a path computation constraint and that does not have a defined
explicit removal flag, the absence of that entire object on a repeat or
follow-up PcRpt message indicates removal of the constraint previously
specified by that object. For example,
suppose the first PcRpt contains an LSPA object with some affinity constraints.
Then if a subsequent PcRpt does not contain an LSPA object, then this means that
the previously specified affinity constraints do not apply anymore.
Same applies to all PCEP objects, like METRIC, BANDWIDTH, etc., which
do not have an explicit flag for removal.  This simply ensures that
it is possible to remove a constraint without using an explicit
removal flag.</t>
    </section>
    <section anchor="overloaded-pce">
      <name>Overloaded PCE</name>
      <t>[RFC5440] defines the concept of an Overloaded PCE and explains how
a PCE may signal to a PCC that it is congested, instructing that
"no requests should be sent to that PCE until the overload state is cleared."</t>
      <t>In the case of an overloaded PCE, a PCC implementation could choose to wait for the PCE
to no longer be overloaded or instead send a PcReq to a backup, non-overloaded PCE instead.</t>
      <t><xref target="RFC8231"/> builds upon [RFC5440] by introducing the concept of a
Stateful PCE, which allows delegation of LSP control to a single PCE.
However, it does not address the case of an overloaded PCE. According
to <xref target="RFC8231"/>, a PCE maintains delegation until it is revoked by the PCC
or returned back to PCC by the PCE. The PCC may revoke delegation and re-assign
it to another PCE.</t>
      <t>As a result, a PCE in an overload state still retains LSP delegation.
For PCC-initiated LSPs, the PCC may revoke delegation from the overloaded
PCE and maintain delegation for itself or delegate it to another PCE. For
PCE-initiated LSPs, since the PCC cannot revoke delegation as per [RFC8281],
the overloaded PCE may return the delegation to the PCC.</t>
      <t>The PCE will continue to send PcRpt messages to PCE even though it may indicate
it is overloaded, otherwise the the PCRPT-LSP-DB on PCE may go out of sync.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>None at this time.</t>
    </section>
    <section anchor="managability-considerations">
      <name>Managability Considerations</name>
      <t>None at this time.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>None at this time.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
      <reference anchor="RFC8231">
        <front>
          <title>Path Computation Element Communication Protocol (PCEP) Extensions for Stateful PCE</title>
          <author fullname="E. Crabbe" initials="E." surname="Crabbe"/>
          <author fullname="I. Minei" initials="I." surname="Minei"/>
          <author fullname="J. Medved" initials="J." surname="Medved"/>
          <author fullname="R. Varga" initials="R." surname="Varga"/>
          <date month="September" year="2017"/>
          <abstract>
            <t>The Path Computation Element Communication Protocol (PCEP) provides mechanisms for Path Computation Elements (PCEs) to perform path computations in response to Path Computation Client (PCC) requests.</t>
            <t>Although PCEP explicitly makes no assumptions regarding the information available to the PCE, it also makes no provisions for PCE control of timing and sequence of path computations within and across PCEP sessions. This document describes a set of extensions to PCEP to enable stateful control of MPLS-TE and GMPLS Label Switched Paths (LSPs) via PCEP.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8231"/>
        <seriesInfo name="DOI" value="10.17487/RFC8231"/>
      </reference>
      <reference anchor="RFC8697">
        <front>
          <title>Path Computation Element Communication Protocol (PCEP) Extensions for Establishing Relationships between Sets of Label Switched Paths (LSPs)</title>
          <author fullname="I. Minei" initials="I." surname="Minei"/>
          <author fullname="E. Crabbe" initials="E." surname="Crabbe"/>
          <author fullname="S. Sivabalan" initials="S." surname="Sivabalan"/>
          <author fullname="H. Ananthakrishnan" initials="H." surname="Ananthakrishnan"/>
          <author fullname="D. Dhody" initials="D." surname="Dhody"/>
          <author fullname="Y. Tanaka" initials="Y." surname="Tanaka"/>
          <date month="January" year="2020"/>
          <abstract>
            <t>This document introduces a generic mechanism to create a grouping of Label Switched Paths (LSPs) in the context of a Path Computation Element (PCE). This grouping can then be used to define associations between sets of LSPs or between a set of LSPs and a set of attributes (such as configuration parameters or behaviors), and it is equally applicable to the stateful PCE (active and passive modes) and the stateless PCE.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8697"/>
        <seriesInfo name="DOI" value="10.17487/RFC8697"/>
      </reference>
      <reference anchor="RFC3209">
        <front>
          <title>RSVP-TE: Extensions to RSVP for LSP Tunnels</title>
          <author fullname="D. Awduche" initials="D." surname="Awduche"/>
          <author fullname="L. Berger" initials="L." surname="Berger"/>
          <author fullname="D. Gan" initials="D." surname="Gan"/>
          <author fullname="T. Li" initials="T." surname="Li"/>
          <author fullname="V. Srinivasan" initials="V." surname="Srinivasan"/>
          <author fullname="G. Swallow" initials="G." surname="Swallow"/>
          <date month="December" year="2001"/>
          <abstract>
            <t>This document describes the use of RSVP (Resource Reservation Protocol), including all the necessary extensions, to establish label-switched paths (LSPs) in MPLS (Multi-Protocol Label Switching). Since the flow along an LSP is completely identified by the label applied at the ingress node of the path, these paths may be treated as tunnels. A key application of LSP tunnels is traffic engineering with MPLS as specified in RFC 2702. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="3209"/>
        <seriesInfo name="DOI" value="10.17487/RFC3209"/>
      </reference>
    </references>
    <?line 516?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank Adrian Farrel and Tom Petch for useful review and feedback.
comments.</t>
    </section>
    <section numbered="false" anchor="contributors">
      <name>Contributors</name>
      <artwork><![CDATA[
Dhruv Dhody
Huawei Technologies
Email: dhruv.ietf@gmail.com

Samuel Sidor
Cisco Systems
Email: ssidor@cisco.com

Mahendra Singh Negi
RtBrick Inc
Email: mahend.ietf@gmail.com
]]></artwork>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1c65YbuXH+j6dAZn9YiklGI8ne3YnXFodDWeNoLpkZxdnj
s8cH7AbJXjW76Ub3jJi9nDxEHiDPkkfJk+SrKgDdTVLSrC8rx5bOsXdINoBC
Xb8qFHo4HKo6q3N7pA8uJ9NLfbG2lamzsjC5nuSmyuZZwp8PlJnNKnvrHxxe
XE6vxjenF+fjlwcKj9hFWW2OdFbMS6XSMinMCpOmlZnXw8zW8+E6scOynX34
6LFyzWyVOYfP9WaNp0+nN89V0axmtjpSKeY80t+cjG+m36mkLJwtXOOOdF01
VoGMJ8pU1oCcA3VXVq8XVdmsiThTL/WkXK2bmlfS09yubFEfKGWaelliZj1U
Gv/mTZ4LlWfZa6v/pczTTbK0t/xjWS1Mkf0HT3GkJ5ktDGat1qXQz8/Ylcny
I716LSOfrauyLovRyu6ucJ3dGv6/mclN8UNXAIt45LOEnhol5WrPCstmnRUL
fWmLxZ75XzTmzmb6xibLoszLRWZdd4U1RjmZ4dmSH92/ykkGOetxsjS3Jt+z
zHn5OjPdiVMaMDIy4FlBP++f+QV0DTKoi2zPtL9pigyqo89tTbJ2A31aJN1l
lq9p5LOv5blRYevdFcZFWtk7fQ0Z2fuQbvj5kaPnO5SroqxWGHNrj/jpq+eT
x4eHn8cPnx1++rT98PjJYfvh559/Gj88efwIYxTZS5xOqeFwqM3M1ZVJaqVu
lpnTsKWGFFgnYo7W6cRWtckK3TEnPbNgcVZW2ri1TWqny7mql1azVbNmJmU+
0voG38GaapqxnOu6t8TSOExkCzyxWme5TdXMOJtqmJGzt1gsh4HXtirX2r6x
VZI560ae7FWWprlV6hPIpq7KtElYjdVJY3VdQhHmc1vRIjzDurJin0SoEOlq
cNxUKaSb1foOpMzLpkhBoqlVtlqLHcdB2AHoTWluk37duBoP2qxqGUEMqlJo
TV0qTzWxywYmNBWTEzfvbHUL5mI+4fQm8tmzVAVK8cjKwGWATGtcxksQj7Fn
q9ulZjk+7dCtaIoR8enK/qHJKv7V6ZemWDRmYUnqVr+2Gw1NT50+OHt1fXMw
kP/q8wv++2r6r69Or6Yn9Pf1i/HLl/EP5Z+4fnHx6uVJ+1c7cnJxdjY9P5HB
+Fb3vlIHZ+Mv8QtEoQ8uLr2DJ172NQW+lzY9s604oSfGqdS6pMpm+IAxx5PL
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

-->

</rfc>
