<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-sidor-pce-lsp-state-reporting-extensions-01" ipr="trust200902">
  <front>
    <title abbrev="STATE-REPORTING-EXTENSIONS">
    LSP State Reporting Extensions in Path Computation Element Communication Protocol (PCEP)
    </title>

    <author fullname="Samuel Sidor" initials="S." surname="Sidor">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street>Eurovea Central 3.</street>
          <street>Pribinova 10</street>
          <city>Bratislava</city>
          <code>811 09</code>
          <country>Slovakia</country>
        </postal>
        <email>ssidor@cisco.com</email>
      </address>
    </author>
    <author fullname="Zafar Ali" initials="Z." surname="Ali">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <email>zali@cisco.com</email>
      </address>
    </author>
    <author fullname="Cheng Li" initials="C." surname="Li">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <street>Huawei Campus, No. 156 Beiqing Rd.</street>
          <city>Beijing</city>
          <region/>
          <code>100095</code>
          <country>China</country>
        </postal>
        <email>c.l@huawei.com</email>
      </address>
    </author>
    <author fullname="Mike Koldychev" initials="M." surname="Koldychev">
      <organization>Ciena Corporation</organization>
      <address>
        <postal>
          <street>385 Terry Fox Dr.</street>
          <city>Kanata</city>
          <region>Ontario</region>
          <code>K2K 0L1</code>
          <country>Canada</country>
        </postal>
        <email>mkoldych@proton.me</email>
      </address>
    </author>

    <date/>

    <workgroup>PCE Working Group</workgroup>

    <abstract>

      <t>Path Computation Element Communication Protocol (PCEP) is a protocol defined
      in multiple RFCs for enabling communication between Path Computation Elements
      (PCEs) and Path Computation Clients (PCCs).</t>
      <t>Although PCEP defines various LSP identifiers, attributes, and constraints,
      there are operational attributes available on the PCC that can enhance path
      computation and improve the debugging experience, which are not currently
      supported in PCEP.</t>

      <t>This document proposes extensions to PCEP to include:</t>
        <list style="symbols">
            <t>Support for explicit or dynamic path types</t>
            <t>Mechanisms to mark LSPs as eligible for use as transit LSPs</t>
            <t>A fallback to Binding label/Segment Identifier (SID) allocation by
            the PCC when the binding value specified by the PCE is unavailable</t>
        </list>
        
        <t>These extensions aim to address the existing gaps and enhance the overall functionality and operational efficiency of PCEP.</t>
    </abstract>

    <note title="Requirements Language">
      <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> <xref target="RFC8174"></xref> when,
      and only when, they appear in all capitals, as shown here.</t>
    </note>
  </front>
  <middle>
    <section anchor="Introduction" title="Introduction">

      <t>A Stateful Path Computation Element (PCE) maintains comprehensive information on
      the current network state, including computed Label Switched Paths
      (LSPs), reserved network resources, and the pending path
      computation requests. This information is critical for
      computing paths for traffic-engineering LSPs and any associated or dependent LSPs.</t>
      
      <t><xref target="RFC9604"/> outlines the usage of Binding
      labels/ Segment Identifiers (SID) usage for an RSVP-TE-signaled Label
      Switched Paths (LSPs) and Segment-routing Traffic Engineering paths. It
      specifies the possibility of a PCE explicitly requesting the allocation of a specific
      binding value by a PCC. However, <xref target="RFC9604"/> only considers the option of
      rejecting entire request if the specified binding value is unavailable, 
      but section 6.2 of <xref target="RFC9256"/> allows also fallback to a
      dynamically allocated binding value. This document introduces the
      possibility for a PCC to accept such request and include originally
      specified binding value for which allocation failed, as well as a binding
      value allocated from the dynamic range as a fallback.</t>

      <t>This document specifies a set of extensions to Path Computation
      Element Communication Protocol(PCEP) to enhance the accuracy of path
      computations by considering whether the Binding label/SID of an LSP can be
      utilized in the path computation for another LSP, based on LSP transit eligibility, 
      for example as described in case of LSP stitching in
      <xref target="I-D.ietf-pce-stateful-interdomain"/>.</t>
      
      <t>Additionally, this document introduces the ability to encode information regarding whether a path included
      in an Explicit Route Object (ERO) was specified explicitly or it is the result of dynamic path
      computation executed by a PCE or PCC. Such information can help in
      debuggability and can be used by other PCEs in the network to
      avoid triggering unnecessary path computations for LSPs where it is not intended
      (e.g., PCE-initiated LSPs with explicit path).</t>

      <t>The mechanisms described in this document are applicable to all path setup types.</t>

    </section>

    <section title="Terminology">
      <t>The following terminologies are used in this document:
        <list style="hanging">
          <t hangText="BSID:"> Binding Segment Identifier.</t>
          <t hangText="ERO:"> Explicit Route Object.</t>
          <t hangText="IGP:"> Interior Gateway Protocol.</t>
          <t hangText="NAI:"> Node or Adjacency Identifier.</t>
          <t hangText="P2P:"> Point-to-Point.</t>
          <t hangText="PCE:"> Path Computation Element.</t>
          <t hangText="PCEP:"> Path Computation Element Protocol.</t>
          <t hangText="SID:"> Segment Identifier.</t>
          <t hangText="SR:"> Segment Routing.</t>
          <t hangText="SR-TE:"> Segment Routing Traffic Engineering.</t>
          <t hangText="LSP:"> Label Switched Path.</t>
          <t hangText="LSPA:"> Label Switched Path Attributes.</t>
        </list>
      </t>
    </section>

    <section anchor="PCEP-EXTENSIONS" title="Overview of Extensions to PCEP">
      <section anchor="LSP-CAP-FLAG" title="STATEFUL-PCE-CAPABILITY TLV Flag">
        <t>A new flag is proposed in the STATEFUL-PCE-CAPABILITY TLV, originally defined in Section 5.4 of <xref target="RFC8231"/>.</t>
        <list style="symbols">
          <t>F (Fallback): If set, indicates that the PCEP peer supports dynamic fallback to a binding value if the specific binding value requested by the PCE is unavailable, as detailed in Section 4.1 of this document.</t>
        </list>
      </section>

      <section anchor="LSP-FLAGS" title="LSP-EXTENDED-FLAG TLV Flags">
        <t>New flags are introduced in the LSP-EXTENDED-FLAG TLV, which was initially defined in Section 3.1 of <xref target="RFC9357"/>.</t>

        <list style="symbols">
          <t>E (Explicit): If set, indicates that the path encoded in the Explicit Route Object (ERO) is explicitly specified and not dynamically computed by the PCEP peer.</t>
          <t>T (Transit Eligible): If set, indicates that the binding value of the LSP can be used in paths computed for other LSPs.</t>
        </list>

      </section>
      <section anchor="BINDING-FLAGS" title="TE-PATH-BINDING TLV Flag">
        <t>A new flag proposed in the TE-PATH-BINDING TLV, which was originally defined in Section 4 of <xref target="RFC9604"/>.</t>

        <list style="symbols">
          <t>A (Allocated): If set, indicates that the binding value encoded in the TLV represents an allocated binding value, as described in Section 4.1 of this document.</t>
        </list>

      </section>
    </section>

    <section anchor="Operation" title="Operation">

        <t>The PCEP protocol extensions defined in Section 3.3 of this draft MUST NOT be used if one or both PCEP speakers have not indicated support for the extensions using the F flag in the STATEFUL-PCE-CAPABILITY TLV in their respective OPEN messages.</t>

      <section anchor="BSID-FALLBACK" title="Binding Label/SID Dynamic Fallback">

        <t><xref target="RFC9604"/> specifies the possibility for a PCE to explicitly
      request the allocation of a specific binding value by a PCC. If the specified
      binding value is unavailable, the entire request MUST be rejected. However,
      if both PCEP peers advertised support for the F flag in STATEFUL-PCE-CAPABILITY TLV
      and the specified binding value in the PCInitiate or PCUpdate message is unavailable,
      the PCC MUST fallback to binding value allocation from the dynamic range, as described
      in Section 6.2 of <xref target="RFC9256"/>. Since the originally requested binding value
      and the allocated binding value are different, two instances of the TE-PATH-BINDING TLV MUST be
      included in the PCRpt message:
        <list style="symbols">
          <t>A TLV instance with requested binding value with the A flag cleared</t>
          <t>A TLV instance with allocated binding value with the A flag set</t>
        </list></t>

      </section>
      
      <section anchor="PATH-TYPE" title="Explicit or Dynamic Path">

        <t><xref target="RFC9256"/> describes various types of Segment Routing (SR) Policy Candidate Paths and methods to identify them. Specifically, Sections 5.1 and 5.2 are describing explicit and dynamic candidate paths, but there is currently no way to encode this information in PCEP. A similar limitation applies to LSPs of other path setup types.</t>
        <t>For instance, if an operator requests the creation of a PCE-Initiated Candidate Path with an Explicit Path, then such path will be encoded in the ERO object of the PCInitiate message sent to the PCC. If the delegation of such LSP is transferred to another PCE, the new PCE will not know whether the path of the LSP was computed dynamically or explicitly specified by the operator.</t>
        <t>Even if similar problem does not exist for LSPs originated on the PCC, information about the type of path may be valuable for other purposes, such as debuggability.</t>
        <t>For LSPs initiated by PCC, the E flag value is initially set by the PCC in the PCRpt message and the PCE MUST set the flag value in PCUpdate messages for such LSP based on the last reported state.</t>
        <t>For PCE-initiated LSPs, the E flag value is initially set by the PCE in PCInitiate message but MAY be modified in the PCUpdate messages. The PCC MUST set the flag value in PCRpt messages for such LSP based on the value received from the last PCInitiate or PCUpdate message.</t>
      </section>

    </section>
    <section title="Manageability Considerations" numbered="true" toc="default">
      <t>All manageability requirements and considerations listed in <xref target="RFC5440"/>, <xref target="RFC8231"/> and <xref target="RFC8281"/> apply to PCEP protocol extensions defined in this document. In addition, requirements and considerations listed in this section apply.</t>
      <section title="Control of Function and Policy" numbered="true" toc="default">
        <t>A PCE or PCC implementation MAY allow the capability of supporting PCEP extensions introduced in this document to be enabled/disabled as part of the global configuration.</t>
      </section>
      <section title="Information and Data Models" numbered="true" toc="default">
        <t>An implementation SHOULD allow the operator to view the capability defined in this document. Sections 4.1 and 4.1.1 of <xref target="I-D.ietf-pce-pcep-yang"/> should be extended to include the capability introduced in Section 3.1 for the PCEP peer.</t>
        </section>
      <section title="Verify Correct Operations" numbered="true" toc="default">
        <t>Operation verification requirements already listed in <xref target="RFC5440"/>, <xref target="RFC8231"/>, <xref target="RFC8281"/> and <xref target="RFC8664"/> are applicable to mechanisms defined in this document.</t>
      </section>
      <section title="Impact On Network Operations" numbered="true" toc="default">
        <t>The mechanisms defined in <xref target="RFC5440"/>, <xref target="RFC8231"/>, and <xref target="RFC8281"/> also apply to the PCEP extensions defined in this document.</t>
      </section>
    </section>
    <section  title="Implementation Status">
      <t>[Note to the RFC Editor - remove this section before publication, as
      well as remove the reference to RFC 7942.]</t>

      <t>This section records the status of known implementations of the
      protocol defined by this specification at the time of posting of this
      Internet-Draft, and is based on a proposal described in <xref
      target="RFC7942"/>. The description of implementations in this section
      is intended to assist the IETF in its decision processes in progressing
      drafts to RFCs. Please note that the listing of any individual
      implementation here does not imply endorsement by the IETF. Furthermore,
      no effort has been spent to verify the information presented here that
      was supplied by IETF contributors. This is not intended as, and must not
      be construed to be, a catalog of available implementations or their
      features. Readers are advised to note that other implementations may
      exist.</t>


      <t>According to <xref target="RFC7942"/>, "this will allow reviewers and
      working groups to assign due consideration to documents that have the
      benefit of running code, which may serve as evidence of valuable
      experimentation and feedback that have made the implemented protocols
      more mature. It is up to the individual working groups to use this
      information as they see fit".</t>
    </section>

    <section  title="Security Considerations" numbered="true" toc="default">
            <t>The security considerations described in <xref target="RFC5440"/>,
      <xref target='RFC8231'/>, <xref target='RFC8253'/>, <xref target='RFC8281'/>, <xref target="RFC8664"/>.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">

      <section anchor="SR-CAPABILITY-FLAG" title="STATEFUL-PCE-CAPABILITY TLV Flag">

        <t>IANA maintains a registry, named "STATEFUL-PCE-CAPABILITY TLV Flag Field", within the "Path Computation Element Protocol
   (PCEP) Numbers" registry group to manage the Flags field of the STATEFUL-PCE-CAPABILITY TLV. IANA is requested to make the following assignment:</t>

        <texttable anchor="STATEFUL-PCE-CAPABILITY-value" style="none" suppress-title="true">
          <ttcol align="center" width='15%'>Bit</ttcol>
          <ttcol align="left" width='30%'>Description </ttcol>
          <ttcol align="left" width='55%'>Reference </ttcol>
          <c></c><c>&nbsp;</c><c></c>
          <c>TBA1</c><c>F (Fallback)</c><c>This document</c>
        </texttable>
      </section>

      <section anchor="TE-PATH-BINDING-FLAG" title="TE-PATH-BINDING TLV Flag">

        <t>IANA maintains a registry, named "TE-PATH-BINDING TLV Flag Field", within the "Path Computation Element Protocol
   (PCEP) Numbers" registry group to manage the Flags field of the TE-PATH-BINDING TLV.  IANA is requested to make the following assignment:</t>

        <texttable anchor="TE-PATH-BINDING-FLAG-value" style="none" suppress-title="true">
          <ttcol align="center" width='15%'>Bit</ttcol>
          <ttcol align="left" width='30%'>Description </ttcol>
          <ttcol align="left" width='55%'>Reference </ttcol>
          <c></c><c>&nbsp;</c><c></c>
          <c>TBA2</c><c>A (Allocated)</c><c>This document</c>
        </texttable>
      </section>
      
      <section anchor="LSP-EXTENDED-FLAG" title="LSP-EXTENDED-FLAG TLV Flags">

        <t>IANA maintains a registry, named "LSP-EXTENDED-FLAG TLV Flag Field", within the "Path Computation Element Protocol
   (PCEP) Numbers" registry group to manage the Flags field of the LSP-EXTENDED-FLAG TLV.  IANA is requested to make the following assignment:</t>

        <texttable anchor="LSP-EXTENDED-FLAG-value" style="none" suppress-title="true">
          <ttcol align="center" width='15%'>Bit</ttcol>
          <ttcol align="left" width='30%'>Description </ttcol>
          <ttcol align="left" width='55%'>Reference </ttcol>
          <c></c><c>&nbsp;</c><c></c>
          <c>TBA3</c><c>E (Explicit)</c><c>This document</c>
          <c>TBA4</c><c>T (Transit Eligible)</c><c>This document</c>
        </texttable>
      </section>

    </section>

  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>
      <?rfc include="reference.RFC.5440"?>
      <?rfc include="reference.RFC.8174"?>
      <?rfc include="reference.RFC.8231"?>
      <?rfc include="reference.RFC.8253"?>
      <?rfc include="reference.RFC.8281"?>
      <?rfc include="reference.RFC.8664"?>
      <?rfc include="reference.RFC.9256"?>
      <?rfc include="reference.RFC.9357"?>
      <?rfc include="reference.RFC.9604"?>
      <?rfc include="reference.I-D.ietf-pce-stateful-interdomain"?>
      <?rfc include="reference.I-D.ietf-pce-pcep-yang"?>
    </references>

    <references title="Informative References">
      <?rfc include="reference.RFC.7942"?>
    </references>

<section title="Contributors">

<t><figure><artwork>
Rajesh Melarcode Venkateswaran
Cisco Systems, Inc.
Email: rmelarco@cisco.com

Andrew Stone
Nokia
Email: andrew.stone@nokia.com
</artwork></figure></t>

</section> <!-- Contributors -->

  </back>

</rfc>
