<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<?rfc strict="yes" ?>
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<rfc category="std" docName="draft-ietf-pce-sr-p2mp-policy-20"
     ipr="trust200902">
  <front>
    <title abbrev="PCEP SR P2MP Policy">PCEP extensions for SR P2MP
    Policy</title>

    <author fullname="Hooman Bidgoli" initials="H." role="editor"
            surname="Bidgoli">
      <organization>Nokia</organization>

      <address>
        <postal>
          <street/>

          <city>Ottawa</city>

          <region/>

          <code/>

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

        <phone/>

        <email>hooman.bidgoli@nokia.com</email>
      </address>
    </author>

    <author fullname="Daniel Voyer" initials="D." surname="Voyer">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street/>

          <city>Montreal</city>

          <region/>

          <code/>

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

        <phone/>

        <facsimile/>

        <email>davoyer@cisco.com</email>

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

    <author fullname="Anuj Budhiraja" initials="A." surname="Budhiraja">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street/>

          <city>San Jose</city>

          <region/>

          <code/>

          <country>USA</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>abudhira@cisco.com</email>

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

    <author fullname="Rishabh Parekh" initials="R." surname="Parekh">
      <organization>Arrcus</organization>

      <address>
        <postal>
          <street/>

          <city>San Jose</city>

          <region/>

          <code/>

          <country>USA</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>rishabh@arrcus.com</email>

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

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

      <address>
        <postal>
          <street/>

          <city>Ottawa</city>

          <region/>

          <code/>

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

        <phone/>

        <facsimile/>

        <email>ssivabal@ciena.com</email>

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

    <date day="03" month="September" year="2026"/>

    <abstract>
      <t>Segment Routing (SR) Point-to-Multipoint (P2MP) Policies are a set of
      policies that enable an architecture for P2MP service delivery. This
      document specifies extensions to the Path Computation Element
      Communication Protocol (PCEP) that allow a stateful PCE to compute and
      initiate P2MP paths for SR-MPLS from a Root to a set of Leaf nodes.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <!-- 1 -->

      <t>The document <xref target="RFC9960"/> defines a variant of the SR
      Policy called SR Point-to-Multipoint (P2MP) Policy for creation of P2MP
      trees.</t>

      <t>An SR P2MP Policy is constructed using one or more Replication
      segments (<xref target="RFC9524"/>) from a Root node to a set of Leaf
      nodes, optionally through a set of intermediate transit nodes that
      perform replication.</t>

      <t>An SR P2MP Policy is installed only on the Root node of a P2MP tree
      and consists of one or more Candidate Paths (CP). Each CP is made up of
      P2MP Tree Instances (PTI), and each PTI is constructed in the network
      via Replication segments.</t>

      <t>A Replication segment <xref target="RFC9524"/> corresponds to the
      forwarding state of a P2MP segment on a particular node and provides
      forwarding instructions for the segment.</t>

      <t>As per <xref target="RFC9960"/>, a P2MP service can be realized by
      two types of deployment, Ingress Replication spanning from the ingress
      node to the egress nodes of the service or a P2MP tree which spans from
      a Root node to a set of Leaf nodes via transit Replication nodes.</t>

      <t>For Ingress Replication <xref target="RFC7988"/>, dataplane packet
      replication only occurs on the Root, which forwards individual copies of
      traffic to each Leaf directly over a Segment Routing path. The
      corresponding SR P2MP Policy consists of Replication segments only for
      the Root node and the Leaf nodes.</t>

      <t>A P2MP service delivery can be more efficient using a P2MP Tree. In
      this case, the corresponding SR P2MP Policy consists of Replication
      segments on the Root, Leaf, and Transit nodes which exist in the
      topology between the Root and Leaf nodes. The Root and Transit nodes
      perform dataplane packet replication along the tree as a packet
      traverses from the root towards each leaf.</t>

      <t>The PCE discovers the root and the leaves via different methods. As
      an example, the leaves and the root can be explicitly configured on the
      PCE or PCC can update the PCE with the identity of the root and the
      leaves when it discovers them via multicast protocols like MP-BGP and
      MVPN procedures <xref target="RFC6513"/> or PIM. Once the controller is
      informed of the Root node and Leaf nodes, it can calculate the SR P2MP
      Policy and any of the required Replication segments from the Root node
      to the Leaf nodes. The computation may include traffic engineering
      criteria and any additional Service Level Agreements (SLAs) that are
      used to construct the tree.</t>

      <t>This document defines PCEP objects for MPLS SR P2MP Policy, TLVs, and
      the procedures to instantiate a P2MP Policy and Replication
      Segments.</t>

      <t>Only Stateful PCE is within the scope of this document, and the
      Stateless PCE is out of scope. Support for SRv6 P2MP Policy is also out
      of scope.</t>
    </section>

    <section title="Terminology">
      <t>The readers of this document should familiarize themselves with the
      following documents and sections for terminology and details
      implementation of the SR P2MP Policy.</t>

      <t><xref target="RFC9524"/> Section 1.1 defines terms specific to SR
      Replication Segment and also explains the Node terminology in a
      multicast domain, including the Root Node, Leaf Node and a Bud Node.
      <xref target="RFC9960"/> Section 2 defines terms and concepts specific
      to SR P2MP Policy including the CP and the PTI.</t>

      <t>In addition, the following section defines terms used frequently in
      this document. Refer to Terminology sections of <xref
      target="RFC9256"/>, and <xref target="RFC9524"/> for other terms used in
      Segment Routing.</t>

      <t><list style="symbols">
          <t>Unicast Segment Routing (SR): Standard Segment Routing
          constructs, capabilities and behavior which are not multicast or
          replication aware.</t>

          <t>Replication segment: A segment in SR domain that replicates
          packets. See <xref target="RFC9524"/>, for details.</t>

          <t>Replication node: A node in SR domain which replicates packets
          based on Replication segment.</t>

          <t>Downstream nodes: A Replication segment replicates packets to a
          set of nodes. These nodes are Downstream nodes.</t>

          <t>Replication state: State held for a Replication segment at a
          Replication node. It is conceptually a list of replication branches
          to Downstream nodes. The list can be empty.</t>

          <t>Replication SID: Data plane identifier of a Replication segment.
          This is an SR-MPLS label or SRv6 Segment Identifier (SID).</t>

          <t>Point-to-Multipoint Service: A service that has one ingress node
          and one or more egress nodes. A packet is delivered to all the
          egress nodes.</t>

          <t>Transit node: alternative name for Replication node.</t>

          <t>Root node: An ingress node of a P2MP service.</t>

          <t>Leaf node: An egress node of a P2MP service.</t>

          <t>Bud node: A node that is both a Replication node and a Leaf
          node.</t>
        </list></t>
    </section>

    <section title="Requirements Language">
      <!-- 2 -->

      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
      "OPTIONAL" in this document are to be interpreted as described in BCP 14
      <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when,
      they appear in all capitals, as shown here.</t>
    </section>

    <section title="Overview of PCEP Operation in SR P2MP Network">
      <!-- 3-->

      <t>After discovering the Root node and Leaf nodes, the PCE programs the
      PCCs with relevant information needed to create a P2MP Tree.</t>

      <t>An SR P2MP Policy is a variant of SR Policy; as such it inherits
      similar concepts as <xref target="RFC9862"/>. An SR P2MP Policy is
      composed of a collection of CPs. CPs are computed by the PCE and can be
      used for P2MP Tree redundancy. Only a single CP may be active at each
      time. Each CP can be globally optimized, therefore it consists of
      multiple PTIs. A PTI can be considered as a P2MP LSP. If a CP needs to
      be globally optimized two or more PTIs can be programmed from the root
      to a set of leaves and via make-before-break procedures the CP can
      switch from the original PTI to the new optimized PTI. The forwarding
      states of these PTIs are built via Replication segments. Each PTI
      initiated on the root has its own set of replication segments on the
      Root, Transit and Leaf nodes.</t>

      <t>A Replication segment is a set of forwarding instructions on a
      specific node. Each instruction may be a PUSH or SWAP operation before
      forwarding out of an interface, or a POP action on bud and leaf
      nodes.</t>

      <t>PCE MAY also calculate and download additional information for the
      replication segments, such as protection next-hops for link
      protection.</t>

      <section title="Related and Inherited Documents">
        <t><list style="symbols">
            <t><xref target="RFC8231"/> The basis for a stateful PCE, and
            reuses the following objects or a new format of the objects<list
                style="symbols">
                <t>&lt;SRP Object&gt;</t>

                <t>&lt;LSP Object&gt;</t>

                <t>A variation of the LSP identifier TLV is defined in this
                document, to support P2MP LSP Identifier</t>
              </list></t>

            <t><xref target="RFC8306"/> P2MP capabilities advertisement.</t>

            <t><xref target="RFC9862"/> Candidate Paths for SR P2MP Policy are
            used for Tree Redundancy. As an example, an SR P2MP Policy can
            have multiple Candidate Paths. Each protecting the primary
            Candidate Path. The active CP is chosen via the preference of the
            Candidate Path.</t>

            <t><xref target="RFC9960"/> defines the instance-ID and P2MP tree
            instance (PTI). For SR P2MP Policy a CP can have one or more PTIs
            identified via instance-ID. If the CP has two or more PTIs, then
            these PTIs can be used for global optimization. Global
            optimization is defined in an upcoming section.</t>

            <t><xref target="RFC9256"/> Segment-list, used for connecting two
            non-adjacent Replication segments via a unicast binding SID or
            Segment-list.</t>

            <t><xref target="RFC8306"/> P2MP-END-POINT objects, used for the
            PCC to update the PCE with discovered Leaves.</t>

            <t><xref
            target="draft-ietf-pce-pcep-extension-pce-controller-sr"/> defines
            CCI object-type for SR-MPLS. This document specifies a new CCI
            object-type for SR P2MP Policy.</t>

            <t><xref target="draft-ietf-pce-multipath"/> Forwarding
            instruction for a P2MP LSP is defined by a set of SR-ERO
            sub-objects in the ERO object and ERO-ATTRIBUTES as defined in
            this document.</t>

            <t><xref target="RFC8664"/> SR-ERO Sub Object used in the
            multipath.</t>
          </list></t>
      </section>

      <section title="Overview of SR P2MP Policy Objects">
        <!-- 3.1 -->

        <t><list style="symbols">
            <t>SR P2MP Policy<list style="symbols">
                <t>Is only relevant on the Root of the P2MP tree and is a
                policy on PCE. It is downloaded only on the root node and is
                identified via &lt;Root, Tree-ID&gt;. It contains the
                following information: <list style="symbols">
                    <t>Root node of the P2MP Segment</t>

                    <t>Set of Leaf nodes of the P2MP Segment</t>

                    <t>Tree-ID, which is a unique identifier of the P2MP tree
                    on the Root</t>

                    <t>A set of CPs belonging to the policy</t>

                    <t>Optional Constraints used to build these CPs</t>
                  </list></t>
              </list></t>
          </list><list style="symbols">
            <t>Candidate Path (CP):<list style="symbols">
                <t>Is used for P2MP Tree redundancy where the Candidate Path
                with the highest preference is the active path.</t>

                <t>Each CP can contain one or more P2MP Tree Instance (PTI).
                If the CP has more than one PTI then the CP can perform global
                optimization procedures (i.e., make-before-break)</t>

                <t>Contains information regarding originator, discriminator,
                preference, P2MP Tree Instances</t>
              </list></t>

            <t>Tree Instance:<list style="symbols">
                <t>Is used for global optimization of the CP. Two or more PTIs
                can be present under a Candidate Path but only a single PTI is
                active at a time.</t>

                <t>A Tree Instance is identified via &lt;Root, Tree-ID,
                Instance-ID&gt;</t>
              </list></t>

            <t>Replication Segment:<list style="symbols">
                <t>Is the forwarding information needed on each replication
                node for building the forwarding path for each PTI of the
                CP.</t>

                <t>Explained further in upcoming sections, there are 2 ways to
                identify the replication segment, depending on the type of
                replication segment (shared replication segment or non-shared
                replication segment)<list style="symbols">
                    <t>It is identified via Tree-ID and Root and PTI for
                    non-shared replication segment.</t>

                    <t>It is identified via Node-ID, Replication-ID, for
                    shared replication segment. As per <xref
                    target="RFC9960"/> a shared replication segment is not
                    associated to a single tree and can be used for
                    constructing bypass tunnels for local protection on a
                    Replication node.</t>

                    <t>Contains forwarding instructions, in the form of a list
                    of outgoing segments each of which may be a segment list
                    or a single replication segment with next-hop
                    information.</t>

                    <t>On the forwarding plane the Replication Segment is
                    identified via the incoming Replication SID.</t>

                    <t>Is established on every node that may replicate (e.g.,
                    Root, Transit, Bud) or receive (e.g., Leaf) the packet in
                    an SR P2MP tree.</t>
                  </list></t>
              </list></t>
          </list></t>

        <section title="SR P2MP Policy and Candidate Path Identification">
          <t>An SR P2MP Policy and its CP can be identified on the root via
          the P2MP LSP Object. This Object is a new object based on the LSP ID
          Object defined in <xref target="RFC8231"/> and is as follows:</t>

          <t><list style="symbols">
              <t>PLSP-ID: <xref target="RFC8231"/>, is assigned by PCC and is
              unique per Candidate Path. It is constant for the lifetime of a
              PCEP session. Each additional Candidate Path is assigned a new
              PLSP-ID by PCC. Multiple Candidate Paths can co-exist but only
              one is active.</t>

              <t>Root: is equivalent to the first node on the SR P2MP Policy
              path.</t>

              <t>Tree-ID: an identifier that is unique in context of the Root
              node. This value may be assigned manually on the Root node or
              advertised via the Provider Tunnel Association (PTA) in a
              multicast BGP Auto-Discovery (AD) route.</t>

              <t>Instance-ID: serves as the PTI identifier and is assigned by
              the PCE. A CP can have two or more PTIs for global optimization.
              Instance-IDs are unique within the SR P2MP Policy and are
              assigned by the PCE per PTI within that Policy. While different
              P2MP policies may use the same Instance-ID for their PTI, each
              PTI within a CP of an SR P2MP Policy SHOULD use the same
              Instance-ID across the tree on its Root, Transit, and Leaf nodes
              when programming its replication segments on the PCC. Having the
              same Instance-ID throughout the tree's path will simplify
              correlation, troubleshooting and ID space management.</t>
            </list></t>
        </section>

        <section title="Replication Segment Identification">
          <t>The key to identify a replication segment is also a P2MP LSP
          Object. With varying encoding rules for the SR-P2MP-INSTANCE-ID-TLV
          which will be explained in later sections.</t>
        </section>

        <section title="PCECC Use in Replication Segment">
          <t>PCECC and a new format of the CCI object is used in Replication
          Segment to identify a cross connect. A cross connect is an incoming
          SID and set of outgoing interfaces and their corresponding SID or
          SID List. The CCI objects contain the incoming SID and the outgoing
          interfaces which are presented via the ERO objects, each of which
          may contain a segment list.</t>
        </section>
      </section>

      <section title="PCEP Procedures">
        <t>An SR P2MP Policy on the Root can be either PCE-initiated or
        PCC-initiated, depending on how the Root and Leaf nodes are
        discovered. A PCE-initiated SR P2MP policy is configured directly on
        the PCE, while a PCC-initiated SR P2MP policy may be triggered by the
        PCC, sourced from local configuration or discovered with multicast
        protocols such as MVPN (see <xref target="RFC6513"/>), PIM, IGMP etc.
        In both cases, PCE-initiated mechanisms are used to install
        Replication segments on Transit, Bud and Leaf nodes.</t>

        <t>Note: Algorithms and techniques to compute the P2MP tree
        replicating nodes are out of scope of this document.</t>

        <section title="PCE-Init Procedure">
          <t><list style="symbols">
              <t>PCE is informed through its API or configuration mechanism to
              instantiate an SR P2MP Policy. PCE is configured with the Root
              and a set of Leaf nodes.</t>

              <t>PCE computes a P2MP tree from the Root node to all Leaf nodes
              which satisfy the configured constraints.</t>

              <t>PCE sends a PCInitiate message to the Root. The PCInitiate
              message is configured with a unique Instance-ID for the PTI
              within the CP of the SR P2MP Policy. The PCInitiate message sent
              to the Root MUST set the Tree-ID to 0. If not, the PCC MUST send
              a PCEP Error message (PCErr) with Error-Type = X2 (SR P2MP
              Policy General Error) and Error value = 1 (PCInit Invalid
              Tree-ID). The END-POINTS object MAY optionally be included in
              the PCInitiate message for providing list of Leaf nodes to the
              PCC for informational purposes.</t>

              <t>In response to the PCInitiate message, the PCC will assign
              the PLSP-ID and Tree-ID for the CP. The PCC uses the Instance-ID
              defined in the PCInitiate message for the PTI contained within
              the CP. The PCC sends a PCRpt back to PCE containing the
              PLSP-ID, Tree-ID and Instance-ID. PCC MAY optionally include
              additional Leaf nodes that were also discovered by multicast
              procedures.</t>

              <t>PCE will send a PCInitiate message to the Root, Transit and
              the Leaf nodes to download the Replication Segment information.
              These messages will utilize the CCI object to identify the P2MP
              cross-connect and encode the forwarding instruction
              information.</t>

              <t>PCE then sends a PCUpd to the Root node indicating the
              association information (CP) and implicitly binds the CP to the
              installed CCI information.</t>
            </list></t>
        </section>

        <section title="PCC-Init Procedure">
          <t><list style="symbols">
              <t>Root node PCC discovers the Leaf nodes via MVPN procedures or
              other mechanisms.</t>

              <t>Root sends a PCRpt message for SR P2MP policy to PCE
              including the Root, Tree-ID, PLSP-ID, symbolic-path-name,
              association object and any leaf nodes discovered. In
              addition:</t>

              <t><list style="symbols">
                  <t>Since the Instance-ID is set by the PCE, the root will
                  set the Instance-ID to the value 0 in the PCRpt message.</t>

                  <t>For the association object, root will fill the
                  association type according to the association type defined
                  in this document. The association ID SHOULD be set to value
                  1 similar to <xref target="RFC9862"/>. The association
                  source is set to the Root PCC Address.</t>
                </list></t>

              <t>PCE receives the PCRpt and generates a unique Instance-ID for
              this PTI of the CP and computes the P2MP Policy and its
              replication segments.<list style="symbols">
                  <t>PCE will send a PCInitiate message to the Root, Transit
                  and the Leaf nodes to download the Replication Segment
                  information. These messages will utilize the CCI object to
                  encode the forwarding instruction information.</t>

                  <t>PCE then sends a PCUpd to the Root node indicating the
                  association information (CP) and implicitly binds the CP to
                  the installed CCI information.</t>
                </list></t>
            </list></t>
        </section>

        <section title="Common Procedures">
          <t>The following procedures are the same for PCE-init or PCC-init SR
          P2MP Policy.</t>

          <section title="Replication Segment Instantiation">
            <t><list style="symbols">
                <t>PCE distributes the Replication segments for each CP's PTI
                to all Transit, Bud and Leaf nodes in the SR P2MP Tree using a
                PCInitiate message.</t>

                <t><list style="symbols">
                    <t>PLSP-ID: value MUST be set to zero and will be assigned
                    by PCC. If not, the PCC MUST send a PCEP Error message
                    (PCErr) with Error-Type = 19 (Invalid Operation) and Error
                    value = 8 (Non-zero PLSP-ID in LSP Initiate Request).</t>

                    <t>Symbolic path name: generated by PCE, MUST be unique
                    for each Candidate Path on PCC. If not, the PCC MUST send
                    a PCEP Error message (PCErr) with Error-Type = X2 (SR P2MP
                    Policy General Error) and Error value = 2 (Symbolic Path
                    Name not unique).</t>

                    <t>Root: the same value of the SR P2MP Policy.</t>

                    <t>Tree-ID: it is RECOMMENDED the Tree-ID be set to the
                    same Tree-ID defined on the Root node (which was assigned
                    by the Root node PCC).</t>

                    <t>Instance-ID: set to the same value of path-instance on
                    the Root.</t>
                  </list></t>

                <t>The PCInitiate message includes the EROs and utilizes the
                CCI object to encode the Replication segment forwarding
                instruction information.</t>

                <t>In response to the PCInitiate message, each Transit, Bud
                and Leaf node PCC generates a local PLSP-ID and sends a PCRpt
                to PCE informing PCE of the Replication segment state.</t>
              </list></t>
          </section>

          <section title="New Candidate Path Creation">
            <t><list style="symbols">
                <t>Any new CP for the SR P2MP Policy is downloaded by PCE to
                the Root by sending a PCInitiate message. <t>
                    <list style="symbols">
                      <t>PLSP-ID: value MUST be set to zero and will be
                      assigned by PCC.</t>

                      <t>Symbolic path name: generated by PCE, MUST be unique
                      for each CP on PCC.</t>

                      <t>Root: the same value of the SR P2MP Policy.</t>

                      <t>Tree-ID: the same value of the SR P2MP Policy.</t>

                      <t>Instance-ID: The PCE generates the PTI's Instance-ID
                      of the CP. If the PTI's Instance-ID is zero then the PCC
                      MUST send a PCEP Error message (PCErr) with Error-Type =
                      X2 (SR P2MP Policy General Error) and Error value = 3
                      (Invalid Instance-ID).</t>
                    </list>
                  </t></t>

                <t>The PCE distributes the necessary Replication segment for
                the CP and its PTIs to the Root, Leaf nodes and the Transit
                nodes as described in section "Replication Segment
                Instantiation".</t>

                <t>Any update to the CP or Replication segments is performed
                via the PCUpd message. Association object MUST be present for
                CP PCUpd and PCRpt message. If Association object is not
                present in the PCUpd message, the PCC MUST send a PCEP Error
                message (PCErr) with Error-Type = X2 (SR P2MP Policy General
                Error) and Error value = 5 (Missing Association).</t>

                <t>CCI object MUST be present in the Replication segment
                updates. If not, the PCC MUST send a PCEP Error message
                (PCErr) with Error-Type = X2 (SR P2MP Policy General Error)
                and Error value = 4 (CCI Object missing).</t>
              </list></t>
          </section>

          <section title="Adding new Leaf nodes">
            <t><list style="symbols">
                <t>New Leaf nodes may be locally configured or discovered via
                multicast protocol procedures. New Replication segments may be
                instantiated or existing ones updated to reach new Leaf nodes.
                <list style="symbols">
                    <t>If the new Leaf nodes reside on routers that are part
                    of the existing SR P2MP Tree, then PCUpd is sent from PCE
                    to necessary PCCs (Leaf, Bud or Root nodes) with the
                    existing PLSP-ID, Instance-ID, Tree-ID and CC-ID.</t>

                    <t>If the new Leaf nodes are residing on routers that are
                    not part of the existing SR P2MP Tree, then a PCInitiate
                    message is sent from PCE to each new Leaf and any
                    necessary Transit nodes following section "Replication
                    Segment Instantiation".</t>
                  </list></t>
              </list></t>
          </section>

          <section title="Conveying active state">
            <t>The active CP is indicated by the PCC through the operational
            bits(Up/Active) of the LSP object in the PCRpt message.</t>

            <t>A CP is made active based on the preference of the path. If the
            Root is programmed with multiple CPs from different sources, as an
            example PCE and CLI, based on its tie-breaking rules, if it
            selects the CLI path, it will send a report to PCE for the PCE
            path indicating the status of label-download and sets operational
            bit of the LSP object to UP and Not Active. At any instance, only
            one PTI is permitted to be active.</t>
          </section>
        </section>

        <section title="Global Optimization of the Candidate Path">
          <t>When a P2MP LSP needs to be optimized for any reason (i.e. it is
          taking a FRR tunnel or new routers are added to the network) a
          global optimization of the CP is possible.</t>

          <t>When a PCC Open Message indicates support for only one instance
          of PTI, then the PCE MUST NOT include the PCC as part of global
          optimization procedures.</t>

          <t>Each CP MAY contain two or more PTIs. The current unoptimized PTI
          is the active instance and its replication segments are forwarding
          the multicast packets from the root to the leaves. However, the
          second optimized PTI will be setup with its own unique Replication
          Segments throughout the network, from the Root to the leaf nodes.
          These two PTIs MAY co-exist. The two PTIs are uniquely identified by
          their Instance-ID in the SR-P2MP-INSTANCE-ID-TLV (defined in this
          document).</t>

          <t>After the optimized PTI has been downloaded successfully, PCC
          MUST send two reports, reporting UP of the new PTI with the new
          LSP-ID, and a second reporting the tear down of the old PTI with the
          R bit of the LSP Object SET with the old Instance-ID in the
          SR-P2MP-INSTANCE-ID-TLV. This MBB procedure will move the multicast
          PDUs to the optimized Path-Instance.</t>

          <t>The transit and leaf nodes SHOULD be able to accept traffic from
          both PTIs to minimize the traffic outage by the Make Before Break
          process.</t>

          <t>It is RECOMMENDED for the optimized PTI to be set up by the PCE
          from the leaf nodes to transit nodes and finally the root nodes to
          ensure the entire PTI's path is programmed before the MBB procedure
          is initiated.</t>
        </section>

        <section title="Local Optimization">
          <t>When one of the PCCs involved in the LSP lacks the capability to
          support more than one PTI, the possibility of achieving global make
          before break (MBB) is not feasible. However, with knowledge of the
          PCCs' advertised capabilities, the PCE can detect this limitation
          and instead opt for local re-optimization of the CP. In such cases,
          the PCE can compute the optimized LSP by sending the PCUpd message
          using the existing PTI and its Instance-ID for CP, specifically
          targeting the PCCs where the optimized LSP triggers a change in
          forwarding state.</t>
        </section>

        <section title="Fast Reroute">
          <t>This document identifies Facility Fast Reroute (FRR) procedures.
          Only Link Protection procedures are defined.</t>

          <t><figure>
              <artwork><![CDATA[          R
         | |
          T
          |
         ---
        |   |
        L1 L2

Figure 1: Redundant directly connected interfaces

]]></artwork>
            </figure></t>

          <t>As an example, in figure 1 both R and T are configured with
          replication segments. There are two interfaces between R and T. One
          can be used as primary and second as a bypass in case the primary
          interface is down. There can be two methods to protect the primary
          interface:</t>

          <t><list style="symbols">
              <t>The two replication segments on R and T can take advantage of
              unicast SR to connect to each other. In this case the LFA of
              unicast SR can be utilized to protect the primary interface
              between R and T.</t>

              <t>The Replication segment provides a protection next-hop; the
              protection next-hop can be programmed to take the alternate
              interface between R and T to protect the primary interface.</t>
            </list></t>

          <t>If the network already has implemented unicast SR then it might
          be advantageous to use LFA for SR to protect the link between R and
          T but if the network has not enabled unicast SR then the second
          option of Replication segment protection next-hop is the preferred
          method.</t>

          <t>For the second option the PATH-ATTRIB object can be used to
          describe a set of backup paths protecting a primary path within a
          PCEP LSP using the MULTIPATH_BACKUP TLV defined in this document.
          This capability is currently defined only for P2MP paths. Support
          for P2P paths with the MULTIPATH-BACKUP TLV is out of scope for this
          document. In this case, the PATH-ATTRIB is populated for each ERO as
          follows:</t>

          <t><list style="numbers">
              <t>The PCE assigns a unique Path ID to each ERO path and
              populates it inside the PATH-ATTRIB object. The Path ID is
              unique within the context of a PLSP (PCE Label Switched
              Path).</t>

              <t>The PCE MAY include the MULTIPATH-BACKUP TLV inside the PATH-
              ATTRIB object for each ERO that is protected, specifying the
              backup path IDs to reflect the set of backup paths protecting
              the primary path. The PCE updates the Length field and Backup
              Path Count in the MULTIPATH-BACKUP according to the number of
              backup path IDs included.</t>

              <t>The PCE MAY include the MULTIPATH-BACKUP TLV inside the PATH-
              ATTRIB object for each ERO that is unprotected. In this case,
              MULTIPATH-BACKUP does not carry any backup path IDs in the TLV.
              If the path acts as a pure backup (i.e., the path only carries
              rerouted traffic after the protected paths fail), then the B
              flag MUST be set.</t>
            </list>Primary paths which do not include the MULTIPATH-BACKUP TLV
          are assumed to be protected by all the backup paths (i.e., omitting
          the TLV is equivalent to including the TLV with all the backup path
          IDs filled in).</t>

          <t>Note that a given PCC may not support certain backup
          combinations, such as a backup path that is itself protected by
          another backup path, etc. If a PCC does not support a requested
          backup scenario, the PCC MUST send a PCErr message with Error-Type =
          19 (Invalid Operation) and Error-Value = 20 (Not supported path
          backup).</t>

          <t><figure>
              <artwork><![CDATA[
        R---F1
        |   |
        T---F2
        |
         ---
        |   |
        L1 L2

Figure 2: Protection through alternative network path]]></artwork>
            </figure></t>

          <t>As a second example, in Figure 2, R and T are connected directly
          and via network F1..F2. In this example as per example 1, unicast SR
          can be used to connect the two Replication segments, including using
          SR LFA or R-LFA or TI-LFA to protect the direct link between R-T via
          F1. If unicast SR is not available within the network, the PCE
          optionally can establish a shared replication point on F1 and F2 and
          protect all path-instances that are traversing R-T via this shared
          Replication segment.</t>

          <t>In addition, Penultimate Hop Popping (PHP) and implicit null
          label on the bypass path can be implemented to reduce the PCE
          programming on the merge point (MP) PCC.</t>
        </section>

        <section title="Connecting Replication Segment via Segment List">
          <t>There could be many nodes between two Replication Segments that
          do not support SR P2MP Policy or Replication Segment. It is possible
          to connect two non-adjacent Replication segments via an SR Policy or
          similar technology using a SID list and rely on IGP forwarding. The
          SID list can be comprised of any IGP supported segment types (ex:
          Binding, Adjacency, Node). This information is encoded via the
          SR-ERO sub-objects and ERO-attributes objects. The last segment in
          an encoded SID list MUST be a Replication segment.</t>
        </section>

        <section title="Tree Deletion">
          <t>The SR P2MP Policy and its Replication segment can be deleted by
          the PCC or by the PCE. To delete the SR P2MP Policy, all the CPs
          associated with that P2MP Policy need to be deleted. The last CP
          that is being deleted, will delete the SR P2MP Policy Instance as
          well on the PCE or PCC.</t>

          <t>To delete the CPs there are two methods:</t>

          <t><list style="numbers">
              <t>The CPs can be deleted by deleting all the PTIs associated
              with them and the last PTI that is deleted will trigger the CP
              to be deleted.</t>

              <t>The CP can be deleted entirely and this will delete all the
              associated PTIs as well.</t>
            </list></t>

          <section title="PCC Initiated">
            <t>For PCC to delete a CP, Root sends a PCRpt message with the R
            bit of the LSP object set and all the fields of the
            SR-P2MP-INSTANCE-ID-TLV set to 0 (indicating to remove all state
            and PTIs associated with this SR P2MP Policy). The R bit in the
            LSP Object as defined in <xref target="RFC8231"/>, refers to the
            removal of the LSP as identified by the SR-P2MP-INSTANCE-ID-TLV
            (defined in this document). An all-zero SR-P2MP-INSTANCE-ID-TLV
            indicates removal of all the state of the corresponding PLSP-ID.
            The PCE in response sends a PCInitiate message with R bit in the
            SRP object set to all nodes along the path to indicate deletion of
            the entries. In this case the Instance-ID can be set to 0 with the
            R bit set to indicate removing the entire CP and all its PTIs.</t>

            <t>For PCC to delete a PTI, Root sends a PCRpt message with the R
            bit of the LSP object set and all the fields of the
            SR-P2MP-INSTANCE-ID-TLV set to 0 but the Instance-ID value
            (indicating to remove the specific PTI associated with this P2MP
            tunnel). The PCE in response sends a PCInitiate message with R bit
            in the SRP object SET to all nodes along the path to indicate
            deletion of the entries. Note in this case the Instance-ID has to
            be set accordingly with the R bit set to indicate removing the
            specific PTI. This is useful for the global optimization case
            where after downloading the optimized PTI and ensuring the PTI is
            operational the PCC removes the old PTI.</t>
          </section>

          <section title="PCE Initiated">
            <t>When PCE is deleting a CP or a PTI it should delete all the
            replication segments of that CP or PTI as well before it moves to
            the next CP or PTI.</t>
          </section>
        </section>
      </section>

      <section title="PCEP Messages">
        <!---->

        <t>The objects and TLVs defined in this document can be included in
        PCRpt, PCInitiate and PCUpd messages. The inclusion of the Objects and
        TLVs differ between SR P2MP Policy and Replication segment.</t>

        <section title="Considerations">
          <t>An SR P2MP Policy supports actions to add, remove, and fully
          replace Leaf nodes in a message, described further in Section 5.5.2
          and with an example in Appendix A. However, a CP and Replication
          Segment MUST NOT carry delta information. Every PCRpt, PCInitiate
          and PCUpd message MUST contain the full list of the Leaf nodes, and
          Segment forwarding information that is needed to build the CP and
          its Replication segments. This is necessary to ensure that PCE or
          any new PCE is in sync with the PCC.</t>

          <section title="Path Attribute Object">
            <t>This document uses <xref target="draft-ietf-pce-multipath"/> to
            identify each outgoing interface in the Replication Segment. In
            addition, each outgoing interface can be protected by a backup
            path using the MULTIPATH-BACKUP TLV defined in this document. The
            Path Attributes Object is used to provide the relation between the
            primary path and its backup path as defined in later sections of
            this document.</t>

            <t>Note: Multipath weight TLV MUST NOT be used and SHOULD be
            ignored when received. Composite Candidate Path TLV SHOULD NOT be
            present and SHOULD be ignored if present.</t>

            <t>When a Replication segment is being updated or new outgoing
            interfaces are added to a specific replication segment, the PCRpt,
            PCInitiate and PCUpd messages sent via PCEP maintain the previous
            ERO Path IDs and generates new Path IDs for new instructions. The
            PATH IDs are maintained for each specific forwarding instructions
            until the instructions are deleted. For example: When the first
            leaf is added, the PCE will update with Path ID 1 to the PCC. When
            the second leaf is added, according to the path calculated, PCE
            might just append the existing instruction Path ID 1 with a new
            Path ID 2 to construct the new PCUpd message.</t>
          </section>

          <section title="CCI Object">
            <t>The Central Control Instruction (CCI) Object is used to
            identify the entire cross connect of Explicit Route Object (ERO)
            which consists of incoming Replication SID and the set of outgoing
            Interfaces and their corresponding SIDs and/or SID lists. Any
            modification to this instruction should use this CCI ID to
            identify the cross connect uniquely. Leaf nodes and their
            corresponding Path IDs can be removed from the cross connect
            identified via the CCI. The CC-ID is assigned by the PCE.</t>

            <t>The CCI Object used by the PCE to specify the controller
            instructions is defined in <xref target="RFC9050"/>. <xref
            target="RFC9050"/> specifies the CCI object in the PCInitiate and
            PCRpt messages only and does not define the CCI object for use in
            the PCUpd message. The Replication Segments defined in this
            document however require the need to modify the outgoing SID
            list(s) after initial instantiation on the root, transit and leaf
            routers, thus require the use of PCUpd messages. For example, when
            downstream leaf nodes are added or removed. For this reason, this
            document extends the use of the CCI object to the PCUpd message so
            that a PCE can update the forwarding instructions of an
            already-instantiated Replication Segment without re-initiating it,
            including the role of the node. This extension is scoped
            exclusively to Replication Segment.</t>

            <t><xref
            target="draft-ietf-pce-pcep-extension-pce-controller-sr"/> defines
            CCI object-type for SR-MPLS. This document defines a CCI
            object-type for SR-MPLS for SR P2MP Policy in upcoming
            sections.</t>
          </section>
        </section>

        <section title="SR P2MP Policy">
          <t>The format of the PCRpt message as specified in <xref
          target="RFC8231"/> and extended by <xref target="RFC8697"/> is now
          further extended as follows:</t>

          <t><figure>
              <artwork><![CDATA[<PCRpt Message> ::= <Common Header>
                    <state-report-list>

Where:

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

<state-report> ::= [<SRP>]
                    <LSP>
                   [<association-list>]
                   (<path>|<sr-p2mp>)


Where:

<sr-p2mp>::=<END-POINTS>

<path> is as per RFC8231 and extended by other PCEP extensions.
<association-list> is as per RFC8697


]]></artwork>
            </figure></t>

          <t>The format of the PCUpd message as specified in <xref
          target="RFC8231"/> and extended by <xref target="RFC8697"/> is now
          further extended as follows:</t>

          <t><figure>
              <artwork><![CDATA[
<PCUpd Message> ::= <Common Header>
                    <update-request-list>

Where:

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

 <update-request> ::= <SRP>
                      <LSP>
                     (<path>|<sr-p2mp>)

Where:

<sr-p2mp>::=<END-POINTS>

<path> is as per RFC8231 and extended by other PCEP extensions.
              ]]></artwork>
            </figure></t>

          <t>The format of the PCInitiate message as specified in <xref
          target="RFC8281"/> and extended by <xref target="RFC8697"/> is now
          further extended as follows:</t>

          <figure>
            <artwork><![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>|<sr-p2mp>)
                                       [<association-list>]
                                       [<attribute-list>]
Where:

 <sr-p2mp>::=<END-POINTS>

              ]]></artwork>
          </figure>
        </section>

        <section title="Replication Segment">
          <t>The Replication Segment can be constructed via the following
          PCRpt, PCUpd and PCInitiate messages</t>

          <t>NOTE:</t>

          <t><list style="symbols">
              <t>Replication segment does not use an association object</t>
            </list></t>

          <t>The format of the PCRpt message is updated as follows:<figure>
              <artwork><![CDATA[
<PCRpt Message> ::= <Common Header>
                    <state-report-list>

Where:

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

<state-report> ::= (<lsp-state-report>|
                    <central-control-report>)

<lsp-state-report> ::= [<SRP>]
                         <LSP>
                         <path>

<central-control-report> ::= [<SRP>]
                              <LSP>
                             (<cci-list>|
                             (<FEC>
                             <CCI>)|
                             (<CCI>
                             <intended-path-multipath>))

Where:

<intended-path-multipath> is defined in
                [I-D.ietf-pce-multipath]



            ]]></artwork>
            </figure></t>

          <!---->

          <t>The format of the PCUpd message is updated as follows:</t>

          <t><figure>
              <artwork><![CDATA[<PCUpd Message> ::= <Common Header>
                    <update-request-list>

Where:

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

<update-request> ::= (<lsp-update-request>|
                      <sr-p2mp-update>)

<lsp-update-request> ::= <SRP>
                          <LSP>
                          <path>

<sr-p2mp-update> ::= <SRP>
                      <LSP>
                     (<CCI>
                     <intended-path-multipath>)
Where:

<LSP> carries the SR-P2MP-LSP-IDENTIFIER object-type defined in this document and
      a <sr-p2mp-update> applies only to a Replication Segment.

<CCI> is the SR P2MP Policy CCI object-type (Object-Class = 44 (CCI),
      Object-Type = TBD) defined in Section 5.7.2 of this
      document.

<intended-path-multipath> is defined in [I-D.ietf-pce-multipath].
]]></artwork>
            </figure></t>

          <t>The format of the PCInitiate message is updated as follows:</t>

          <t><figure>
              <artwork><![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-central-control>)

 <PCE-initiated-lsp-central-control> ::= <SRP>
                                         <LSP>
                                         (<cci-list>|
                                         (<FEC>
                                         <CCI>)|
                                         (<CCI>
                             <intended-path-multipath>))
Where:

 <intended-path-multipath> is defined in
                [I-D.ietf-pce-multipath]

              ]]></artwork>
            </figure></t>
        </section>
      </section>
    </section>

    <section title="Object Format">
      <!-- 4 -->

      <section title="Open Message Extension">
        <!-- 4.1 -->

        <t>A PCEP speaker indicates its ability to support SR P2MP Policy and
        Replication Segment during the PCEP initialization phase. Speakers
        which support SR P2MP Policy and Replication segment object MUST
        include SR-P2MP-POLICY-CAPABILITY TLV in the OPEN Object.</t>

        <t>This document defines a new SR-P2MP capability TLV with type
        TBD.</t>

        <t><figure>
            <artwork><![CDATA[ 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |              Type=73        |           Length=8              |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |      Number of Instances    |       number of replication     |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |              Flags          |           reserved              |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure></t>

        <t>Type: 73 as per IANA</t>

        <t>Length: 8 octets</t>

        <t>Number of Instances 16 bits - Number of instances the advertising
        PCEP speaker supports. This is meaningful for PCEs. PCEs can determine
        the least number of instances that could be created for an SR P2MP
        Policy.</t>

        <t>Number of replication 16 bits - number of outgoing interfaces that
        the system is capable of having per multicast state.</t>

        <t>Flags 16 bits - No Flags currently defined</t>

        <t>Reserved 16 bits, MUST be set to 0 on transmission and ignored on
        receipt</t>
      </section>

      <section title="PCE Capability Sub-TLV">
        <t>If a PCEP speaker advertises SR P2MP Policy Capability then it MUST
        include the PST = 1 in the PATH-SETUP-TYPE-CAPABILITY TLV as per <xref
        target="RFC8664"/></t>
      </section>

      <section title="Association Type Capability">
        <t>An Assoc-Type-List TLV as per <xref target="RFC8697"/> Section 3.4
        SHOULD be sent via the PCEP OPEN object with the following association
        type.</t>

        <t><figure>
            <artwork><![CDATA[
+-------------------+----------------------------+------------------+
| Association Type  | Association Name           | Reference        |
| Value             |                            |                  |
+-------------------+----------------------------+------------------+
| TBD1              | P2MP SR Policy Association | This document    |
+-------------------+----------------------------+------------------+]]></artwork>
          </figure></t>

        <t>OP-CONF-Assoc-RANGE (Operator-configured Association Range) SHOULD
        not be set for this association type and MUST be ignored.</t>
      </section>

      <section title="Symbolic Name TLV">
        <t>This document reuses symbolic path name from <xref
        target="RFC8231"/> Section 7.3.2. For SR P2MP Policy a symbolic path
        is unique on the PCC. To help the name be unique on PCC, it is
        RECOMMENDED the name contain the Root, Tree-ID and CP Discriminator
        values.</t>
      </section>

      <section title="SR P2MP Policy">
        <section title="P2MP Policy Association Group">
          <t>Two ASSOCIATION object types for IPv4 and IPv6 are defined in
          <xref target="RFC8697"/>. The ASSOCIATION object includes
          "Association type" indicating the type of the association group.
          This document adds a new Association type. Association type = TBD1
          "SR P2MP Policy Association Type" for SR Policy Association Group
          (P2MP SRPAG).</t>

          <t>For PCC-initiated SR P2MP Policy, the ASSOCIATION object is
          present in the first PCRpt message that is sent by the PCC to PCE to
          indicate the existence of the SR P2MP Policy and its CP. Note that,
          this first PCRpt message does not have an SRP object corresponding
          to a PCUpd message.</t>

          <t>The Association Source SHOULD be set to the root address of the
          P2MP tree.</t>

          <t>In line with <xref target="RFC9862"/> Section 4.2, P2MP Policy
          reuses the four TLVs used in the SRPA object. P2MP policy also
          redefines the extended association ID TLV:</t>

          <t><list style="numbers">
              <t>SRPOLICY-POL-NAME TLV: (optional) encodes SR P2MP Policy
              Name</t>

              <t>SRPOLICY-CPATH-ID TLV: (mandatory) encodes SR P2MP Policy
              Candidate Path Identifier</t>

              <t>SRPOLICY-CPATH-NAME TLV: (optional) encodes SR P2MP Policy
              Candidate Path name.</t>

              <t>SRPOLICY-CPATH-PREFERENCE TLV: (optional) encodes SR P2MP
              Policy Candidate Path preference value.</t>

              <t>In addition to above the extended association ID TLV has been
              modified to address the SR P2MP Policy</t>
            </list></t>

          <section title="Extended Association ID TLV">
            <t>In line with <xref target="RFC9862"/>, the Extended Association
            ID TLV MUST be included and it MUST be in the following format for
            the SR P2MP Policy. If the Extended Association ID TLV is not
            present, the PCC MUST send a PCEP Error message (PCErr) with
            Error-Type = X2 (SR P2MP Policy General Error) and Error value = 6
            (Missing Extended Association ID).</t>

            <t><figure>
                <artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Type = 31            |             Length = 4        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          TREE-ID                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
              </figure></t>

            <t>Length: 4 byte</t>

            <t>Tree-ID: identifies the P2MP Tree which the Replication segment
            is part of</t>
          </section>
        </section>

        <section title="P2MP-END-POINTS Object">
          <t>In order for the Root node to indicate operations of its Leaf
          nodes (Add/Remove/Replace-all), the PCRpt and PCInitiate messages
          are extended to include P2MP-END-POINT Object which is defined in
          <xref target="RFC8306"/></t>

          <t>The absence of the P2MP-END-POINT Object means that there is no
          change in the leaf endpoint of the policy and the PCEP speaker MUST
          NOT consider the absence of the object as an indication of removal
          of the endpoints.</t>

          <t>Leaf Types (derived from <xref target="RFC8306"/> section 3.3.2)
          :</t>

          <t><list style="numbers">
              <t>New leaves to add (leaf type = 1)</t>

              <t>Old leaves to remove (leaf type = 2)</t>

              <t>the entire PCE leaf list is overwritten and replaced with the
              new leaf list (leaf type = 5)</t>
            </list></t>

          <t>Note a PCE speaking node MUST NOT combine leaf type 1 and 2 with
          leaf type 5.</t>

          <t>Note a PCE speaking node SHOULD NOT have the same node present in
          the leaf type 1 and 2 if both leaf types are present.</t>

          <t>A given P2MP END-POINTS object gathers the Leaf nodes of a given
          type. An SR P2MP PCRpt MAY mix different types of Leaf nodes by
          including several P2MP END-POINTS objects. The END-POINTS object
          body has a variable length. These are multiples of 4 bytes for IPv4,
          multiples of 16 bytes, plus 4 bytes, for IPv6.</t>
        </section>
      </section>

      <section title="P2MP Policy and Replication Segment Identifier Object and TLV">
        <t>Both SR P2MP Policy and Replication Segment are identified via the
        LSP object and more precisely via the SR-P2MP-INSTANCE-ID-TLV</t>

        <t>The SR P2MP Policy uses the PLSP-ID to identify the CP and the
        Instance-ID to identify a PTI within the CP.</t>

        <t>A Replication Segment uses the SR-P2MP-INSTANCE-ID-TLV to identify
        and correlate a Replication Segment to a P2MP Policy</t>

        <t>As it was noted previously, for the Root the SR P2MP Policy and the
        Replication Segment is downloaded via the same PCUpd message.</t>

        <section title="Extension of the LSP Object, SR-P2MP-INSTANCE-ID-TLV">
          <t>The LSP Object is defined in Section 7.3 of <xref
          target="RFC8231"/>. It specifies the PLSP-ID to uniquely identify an
          LSP that is constant for the lifetime of a PCEP session. Similarly,
          for a P2MP Policy, the PLSP-ID identifies a Candidate Path uniquely
          within the SR P2MP policy.</t>

          <t>The LSP Object MUST include the new SR-P2MP-INSTANCE-ID-TLV
          (IPv4/IPv6) defined in this document below. This is a variation to
          the P2MP object defined in <xref
          target="draft-ietf-pce-stateful-pce-p2mp"/></t>

          <t><figure>
              <artwork><![CDATA[
IPV4-SR-P2MP-INSTANCE-ID-TLV:

 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Type=TBD            |           Length=12           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                   Root                                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                  Tree-ID                                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Instance-ID           | Reserved      |  Flags    |R|A|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

IPv6-SR-P2MP-INSTANCE-ID-TLV :

 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Type=TBD            |           Length=24           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                                                               +
|                  Root                                         |
+                          (16 octets)                          +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             Tree-ID                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Instance-ID           | Reserved      |  Flags    |R|A|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
            </figure></t>

          <t>The type (16-bit) of the TLV is TBD (need allocation by
          IANA).</t>

          <t>Root: Source Router IP Address</t>

          <t>Tree-ID: Unique Identifier of this P2MP LSP on the Root.</t>

          <t>Instance-ID : Identifier of PTI, Contains 16 Bit instance ID.
          Instance-id 0 is reserved.</t>

          <t>Reserved: 8 bits reserved for future use.</t>

          <t>Flags: 8 bits, A - Activate the Instance-ID, R - Remove the
          Instance-ID</t>

          <t>At any given time, only one PTI MUST be active. Activating one
          PTI entails deactivating the other PTI, with the condition that the
          active PTI Instance-ID MUST have a non-zero value.</t>

          <t>The (A) flag is meaningful for Root PCC and PCE. PCE MUST be
          setting (A) flag in the PCUpd containing SR-P2MP-INSTANCE-ID TLV for
          activating the PTI. The decision regarding when to set the (A) flag
          can be made locally on the PCE. E.g., this decision can be based on
          factors such as receiving PCRpt messages from all PCCs for the new
          PTI or utilizing a timer-based approach to ensure that the data
          plane is completely configured on all PCCs. It's important to note
          that determining the appropriate timing for activating the new PTI
          is not within the scope of this document. After the activation of
          the SR P2MP Policy any PCUpd MUST include the (A) flag in the
          P2MP-Instance TLV.</t>

          <t>Root PCC MUST set the (A) flag in the PCRpt as a response to
          receiving a PCUpd message with the (A) flag set.</t>

          <t>If a PCE receives a PCRpt with the (A) flag set in response to a
          PCUpd message that did not have the (A) flag set, then PCE MUST
          treat this as an error. In such a case, PCE MUST send a PCEP Error
          message (PCErr) with Error-Type=10 (Reception of an Invalid Object)
          and error-value=R1 (Invalid active instance).</t>

          <t>For Transit or Leaf PCCs, receipt of a PCUpd message with the (A)
          flag MUST be treated as an error. Transit or Leaf PCCs MUST send a
          PCEP Error message (PCErr) with Error-Type=19 (Invalid Operation)
          and error-value=I1 (Attempted activating instance on Transit or leaf
          PCC).</t>

          <t>Figure 3 presents an example exchange of
          SR-P2MP-INSTANCE-ID-TLV.</t>

          <t><figure>
              <artwork><![CDATA[
                  +-+-+                    +-+-+
                  |PCC|                    |PCE|
                  +-+-+                    +-+-+
                    |                        |
1) LSP state Report | -------- PCRpt ------> |
   With PLSP-ID and |  (SRP,                 |
   Instance-ID      |   LSP(SR-P2MP-INST-ID),|
                    |   P2MP-END-POINT)      |
                    |                        |
                    | <------- PCUpd ------- |2) PCUpd message sent
                    |  (SRP,                 |   to the PCC with
                    |   LSP(SR-P2MP-INST-ID),|   Path info and activating
                    |   Association,         |   instance.
                    |   P2MP SR Pol. ID TLV, |
                    |   CPATH_ID TLV,        |
                    |   P2MP-END-POINT,      |
                    |   CCI, PATH_ATTRIB,    |
                    |   SR-ERO)              |
                    |                        |
                    |                        |
3) LSP State Report |---- PCRpt message ---->|
  (echoing Instance |                        |
    Active)         |                        |
                    |                        |

Note: SR-P2MP-INST-ID is SR-P2MP-INSTANCE-ID-TLV
]]></artwork>
            </figure></t>
        </section>
      </section>

      <section title="Replication Segment">
        <t>As per <xref target="RFC9524"/>, a replication segment has a
        next-hop-group which MAY contain a single outgoing replication SID or
        a list of SIDs (sr-policy-sid-list). In either case, there needs to be
        a replication SID identifying the replication state on a downstream
        replication node. Two replication segments can be directly connected
        or connected via a unicast SR domain.</t>

        <section title="Message format">
          <t>The format of a Replication Segment message encoding is similar
          to SR P2MP Policy. However, the SR P2MP Policy contains the
          association object and the Replication Segment message does not
          contain the association object. In addition, the Replication Segment
          carries the CCI object to identify a P2MP cross-connect. The
          Replication Segment is distributed individually to the Root, Transit
          and Leaf nodes without the SR P2MP Policy. The Replication Segment
          uses SR-P2MP-INSTANCE-ID-TLV as its identifier. The TLV is coded
          differently for shared and non-shared cases.</t>
        </section>

        <section title="CCI Object">
          <t>The Central Control Instructions (CCI) Object used by PCE to
          specify the controller instructions is defined in <xref
          target="RFC9050"/>.</t>

          <t>This document defines a new CCI object-type for SR P2MP Policy.
          The label in the CCI Object is the incoming SID. The outgoing SIDs
          are defined by the ERO Objects.</t>

          <t>The CCI Object can be included in PCRpt, PCInitiate and PCUpd
          messages for Replication Segments.</t>

          <t>CCI Object-Type is 3 for SR P2MP Policy.</t>

          <t><figure>
              <artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            CC-ID                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      MT-ID    |    Algorithm  | role  |     flags         |V|L|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       SID/Label/Index                         |
+---------------------------------------------------------------+
|                                                               |
//                        Optional TLV                         //
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
            </figure></t>

          <t>Flags:</t>

          <t>The MT-ID, Algorithm, V and the L flags are defined as per <xref
          target="draft-ietf-pce-pcep-extension-pce-controller-sr"/></t>

          <t>The node action and role of ingress, transit, leaf or bud, is
          indicated via the 4-bit role field.</t>

          <t><list style="symbols">
              <t>Ingress, role type = 1</t>

              <t>Transit, role type = 2</t>

              <t>Leaf, role type = 3</t>

              <t>Bud, role type = 4</t>
            </list></t>
        </section>

        <section title="SR-ERO Rules">
          <t>Forwarding information of a Replication Segment can be configured
          and steered via many different mechanisms. RFC <xref
          target="RFC8664"/> defines the NAI types.</t>

          <t>As an example a replication SID can be steered via:</t>

          <t><list style="numbers">
              <t>Replication SID steered with an IPv4/IPv6 directly connected
              nexthop (RFC 8664 NAI type 3, 4, 6 (adjacency)) <list
                  style="symbols">
                  <t>In this case there will be two SR-EROs in the ERO Object,
                  with the Replication SID SR-ERO at the bottom and the
                  IPv4/IPv6 SR-ERO on the top.</t>
                </list></t>

              <t>Replication SID steered with an IPv4/IPv6 loopback address
              that resides on the directly connected router. (NAI type 1..2
              (node)) <list style="symbols">
                  <t>In this case there will be two SR-EROs in the ERO Object,
                  with the Replication SID SR-ERO at the bottom and the
                  IPv4/IPv6 SR-ERO on the top.</t>
                </list></t>

              <t>Replication SID steered with unnumbered IPv4/IPv6 directly
              connected interface (NAI type 5 (adjacency unnumbered))</t>

              <t>Replication SID steered via an SR adjacency or node SID<list
                  style="symbols">
                  <t>In this case even a SID-list can be used to traffic
                  engineer the path between two Replication Segment</t>

                  <t>The Replication SID SR-ERO is at the bottom while the
                  segments describing the path are on top in order.</t>
                </list></t>
            </list></t>
        </section>
      </section>

      <section title="MULTIPATH-BACKUP TLV">
        <t>This document defines a new MULTIPATH-BACKUP TLV which is optional
        in the PATH-ATTRIB object defined in <xref
        target="draft-ietf-pce-multipath"/>.</t>

        <t>This TLV is used to describe a set of backup paths protecting a
        primary path within a PCEP LSP. This is similar to path protection,
        but works at the ECMP path level instead of at the PCEP LSP level.
        This functionality may be implemented for certain specialized use
        cases, as an example if the SR P2MP Policy is implemented in a network
        that does not support LFA this functionality can be used for link or
        node protection.</t>

        <t><figure>
            <artwork><![CDATA[ 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             Type              |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       Backup Path Count       |             Flags           |B|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         Backup Path ID 1                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         Backup Path ID 2                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              ...                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         Backup Path ID n                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
          </figure></t>

        <t>Type (16 bits): 62 for "MULTIPATH-BACKUP" TLV</t>

        <t>Length (16 bits): 4 + (N * 4) bytes (where N is the Backup Path
        Count)</t>

        <t>Backup Path Count (16 bits): Number of backup paths.</t>

        <t>Flags (16 bits):</t>

        <t><list style="symbols">
            <t>B (Pure Backup): If set, indicates the path is a backup path
            (e.g., for protection) and not used for load balancing under
            normal conditions. A pure backup path only carries rerouted
            traffic after the protected paths fail. If this flag is not set,
            or if the MULTIPATH-BACKUP TLV is absent, then the path is assumed
            to be a primary path that carries normal traffic.</t>

            <t>Unassigned bits MUST be set to 0 on transmission and MUST be
            ignored on receipt</t>
          </list>Backup Path IDs: A series of 4-octet identifiers that
        reference the Path ID field (see Section 4.2) of other PATH-ATTRIB
        objects within the same PCEP LSP. These referenced paths act as backup
        paths that protect this primary path. Each Backup Path ID value MUST
        match the Path ID of a PATH-ATTRIB object in the same LSP that has the
        B-flag set (indicating it is a pure backup path).</t>

        <t/>

        <t><figure>
            <artwork><![CDATA[ 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             Type              |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Number of Multipaths      |            Flags    |C|F|O|B|W|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
          </figure></t>

        <t>In addition this document defines a new flag "B-flag" in the
        MULTIPATH-CAP TLV which is defined in the <xref
        target="draft-ietf-pce-multipath"/></t>

        <t><list style="symbols">
            <t>B-flag: whether MULTIPATH-BACKUP TLV is supported.</t>
          </list></t>
      </section>
    </section>

    <section title="IANA Considerations">
      <!-- 6 -->

      <section title="PCEP P2MP Association type">
        <t>This document defines a new Association type for SR P2MP Policy.
        IANA is requested to confirm the allocation in the IANA Registry
        "ASSOCIATION Type Field" within the "Path Computation Element Protocol
        (PCEP) Numbers" registry group.</t>

        <t><figure>
            <artwork><![CDATA[
+----------+----------------------------+-----------------+
| Type     | Name                       | Reference       |
+----------+----------------------------+-----------------+
| 9        | SR P2MP Policy Association | This document   |
+----------+----------------------------+-----------------+

]]></artwork>
          </figure></t>
      </section>

      <section title="P2MP Endpoint Type">
        <t><xref target="RFC8306"/> specified the P2MP END-POINTS object but
        did not create a registry for the 32-bit Leaf type field. This
        document establishes the registry and populates it with values from
        <xref target="RFC8306"/> and adds a new Leaf type. IANA is requested
        to create a new "Endpoint Leaf Types" registry with the allocation
        policy as IETF Review <xref target="RFC8126"/>. This new registry
        contains the following values:</t>

        <t><figure>
            <artwork><![CDATA[
+----------+----------------------------+-----------------+
| Value    | Description                | Reference       |
+----------+----------------------------+-----------------+
| 0        | Reserved                   | This document   |
+----------+----------------------------+-----------------+
| 1        | New leaves to add          | RFC 8306        |
+----------+----------------------------+-----------------+
| 2        | Old leaves to remove       | RFC 8306        |
+----------+----------------------------+-----------------+
| 3        | Old leaves whose path can  | RFC 8306        |
|          | be modified/reoptimized    |                 |
+----------+----------------------------+-----------------+
| 4        | Old leaves whose path must | RFC 8306        |
|          | be left unchanged          |                 |
+----------+----------------------------+-----------------+
| 5        | All old leaves overwritten | This document   |
|          | and replaced with the new  |                 |
+----------+----------------------------+-----------------+

]]></artwork>
          </figure></t>

        <t>To keep it consistent with the Generalized Endpoint Types <xref
        target="RFC8779"/>, this document defines a new Endpoint Type in the
        "Generalized Endpoint Types" registry. IANA is requested to confirm
        the allocation as follows:</t>

        <t><figure>
            <artwork><![CDATA[
    +-----------+---------------------+-----------------+
    | Value     | Type                | Reference       |
    +-----------+---------------------+-----------------+
    | 5         | Point-to-Multipoint | This document   |
    |           | with leaf type 5    |                 |
    +-----------+---------------------+-----------------+

]]></artwork>
          </figure></t>

        <!-- <t>The Authors are requesting value 5 for this new endpoint type.</t>-->
      </section>

      <section title="PCEP TLV Type Indicators">
        <!--><t>This document extends the PCEP OPEN object by defining a new optional
        TLV to indicate the PCE's capability to perform SR-P2MP path
        computation.</t>

        <t>Further, this document defines two new TLVs for identifying the SR
        P2MP Policy and the Replication Segment with IPv4 or IPv6 root
        address.</t>-->

        <t>IANA is requested to confirm the following allocations in the IANA
        Registry "PCEP TLV Type Indicators"</t>

        <t><figure>
            <artwork><![CDATA[
    +------------+------------------------------+----------------+
    | TLV Type   | Description                  | Reference      |
    | Value      |                              |                |
    +------------+------------------------------+----------------+
    | 62         | MULTIPATH-BACKUP             | This document  |
    +------------+------------------------------+----------------+
    | 73         | SR-P2MP-POLICY-CAPABILITY    | This document  |
    +------------+------------------------------+----------------+
    | 74         | IPV4-SR-P2MP-INSTANCE-ID TLV | This document  |
    +------------+------------------------------+----------------+
    | 75         | IPV6-SR-P2MP-INSTANCE-ID TLV | This document  |
    +------------+------------------------------+----------------+

]]></artwork>
          </figure></t>

        <t>Note: MULTIPATH-BACKUP TLV was originally defined in
        [I-D.ietf-pce-multipath], and marked as a reference. IANA is requested
        to update the reference to this document.</t>
      </section>

      <section title="New CCI Object Type">
        <t>This document defines a new CCI Object type for SR P2MP Policy.</t>

        <t>IANA is requested to confirm the following allocation in the "PCEP
        Objects" sub-registry as follows:</t>

        <t><figure>
            <artwork><![CDATA[
    +-------------+----------------------+----------------+
    | Object Class| Name                 | Reference      |
    | Value       |                      |                |
    +-------------+----------------------+----------------+
    | 44          | CCI Object           |                |
    |             | Object-Type          |                |
    |             | 3  :  SR P2MP Policy | This document  |
    +-------------+----------------------+----------------+

]]></artwork>
          </figure></t>
      </section>

      <section title="PCEP Error Type and Value">
        <t>IANA is requested to make the following allocations in the
        "PCEP-ERROR Object Error Types and Values" registry:</t>

        <t><figure>
            <artwork><![CDATA[
        +============+================+===========================+
        | Error-Type | Meaning        | Error-value               |
        +============+================+===========================+
        | 10         | Reception of   | R1: SR P2MP Invalid active|
        |            | an Invalid     | instance                  |
        |            | Object         |                           |
        +------------+----------------+---------------------------+
        | 19         | Invalid        | I1: SR P2MP Attempted     |
        |            | Operation      | activating instance on    |
        |            |                | Transit or leaf           |
        +------------+----------------+---------------------------+
        | X1         | SR P2MP Policy | 0: Unassigned             |
        |            | Capability     +---------------------------+
        |            | Error          | 1: SR P2MP incompatible   |
        |            |                | leaf types                |
        +------------+----------------+---------------------------+
        | X2         | SR P2MP Policy | 0: Unassigned             |
        |            | General Error  +---------------------------+
        |            |                | 1: PCInit Invalid Tree-ID |
        |            |                +---------------------------+
        |            |                | 2: Symbolic Path Name not |
        |            |                | unique                    |
        |            |                +---------------------------+
        |            |                | 3: Invalid Instance-ID    |
        |            |                +---------------------------+
        |            |                | 4: CCI Object missing     |
        |            |                |---------------------------+
        |            |                | 5: Missing Association    |
        |            |                |---------------------------+
        |            |                | 6: Missing Extended       |
        |            |                |    Association ID         |
        +------------+----------------+---------------------------+
      ]]></artwork>
          </figure></t>

        <t>IANA is requested to confirm the following allocations in the
        "PCEP-ERROR Object Error Types and Values" registry:</t>

        <t><figure>
            <artwork><![CDATA[
        +============+================+===========================+
        | Error-Type | Meaning        | Error-value               |
        +============+================+===========================+
        | 19         | Invalid        | 20: Not supported path    |
        |            | Operation      | backup                    |
        +------------+----------------+---------------------------+

      ]]></artwork>
          </figure></t>

        <t>Note: This was originally defined in [I-D.ietf-pce-multipath], and
        marked as a reference. IANA is requested to update the reference to
        this document.</t>
      </section>

      <section title="Flags in the MULTIPATH-BACKUP TLV">
        <t>IANA is requested to create a new sub-registry to manage the Flag
        field of the MULTIPATH-BACKUP TLV, called "Flags in MULTIPATH-BACKUP
        TLV" within the "Path Computation Element Protocol (PCEP) Numbers"
        registry group. New values are to be assigned by "IETF review"
        [RFC8126].</t>

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

]]></artwork>
          </figure></t>
      </section>

      <section title="A New Flag in the MULTIPATH-CAP TLV">
        <t>IANA is requested to allocate bit 14 for "B-flag: MULTIPATH-BACKUP
        TLV support" which is currently Unassigned in the registry called
        "Flags in MULTIPATH-CAP TLV".</t>

        <t><figure>
            <artwork><![CDATA[    +------------+-----------------------------------+-----------------+
    | 14         | B-flag: MULTIPATH-BACKUP TLV      | This document   |
    |            |  support                          |                 |
    +------------+-----------------------------------+-----------------+

]]></artwork>
          </figure></t>
      </section>
    </section>

    <section title="Security Considerations">
      <!-- 8 -->

      <t>The security considerations described in <xref target="RFC5440"/>,
      <xref target="RFC8231"/>, <xref target="RFC8281"/>, <xref
      target="RFC8664"/>, <xref target="RFC8697"/>, <xref target="RFC9256"/>
      and <xref target="RFC9524"/> are applicable to this specification.</t>

      <t>As per <xref target="RFC8231"/>, it is RECOMMENDED that these PCEP
      extensions can 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"/>.</t>

      <t>No additional security measures are required for SR P2MP Policy.</t>
    </section>

    <section title="Implementation Status">
      <t>Note to the RFC Editor: please remove this section before
      publication. 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 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. According to
      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 title="Cisco Implementation">
        <t>Cisco has implemented this document on both IOS XR PCE and PCC.
        Both PCE-Initiated and PCC-Initiated SR P2MP Policy types have been
        implemented. Only one Candidate Path can be created with the SR P2MP
        Policy and only one PTI is supported within a CP.</t>
      </section>
    </section>

    <section numbered="true" title="Manageability Considerations"
             toc="default">
      <t>All manageability requirements and considerations listed in <xref
      target="RFC5440"/>, <xref target="RFC8231"/>, <xref target="RFC8664"/>,
      and <xref target="RFC9256"/> apply to PCEP protocol extensions defined
      in this document. In addition, requirements and considerations listed in
      this section apply.</t>

      <section numbered="true" title="Operation Consideration" toc="default">
        <t>With P2MP policy any router that is acting as a Root, Transit
        (replication point) and Leaf needs to have a PCEP connectivity to the
        controller. This might not be the case for unicast where only the node
        that is instantiating the SR Policy and the ordered list of the
        segments needs PCEP connectivity. An operator might need to enable
        PCEP on more nodes for enabling P2MP Policy on a network that is
        already supporting SR Policy, as such the operator needs to ensure
        that the controller can handle the extra PCEP connection scale.
        Otherwise, operational considerations of P2MP Policy are in line with
        <xref target="RFC5440"/>, <xref target="RFC8231"/>, <xref
        target="RFC8664"/>, <xref target="RFC9256"/> and <xref
        target="RFC9862"/>.</t>
      </section>

      <section numbered="true" title="Liveness Detection and Monitoring"
               toc="default">
        <t>Since P2MP Policy does not use any underlay signaling to detect
        failure it is recommended to use (Operations, Administration, and
        Maintenance) OAM features to detect failure on a tree. <xref
        target="draft-ietf-pim-p2mp-policy-ping"/> defines extensions to Ping
        and Traceroute mechanism for SR P2MP Policy with MPLS encapsulation to
        provide OAM capabilities. The extensions enable operators to verify
        connectivity, diagnose failures and troubleshoot forwarding issues
        within SR P2MP Policy multicast trees. The implementation can trigger
        P2MP Policy Ping or Traceroute periodically to test the end-to-end
        connectivity and trigger a global optimization of the tree from the
        Root to the Leaves. Any local failure can be detected via monitoring
        the state of the outgoing links and trigger a local optimization. In
        addition, as the controller gets updated with the network topology it
        also triggers a global optimization of the tree based on new
        discovered optimal paths from the Root to the Leaves.</t>
      </section>

      <section numbered="true" title="Verify Correct Operation" toc="default">
        <t>Operation verification requirements already listed in <xref
        target="RFC5440"/>, <xref target="RFC8231"/>, <xref
        target="RFC8664"/>, <xref target="RFC9256"/> are applicable to
        mechanisms defined in this document.</t>

        <t>An implementation MUST allow the operator to view SR P2MP Policy
        Identifier and each SR Replication segment Candidate Path Identifier
        advertised in PCEP.</t>

        <t>An implementation SHOULD allow the operator to view the
        capabilities defined in this document.</t>

        <t>An implementation SHOULD allow the operator to view each
        Replication segment Candidate Path associated with specific SR P2MP
        Policy.</t>
      </section>

      <section numbered="true" title="Requirements On Other Protocols"
               toc="default">
        <t>The PCEP extensions defined in this document do not imply any new
        requirements on other protocols.</t>
      </section>

      <section numbered="true" title="Impact On Network Operations"
               toc="default">
        <t>The mechanisms defined in <xref target="RFC5440"/>, <xref
        target="RFC8231"/>, <xref target="RFC9256"/> also apply to the PCEP
        extensions defined in this document.</t>
      </section>
    </section>

    <section title="Acknowledgments">
      <!-- 9 -->

      <t>The authors would like to thank Tanmoy Kundu and Andrew Stone at
      Nokia and Tarek Saad at Cisco for their feedback and major contribution
      to this document.</t>
    </section>

    <section title="Contributors">
      <t><figure>
          <artwork><![CDATA[Andrew Stone
                    Nokia
                    Email: andrew.stone@nokia.com
Tarek Saad
                    Cisco Systems
                    Email: tsaad.net@gmail.com

Saranya Rajarathinam
                    Nokia
                    Email: saranya.Rajarathinam@nokia.com
                  ]]></artwork>
        </figure></t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <!-- 10.2 -->

      <reference anchor="RFC9960">
        <front>
          <title>D. Voyer, C. Filsfils, R. Parekh, H. Bidgoli, Z. Zhang,
          "Segment Routing Point-to-Multipoint Policy"</title>

          <author>
            <organization/>
          </author>

          <date month="October" year="2019"/>
        </front>
      </reference>

      <reference anchor="RFC9524">
        <front>
          <title>D. Voyer, C. Filsfils, R. Parekh, H. Bidgoli, Z. Zhang, "SR
          Replication Segment for Multi-point Service Delivery"</title>

          <author>
            <organization/>
          </author>

          <date month="July" year="2020"/>
        </front>
      </reference>

      <reference anchor="draft-ietf-pce-multipath">
        <front>
          <title>M. Koldychev, S. Sivabalan, T. Saad, H. Bidgoli, B. Yadav, S.
          Peng, G. Mishra "PCEP Extensions for Signaling Multipath
          Information"</title>

          <author>
            <organization/>
          </author>

          <date month="November" year="2022"/>
        </front>
      </reference>

      <reference anchor="RFC9256">
        <front>
          <title>C. Filsfils, K. Talaulikar, D. Voyer, A. Bogdanov, P. Mattes
          "Segment Routing Policy Architecture"</title>

          <author>
            <organization/>
          </author>

          <date month="July" year="2022"/>
        </front>
      </reference>

      <reference anchor="RFC6513">
        <front>
          <title>E. Rosen, R. Aggerwal "Multicast in MPLS/BGP IP VPNs"</title>

          <author>
            <organization/>
          </author>

          <date month="February" year="2012"/>
        </front>
      </reference>

      <reference anchor="RFC8306">
        <front>
          <title>Q. Zhao, D. Dhody, R. Palleti, D. King, "PCEP for
          Point-to-Multipoint Traffic Engineering Label Switched
          Paths"</title>

          <author>
            <organization/>
          </author>

          <date month="November" year="2017"/>
        </front>
      </reference>

      <reference anchor="RFC8231">
        <front>
          <title>E. Crabbe, I. Minei, J. Medved, R. Varga "PCEP Extensions for
          Stateful PCE"</title>

          <author>
            <organization/>
          </author>

          <date month="September" year="2017"/>
        </front>
      </reference>

      <reference anchor="RFC8697">
        <front>
          <title>I. Minei, E. Crabbe, S. Sivabalan, H. Ananthakrishnan, D.
          Dhody, Y. Tanaka "PCEP Extensions for Establishing Relationships
          between Sets of LSPs"</title>

          <author>
            <organization/>
          </author>

          <date month="January" year="2020"/>
        </front>
      </reference>

      <reference anchor="RFC8664">
        <front>
          <title>S. Sivabalan, C. Filsfils, J. Tantsura, W. Henderickx, J.
          Hardwick "PCEP Extensions for Segment Routing"</title>

          <author>
            <organization/>
          </author>

          <date month="December" year="2019"/>
        </front>
      </reference>

      <reference anchor="RFC8281">
        <front>
          <title>E. Crabbe, I. Minei, S. Sivabalan, R. Varga "PCEP Extensions
          for PCE-Initiated LSP Setup in a Stateful PCE Model"</title>

          <author>
            <organization/>
          </author>

          <date month="December" year="2017"/>
        </front>
      </reference>

      <reference anchor="RFC9050">
        <front>
          <title>Z. Li, S. Peng, M. Negi, Q. Zhao, C. Zhou "PCEP Procedures
          and Extensions for Using the PCECC"</title>

          <author>
            <organization/>
          </author>

          <date month="July" year="2021"/>
        </front>
      </reference>

      <reference anchor="RFC2119">
        <front>
          <title>"Key words for use in RFCs to Indicate Requirement
          Levels"</title>

          <author>
            <organization/>
          </author>

          <date month="March" year="1997"/>
        </front>
      </reference>

      <reference anchor="RFC8253">
        <front>
          <title>D. Lopez, Q. Wu, D. Dhody, "Usage of TLS to Provide a Secure
          Transport for the PCEP"</title>

          <author>
            <organization/>
          </author>

          <date month="October" year="2017"/>
        </front>
      </reference>

      <reference anchor="RFC8779">
        <front>
          <title>C. Margaria, O. Gonzalez, F. Zhang "PCEP extensions for
          GMPLS"</title>

          <author>
            <organization/>
          </author>

          <date month="July" year="2020"/>
        </front>
      </reference>

      <reference anchor="RFC8126">
        <front>
          <title>M. Cotton, B. Leiba, T. Narten "Guidelines for Writing an
          IANA Considerations Section in RFCs"</title>

          <author>
            <organization/>
          </author>

          <date month="June" year="2017"/>
        </front>
      </reference>

      <reference anchor="RFC7988">
        <front>
          <title>E. Rosen, K. Subramanian, Z. Zhang "Ingress Replication
          Tunnels in Multicast VPN"</title>

          <author>
            <organization/>
          </author>

          <date month="October" year="2016"/>
        </front>
      </reference>

      <reference anchor="RFC5440">
        <front>
          <title>JP. Vasseur, JL. Le Roux "Path Computation Element (PCE)
          Communication Protocol (PCEP)"</title>

          <author>
            <organization/>
          </author>

          <date month="March" year="2009"/>
        </front>
      </reference>

      <reference anchor="RFC8174">
        <front>
          <title>"Ambiguity of Uppercase vs Lowercase in RFC 2119 Key
          Words"</title>

          <author>
            <organization/>
          </author>

          <date month="May" year="2017"/>
        </front>
      </reference>

      <reference anchor="RFC9862">
        <front>
          <title>M. Koldychev, S. Sivabalan, C. Barth, S. Peng, H. Bidgoli
          "PCEP Extensions for SR Policy Candidate Paths"</title>

          <author>
            <organization/>
          </author>

          <date month="October" year="2025"/>
        </front>
      </reference>

      <reference anchor="draft-ietf-pim-p2mp-policy-ping">
        <front>
          <title>H. Bidgoli, Z. Ali, Z. Zhang, A. Budhiraja, D. Voyer,
          "Segment Routing MPLS P2MP Policy Ping"</title>

          <author>
            <organization/>
          </author>

          <date/>
        </front>
      </reference>
    </references>

    <references title="Informative References">
      <!-- 10.2 -->

      <reference anchor="draft-ietf-pce-stateful-pce-p2mp">
        <front>
          <title>U. Palle, D. Dhody, Y.Tanaka, V. Beeram "Protocol Extensions
          for Stateful PCE usage for Point-to-Multipoint Traffic Engineering
          Label"</title>

          <author>
            <organization/>
          </author>

          <date month="April" year="2019"/>
        </front>
      </reference>

      <reference anchor="draft-ietf-pce-pcep-extension-pce-controller-sr">
        <front>
          <title>Z. Li, S. Peng, M. Negi, Q. Zhao, C. Zhou, "PCEP Extensions
          for Using PCE as a PCECC for SR MPLS SID"</title>

          <author>
            <organization/>
          </author>

          <date/>
        </front>
      </reference>
    </references>

    <section anchor="appendix" numbered="true" pn="section-appendix.a"
             removeInRFC="false" title="Packet Examples" toc="include">
      <section title="Report for Leaf Add">
        <t>This is an example of PCC initiated P2MP Policy. The PCC will send
        a Report message to the PCE to initiate a P2MP Policy with a set of
        leaves that are discovered via Next Generation MVPN procedures as per
        <xref target="RFC6513"/>.</t>

        <t>In addition, since the PCC is initiating the P2MP Policy, it does
        populate the PLSP-ID for the Candidate Path. PCC will leave the
        Instance-ID for the PTI to 0 and the Instance-ID is assigned by the
        PCE.</t>

        <figure>
          <artwork><![CDATA[
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          Flags = 0                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        SRP-ID-number  = 0                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  TLV Type = 28 (PathSetupType)| TLV Len = 4                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                             | PST = TBD       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                           <LSP OBJECT>
|                PLSP-ID = 1            |     A:1,D:1           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Type=17             |           Length=<var>        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            symbolic path name                 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             Type=TBD          |  Length                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                   Root = A                                    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                  Tree-ID = Y                                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Instance-ID = 0                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                       <P2MP-END-POINT OBJECT>
|                          Leaf type = 5                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Source IPv4 address = A                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                  Destination IPv4 address = D                 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                  Destination IPv4 address = E                 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
      </section>

      <section title="SR P2MP Policy Candidate Path Init">
        <t>The following packet is the PCE creating the CP for the SR P2MP
        Policy and downloading the Replication Segment with the same message
        on the root.</t>

        <t>It should be noted combining the SR P2MP Policy CP creation and
        Replication Segment only is possible on the root.</t>

        <t>As such this message contains both association object and the CCI
        object. The CCI Object contains the incoming Binding SID and wraps all
        the Path Attribute messages and their corresponding EROs.</t>

        <t>The PLSP-ID are populated with the same ID as the previous PCC
        report message and the Instance-ID is assigned by the PCE.</t>

        <t>
          <figure>
            <artwork><![CDATA[       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                          Flags = 0                            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                        SRP-ID-number  = 1                     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  TLV Type = 28 (PathSetupType)| TLV Len = 4                   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                             | PST = TBD       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                             <LSP OBJECT>
      |                PLSP-ID = 1            |     A:1,D:1,C:0       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |           Type=17             |           Length=<var>        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                            symbolic path name                 |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |             Type=TBD          |  Length                       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                   Root =A                                     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                  Tree-ID = Y                                  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                         Instance-ID = L1                      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                            <ASSOCIATION OBJECT>
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |         Reserved              |            Flags            |0|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | Association type= SR-P2MP-PAG |      Association ID = z       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |              IPv4 Association Source = <pce-address>          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     Type=P2MP SR Policy ID    |             Length            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                         Root  = A                             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                           TREE-ID = 0                         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |    Type=P2MP SR Policy Name   |             Length            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      ~                     P2MP SR Policy Name                       ~
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |Type=P2MP SR Pol Cand-path ID  |             Length            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |ProtOrigin 10  |    Reserved                                   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                         Originator ASN                        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      |                       Originator Address = <pce-address>      |
      |                                                               |
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                         Discriminator = 1                     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |Type=P2MP SR Pol Cand-path Name|             Length            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      ~               P2MP SR Policy Candidate Path Name              ~
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |Type=P2MP SR Pol Cand-Path Pre |             Length            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                           Preference = 100 <default>          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                              <P2MP-END-POINT OBJECT>
      |                          Leaf type = 5                        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                     Source IPv4 address = A                   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                  Destination IPv4 address = D                 |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                  Destination IPv4 address = E                 |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                            <CCI OBJECT>
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                            CC-ID = X                          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |      MT-ID    |    Algorithm  | role  |     flags         |V|L|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                           Label = 0                           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       <PATH-ATTRIBUTES OBJECT>
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                         Flags                           | Oper|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                              ERO-path Id = 1                  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |             Type              |             Length            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |       Backup Path Count = 1   |             Flags           |0|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                         Backup Path ID 2                      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                           <ERO-OBJECT>
                         <SR-ERO-SUB OBJECT>

      |L|   Type=36   |     Length    |  NT= 1|     Flags   |0|0|1|0|0|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                ipv4-address  = NHD1           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |L|   Type=36   |     Length    |  NT= 0|     Flags   |0|1|0|0|0|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                         SID = d1                              |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       <PATH-ATTRIBUTES OBJECT>
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                         Flags                           | Oper|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                              ERO-path Id = 2                  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |             Type              |             Length            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |       Backup Path Count = 0   |             Flags           |1|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                           <ERO-OBJECT>
                         <SR-ERO-SUB OBJECT>

      |L|   Type=36   |     Length    |  NT= 1|     Flags   |0|0|1|0|0|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                ipv4-address  = NHD2           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |L|   Type=36   |     Length    |  NT= 0|     Flags   |0|1|0|0|0|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                         SID = d2                              |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+




]]></artwork>
          </figure>
        </t>
      </section>

      <section title="Replication Segment PCE Initiated on Transit and Leaves">
        <t>The following packet examples show the Replication Segment
        initiation via a PCE on Transit nodes and/or Leaf nodes.</t>

        <t>Note:</t>

        <t><list style="numbers">
            <t>This packet is generated from PCE to instantiate the
            Replication segment, as such the PLSP-ID is set to zero. PCC will
            assign these values and report them back to PCE.</t>

            <t>The Instance-ID was assigned by the PCE for the entire PTI path
            on the root, transit and leaves (P2MP tree)</t>

            <t>This is a Replication Segment instantiation as such there is no
            association object.</t>

            <t>The LSP Object Root A and Tree-ID Y associates this Replication
            Segment to the corresponding CP and PTI on the root node.</t>
          </list>there is no association object present in the packet.</t>

        <t>
          <figure>
            <artwork><![CDATA[       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                          Flags = 0                            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                        SRP-ID-number  = 1                     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  TLV Type = 28 (PathSetupType)| TLV Len = 4                   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                             | PST = TBD       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                             <LSP OBJECT>
      |                PLSP-ID = 0            |     A:1,D:1,C:0       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |           Type=17             |           Length=<var>        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                            symbolic path name                 |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |             Type=TBD          |  Length                       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                   Root =A                                     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                  Tree-ID = Y                                  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                        Instance-ID = L1                       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                            <CCI OBJECT>
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                            CC-ID = X                          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |      MT-ID    |    Algorithm  | role  |     flags         |V|L|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                           Label = d1                          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       <PATH-ATTRIBUTES OBJECT>
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                         Flags                           | Oper|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                              ERO-path Id = 1                  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |             Type              |             Length            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |       Backup Path Count = 1   |             Flags           |0|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                         Backup Path ID 2                      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                           <ERO-OBJECT>
                         <SR-ERO-SUB OBJECT>

      |L|   Type=36   |     Length    |  NT= 1|     Flags   |0|0|1|0|0|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                ipv4-address  = NHE1           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |L|   Type=36   |     Length    |  NT= 0|     Flags   |0|1|0|0|0|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                         SID = e1                            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       <PATH-ATTRIBUTES OBJECT>
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                         Flags                           | Oper|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                              ERO-path Id = 2                  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |             Type              |             Length            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |       Backup Path Count = 0   |             Flags           |1|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                           <ERO-OBJECT>
                         <SR-ERO-SUB OBJECT>

      |L|   Type=36   |     Length    |  NT= 1|     Flags   |0|0|1|0|0|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                ipv4-address  = NHE2           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |L|   Type=36   |     Length    |  NT= 0|     Flags   |0|1|0|0|0|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                         SID = e2                              |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
        </t>
      </section>
    </section>

    <section title="Example Workflows">
      <figure>
        <artwork><![CDATA[                  +-------+                             +-------+
                  |PCC    |                             |  PCE  |
                  |Root   |                             +-------+
           +------|       |                                 |
           | PCC  +-------+                                 |
           | Transit| |                                     |
    +------|        | |---PCRpt,PLSP-ID=1         --------->| PCECC LSP
    |PCC   +--------+ |   N=1,root-addr,Tree-ID=a,          | SR-Policy
    |        |  |     |   Instance-ID =0,                   | Report to
    |Leaf    |  |     |   P2MP-END-POINT (LeafType=5)(optnl)| PCE
    +--------+  |     |   association-obj                   |
        |       |     |                                     |
        |<---------------PCInitiate,PLSP-ID=0, -------------| Download
        |       |     |   root-addr,Tree-ID=a,Instance-ID=b,| Leaf
        |       |     |  CC-ID=Z,C=0,                       | Replication
        |       |     |  O=0,L=z,path-attribute,ERO,SR-ERO  | Segment(RS)
        |       |     |                                     |
        |---------------------PCRpt,PLSP-ID=1-------------->|
        |       |     |   root-addr,Tree-ID=a,Instance-ID=b,|
        |       |     |       CC-ID=Z,Label=z,O=0,          |
        |       |     |      path-attribute,ERO,SR-ERO      |
        |       |     |                                     |
        |       |<-------PCInitiate,PLSP-ID=0, -------------| Download
        |       |     |   root-addr,Tree-ID=a,Instance-ID=b,| Transit
        |       |     |  CC-ID=Y,C=0,                       | RS
        |       |     |  O=0,L=y,path-attribute,ERO,SR-ERO  |
        |       |     |                                     |
        |       |-------------PCRpt,PLSP-ID=2-------------->|
        |       |     |   root-addr,Tree-ID=a,Instance-ID=b,|
        |       |     |       CC-ID=Y,Label=y,O=0,          |
        |       |     |      path-attribute,ERO,SR-ERO      |
        |       |     |                                     |
        |       |     |<--PCInitiate,PLSP-ID=0,             | Download
        |       |     |   root-addr,Tree-ID=a,Instance-ID=b,| Root
        |       |     |   CC-ID=X,C=0,                      | RS
        |       |     | O=0,L=x,P2MP-end-                   |
        |       |     |   points(LeafType=5),path-attribute,|
        |       |     |   ERO,SR-ERO                        |
        |       |     |                                     |
        |       |     |-------PCRpt,PLSP-ID=1-------------->|
        |       |     |   root-addr,Tree-ID=a,Instance-ID=b,|
        |       |     |    CC-ID=X,Label=x,O=0,             |
        |       |     |      P2MP-END-POINT (LeafType=5)    |
        |       |     |      path-attribute,ERO,SR-ERO       |
        |       |     |                                     |
        |       |     |<--PCUpd,PLSP-ID=1, SRP-ID =2,       |
        |       |     |   root-addr,Tree-ID=a,Instance-ID=b,| Activate
        |       |     |   P2MP-END-POINTs                   | CP to last
        |       |     |                                     | RS
        |       |     |-------PCRpt,PLSP-ID=1, SRP-ID =2, ->|
        |       |     |   root-addr,Tree-ID=a,Instance-ID=b,|
        |       |     |      P2MP-END-POINT (LeafType=5)    |
        |       |     |                                     |


]]></artwork>
      </figure>

      <t>Note that on transit / leaf Initiate is with PLSP-ID = 0. Therefore
      PLSP-ID is locally unique to a node. It should be noted that the CC-ID
      does not need to be constant across all nodes that make up the path.</t>

      <t>PCE-Initiated workflow</t>

      <figure>
        <artwork><![CDATA[                 +-------+                             +-------+
                  |PCC    |                             |  PCE  |
                  |Root   |                             +-------+
           +------|       |                                 |
           | PCC  +-------+                                 |
           | Transit| |                                     |
    +------|        | |                                     | PCECC LSP
    |PCC   +--------+ |                                     |
    |        |  |     |                                     |
    |Leaf    |  |     |                                     |
    +--------+  |     |                                     |
        |       |     |<--PCInitiate,PLSP-ID=0,             | Initiate
        |       |     |   root-addr,Tree-ID=0,Instance-ID=b,| CP
        |       |     |   P2MP-END-POINTs, association-obj  |
        |       |     |                                     |
        |       |     |-------PCRpt,PLSP-ID=1,------------->|
        |       |     |   root-addr,Tree-ID=a,Instance-ID=b,|
        |       |     |      P2MP-END-POINTs(LeafType=5)    |
        |       |     |      association-object,            |
        |       |     |                                     |
        |       |     |<--PCUpd,PLSP-ID=1,                  | Download
        |       |     |   root-addr,Tree-ID=a,Instance-ID=b,| Root RS
        |       |     |   CC-ID=X,C=0,                      |
        |       |     | O=0,L=x,P2MP-end-                   |
        |       |     |   points(LeafType=5),path-attribute,|
        |       |     |   ERO,SR-ERO                        |
        |       |     |                                     |
        |       |     |-------PCRpt,PLSP-ID=1-------------->|
        |       |     |   root-addr,Tree-ID=a,Instance-ID=b,|
        |       |     |    CC-ID=X,Label=x,O=0,             |
        |       |     |      P2MP-END-POINTs(LeafType=5)    |
        |       |     |      path-attribute,ERO,SR-ERO       |
        |       |     |                                     |
        |<---------------PCInitiate,PLSP-ID=0, -------------| Download
        |       |     |   root-addr,Tree-ID=a,Instance-ID=b,| Leaf RS
        |       |     |  CC-ID=Z,C=0,                       |
        |       |     |  O=0,L=z,path-attribute,ERO,SR-ERO  |
        |       |     |                                     |
        |---------------------PCRpt,PLSP-ID=1-------------->|
        |       |     |   root-addr,Tree-ID=a,Instance-ID=b,|
        |       |     |       CC-ID=Z,Label=z,O=0,          |
        |       |     |      path-attribute,ERO,SR-ERO      |
        |       |     |                                     |
        |       |<-------PCInitiate,PLSP-ID=0, -------------| Download
        |       |     |   root-addr,Tree-ID=a,Instance-ID=b,| Transit RS
        |       |     |  CC-ID=Y,C=0,                       |
        |       |     |  O=0,L=y,path-attribute,ERO,SR-ERO  |
        |       |     |                                     |
        |       |-------------PCRpt,PLSP-ID=2-------------->|
        |       |     |   root-addr,Tree-ID=a,Instance-ID=c,|
        |       |     |       CC-ID=Y,Label=y,O=0,          |
        |       |     |      path-attribute,ERO,SR-ERO      |
        |       |     |                                     |
        |       |<-------PCInitiate,PLSP-ID=0, -------------|
        |       |     |   root-addr,Tree-ID=a,Instance-ID=b,|
        |       |     |  CC-ID=Y,C=0,                       |
        |       |     |  O=0,L=y,path-attribute,ERO,SR-ERO  |
        |       |     |                                     |
        |       |-------------PCRpt,PLSP-ID=2-------------->|
        |       |     |   root-addr,Tree-ID=a,Instance-ID=b,|
        |       |     |       CC-ID=Y,Label=y,O=0,          |
        |       |     |      path-attribute,ERO,SR-ERO      |
        |       |     |                                     |
        |       |     |<--PCUpd,PLSP-ID=1, SRP-ID =1,       | Bind and
        |       |     |   root-addr,Tree-ID=a,Instance-ID=b,| Activate
        |       |     |   P2MP-END-POINTs,                  | CP to last
        |       |     |                                     | RS
        |       |     |-------PCRpt,PLSP-ID=1, SRP-ID = 1,->|
        |       |     |   root-addr,Tree-ID=a,Instance-ID=b,|
        |       |     |      P2MP-END-POINTs(LeafType=5)    |


]]></artwork>
      </figure>

      <t>MBB Workflow:</t>

      <t><figure>
          <artwork><![CDATA[Common (PCE-INIT, PCC-INIT) MBB

                 +-------+                             +-------+
                  |PCC    |                             |  PCE  |
                  |Root   |                             +-------+
           +------|       |                                 |
           | PCC  +-------+                                 |
           | Transit| |                                     |
    +------|        | |                                     | PCECC LSP
    |PCC   +--------+ |                                     |
    |        |  |     |                                     |
    |Leaf    |  |     |                                     |
    +--------+  |     |                                     |
        |<---------------PCInitiate,PLSP-ID=1, -------------| Download
        |       |     |   root-addr,Tree-ID=a,Instance-ID=b,| new RS on
        |       |     |  CC-ID=Z1,C=0,                      | Leaf
        |       |     |  O=0,L=z1,path-attribute,ERO,SR-ERO |
        |       |     |                                     |
        |---------------------PCRpt,PLSP-ID=1-------------->|
        |       |     |   root-addr,Tree-ID=a,Instance-ID=b,|
        |       |     |       CC-ID=Z1,Label=z1,O=0,        |
        |       |     |      path-attribute,ERO,SR-ERO      |
        |       |     |                                     |
        |       |<-------PCInitiate,PLSP-ID=2, -------------| Download
        |       |     |   root-addr,Tree-ID=a,Instance-ID=b,| new RS on
        |       |     |  CC-ID=Y1,C=0,                      | Transit
        |       |     |  O=0,L=y1,path-attribute,ERO,SR-ERO |
        |       |     |                                     |
        |       |-------------PCRpt,PLSP-ID=2-------------->|
        |       |     |   root-addr,Tree-ID=a,Instance-ID=b,|
        |       |     |       CC-ID=Y1,Label=y1,O=0,        |
        |       |     |      path-attribute,ERO,SR-ERO      |
        |       |     |                                     |
        |       |     |<--PCInitiate,PLSP-ID=1,             | Download
        |       |     |   root-addr,Tree-ID=a,Instance-ID=b,| new RS on
        |       |     |   CC-ID=X1,C=0,                     | Root
        |       |     | O=0,L=x1,P2MP-end-                  |
        |       |     |   points(LeafType=5),path-attribute,|
        |       |     |   ERO,SR-ERO                        |
        |       |     |                                     |
        |       |     |-------PCRpt,PLSP-ID=1-------------->|
        |       |     |   root-addr,Tree-ID=a,Instance-ID=b,|
        |       |     |    CC-ID=X1,Label=x1,O=0,           |
        |       |     |      P2MP-END-POINTs(LeafType=5)    |
        |       |     |      path-attribute,ERO,SR-ERO       |
        |       |     |                                     |
        |       |     |<--PCUpd,PLSP-ID=1, SRP-ID =1,       | Bind and
        |       |     |   root-addr,Tree-ID=a,Instance-ID=b,| Activate
        |       |     |   P2MP-END-POINTs,                  | CP to last
        |       |     |                                     | RS
        |       |     |-------PCRpt,PLSP-ID=1, SRP-ID = 1,->|
        |       |     |   root-addr,Tree-ID=a,Instance-ID=b,|
        |       |     |      P2MP-END-POINTs(LeafType=5)    |
        |       |     |                                     |
        |       |     |<--PCInitiate,PLSP-ID=1,R=1          | Remove
        |       |     |   root-addr,Tree-ID=a,Instance-ID=b,| the old RS
        |       |     |   CC-ID=X1,C=0                      | from Leaf
        |       |     | O=0,L=x1,P2MP-end-                  |
        |       |     |   points(LeafType=5),path-attribute,|
        |       |     |   ERO,SR-ERO                        |
        |       |     |                                     |
        |       |     |-------PCRpt,PLSP-ID=1, R=1--------->|
        |       |     |   root-addr,Tree-ID=a,Instance-ID=b,|
        |       |     |    CC-ID=X1,Label=x1,O=0,           |
        |       |     |      P2MP-END-POINTs(LeafType=5)    |
        |       |     |      path-attribute,ERO,SR-ERO       |
        |       |     |                                     |
        |       |<-------PCInitiate,PLSP-ID=2, R=1----------| Remove the
        |       |     |   root-addr,Tree-ID=a,Instance-ID=b,| old RS from
        |       |     |  CC-ID=Y1,C=0,                      | Transit
        |       |     |  O=0,L=y1,path-attribute,ERO,SR-ERO |
        |       |     |                                     |
        |       |-------------PCRpt,PLSP-ID=2, R=1--------->|
        |       |     |   root-addr,Tree-ID=a,Instance-ID=b,|
        |       |     |       CC-ID=Y1,Label=y1,O=0,        |
        |       |     |      path-attribute,ERO,SR-ERO      |
        |       |     |                                     |
        |<---------------PCInitiate,PLSP-ID=1,R=1-----------| Remove the
        |       |     |   root-addr,Tree-ID=a,Instance-ID=b,| old RS from
        |       |     |  CC-ID=Z1,C=0,                      | Root
        |       |     |  O=0,L=z1,path-attribute,ERO,SR-ERO |
        |       |     |                                     |
        |---------------------PCRpt,PLSP-ID=1,R=1---------->|
        |       |     |   root-addr,Tree-ID=a,Instance-ID=b,|
        |       |     |       CC-ID=Z1,Label=z1,O=0,        |
        |       |     |      path-attribute,ERO,SR-ERO      |

]]></artwork>
        </figure></t>
    </section>
  </back>
</rfc>
<!-- generated from file C:\Users\hbidgoli\Downloads\draft-ietf-bier-pim-signaling-08.nroff with nroff2xml 0.1.0 by Tomek Mrugalski -->
