<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?rfc toc="yes" ?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="4"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc rfcedstyle="yes"?>
<?rfc subcompact="no"?>
<?rfc compact="yes" ?>
<?rfc iprnotified="Yes" ?>
<?rfc strict="no" ?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" category="std" docName="draft-ietf-pce-pcep-extension-pce-controller-p2mp-01" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="false" version="3">
  <!-- xml2rfc v2v3 conversion 3.9.0 -->
  <front>
    <title abbrev="PCECC-P2MP"> PCE Communication Protocol (PCEP) Extensions for Using the PCE as a Central Controller (PCECC) of point-to-multipoint (P2MP) LSPs</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-pce-pcep-extension-pce-controller-p2mp-01"/>
    <author initials="Z" surname="Li" fullname="Zhenbin Li">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <street>Huawei Bld., No.156 Beiqing Rd.</street>
          <city>Beijing  </city>
          <region/>
          <code>100095</code>
          <country>China</country>
        </postal>
        <email>robinli314@163.com</email>
      </address>
    </author>
    <author initials="S" surname="Peng" fullname="Shuping Peng">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <street>Huawei Bld., No.156 Beiqing Rd.</street>
          <city>Beijing</city>
          <region/>
          <code>100095</code>
          <country>China</country>
        </postal>
        <email>pengshuping@huawei.com</email>
      </address>
    </author>
    <author initials="X" surname="Geng" fullname="Xuesong Geng">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <street/>
          <city/>
          <region/>
          <code/>
          <country>China</country>
        </postal>
        <email>gengxuesong@huawei.com</email>
      </address>
    </author>
    <author initials="M" surname="Negi" fullname="Mahendra Singh Negi">
      <organization>RtBrick Inc</organization>
      <address>
        <postal>
          <street>N-17L, 18th Cross Rd, HSR Layout</street>
          <city>Bangalore</city>
          <region>Karnataka</region>
          <code>560102</code>
          <country>India</country>
        </postal>
        <email>mahend.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2026"/>
    <area>Routing</area>
    <workgroup>PCE Working Group</workgroup>
    <abstract>
      <t>The PCE is a core component of Software-Defined Networking (SDN) systems.</t>
      <t>The PCE has been identified as an
   appropriate technology for the determination of the paths of point-to-multipoint (P2MP) TE Label Switched Paths (LSPs).</t>
      <t>A PCE-based Central Controller (PCECC) can
   simplify the processing of a distributed control plane by blending it
   with elements of SDN and without necessarily completely replacing it.
   Thus, the P2MP LSP can be
   calculated/set up/initiated, and the label-forwarding entries can also be
   downloaded through a centralized PCE server to each network device
   along the P2MP path while leveraging the existing PCE technologies as
   much as possible.</t>
      <t>This document specifies the procedures and PCE
   Communication Protocol (PCEP) extensions for
   using the PCE as the central controller for provisioning labels along the path of the static P2MP LSP.
      </t>

    </abstract>
  </front>
  <middle>
    <section toc="default" numbered="true">
      <name>Introduction</name>
      <t>The PCE <xref target="RFC4655" format="default"/> was developed to offload
   the path computation function from routers in an MPLS traffic-engineered (TE)
   network.   It can compute optimal paths for traffic
   across a network and can also update the paths to reflect changes in
   the network or traffic demands. Since then, the role and function of the PCE have grown to
   cover a number of other uses (such as GMPLS <xref target="RFC7025" format="default"/>) and to allow
   delegated control <xref target="RFC8231" format="default"/> and PCE-initiated use of network
   resources <xref target="RFC8281" format="default"/>.</t>
      <t>According to <xref target="RFC7399" format="default"/>, Software-Defined Networking (SDN) refers to a
   separation between the control elements and the forwarding components
   so that software running in a centralized system, called a
   controller, can act to program the devices in the network to behave
   in specific ways.  A required element in an SDN architecture is a
   component that plans how the network resources will be used and how
   the devices will be programmed.  It is possible to view this
   component as performing specific computations to place traffic flows
   within the network given knowledge of the availability of the network
   resources, how other forwarding devices are programmed, and the way
   that other flows are routed.  This is the function and purpose of a
   PCE, and the way that a PCE integrates into a wider network control
   system (including an SDN system) is presented in <xref target="RFC7491" format="default"/>.</t>
      <t>In early PCE implementations, where the PCE was used to derive paths
   for MPLS Label Switched Paths (LSPs), paths were requested by the network
   elements (known as Path Computation Clients (PCCs)), and the results
   of the path computations were supplied to network elements using the
   PCE Communication Protocol (PCEP) <xref target="RFC5440" format="default"/>.
   This protocol was later extended to allow a PCE to send unsolicited
   requests to the network for LSP establishment <xref target="RFC8281" format="default"/>.</t>
      <t><xref target="RFC8283" format="default"/> introduces the architecture for PCE as a central
   controller as an extension of the architecture described in <xref target="RFC4655" format="default"/>
   and assumes the continued use of PCEP as the protocol used between
   PCE and PCC. <xref target="RFC8283" format="default"/>  further examines the motivations and applicability
   for PCEP as a Southbound Interface (SBI), and introduces the implications for the
   protocol.  </t>
      <t>A PCECC can
   simplify the processing of a distributed control plane by blending it
   with elements of SDN and without necessarily completely replacing it.
   Thus, the LSP can be
   calculated/set up/initiated, and the label-forwarding entries can also be
   downloaded through a centralized PCE server to each network device
   along the path while leveraging the existing PCE technologies as
   much as possible.</t>
      <t><xref target="RFC9050" format="default"/> specify the procedures and PCEP extensions for
   using the PCE as the central controller for static P2P LSPs, where
   LSPs can be provisioned as explicit label instructions at each
   hop on the end-to-end path.  Each router along the path must be
   told what label-forwarding instructions to program and what resources
   to reserve.  The PCE-based controller keeps a view of the network and
   determines the paths of the end-to-end LSPs, and the controller uses PCEP to
   communicate with each router along the path of the end-to-end LSP. </t>
      <t>
      <xref target="RFC4857" format="default"/> describes how to set up
      point-to-multipoint (P2MP) Traffic Engineering Label Switched
      Paths (TE LSPs) for use in Multiprotocol Label Switching
      (MPLS) and Generalized MPLS (GMPLS) networks. The PCE has
      been identified as a suitable application for the computation
      of paths for P2MP TE LSPs (<xref target="RFC5671" format="default"/>).
      The extensions of PCEP to request
      path computation for P2MP TE LSPs are described in
      <xref target="RFC8306" format="default"/>. Further <xref target="RFC8623" format="default"/>
      specify the extensions that are necessary in
      order for the deployment of stateful PCEs to support P2MP TE
      LSPs as well as the setup, maintenance and
      teardown of PCE-initiated P2MP LSPs under the stateful PCE
      model.
      </t>
      <t>This document extends <xref target="RFC9050" format="default"/> to specify the procedures and PCEP extensions for
   using the PCE as the central controller for static P2MP LSPs, where
   LSPs can be provisioned as explicit label instructions at each
   hop on the end-to-end path with the added functionality of a P2MP branch node. As per <xref target="RFC4875" format="default"/>, a branch node is an LSR that replicates the incoming data on
   to one or more outgoing interfaces. <xref target="I-D.ietf-teas-pcecc-use-cases" format="default"/> describes the use cases for P2MP in
   PCECC architecture. </t>

      <!--<t>[Important Note - Note that this document achieves this by defining a new PCEP message.
    The authors and WG also debated on the use of existing PCEP messages.
    <xref target="Procedures"/> defines the first approach where as <xref target="appendix"/>
    defines the latter. The authors are open to either of the approach and
    will follow the direction of the WG.]</t>-->



    </section>
    <section toc="default" numbered="true">
      <name>Terminology</name>
      <t>Terminologies used in this document are the same as described in the draft
       <xref target="RFC8283" format="default"/>.</t>
      <section toc="default" numbered="true">
        <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 target="RFC2119" format="default"/> <xref target="RFC8174" format="default"/> when, and only when, they
      appear in all capitals, as shown here.</t>
      </section>
    </section>
    <section toc="default" anchor="SEC_M" numbered="true">
      <name>Basic PCECC Mode</name>
      <t>Section 3 of <xref target="RFC9050" format="default"/> describe the PCECC model of operation.</t>
      <!--<t>As described in <xref target="RFC9050"/>, in this mode LSPs are provisioned as explicit label instructions at each
   hop on the end-to-end path.  Each router along the path must be
   told what label-forwarding instructions to program and what resources
   to reserve.  The controller uses PCEP to communicate with each router
   along the path of the end-to-end LSP.</t>
   <t>As per Section 3.1.2 of <xref target="RFC8283"/>, the PCE-based controller will take responsibility for
   managing some part of the MPLS label space for each of the routers
   that it controls, and may taker wider responsibility for partitioning
   the label space for each router and allocating different parts for
   different uses. As per <xref target="RFC9050"/>, the PCC must not make allocations from the label space set aside for the PCE to avoid
     overlap and collisions of label allocations. This is also described in section 3.1.2. of
   <xref target='RFC8283'/>. For the purpose
   of this document, it is assumed that the label range to be used by a PCE
   is known and set on both PCEP peers. A future extension could add the capability to
   advertise the range via possible PCEP extensions as well (see <xref target="I-D.li-pce-controlled-id-space"/>).
   The rest of the processing is similar
   to the existing stateful PCE mechanism.</t>-->

  <t>This document extends the functionality to include support for central control instruction for replication at the branch nodes for the P2MP LSP.</t>
      <t>The rest of the processing at the root node is similar
   to the existing stateful PCE mechanism for P2MP <xref target="RFC8623" format="default"/>.</t>
    </section>
    <!--<section title="PCEP Requirements"
             toc="default"
             anchor="SEC_R">
   <t>Following key requirements associated PCECC should be considered when
   designing the PCECC based solution:</t>
      <t>
        <list style="numbers">
   <t>PCEP speaker supporting this draft MUST have the capability to
       advertise its PCECC capability to its peers.</t>

   <t>PCEP speaker not supporting this draft MUST be able to reject
       PCECC related extensions with a error reason code that indicates that this feature is not
       supported.</t>

   <t>PCEP speaker MUST provide a means to identify PCECC based LSP in the
       PCEP messages.</t>

   <t>PCEP procedures SHOULD provide a means to update (or cleanup) the label-
       download entry to the PCC.</t>

   <t>PCEP procedures SHOULD provide a means to synchronize the labels between
       PCE to PCC in PCEP messages.</t>

        </list>
      </t>
    </section>-->
    <section toc="default" anchor="Procedures" numbered="true">
      <name>Procedures for Using the PCE as a Central Controller (PCECC) for P2MP</name>
      <section toc="default" numbered="true">
        <name>Stateful PCE Model</name>
        <t>Active stateful PCE is described in <xref target="RFC8231" format="default"/> and extended for P2MP <xref target="RFC8623" format="default"/>. A PCE
    as a Central Controller (PCECC) reuses the existing active stateful PCE
    mechanism as much as possible to control the LSPs.</t>
        <t><xref target="RFC9050" format="default"/> extends PCEP messages - PCInitiate, PCRpt, and PCUpd message for the Central Controller's Instructions (CCI) (label-forwarding instructions in the context of this document). This document specifies the procedure for additional instruction for the branch node needed for P2MP.</t>
      </section>
      <section toc="default" numbered="true">
        <name>PCECC Capability Advertisement</name>
        <t>As per Section 5.4 of <xref target="RFC9050" format="default"/>, during the PCEP initialization phase, PCEP Speakers (PCE or PCC) advertise their support of and willingness to use PCEP extension for the PCECC using a new  Path Setup Type (PST) in PATH-SETUP-TYPE-CAPABILITY TLV and a new PCECC-CAPABILITY sub-TLV.</t>
        <t>A new M bit is added in the PCECC-CAPABILITY sub-TLV to indicate support for
   PCECC-P2MP.  A PCC MUST set the M bit in the PCECC-CAPABILITY sub-TLV and include
   STATEFUL-PCE-CAPABILITY TLV with the P2MP bits set (as per <xref target="RFC8623" format="default"/>) in the OPEN object
   to support the PCECC P2MP extensions defined in this document.</t>
        <t>If the M bit is set in PCECC-CAPABILITY sub-TLV and the STATEFUL-PCE-CAPABILITY TLV is not advertised or is advertised without the N bit set, in the OPEN object, the receiver MUST:
        </t>
        <ul spacing="normal">
          <li>send a PCErr message with Error-Type=19 (Invalid Operation) and
      Error-value=TBD2 (P2MP capability was not advertised) and</li>
          <li>terminate the session.</li>
        </ul>
        <t>The rest of the processing is as per <xref target="RFC9050" format="default"/>.</t>
      </section>
      <section toc="default" numbered="true">
        <name>LSP Operations</name>
        <t> The PCEP messages pertaining to a PCECC include the PATH-SETUP-TYPE
   TLV <xref target="RFC8408" format="default"/> in the SRP object <xref target="RFC8231" format="default"/> with the PST set to '2' to clearly identify the PCECC LSP is intended as per <xref target="RFC9050" format="default"/>.</t>

        <section toc="default" anchor="PCE-I" numbered="true">
          <name>PCE-Initiated PCECC LSP</name>
          <t>The LSP instantiation operation is the same as defined in <xref target="RFC8281" format="default"/> and <xref target="RFC8623" format="default"/>.</t>
          <t>In order to set up a PCE-Initiated P2MP LSP based on the PCECC mechanism, a PCE
    sends a PCInitiate message with the PST set to '2' for the PCECC
    (<xref target="RFC9050" format="default"/>) to the ingress PCC (root node).</t>
          <t>As described in <xref target="RFC9050" format="default"/>, the label-forwarding instructions from PCECC are sent after the initial PCInitiate and PCRpt exchange. This is done so that the PCEP-specific identifier for the LSP (PLSP-ID) and other LSP identifiers can be obtained from the ingress and can be included in the label-forwarding instruction in the next set of PCInitiate messages along the path. </t>
          <t>An P2MP-LSP-IDENTIFIER TLV <xref target="RFC8623" format="default"/> MUST be included for the PCECC P2MP LSPs, it uniquely identifies the P2MP LSP in the network. As per <xref target="RFC9050" format="default"/>, the LSP object is included in the central controller's instructions (label download) to identify the PCECC P2MP LSP for this instruction. The handling of PLSP-ID is as per <xref target="RFC9050" format="default"/>. </t>
          <t>The ingress PCC (root) also sets the D (Delegate) flag (see
    <xref target="RFC8231" format="default"/>) and C (Create) flag
    (see <xref target="RFC8281" format="default"/>) in the LSP object of
    the PCRpt message. As per <xref target="RFC9050" format="default"/>, when the PCE receives this PCRpt message with the PLSP-ID, it assigns labels along the path and sets up the path by sending a PCInitiate message to each node along the path of the P2MP Tree as per the PCECC technique. The CC-ID uniquely identifies the central controller instruction within a PCEP session. Each node along the path (PCC) responds with the PCRpt messages to acknowledge the CCI with the PCRpt messages, including the CCI and the LSP objects. The only new extension required is the instructions on the branch nodes for replications to more than one outgoing interface with the respective label. The rest of the operations remains the same as <xref target="RFC9050" format="default"/> and <xref target="RFC8623" format="default"/>.</t>
        </section>
        <section toc="default" anchor="SEC_BASIC_SETUP" numbered="true">
          <name>PCC-Initiated PCECC LSP</name>
          <t>In order to set up a P2MP LSP based on the PCECC mechanism where the LSP is configured at the PCC, a PCC MUST delegate the P2MP LSP by
    sending a PCRpt message with the PST set for the PCECC and D (Delegate)
    flag (see <xref target="RFC8623" format="default"/>) set in the LSP object.</t>
          <t>When a PCE receives the initial PCRpt message with the D flags and PST Type set to '2', it SHOULD calculate the P2MP tree and assign labels along the P2MP tree in addition to setting up the P2MP LSP by sending a PCInitiate message to each node
   along the path of the P2MP LSP as per <xref target="RFC9050" format="default"/>. The only new extension required is the instructions on the branch nodes for replications to more than one outgoing interface with the respective label. The rest of the operations remains the same as <xref target="RFC9050" format="default"/> and <xref target="RFC8623" format="default"/>.</t>
        </section>
        <section toc="default" numbered="true">
          <name>Central Control Instructions</name>
          <t>The CCI for the label operations in PCEP is done via the PCInitiate message as described in <xref target="RFC9050" format="default"/>, by
   defining a PCEP Objects for CCI operations. The local label range of
   each PCC is assumed to be known by both the PCC and the PCE. </t>

          <section toc="default" numbered="true">
            <name>Label Download CCI</name>
            <t>In order to set up an LSP based on the PCECC, the PCE sends a PCInitiate message
    to each node along the path to download the label instructions, as described in <xref target="PCE-I" format="default"/> and <xref target="SEC_BASIC_SETUP" format="default"/>.
            </t>
            <t>The CCI object MUST be included, along with the LSP object in the PCInitiate message. As per <xref target="RFC9050" format="default"/>, there are 2 instances of CCI object in the PCInitiate message in a transit node for the P2P LSP. For PCECC-P2MP operations, multiple instances of CCI objects for out-labels are allowed at the branch node. Similarly, to acknowledge the central controller instructions, the PCRpt message allows multiple instances of CCI object for PCECC-P2MP operations.</t>
            <t>The P2MP-LSP-IDENTIFIERS TLV MUST be included in the LSP object for the PCECC-based P2MP LSP. The SPEAKER-ENTITY-ID TLV
SHOULD be included in LSP object.</t>
            <t>As described in <xref target="RFC9050" format="default"/>, if a node (PCC) receives a PCInitiate message that includes a label to download (as part of CCI) that is out
        of the range set aside for the PCE, it sends a PCErr message with Error-type=3
   (PCECC failure) and Error-value=1 (Label out of range) (<xref target="RFC9050" format="default"/>).
    If a PCC receives a PCInitiate message but fails to download
   the label entry, it sends a PCErr message with Error-type=3
   (PCECC failure) and Error-value=2 (Instruction failed) (<xref target="RFC9050" format="default"/>).</t>
            <t>Consider the example in the Section 3.6.1 of <xref target="I-D.ietf-teas-pcecc-use-cases" format="default"/> - </t>
            <artwork name="" type="" align="left" alt=""><![CDATA[
                       +----------+
                       |    R1    | Root node of the multicast LSP
                       +----------+
                           |9000 (L0)
                       +----------+
        Transit Node   |    R2    |
        branch         +----------+
                       *  |   *  *
                  9001*   |   *   *9002
                  L1 *    |   *    *L2
        +-----------+     |   *     +-----------+
        |    R4     |     |   *     |    R5     | Transit Nodes
        +-----------+     |   *     +-----------+
                   *      |   *      *     +
                9003*     |   *     *      +9004
                L3   *    |   *    *       +L4
                     +-----------+  +-----------+
                     |    R3     |  |    R6     | Leaf Node
                     +-----------+  +-----------+
                      9005| L5
                     +-----------+
                     |    R8     | Leaf Node
                     +-----------+

]]></artwork>
            <t>PCECC would provision each node along the path and assign incoming and outgoing labels from R1 to {R6, R8} with the path as "R1-L0-R2-L2-R5-L4-R6" and "R1-L0-R2-L1-R4-L3-R3-L5-R8":</t>

      <ul spacing="normal">
   <li>R1: Outgoing label 9000 on link L0</li>
   <li>R2: Incoming label 9000 on link L0</li>
   <li>R2: Outgoing label 9001 on link L1 (*)</li>
   <li>R2: Outgoing label 9002 on link L2 (*)</li>
   <li>R5: Incoming label 9002 on link L2</li>
   <li>R5: Outgoing label 9004 on link L4</li>
   <li>R6: Incoming label 9004 on link L4</li>
   <li>R4: Incoming label 9001 on link L1</li>
   <li>R4: Outgoing label 9003 on link L3</li>
   <li>R3: Incoming label 9003 on link L3</li>
   <li>R3: Outgoing label 9005 on link L5</li>
   <li>R8: Incoming label 9005 on link L5</li>
   </ul>

   <t>This can also be represented as
   : {R1, 6000}, {6000, R2, {9001,9002}}, {9001, R4, 9003}, {9002, R5, 9004} {9003, R3, 9005}, {9004, R6}, {9005, R8}. The main difference (*)
   is in the branch node instruction at R2 where two copies of packet are sent towards R4 and R5 with 9001 and 9002 labels respectively.</t>




            <t>The operations on all nodes except R2 are same as <xref target="RFC9050" format="default"/>. The branch node (R2) needs to be instructed to replicate two copies of the incoming packet, and send it towards R4 and R5 with 9001 and 9002 labels respectively). This is done via including 3 instances of CCI objects in the PCEP messages, one for each label in the example, 9000 for incoming and 9001/9002 for outgoing (along with remote nexthop). The message and procedure remain exactly as <xref target="RFC9050" format="default"/> with only the distinction that more than one outgoing CCI MAY be present for the P2MP LSP.</t>
          </section>
          <section toc="default" anchor="SEC_CLEANUP" numbered="true">
            <name>Label Cleanup CCI</name>
            <t>In order to delete a P2MP LSP based on the PCECC, the PCE sends a Central Controller Instructions via a PCInitiate
    message to each node along the path of the P2MP tree to clean up the label-forwarding instruction as per <xref target="RFC9050" format="default"/>. In the case of branch nodes, all instances of CCIs needs to be present in the PCEP message.</t>
          </section>
        </section>
        <section toc="default" numbered="true">
          <name>PCECC LSP Update</name>
          <t>In case of a modification of PCECC P2MP LSP with a new path, the procedure, and instructions as described in <xref target="RFC9050" format="default"/> apply. </t>
        </section>
        <section toc="default" numbered="true">
          <name>Re-delegation and Cleanup</name>
          <t>In case of a re-delegation and clean up of PCECC P2MP LSP, the procedure, and instructions as described in <xref target="RFC9050" format="default"/> apply. </t>
        </section>
        <section toc="default" anchor="sec_label_db_sync" numbered="true">
          <name>Synchronization of Central Controllers Instructions</name>
          <t>The procedure and instructions are as per <xref target="RFC9050" format="default"/>. </t>
        </section>
        <section toc="default" numbered="true">
          <name>PCECC LSP State Report</name>
          <t>An ingress PCC MAY choose to apply any Operations, Administration, and Maintenance (OAM) mechanism to check the status
    of the LSP in the data plane and MAY further send its status in the PCRpt message (as per <xref target="RFC8623" format="default"/>) to the PCE. </t>
        </section>
        <section toc="default" anchor="PCC" numbered="true">
          <name>PCC-Based Allocations</name>
          <t>
             The PCE can request the PCC to allocate the label using the
     PCInitiate message.  The procedure and instructions are as per Section 5.5.8 of <xref target="RFC9050" format="default"/>. </t>
        </section>
      </section>
    </section>
    <section toc="default" numbered="true">
      <name>PCEP Messages</name>
      <t><xref target="RFC9050" format="default"/> specify the extension to PCInitiate and PCRpt message for PCECC. For P2P LSP, only two instances of CCI objects can be included. In the case of the P2MP LSP, multiple CCI objects are allowed. The message format and other procedures continue to apply.  </t>
    </section>
    <section toc="default" numbered="true">
      <name>PCEP Objects</name>
      <section toc="default" numbered="true">
        <name>OPEN Object</name>
        <section toc="default" anchor="SEC_PCECC_CAP_TLV" numbered="true">
          <name>PCECC Capability sub-TLV</name>
          <t>The PCECC-CAPABILITY sub-TLV is an optional TLV for use in the OPEN Object
    for PCECC capability advertisement in PATH-SETUP-TYPE-CAPABILITY TLV as specified in <xref target="RFC9050" format="default"/>. </t>
          <t>This document adds a new flag (M Bit) in the PCECC-CAPABILITY sub-TLV to indicate the support for P2MP in PCECC. </t>
          <t>M (PCECC-P2MP-CAPABILITY - 1 bit - TBD1):  If set to 1 by a PCEP speaker, it
      indicates that the PCEP speaker is capable of PCECC-P2MP capability.</t>
          <t>A PCC MUST set the M Bit in the PCECC-CAPABILITY sub-TLV and
    set the N (P2MP-CAPABILITY), the M (P2MP-LSP-UPDATE-CAPABILITY), and the P (P2MP-LSP-INSTANTIATION-CAPABILITY) bits (as per <xref target="RFC8623" format="default"/>) in the STATEFUL-PCE-CAPABILITY TLV <xref target="RFC8231" format="default"/>
   to support the PCECC-P2MP extensions defined in this document.  If
   the M Bit is set in the PCECC-CAPABILITY sub-TLV, and the P2MP bits (in the STATEFUL-PCE-CAPABILITY TLV) are not set
   in the OPEN Object, a PCEP speaker SHOULD send a PCErr message with
   Error-Type=19 (Invalid Operation) and Error-value=TBD2 (P2MP capability
   was not advertised) and terminate the session.</t>
        </section>
      </section>
      <section toc="default" anchor="SEC_PATH" numbered="true">
        <name>PATH-SETUP-TYPE TLV</name>
        <t>The PATH-SETUP-TYPE TLV is defined in <xref target="RFC8408" format="default"/>;
      <xref target="RFC9050" format="default"/> defines a PST value for PCECC as '2', which is applicable for P2MP LSP as well.
        </t>
      </section>
      <section toc="default" anchor="SEC_CCI" numbered="true">
        <name>CCI Object</name>
        <t>The CCI object <xref target="RFC9050" format="default"/> is used by the PCE to specify the forwarding instructions (label information in the context of this document) to the PCC, and
    optionally carried within PCInitiate or PCRpt message for label download/report. The CCI Object Type 1 for MPLS Label is defined in <xref target="RFC9050" format="default"/>, which is used for the P2MP LSPs as well. The address TLVs are defined in <xref target="RFC9050" format="default"/>, they associate the next-hop information in case of an outgoing label. </t>
        <t>If a node (PCC) receives a PCInitiate message with more than one CCI with O-bit set for the outgoing label and the node does not support the P2MP branch/replication capability, it MUST
    respond with PCErr message with Error-Type=2 (Capability not supported) (defined in <xref target="RFC5440" format="default"/>).</t>
        <t>The rest of the processing is same as <xref target="RFC9050" format="default"/>.</t>
      </section>
    </section>
	
	
	<section anchor='Imp'><name>Implementation Status</name>
<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>
	 
	 
	 <t>Currently, there are no known implementations of the extensions as specified. </t>
	 
</section>
	
	
    <section toc="default" numbered="true">
      <name>Security Considerations</name>
      <t>As per <xref target="RFC8283" format="default"/>, the security considerations for a PCE-based controller are a little
   different from those for any other PCE system.  That is, the
   operation relies heavily on the use and security of PCEP, so
   consideration should be given to the security features discussed in
   <xref target="RFC5440" format="default"/> and the additional mechanisms described in <xref target="RFC8253" format="default"/>. It further lists the vulnerability of a central controller architecture, such as a central
   point of failure, denial of service, and a focus for
   interception and modification of messages sent to individual Network Elements (NEs).</t>
      <t>The security considerations described in <xref target="RFC8231" format="default"/>,
       <xref target="RFC8281" format="default"/>, <xref target="RFC8623" format="default"/>, and <xref target="RFC9050" format="default"/> apply to the extensions described in
       this document. </t>
      <t>As per <xref target="RFC8231" format="default"/>, it is RECOMMENDED that these PCEP extensions only be activated on authenticated and encrypted sessions across PCEs and PCCs belonging to the same administrative authority, using Transport Layer Security (TLS) <xref target="RFC8253" format="default"/> as per the recommendations and best current practices in <xref target="RFC9325" format="default"/> (unless explicitly set aside in <xref target="RFC8253" format="default"/>).</t>
    </section>
    <section toc="default" numbered="true">
      <name>Manageability Considerations</name>
      <section toc="default" numbered="true">
        <name>Control of Function and Policy</name>
        <t> A PCE or PCC implementation SHOULD allow to configure to
   enable/disable PCECC-P2MP capability as a global configuration.</t>
      </section>
      <section toc="default" numbered="true">
        <name>Information and Data Models</name>
        <t><xref target="RFC7420" format="default"/> describes the PCEP MIB, this MIB can be extended to get the
           PCECC capability status.</t>
        <t>The PCEP YANG module <xref target="I-D.ietf-pce-pcep-yang" format="default"/> could be extended
           to enable/disable PCECC-P2MP capability.</t>
      </section>
      <section toc="default" numbered="true">
        <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 target="RFC5440" format="default"/>.</t>
      </section>
      <section toc="default" numbered="true">
        <name>Verify 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 target="RFC5440" format="default"/> and <xref target="RFC8231" format="default"/>.</t>
      </section>
      <section toc="default" numbered="true">
        <name>Requirements On Other Protocols</name>
        <t>PCEP extensions defined in this document do not put new requirements
   on other protocols.</t>
      </section>
      <section toc="default" numbered="true">
        <name>Impact On Network Operations</name>
        <t>PCEP extensions defined in this document do not put new requirements
   on network operations.</t>
      </section>
    </section>
    <section toc="default" numbered="true">
      <name>IANA Considerations</name>
      <section toc="default" numbered="true">
        <name>PCECC-CAPABILITY sub-TLV</name>
        <t><xref target="RFC9050" format="default"/> defines the
      PCECC-CAPABILITY sub-TLV and requests that IANA create a registry to
      manage the value of the PCECC-CAPABILITY sub-TLV's Flag field.  IANA
      is requested to allocate a new bit in the PCECC-CAPABILITY sub-TLV Flag
      Field registry, as follows:</t>
        <table anchor="CAP-TLV" align="center">
          <name>PCECC-CAPABILITY sub-TLV's Flag field</name>
          <thead>
            <tr>
              <th align="left">Bit</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBD1</td>
              <td align="left">P2MP</td>
              <td align="left">This document</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section toc="default" numbered="true">
        <name>PCEP-Error Object</name>
        <t>IANA is requested to allocate a new error value within
         the "PCEP-ERROR Object Error Types and Values" sub-registry of the
         PCEP Numbers registry for the following errors:





        </t>
          <table anchor="error" align="center">
          <name>PCEP-ERROR Object Error Types and Values</name>
          <thead>
            <tr>
              <th align="left">Error-Type</th>
              <th align="left">Meaning</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">19</td>
              <td align="left">Invalid operation</td>
              <td align="left"></td>
            </tr>
                        <tr>
              <td align="left"></td>
              <td align="left">Error-value = TBD2: P2MP capability was not advertised</td>
              <td align="left">This document</td>
            </tr>
          </tbody>
        </table>

      </section>
    </section>
    <!--<section toc="default" numbered="true">
      <name>Acknowledgments</name>
    </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"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5440.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8231.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8253.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8281.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8623.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9050.xml"/>
		<xi:include href='https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7942.xml'/>
      </references>
      <references>
        <name>Informative References</name>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4655.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4857.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4875.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5671.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7025.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7399.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7420.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7491.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9325.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8283.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8306.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8408.xml"/>
        <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-teas-pcecc-use-cases.xml"/>
        <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-pce-pcep-yang.xml"/>
        <!--<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-li-pce-controlled-id-space.xml"/>-->
      </references>
    </references>
    <section toc="default" numbered="true">
      <name>Contributor Addresses</name>
      <artwork name="" type="" align="left" alt=""><![CDATA[
Dhruv Dhody
Huawei
India

EMail: dhruv.ietf@gmail.com

Udayasree Palle

EMail: udayasreereddy@gmail.com

        ]]></artwork>
    </section>
  </back>
</rfc>
