<?xml version="1.0" encoding="US-ASCII"?>
<rfc category="std" docName="draft-ietf-pce-stateful-pce-vendor-11"
     ipr="trust200902" obsoletes="" sortRefs="true" submissionType="IETF"
     symRefs="true" tocInclude="true" updates="" version="3" xml:lang="en">
  <!--6 xml2rfc v2v3 conversion 3.10.0 -->

  <front>
    <title abbrev="VENDOR-STATEFUL">Conveying Vendor-Specific Information in
    the Path Computation Element (PCE) Communication Protocol (PCEP)
    extensions for Stateful PCE.</title>

    <seriesInfo name="Internet-Draft"
                value="draft-ietf-pce-stateful-pce-vendor-11"/>

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

        <phone/>

        <email>c.l@huawei.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Haomian Zheng" initials="H." surname="Zheng">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>H1, Huawei Xiliu Beipo Village, Songshan Lake</street>

          <city>Dongguan</city>

          <region>Guangdong</region>

          <code>523808</code>

          <country>China</country>
        </postal>

        <phone/>

        <email>zhenghaomian@huawei.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Siva Sivabalan" initials="S." surname="Sivabalan">
      <organization>Ciena</organization>

      <address>
        <postal>
          <street>385 Terry Fox Drive</street>

          <city>Kanata</city>

          <region>Ontario</region>

          <code>K2K 0L1</code>

          <country>Canada</country>
        </postal>

        <email>msiva282@gmail.com</email>
      </address>
    </author>

    <author fullname="Samuel Sidor" initials="S." surname="Sidor">
      <organization>Cisco Systems, Inc.</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country/>
        </postal>

        <email>ssidor@cisco.com</email>
      </address>
    </author>

    <author fullname="Zafar Ali" initials="Z." surname="Ali">
      <organization>Cisco Systems, Inc.</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country/>
        </postal>

        <email>zali@cisco.com</email>
      </address>
    </author>

    <date/>

    <workgroup>PCE Working Group</workgroup>

    <abstract>
      <t>This document specifies extensions to the Path Computation Element
      Communication Protocol (PCEP) that enable the inclusion of
      vendor-specific information in stateful PCE operations. These extensions
      allow vendors to incorporate proprietary data within PCEP messages,
      facilitating enhanced network optimization and functionality in
      environments requiring vendor-specific features. The extensions maintain
      compatibility with existing PCEP implementations and promote
      interoperability across diverse network deployments. RFC 7470 defines a
      facility to carry vendor-specific information in stateless PCE
      Communication Protocol (PCEP) messages. This document extends this
      capability for the Stateful PCEP messages.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="introduction" numbered="true" toc="default">
      <name>Introduction</name>

      <t>The Path Computation Element Communication Protocol (PCEP) <xref
      format="default" target="RFC5440"/> provides mechanisms for a Path
      Computation Element (PCE) to perform path computation in response to a
      Path Computation Client (PCC) request.</t>

      <t>A Stateful PCE is capable of considering, for the purposes of the
      path computation, not only the network state in terms of links and nodes
      (referred to as the Traffic Engineering Database or TED) but also the
      status of active services (previously computed paths, and currently
      reserved resources, stored in the Label Switched Paths Database
      (LSP-DB)). <xref format="default" target="RFC8051"/> describes general
      considerations for a Stateful PCE deployment and examines its
      applicability and benefits, as well as its challenges and limitations
      through a number of use cases.</t>

      <t><xref format="default" target="RFC8231"/> describes a set of
      extensions to PCEP to provide stateful control. A Stateful PCE has
      access to not only the information carried by the network's Interior
      Gateway Protocol (IGP), but also the set of active paths and their
      reserved resources for its computations. The additional state allows the
      PCE to compute constrained paths while considering individual LSPs and
      their interactions. <xref format="default" target="RFC8281"/> describes
      the setup, maintenance, and teardown of PCE-initiated LSPs under the
      Stateful PCE model. These extensions add new messages in PCEP for
      Stateful PCE.</t>

      <t><xref format="default" target="RFC7470"/> defines the Vendor
      Information object that can be used to carry arbitrary, proprietary
      information such as vendor-specific constraints in stateless PCEP. It
      also defines the VENDOR-INFORMATION-TLV that can be used to carry
      arbitrary information within any existing or future PCEP object that
      supports TLVs.</t>

      <t>The Vendor Information Object and the VENDOR-INFORMATION-TLV are also
      valuable in the Stateful PCE model. The VENDOR-INFORMATION-TLV can be
      included within any of the objects introduced in PCEP for Stateful PCE
      as defined in <xref format="default" target="RFC7470"/>. This document
      extends stateful PCEP messages to incorporate the Vendor Information
      Object.</t>

      <section anchor="Requirements" numbered="true" toc="default">
        <name>Requirements Language</name>

        <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 format="default" target="RFC2119"/> <xref format="default"
        target="RFC8174"/> when, and only when, they appear in all capitals,
        as shown here.</t>
      </section>

      <section anchor="RBNF" numbered="true" toc="default">
        <name>Use of RBNF</name>

        <t>The message formats in this document are illustrated using Routing
        Backus-Naur Form (RBNF) encoding, as specified in <xref
        format="default" target="RFC5511"/>. The use of RBNF is illustrative
        only and may omit certain important details; the normative
        specification of messages is found in the descriptive text. If there
        is any divergence between the RBNF and the descriptive text, the
        descriptive text is considered authoritative.</t>
      </section>
    </section>

    <section anchor="Procedures" numbered="true" toc="default">
      <name>Procedures for the Vendor Information Object</name>

      <t>A Path Computation LSP State Report message (also referred to as
      PCRpt message) <xref format="default" section="6.1"
      sectionFormat="parens" target="RFC8231"/> is a PCEP message sent by a
      PCC to a PCE to report the current state of an LSP. A PCC that wants to
      convey proprietary or vendor-specific information or metrics to a PCE
      does so by including a Vendor Information object in the PCRpt message.
      The contents and format of the object, including the VENDOR-INFORMATION
      object and the VENDOR-INFORMATION-TLV, are described in Section 4 of
      <xref format="default" target="RFC7470"/>. The PCE determines how to
      interpret the information in the Vendor Information object by examining
      the Enterprise Number it contains.</t>

      <t>The Vendor Information object is OPTIONAL in a PCRpt message.
      Multiple instances of the object MAY be contained in a single PCRpt
      message. Different instances of the object MAY have different Enterprise
      Numbers.</t>

      <t>The message formats in this document are specified using RBNF
      encoding as specified in <xref format="default" target="RFC5511"/>.</t>

      <t>The format of the PCRpt message (with <xref format="default"
      section="6.1" sectionFormat="of" target="RFC8231"/> as the base) is
      updated as follows:</t>

      <artwork align="left" alt="" name="" type=""><![CDATA[
      <PCRpt Message> ::= <Common Header>
                          <state-report-list>
   Where:

      <state-report-list> ::= <state-report>[<state-report-list>]

      <state-report> ::= [<SRP>]
                         <LSP>
                         <path>
                         [<vendor-info-list>]
    Where:
      <vendor-info-list> ::= <VENDOR-INFORMATION>
                             [<vendor-info-list>]

      <path> is defined in [RFC8231].
]]></artwork>

      <t>A Path Computation LSP Update Request message (also referred to as
      PCUpd message) <xref format="default" section="6.2"
      sectionFormat="parens" target="RFC8231"/> is a PCEP message sent by a
      PCE to a PCC to update the attributes of an LSP. The Vendor Information
      object can be included in a PCUpd message to convey proprietary or
      vendor-specific information.</t>

      <t>The format of the PCUpd message (with <xref format="default"
      section="6.2" sectionFormat="of" target="RFC8231"/> as the base) is
      updated as follows:</t>

      <artwork align="left" alt="" name="" type=""><![CDATA[
      <PCUpd Message> ::= <Common Header>
                          <update-request-list>
   Where:

      <update-request-list> ::= <update-request>
                          [<update-request-list>]

      <update-request> ::= <SRP>
                           <LSP>
                           <path>
                           [<vendor-info-list>]
   Where:
      <vendor-info-list> ::= <VENDOR-INFORMATION>
                             [<vendor-info-list>]

      <path> is defined in [RFC8231].
]]></artwork>

      <t>A Path Computation LSP Initiate Message (also referred to as
      PCInitiate message) <xref format="default" section="5.1"
      sectionFormat="parens" target="RFC8281"/> is a PCEP message sent by a
      PCE to a PCC to trigger an LSP instantiation or deletion. The Vendor
      Information object can be included in a PCInitiate message to convey
      proprietary or vendor-specific information.</t>

      <t>The format of the PCInitiate message (with <xref format="default"
      section="5.1" sectionFormat="of" target="RFC8281"/> as the base) is
      updated as follows:</t>

      <artwork align="left" alt="" name="" type=""><![CDATA[

     <PCInitiate Message> ::= <Common Header>
                              <PCE-initiated-lsp-list>
  Where:

     <PCE-initiated-lsp-list> ::= <PCE-initiated-lsp-request>
                                  [<PCE-initiated-lsp-list>]

     <PCE-initiated-lsp-request> ::=
                          (<PCE-initiated-lsp-instantiation>|
                           <PCE-initiated-lsp-deletion>)

     <PCE-initiated-lsp-instantiation> ::= <SRP>
                                           <LSP>
                                           [<END-POINTS>]
                                           <ERO>
                                           [<attribute-list>]
                                           [<vendor-info-list>]

     Where:

     <vendor-info-list> ::= <VENDOR-INFORMATION>
                            [<vendor-info-list>]

     <PCE-initiated-lsp-deletion> and <attribute-list> is as per
     [RFC8281].
]]></artwork>

      <t>A legacy implementation that does not recognize the Vendor
      Information object will act according to the procedures set out in <xref
      format="default" target="RFC8231"/> and <xref format="default"
      target="RFC8281"/>. An implementation that supports the Vendor
      Information object, but receives one carrying an Enterprise Number that
      it does not support, MUST ignore the object in the same way as described
      in <xref format="default" section="2" sectionFormat="of"
      target="RFC7470"/>.</t>
    </section>

    <section anchor="TLV" numbered="true" toc="default">
      <name>Procedures for the Vendor Information TLV</name>

      <t>The Vendor Information TLV can be used to carry vendor-specific
      information that applies to a specific PCEP object by including the TLV
      in the object. This includes objects used in Stateful PCE extensions
      such as Stateful PCE Request Parameter (SRP) and LSP objects. All the
      procedures are as per section 3 of <xref format="default"
      target="RFC7470"/>.</t>
    </section>

    <section numbered="true" toc="default">
      <name>Manageability Considerations</name>

      <t>All manageability requirements and considerations listed in <xref
      format="default" target="RFC5440"/>, <xref format="default"
      target="RFC7470"/>, <xref format="default" target="RFC8231"/>, and <xref
      format="default" target="RFC8281"/> apply to PCEP protocol extensions
      defined in this document. In addition, the requirements and
      considerations listed in this section apply.</t>

      <section numbered="true" toc="default">
        <name>Control of Function and Policy</name>

        <t>The requirements for control of function and policy for
        vendor-specific information as set out in [RFC7470] continue to apply
        to Stateful PCEP extensions specified in this document.</t>
      </section>

      <section numbered="true" toc="default">
        <name>Information and Data Models</name>

        <t>The PCEP YANG module is specified in <xref format="default"
        target="I-D.ietf-pce-pcep-yang"/>. Any standard YANG module will not
        include details of vendor-specific information.</t>
      </section>

      <section numbered="true" toc="default">
        <name>Liveness Detection and Monitoring</name>

        <t>Mechanisms defined in this document do not imply any new liveness
        detection and monitoring requirements in addition to those already
        listed in <xref format="default" target="RFC5440"/>.</t>
      </section>

      <section numbered="true" toc="default">
        <name>Verifying Correct Operations</name>

        <t>Mechanisms defined in this document do not imply any new operation
        verification requirements in addition to those already listed in <xref
        format="default" target="RFC5440"/> and <xref format="default"
        target="RFC8231"/>.</t>
      </section>

      <section numbered="true" toc="default">
        <name>Requirements On Other Protocols</name>

        <t>Mechanisms defined in this document do not imply any new
        requirements on other protocols.</t>
      </section>

      <section numbered="true" toc="default">
        <name>Impact On Network Operations</name>

        <t>Mechanisms defined in <xref format="default" target="RFC5440"/> and
        <xref format="default" target="RFC8231"/> also apply to PCEP
        extensions defined in this document.</t>

        <t>Section 6.6 of <xref format="default" target="RFC7470"/> highlights
        how the presence of additional vendor-specific information in PCEP
        messages may congest the operations and how to detect and handle it.
        This also applies to stateful PCEP messages as outlined in Section 2.
        Specifically, a PCEP speaker SHOULD NOT include vendor information in
        stateful PCEP message if it believes the recipient does not support
        that information.</t>

        <t>Encoding optimization for the Vendor Information Object, for
        example, in case of the object with the same content encoded for
        multiple LSPs, is considered out of the scope of this document and may
        be proposed in the future as a separate document applicable to other
        PCEP objects.</t>
      </section>
    </section>

    <section anchor="IANA" numbered="true" toc="default">
      <name>IANA Considerations</name>

      <t>There are no IANA actions in this document, only a clarification.
      <xref format="default" target="RFC7470"/> defines the Enterprise Numbers
      allocated by IANA and managed through an IANA registry <xref
      format="default" target="RFC2578"/>. This document clarifies the Private
      Enterprise Numbers (PEN) as described in the IANA registry. The
      registration procedures and the registry location are described by <xref
      format="default" target="RFC9371"/>.</t>
    </section>

    <section anchor="imps" numbered="true" toc="default">
      <name>Implementation Status</name>

      <t>[NOTE TO RFC EDITOR : This whole section and the reference to RFC
      7942 is to be removed before publication as an RFC]</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
      format="default" 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 format="default" 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 numbered="true" toc="default">
        <name>Cisco Systems</name>

        <ul spacing="normal">
          <li>Organization: Cisco Systems, Inc.</li>

          <li>Implementation: Cisco IOS-XR PCE and PCC</li>

          <li>Description: Vendor Information Object used in PCRpt, PCUpd and
          PCInitiate messages.</li>

          <li>Maturity Level: Production</li>

          <li>Coverage: Full</li>

          <li>Contact: ssidor@cisco.com</li>
        </ul>
      </section>
    </section>

    <section anchor="Security" numbered="true" toc="default">
      <name>Security Considerations</name>

      <t>The protocol extensions defined in this document do not change the
      nature of PCEP. Therefore, the security considerations set out in <xref
      format="default" target="RFC5440"/>, <xref format="default"
      target="RFC7470"/>, <xref format="default" target="RFC8231"/> and <xref
      format="default" target="RFC8281"/> apply unchanged.</t>

      <t>As per <xref format="default" target="RFC8231"/> it is RECOMMENDED
      that these PCEP extensions only be activated on authenticated and
      encrypted sessions across PCEs and PCCs using Transport Layer Security
      (TLS) <xref format="default" target="RFC8253"/>, as per the
      recommendations and best current practices in RFC 9325 <xref
      derivedContent="BCP195" format="default" target="BCP195"/> (unless
      explicitly set aside in <xref format="default" target="RFC8253"/>).</t>

      <t>The use of vendor-specific information as defined in <xref
      format="default" target="RFC7470"/> and in this document may provide a
      covert channel that could be misused by PCEP speaker implementations or
      by malign software at PCEP speakers. While there is limited protection
      against this, an operator monitoring the PCEP sessions can detect the
      use of vendor-specific information, be aware of the decoding mechanism
      for this data, and inspect it accordingly. It is crucial for the
      operator to remain vigilant and monitor for any potential misuse of this
      object.</t>
    </section>

    <section anchor="Acknowledgments" numbered="true" toc="default">
      <name>Acknowledgments</name>

      <t>Thanks to Adrian Farrel, Avantika, Mahendra Singh Negi, Udayasree
      Palle, and Swapna K for their suggestions.</t>
    </section>
  </middle>

  <back>
    <references>
      <name>References</name>

      <references>
        <name>Normative References</name>

        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"
                    xmlns:xi="http://www.w3.org/2001/XInclude"/>

        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"
                    xmlns:xi="http://www.w3.org/2001/XInclude"/>

        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5440.xml"
                    xmlns:xi="http://www.w3.org/2001/XInclude"/>

        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5511.xml"
                    xmlns:xi="http://www.w3.org/2001/XInclude"/>

        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7470.xml"
                    xmlns:xi="http://www.w3.org/2001/XInclude"/>

        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8231.xml"
                    xmlns:xi="http://www.w3.org/2001/XInclude"/>

        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8281.xml"
                    xmlns:xi="http://www.w3.org/2001/XInclude"/>

        <xi:include href="https://bib.ietf.org/public/rfc/bibxml9/reference.BCP.0195.xml"
                    xmlns:xi="http://www.w3.org/2001/XInclude"/>
      </references>

      <references>
        <name>Informative References</name>

        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2578.xml"
                    xmlns:xi="http://www.w3.org/2001/XInclude"/>

        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9371.xml"
                    xmlns:xi="http://www.w3.org/2001/XInclude"/>

        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7942.xml"
                    xmlns:xi="http://www.w3.org/2001/XInclude"/>

        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8051.xml"
                    xmlns:xi="http://www.w3.org/2001/XInclude"/>

        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8253.xml"
                    xmlns:xi="http://www.w3.org/2001/XInclude"/>

        <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-pce-pcep-yang.xml"
                    xmlns:xi="http://www.w3.org/2001/XInclude"/>
      </references>
    </references>

    <section numbered="true" toc="default">
      <name>Contributor Addresses</name>

      <artwork align="left" alt="" name="" type=""><![CDATA[
Dhruv Dhody
Huawei
India

EMail: dhruv.ietf@gmail.com

Mike Koldychev
Ciena

EMail: mkoldych@proton.me
        ]]></artwork>
    </section>
  </back>
</rfc>
