PCEP extensions for p2mp sr policy
draft-hsd-pce-sr-p2mp-policy-00
This document is an Internet-Draft (I-D).
Anyone may submit an I-D to the IETF.
This I-D is not endorsed by the IETF and has no formal standing in the
IETF standards process.
The information below is for an old version of the document.
Document | Type |
This is an older version of an Internet-Draft whose latest revision state is "Replaced".
|
|
---|---|---|---|
Authors | Hooman Bidgoli , Daniel Voyer , Saranya Rajarathinam , Jayant Kotalwar , Siva Sivabalan | ||
Last updated | 2019-07-08 | ||
Replaced by | draft-ietf-pce-sr-p2mp-policy | ||
RFC stream | (None) | ||
Formats | |||
Stream | Stream state | (No stream defined) | |
Consensus boilerplate | Unknown | ||
RFC Editor Note | (None) | ||
IESG | IESG state | I-D Exists | |
Telechat date | (None) | ||
Responsible AD | (None) | ||
Send notices to | (None) |
draft-hsd-pce-sr-p2mp-policy-00
Network Working group H. Bidgoli, Ed. Internet Draft Nokia Intended status: Standard Track D. Voyer, Ed. Bell Canada S. Rajarathinam J. Kotalwar Nokia S. Sivabalan Cisco System, Inc. Expires: January 7, 2020 July 6, 2019 PCEP extensions for p2mp sr policy draft-hsd-pce-sr-p2mp-policy-00 Abstract SR P2MP policies are set of policies that enable 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 from a Root to a set of Leaves. Status of this Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html Bidgoli, et al. Expires January 7, 2020 [Page 1] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 This Internet-Draft will expire on October 8, 2017. Copyright Notice Copyright (c) 2019 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Conventions used in this document . . . . . . . . . . . . . . . 4 3. Overview of PCEP Operation in SR P2MP Network . . . . . . . . . 4 3.1. High level view of a P2MP Policy Objects . . . . . . . . . 5 3.1.1. Existing drafts used in defining the P2MP Policy . . . 6 3.1.2. P2MP Identification . . . . . . . . . . . . . . . . . . 7 3.2 High-Level Procedures for P2MP SR LSP Instantiation . . . . 7 3.2.1 MVPN procedures . . . . . . . . . . . . . . . . . . . . 8 3.2.2. Global Optimization for P2MP LSPs . . . . . . . . . . . 10 3.2.3. Fast Reroute . . . . . . . . . . . . . . . . . . . . . 10 3.2.3. Connecting Replication Policy via Segment List . . . . 11 3.3. SR P2MP New TLVs and Objects . . . . . . . . . . . . . . . 12 4. Object Format . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.1. Open Message and Capability Exchange . . . . . . . . . . . 12 4.2. Symbolic Name in PCInitiate message from PCC . . . . . . . 13 4.3. Replication policy . . . . . . . . . . . . . . . . . . . . 14 4.3.1 P2MP Policy Association Group . . . . . . . . . . . . . 14 4.3.1.1 P2MP SR Policy Association Group Policy Identifiers TLV . . . . . . . . . . . . . . . . . . 14 4.3.1.2 P2MP SR Policy Association Group Candidate Path Identifiers TLV . . . . . . . . . . . . . . . . . . 15 4.3.1.3 P2MP SR Policy Association Group Candidate Path Attributes TLV . . . . . . . . . . . . . . . . . . . 16 4.4. PCEP Message Exchanges . . . . . . . . . . . . . . . . . . 17 4.4.1 Extension of the LSP Object, SR-P2MP-LSPID-TLV . . . . . 17 4.5. SR-P2MP-CCI Object . . . . . . . . . . . . . . . . . . . . 18 4.5.1 Optional IP-Address TLVs . . . . . . . . . . . . . . . . 19 4.6. Root PCE Report message . . . . . . . . . . . . . . . . . . 21 Bidgoli, et al. Expires January 7, 2020 [Page 2] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 4.6.1 END-POINTS Objects . . . . . . . . . . . . . . . . . . . 21 5. Examples of PCEP messages between PCE and PCEP . . . . . . . . 23 5.1. PCE Initiate and PCC Leaves Update . . . . . . . . . . . . 23 5.2. PCE P2MP LSP Calculation and Replication Policy download . 27 5.3. PCC Rpt for PCE Update and Init Messages . . . . . . . . . 35 6. Tree Deletion . . . . . . . . . . . . . . . . . . . . . . . . . 37 7. Fragmentation . . . . . . . . . . . . . . . . . . . . . . . . . 37 8. Example workflow . . . . . . . . . . . . . . . . . . . . . . . 37 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 37 7. Security Considerations . . . . . . . . . . . . . . . . . . . . 37 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 37 8.1. Normative References . . . . . . . . . . . . . . . . . . . 37 8.2. Informative References . . . . . . . . . . . . . . . . . . 38 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 38 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 38 1. Introduction The draft [draft-voyer-spring-sr-p2mp-policy] defines a variant of the SR Policy [I-D. ietf-spring-segment-routing-policy] for constructing a P2MP segment to support multicast service delivery. A Point-to-Multipoint (P2MP) segment connects a Root node to a set of Leaf nodes in a Segment Routing Domain. We also define a Replication segment, which corresponds to the state of a P2MP segment on a particular node. A P2MP segment consists of replication segments for the root, leaves and optionally intermediate replication nodes. A replication segment defines the forwarding behavior on a particular node on a particular P2MP segment. For a P2MP segment, a controller may be used to compute paths from a Root node to a set of Leaf nodes, optionally via a set of replication nodes. A packet is replicated at the root node and optionally on Replication nodes towards each Leaf node. We define two types of a P2MP segment: Spray and Replication. A Point-to-Multipoint service delivery could be via Ingress Replication (aka Spray in some SR context), i.e., the root unicasts individual copies of traffic to each leaf. The corresponding P2MP segment consists of replication segments only for the root and the leaves. Bidgoli, et al. Expires January 7, 2020 [Page 3] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 A Point-to-Multipoint service delivery could also be via Downstream Replication (aka TreeSID in some SR context), i.e., the root and some downstream replication nodes replicate the traffic along the way as it traverses closer to the leaves. Notice that Spray is actually a special form of TreeSID. Also notice that, the explicit path from the root or a replication node to a leaf or a downstream replication node can optionally be partially or completely specified by the controller PCE or determined locally via static configuration. A PCE could computes a tree from a Root node to a set of Leaf nodes via a set of Replication nodes. A packet is replicated at the Root node and on Replication nodes towards each Leaf node. It should be noted that two replication nodes can be connected directly, or they can be connected via unicast SR segment or a segment list. The leaves and the root can be explicitly configured on the PCE or PCC can updates the PCE with the information of the discovered root and leaves. As an example Multicast protocols like mvpn procedures or pim can be used to discovery the leaves and roots on the PCC and update the PCE with these relevant information. The controller can calculate the P2MP Segment based on these info. In all of above cases a set of new PCEP object and TLVs are needed to update and instantiate the P2MP tree. This draft explains the procedure needed to instantiate a P2MP TreeSID. 2. Conventions used in this document The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119]. 3. Overview of PCEP Operation in SR P2MP Network For a P2MP SR policy, a PCE calculates a P2MP tree and programs the Root, Replication and Leaf nodes with information needed to forward a multicast stream from the root to a set of leaves. The PCE discovers the Root and the set of the Leaves via manual configuration on the PCE. On other hand the PCC (Root of the P2MP Tree) can providing the PCE with the relevant information by discovering the leaves via mvpn procedures or pim . After discovering the Root and Leaves and computing the MPLS P2MP Tree and identifying the Replication routers, the PCE programs the PCCs with relevant information needed to create a P2MP Tree. Bidgoli, et al. Expires January 7, 2020 [Page 4] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 As per draft draft-voyer-spring-sr-p2mp-policy a P2MP Policy is defined by a root and set of leaves. A P2MP Policy contains replication policies. A replication policy is set of forwarding instructions on a specific node. As an example the push information on the Root node or swap and outgoing interface information on the transit nodes or pop information on the bud and leaves nodes. In addition since a P2MP policy is a variant of SR policy it uses the same concept as draft draft-darth-pce-sement-routing-policy-cp. In short a replication policy uses a collection of SR P2MP Candidate paths. The candidate paths are computed by the PCE and can be used for P2MP LSP redundancy. In short each candidate path in the replication policy is a unique P2MP lsp. PCE could also calculate and download additional information such as next-hops for link/node protection or initiate a make-before-brake procedure for global Path optimization. 3.1. High level view of a P2MP Policy Objects -SR P2MP Policy: -Is a policy on PCE which contains information about: - root node of the P2MP Segment - leaf nodes of the P2MP Segment - optionally constrains used to build the tree from leaf nodes to the root node. - Tree-ID, which is a unique identifier of the P2MP tree on the root -Replication Policy: - Is the forwarding information needed on each node and is contained by P2MP policy. It is identified via: - Its node-ID, the node that replication policy belongs to. - The root of the P2MP Tree - Tree-ID, which is a unique identifier of the P2MP Tree on the root. As an example the could be MP-BGP opaque value as per [RFC6513] - It also contains a set of Candidate paths for P2MP tree Bidgoli, et al. Expires January 7, 2020 [Page 5] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 redundancy -Candidate Path: - Is used for P2MP Tree redundancy where the P2MP LSP with the highest preference is the active LSP - It option can contain up to two P2MP LSP global optimization procedures, each identified with their own LSP-ID (i.e. make before break) - It also contains the forwarding information for the P2MP LSPs, these forwarding information can be a replication SID or a segment list. 3.1.1. Existing drafts used in defining the P2MP Policy P2MP Policy reuses current drafts and PCEP objects to identify the root and the leaves on the P2MP Segment and update the PCE with these information, and also to have PCE initiate and update P2MP Replication Policies on a the PCC. In addition this draft will introduced new TLVs and Objects specific to a P2MP Policy. This draft reuses the following pcep drafts: - [RFC8231] The bases for a stateful PCE, and reuses the following objects or a variant of them <SRP Object> <Lsp Object> - [RFC8236] P2MP capabilities advertisement Also a variation of the P2MP LSP Identifier specified in above RFC - [draft-barth-pce-segment-routing-policy-cp-02] Candidate paths for P2MP Policy is used for Tree Redundancy. As an example a P2MP Policy can have multiple candidate paths each protecting the primary candidate path. The active path is chosen via the precedence of the candidate path. - [RFC 3209] defines the LSP-ID, LSP-ID is used for global optimization of a candidate path with in a P2MP policy. Each Candidate path can have 2 sub-lsps (LSP-IDs) for MBB and global optimization procedures. Bidgoli, et al. Expires January 7, 2020 [Page 6] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 - [draft-ietf-spring-segment-routing-policy] segment-list, used for connecting two non-adjacent replication policy via a unicast binding SID or Segment-list. - [draft-ietf-pce-pcep-extension-for-pce-controller] a variant of CCI Object, used for downloading the replication policy forwarding instructions. These instructions can be incoming label and set of outgoing labels or fast reroute procedures or even downloading of a segment-list connecting two non-adjacent replication policy. - [RFC8306] P2MP End Point objects, used for the PCC to update the PCE with discovered Leaves. It should be noted that the [draft-dhs-spring-sr-p2mp-policy-yang] can provide farther details of the high level P2MP Policy Model. 3.1.2. P2MP Identification The key to identify a P2MP LSP is in LSP object and is as follow: PLSP-ID: RFC 8231, is assigned by PCC and is unique per candidate path. It is constant for the lifetime of a PCEP session. Since PLSP- ID is unique per LSP, Stand-by P2MP LSPs will be downloaded with a new PLSP-ID. It should be noted a stand-by LSP is a LSP to protect the primary LSP and can be setup in parallel to the primary LSP. These stand-by LSPs are identified by the candidate path. LSP-ID: LSP ID Identifier as defined in rfc 3209, and is used for global optimization of a P2MP LSP (Candidate path) Tree-ID: is equivalent to Tunnel Identifier color which identifies a unique P2MP segment at a ROOT and is advertised via the PTA in the BGP AD route. Root: is equivalent to the first MPLS node on the path, as per [RFC3209], Section 4.6.2.1 Note that the Tree-ID, Root and LSP-ID are part of a new SR-P2MP- LSP_Identifier TLV which will be identified in this draft. 3.2 High-Level Procedures for P2MP SR LSP Instantiation A P2MP policy is consistent of Root and a set of Leaves and as such a set of replication policies for each node within the path of the P2MP segment. As mentioned previously a replication policy is a set of forwarding rules used on root, transit nodes and leaves. The Root and Leaves can be discovered via many methods. Bidgoli, et al. Expires January 7, 2020 [Page 7] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 - They can be configured and identified on a controller - They can be configured on the root node PCC and the root updates the PCE with this information - They can be discovered via Multicast mechanisms like MVPN procedures or protocols like PIM. 3.2.1 MVPN procedures In case of MVPN there can be pcc-initiated or pce-initiated p2mp policy. In either case MVPN procedures [RFC6513, RFC6514] are used to discover the leaves on PCC and report them up to the PCE. 1. PCE-initiated Procedure : PCE is informed of the P2MP request through it's API or configuration mechanism to instantiate a P2MP tunnel. PCE will initiate the P2MP LSP for the request, by sending a PC Initiate message to the Root. The above PC Initiate message to the Root will contain the following information. PLSP-ID = 0, LSP-ID (SR-P2MP-LSP-ID-TLV defined in this document), symbolic path name, association object (association-id defined by PCE, association-type SR-P2MP-PAG), policy identifier TLV(root and tree-id(0)), candidate path identifier tlv(protocol, origin, discriminator (32 bit value, which needs to be generated by PCE, and uniquely identifies a candidate path. This will increment for every candidate path and starts from 0)). The CC-ID list will be empty since PCE has not discovered any leaves yet. Root in response to the PC Initiate message will generate PLSP-ID and tree-id for the LSP Identifier and the candidate path that was downloaded by the PCE for this replication policy. PCC reports back the PLSP-ID, LSP_ID(SR- P2MP-LSP-ID-TLV defined in this document) and tree-id, and any leaves that were discovered until then to PCE. PCE on discovering leaves from the root, will compute the path to the leaves and downloads the label-information by sending PC Initiate message on the transit and leaf nodes connected to PCE and sends a PC Update message to the Root. The PC Initiate message to the transit and leaf is like the PC Initiate message that was sent to the Root, but the Tree-ID will not be 0 and will be the Tree-ID that the Root communicated through the Pc Report. 2. PCC Initiated Procedure: Root sends a PC Report to PCE including the root, tree-id, PLSP-ID, LSP-ID(SR-P2MP-LSP-ID-TLV defined in this document), symbolic-path- name, and any leaves learnt until then. PCE on receiving this report, will compute the path and download label information on the leaf and Bidgoli, et al. Expires January 7, 2020 [Page 8] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 transit using PC Initiate message as PLSP-ID = 0, symbolic path name, association object (association-id defined by PCE, association-type SR-P2MP-PAG), policy identifier TLV(root and tree-id), candidate path identifier tlv(protocol, origin, discriminator (32 bit value, which needs to be generated by PCE, and uniquely identifies a candidate path. This will increment for every candidate path and starts from 0), CC-ID list of label downloads. On the root it will be an update message containing the PLSP-ID and other information that was earlier communicated by the Root. The association-ID used in the Root, transit and leaves will be the same for all candidate paths. Transit and Leaf on receiving the Initiate message will generate a PLSP-ID and report the status of the label downloads. Beyond this, procedures for (1) and (2) are same. [draft-ietf-pce-pcep-extension-for-pce-controller] indicates the PLSP-ID used in PC Initiate messages is the PLSP-ID defined at the ingress node, to allow correlation between transit instructions and the ingress LSP entity. For Replication Policy,as defined in the above procedures, other identifiers allow correlation of transit to root/ingress instructions to the downstream so the same PLSP-ID is not required. PLSP-ID's are individually generated by every PCC in the P2MP path. Any new leaves discovered from here on, are reported to PCE using the PLSP-ID of the active candidate path. If these leaves are discovered on routers that are part of the P2MP LSP path, then PC Update is sent from PCE to necessary PCCs (LEAVES, TRANSIT or ROOT) with the LSPs PLSP-ID. If the new leaves are discovered on routers that are not part of the P2MP Tree yet, then a PC Initiate message is sent down with PLSP-ID=0. Any new candidate path is downloaded by PCE to its connected Root, transit and leaves by sending a PC Initiate message to them. Every candidate path is a different P2MP LSP which gets a unique PLSP-ID. Multiple candidate path are associated to the same Replication policy and each used as a redundant P2MP LSP. If a candidate path needs to be removed, PCE sends PC Initiate message, setting the R-flag in the LSP object and R bit in the SRP- object. To remove the entire P2MP-LSP, PCE needs to send PC Initiate remove messages for every candidate path of the SR-P2MP-POLICY to all the PCE connected nodes along the P2MP-LSP path. The R bit in the LSP Object as defined in rfc8231, refers to the removal of the LSP as identified by the SR-P2MP-LSP-ID-TLV (defined in this document). An all zero (SR-P2MP-LSP-ID-TLV defines to remove all the state of the corresponding PLSP-ID. Bidgoli, et al. Expires January 7, 2020 [Page 9] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 A candidate path is made active based on the preference of the path. If the Root gets paths one from the PCE and one from the CLI, and 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 path will be active. 3.2.2. Global Optimization for P2MP LSPs When a P2MP LSP needs to be optimized for any reason (i.e. it is taking a FRR Path or new routers are added to the network) a global optimization is possible. Note that optimization works per candidate path. Each candidate path is capable of global optimization. To do so each candidate path contains two P2MP LSP, each P2MP LSP is identified via the LSP-ID [RFC3209]. After calculating an optimized P2MP LSP path the PCE will program the candidate path with a 2nd LSP- ID and its set of CCI instructions. After the optimized LSP is downloaded a MBB procedure is performed and the previous instance of the P2MP LSP is deleted and removed from the corresponding PCCs. The globally optimized LSP is instantiated via the PCInitiate message. The PLSP-ID of this optimized LSP is same as the Current LSP which is being optimized, this is because both LSPs belong to the same candidate path. That said the LSP-ID of the optimize LSP is uniquely assigned by PCE and is different from that of the current LSP which is being optimized. In short, the LSP-ID uniquely identifies sub- instances of an LSP for optimization with in that candidate path. After the optimized LSP has been downloaded and verified via PCC PCRpt message, the MBB procedure can be performed to switch between the two instances of the LSP. The previous instance will be removed from PCCs. 3.2.3. Fast Reroute Currently this draft identifies the Facility FRR procedures. In addition, only LINK Protection procedures are defined. How the Facility Path is built and instantiated is beyond the scope of this document. Bidgoli, et al. Expires January 7, 2020 [Page 10] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 R | | T | --- | | L1 L2 Figure 1 R---F1 | | T---F2 | --- | | L1 L2 Figure 2 As an example, the bypass path (unicast bypass) between the PLR and MP can be constructed via SR. The PCE needs to only update the PLR PCC with bypass path outgoing label and nexthop information, also PCE needs to update the MP PCC with bypass path ILM information. This information is presented via a P bit in the optional IPv4/IPv6- Address object as per upcoming section. If one to one FRR is needed, then a second flag O should be defined in the IPv4/IPv6-Address object in future. As an example, in figure 1 the detour path between R and T is the 2nd fiber between these nodes. As such the bypass path could be setup on the 2nd fiber using treeSID procedures. That said in figure 2 the bypass path is traversing multiple nodes and this example a unicast SR path might be ideal for setting up the detour path. The PCE can download the prefix SID for F2 as a bypass path for R-T to R. Downloading the prefix SID for F2 will ensure an LFA detour for R-T. In addition, PHP procedure and implicit null label on the bypass path can be implemented to reduce the PCE programming on the MP PCC. 3.2.3. Connecting Replication Policy via Segment List There could be nodes between two replication segment that do not understand P2MP Policy or Replication policy. It is possible to connected two non-adjacent Replication segment via a unicast binding Bidgoli, et al. Expires January 7, 2020 [Page 11] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 SID or segment-list. Replication policy does support the concept of a segment-list. A list of unicast SIDs (Binding SID, Adjacency SIDs or Node SIDs) can be programmed on a Replication segment via the P2MP CCI object. 3.3. SR P2MP New TLVs and Objects A new object <SR-P2MP-CCI> is defined for the controller to specify the forwarding instructions (label instructions) of the replication policy. A new Association Type (P2MP SR Policy) is defined. Also a SR-P2MP policy identifiers TLV is defined to communicate the SR-P2MP policy and candidate path information. A new P2MP-LSP identifier TLV is included to indicate the P2MP identifiers (Root, Tree-ID, LSP-ID). The above new objects and TLV's defined in this document can be included in PcReport, PcInitiate and PcUpdate messages. It should be noted that every PcReport, PcInitiate and PCUPdate messages will contain full list of the Leaves and label and forwarding information that is needed to build the P2MP LSP. In short the PCC or PCE should never send the delta information related to the new leaves that need to be added or updated. This is necessary to ensure that PCE or any new PCE is in sync with the PCC. As such when a PcReport, PcInitiate and PCUPdate messages is send via PCEP it maintains the previous instruction CC-IDs and create new CC- ID for the new instruction. This means the CC-IDs are maintained for each specific forwarding and label instructions until these instructions are deleted. For example, When the first leaf is added PCC gets instructions, CC-ID A on a particular transit node. On a second leaf add, according to the path calculated, PCE might just append the existing instruction A with B. This is done by sending a PC Update with CC-ID A and B. 4. Object Format 4.1. Open Message and Capability Exchange Format of the open object Bidgoli, et al. Expires January 7, 2020 [Page 12] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Ver | Flags | Keepalive | DeadTimer | SID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | // Optional TLVs // | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ All the nodes need to establish a PCEP connection with the PCE. During PCEP Initialization Phase, PCEP Speakers advertise their support of PCECC extensions to include the new Path Setup Type [draft-ietf-pce-pcep-extension-for-pce-controller]. Also need to set flags N, M, P in the STATEFUL-PCE-CAPABILITY TLV as defined in [draft-ietf-pce-stateful-pce-p2mp] section capability advertisement. We extend the PCEP OPEN object by defining an optional TLV to indicate the PCE's capability to perform SR-P2MP path computations, New IANA capability type. The inclusion of this TLV in an OPEN object indicates that the sender can perform SR-P2MP path computations. This will be similar to the P2MP-CAPABILITY defined in [RFC8306] section 3.1.2 and a new value needs to be defined for P2MP Policy. In addition a Assoc-Type-List TlV as per [draft-ietf-pce-association- group-07] section 3.4 should be send via PCEP open object with following association type +-------------------+----------------------------+------------------+ | Association Type | Association Name | Reference | | Value | | | +-------------------+----------------------------+------------------+ | TBD1 | P2MP SR Policy Association | This document | +-------------------+----------------------------+------------------+ OP-CONF-Assoc-RANGE (Operator-configured Association Range)should not be set for this association type and must be ignored. 4.2. Symbolic Name in PCInitiate message from PCC As per RFC8231 section 7.3.2. a Symbolic Path Name TLV should uniquely identify the P2MP path on the PCC. This symbolic path name is a human-readable string that identifies an P2MP LSP in the network. It needs to be constant through the life time of the P2MP path. Bidgoli, et al. Expires January 7, 2020 [Page 13] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 As an example in the case of P2MP LSP the symbolic name can be Root + Tree-ID of the LSP. The Tree-ID is a unique ID that identifies the P2MP LSP on the Root (Source) as such the combination of Root + Tree- ID will provide the P2MP LSP with a unique identification throughout the network. Depending on the Source IP, IPv4 vs. IPv6, the length of the TLV will vary. 4.3. Replication policy As per [draft-voyer-spring-sr-p2mp-policy]a replication policy is build of candidate paths. Each candidate path contains p2mp-cci object which may contain a single outgoing label, in case it is directly connected to another replication segment, or a segment list to connect two non adjacent replication segments. The candidate path and segment list has been described in [draft- ietf-spring-segment-routing-policy]. Candidate paths can be used for P2MP LSP redundancy where the active candidate path in a replication policy has a higher precedence over other candidate paths. As such and as per [draft-barth-pce-segment-routing-policy-cp] section-3.1 each candidate path of a Replication policy appears as a different SR P2MP LSP (identified via a PLSP-ID) in PCEP, it is useful to group together all the candidate paths that belong to the same Replicaton policy. Furthermore, it is useful for the PCE to have knowledge of the P2MP SR candidate path parameters such as Root, Tree-ID, protocol origin,discriminator, and preference. In this draft we define new association group objects to make above possible. 4.3.1 P2MP Policy Association Group Two ASSOCIATION object types for IPv4 and IPv6 are defined in [I- D.ietf-pce-association-group]. The ASSOCIATION object includes "Association type" indicating the type of the association group. This document adds a new Association type. Association type = TBD1 "P2MP SR Policy Association Type" for SR Policy Association Group (P2MP SRPAG). As per [draft-barth-pce-segment-routing-policy-cp] section 5, three new TLVs are identified to carry association information: P2MP-SRPAG- POL-ID-TLV, P2MP-SRPAG-CPATH-ID-TLV, P2MP-SRPAG-CPATH-ATTR-TLV 4.3.1.1 P2MP SR Policy Association Group Policy Identifiers TLV The P2MP-SRPOLICY-POL-ID TLV is a mandatory TLV for the P2MP-SRPAG Bidgoli, et al. Expires January 7, 2020 [Page 14] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 Association. Only one P2MP-SRPOLICY-POL-ID TLV can be carried and only the first occurrence is processed and any others MUST be ignored. 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Root | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TREE-ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type: TBD2 for "P2MP-SRPOLICY-POL-ID" TLV. Length: 8 or 20, depending on length of End-point (IPv4 or IPv6) Tunnel Sender Address : Can be either IPv4 or IPv6, this value is the value of the root loopback IP. Tree-ID: Tree ID that the replication segment is part of as per draft-ietf-spring-sr-p2mp-policy 4.3.1.2 P2MP SR Policy Association Group Candidate Path Identifiers TLV The P2MP-SRPOLICY-CPATH-ID TLV is a mandatory TLV for the P2MPSRPAG Association. Only one P2MP-SRPOLICY-CPATH-ID TLV can be carried and only the first occurrence is processed and any others MUST be ignored. 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Proto. Origin |Flags |A| Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Originator ASN | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Originator Address | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Discriminator | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Bidgoli, et al. Expires January 7, 2020 [Page 15] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 Type: TBD3 for "P2MP-SRPOLICY-CPATH-ID" TLV. Length: 28. Protocol Origin: 8-bit value that encodes the protocol origin, as specified in [I-D.ietf-spring-segment-routing-policy] Section 2.3. Flags : A: This candidate path is active. At any instance only one candidate path can be active. PCC indicates the active candidate path to PCE through this bit. Reserved: MUST be set to zero on transmission and ignored on receipt. Originator ASN: Represented as 4 byte number, part of the originator identifier, as specified in [I-D.ietf-spring-segment- routing-policy] Section 2.4. Originator Address: Represented as 128 bit value where IPv4 address are encoded in lowest 32 bits, part of the originator identifier, as specified in [I-D.ietf-spring-segment-routing-policy] Section 2.4. Discriminator: 32-bit value that encodes the Discriminator of the candidate path. 4.3.1.3 P2MP SR Policy Association Group Candidate Path Attributes TLV The P2MP-SRPOLICY-CPATH-ATTR TLV is an optional TLV for the SRPAG Association. Only one P2MP-SRPOLICY-CPATH-ATTR TLV can be carried and only the first occurrence is processed and any others MUST be ignored. 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Preference | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type: TBD4 for "P2MP-SRPOLICY-CPATH-ATTR" TLV. Length: 4. Preference: Numerical preference of the candidate path, as specified in [I-D.ietf-spring-segment-routing-policy] Section 2.7. Bidgoli, et al. Expires January 7, 2020 [Page 16] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 If the TLV is missing, a default preference of 100 as specified in [I-D.ietf-spring-segment-routing-policy] is used. 4.4. PCEP Message Exchanges PCE is informed of the P2MP request through manual configuration of root and leaves on the controler or through a Report from Root. On Reception of the P2MP Request, PCE initiates the P2MP LSP on the nodes connected along the P2MP Policy path that are connected to PCE. The object ordering of PC-Init, PC-Update and PC-Report messages are as per [draft-ietf-pce-association-group] section-6.3 (object Encoding in PCEP messages) Format of PC InitiateMessage: <Common Header> <SRP> <LSP> <association-list> <SR-P2MP-CCI> Format of PC Update Message: <Common Header> <SRP> <LSP> <association-list> <SR-P2MP-CCI> Every SR-P2MP-LSP's LSP Object MUST include the SR-P2MP-LSP-ID-TLV (IPV4/IpV6) which is defined by this document as below. This is a variation to the P2MP object defined in [draft-ietf-pce-stateful-pce- p2mp] 4.4.1 Extension of the LSP Object, SR-P2MP-LSPID-TLV The LSP Object is defined in Section 7.3 of [RFC8231]. It specifies the PLSP-ID to uniquely identify an LSP that is constant for the life time of a PCEP session. Similarly for a P2MP tunnel, the PLSP-ID identify a candidate path (P2MP-LSP) uniquely with in the Replication policy. The LSP Object MUST include the new SR-P2MP-LSPID-TLV (IPV4/IpV6). This is a variation to the P2MP object defined in [draft-ietf-pce- stateful-pce-p2mp] SR-IPV4-P2MP-LSP-IDENTIFIER TLV: Bidgoli, et al. Expires January 7, 2020 [Page 17] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 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=10 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Root | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Tree-ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LSP-ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ SR-IPV6-P2MP-LSP-IDENTIFIER 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=22 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | Root | + (16 octets) + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Tree-ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LSP-ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The type (16-bit) of the TLV is TBD (need allocation by IANA). LSP-ID : Contains 16 Bit LSP ID defined in rfc 3209. Root: Source Router IP Address Tree-ID: Unique Identifier of this P2MP LSP on the Root. 4.5. SR-P2MP-CCI Object This is a variation of the CC-ID object defined in [draft-ietf-pce- pcep-extension-for-pce-controller] The SR-P2MP-CCI is used to download label instruction to the nodes. Bidgoli, et al. Expires January 7, 2020 [Page 18] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 It can contain optional IPv4/IPv6 IP-Address TLVs that include forwarding instructions. These instructions includes incoming label (incoming replication SID), or out-going label for adjacent replication policies or Fast Reroute labels. Even segment list labels connecting two non adjacent replication policy can be downloaded via this object. 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | Flags |0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ // Optional TLV // | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ CC-ID: A PCEP-specific identifier for the CCI information. A PCE creates an CC-ID for each instruction, the value is unique within the scope of the PCE and is constant for the lifetime of a PCEP session. The values 0 and 0xFFFFFFFF are reserved and MUST NOT be used. Flags: 0 - Down - means label download was not successful 1 - Up - means label download was successful 4.5.1 Optional IP-Address TLVs These optional IPv4/IPv6 TLVs can be including in P2MP CCI Object for forwarding information download. Optional TLV:IPV4-ADDRESS 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SID-List Size |Rsvd | Flag|I|B|S|E|P| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Interface ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ labels ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ SID-List Size: is the number of SIDs in the SID List Flags: Bidgoli, et al. Expires January 7, 2020 [Page 19] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 I - Incoming Label: If set means In Label, If not set means Out Label. B - Bud Node Label: If set this label is a bud node, the payload needs to be processed locally and also replicated if the S bit is set. In short if B is set then S needs to set also. S - SWAP label: 0: If I bit is set and S bit is 0 it means pop the label and if the label's S bit is set do a recursive lookup. 1 - If I bit is set and S bit is 1 it means swap this label with out label. P - Protection NextHop 0 - Label information is not w.r.t protection next-hop. 1 - Label information is w.r.t protection next-hop. Note: P flag is used at the PLR and MP to identify the facility tunnel. E - Protected LTN, This bit is usually set with the an outgoing label, when the outgoing label is protected via a protection nextHop 0 - Label information does not have a protection next-hop. 1 - Label information has a protection next-hop. IPV4 address and Interface Id: correspond to the next-hop information in case of an OUT Label, and it corresponds to incoming interface information if it is an IN Label. Labels: can be a single label or a list of labels, with the first label in the list being the label on top of the stack and the last label in the list being the label at the bottom of the stack. Bidgoli, et al. Expires January 7, 2020 [Page 20] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 IPV6-ADDRESS 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SID-List Size | Flag |I|B|S|E|P| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | // IPv6 address (16 bytes) // | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Interface ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ labels ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ UNNUMBERED-IPV4-ID-ADDRESS 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 = 16 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SID-List Size | Flag |I|B|S|E|P| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Node-ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Interface ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ labels ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4.6. Root PCE Report message In order for the Root to indicate operations of its leaves(Add/Remove/Modify/DoNotModify), the PC Report message is extended to include P2MP End Point <P2MP End-points> Object which is defined in [RFC8306] The format of the PC Report message is as follow: <Common Header> [<SRP>] <LSP> [<association-list>] [<end-points-list> | <SR-P2MP-CCI>] 4.6.1 END-POINTS Objects Bidgoli, et al. Expires January 7, 2020 [Page 21] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 IPV4-P2MP END-POINTS: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Leaf type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source IPv4 address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination IPv4 address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ ... ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination IPv4 address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ IPV6-P2MP END-POINTS: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Leaf type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Source IPv6 address (16 bytes) | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Destination IPv6 address (16 bytes) | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ ... ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Destination IPv6 address (16 bytes) | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Leaf Types (derived from RFC 8306 section 3.3.2) : 1.New leaves to add (leaf type = 1) 2.Old leaves to remove (leaf type = 2) 3.Old leaves whose path can be modified/reoptimized (leaf type = 3), Future reserved not used for tree SID as of now. 4.Old leaves whose path must be left unchanged (leaf type = 4) Bidgoli, et al. Expires January 7, 2020 [Page 22] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 A given P2MP END-POINTS object gathers the leaves of a given type. Note that a P2MP report can mix the different types of leaves 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. 5. Examples of PCEP messages between PCE and PCEP +-------+ | | +-------+ |LEAF D | +-------+ |Rep | | | | PCE | |Transit| +-------+ +-------+ +------|C | | Non | | +-------+ | Rep +-------+ | | | Transit| |LEAF E | +------| B | | | |Rep +--------+ +-------+ |ROOT | |A | +--------+ 5.1. PCE Initiate and PCC Leaves Update For a PCE Initiate P2MP Policy a sample PC Initiate message from the PCE to the root is provided below. This is on reception of a P2MP Policy creation on the PCE: Bidgoli, et al. Expires January 7, 2020 [Page 23] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 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 <SRP OBJECT> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Flags = 0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SRP-ID-number = 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TLV Type = 28 (PathSetupType)| TLV Len = 4 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | PST = TBD | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <LSP OBJECT> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | PLSP-ID = 0 | A:1,D:1,N:1,C:1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type=17 | Length=<var> | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | symbolic path name | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type=TBD | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Root = A | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Tree-ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LSP-ID =L1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <ASSOCIATION OBJECT> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | Flags |0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Association type= SR-P2MP-PAG | Association ID = z | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 Association Source = <pce-address> | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Root = A | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TREE-ID = 0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |ProtOrigin 10 |Flags |0| Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Originator ASN | Bidgoli, et al. Expires January 7, 2020 [Page 24] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Originator Address = <pce-address> | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Discriminator = 0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Preference = 100 <default> | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ On Response to the above initiate message, PCC generates a Tree-ID, PLSP-ID for the candidate path identified by the candidate path identifier TLV and sends a report back to PCE. If leaves are discovered by the PCC at that point of time, that is communicated to the PCE in the same report message using the <p2mp-end-point> object in the Report message. For PCC initiated P2MP Policy, if the Root wants to send a P2MP request to the PCE, the same is achieved through Root sending a PC Report to PCE indicating a P2MP Request. Sample Report generated by the Root to the PCE for P2MP Request received from the Root Node: Bidgoli, et al. Expires January 7, 2020 [Page 25] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 Sample Report generated by the Root to the PCE for Leaf Add 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,N:1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type=17 | Length=<var> | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | symbolic path name | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type=TBD | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Root = A | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Tree-ID = Y | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LSP-ID =L1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <ASSOCIATION OBJECT> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | Flags |0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Association type= SR-P2MP-PAG | Association ID = z | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 Association Source = <pce-address> | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Root = A | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TREE-ID = Y | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |ProtOrigin 10 |Flags |0| Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Originator ASN | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Bidgoli, et al. Expires January 7, 2020 [Page 26] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 | Originator Address = <pce-address> | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Discriminator = 0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Preference = 100 <default> | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <END POINT OBJECT> | Leaf type =1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source IPv4 address = A | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination IPv4 address = D | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination IPv4 address = E | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 5.2. PCE P2MP LSP Calculation and Replication Policy download Once the PC Report of leaves is sent to the PCE, PCE computes path to the leaf and would send a PC Initiate/ PC Update to the connected PCC's across the path to the leaf along with association object(defining association parameters, SR-P2MP policy identifier TLV, SR-P2MP-candidate path identifier TLV, candidate path attributes TLV) and label download information (SR-P2MP-CCI). For example, say PCE computed 2 candidate paths <cp1 and cp2> that needs to be downloaded on the transit and root node, sample messages are explained below. For cp1 -> on the root it will be a PC Update message sent from PCE, updating the empty candidate path it had sent earlier when it had intimated the root about the <root, tree-ID> it had known from NMS. For cp2 -> on the root it will be a PC Initiate messages sent from PCE, initiating the new candidate path and associating it to the same SR-P2MP policy. On the transit - for cp1, and cp2 since PCE is initiating both newly on those nodes, PCE will send one PC Initiate message with two LSP objects, defining each candidate path. Or PCE can send separate PC Initiate message for every candidate path. As defined in [draft- barth-pce-segment-routing-policy-cp] section multiple candidate paths A sample PC Update message sent to the Root for cp1 is as follows: Bidgoli, et al. Expires January 7, 2020 [Page 27] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 Note Root is connected to the next replication Segment C via non replication segment B. Hence a segment List is used. Bidgoli, et al. Expires January 7, 2020 [Page 28] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 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 = 2 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TLV Type = 28 (PathSetupType)| TLV Len = 4 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | PST = TBD | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <LSP OBJECT> | PLSP-ID = 1 | A:1,D:1,N:1,C:0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type=17 | Length=<var> | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | symbolic path name | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type=TBD | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Root =A | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Tree-ID = Y | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LSP-ID = L1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <ASSOCIATION OBJECT> | Reserved | Flags |0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Association type= SR-P2MP-PAG | Association ID = z | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 Association Source = <pce-address> | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Root = A | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TREE-ID = Y | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |ProtOrigin 10 |Flags |0| Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Originator ASN | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Originator Address = <pce-address> | | | Bidgoli, et al. Expires January 7, 2020 [Page 29] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Discriminator = 0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Preference = 100 <default> | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <CC-ID OBJECT> | CC-ID = z | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | Flags |0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type=TBD | Length = 12 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | sid-list-size = 2 | Rsvd | Flag|0|0|0|0|0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 address = NH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Interface ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Label= b,c | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ A sample PC Initiate message to the Root for cp2 is as follows: Note cp2 can be either on the same path as cp1 or on a seprate path, assuming that there is a 2nd path connecting A to B to C 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 = 3 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TLV Type = 28 (PathSetupType)| TLV Len = 4 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | PST = TBD | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <LSP OBJECT> | PLSP-ID = 0 | A:1,D:1,N:1,C:1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type=17 | Length=<var> | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | symbolic path name | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type=TBD | Length | Bidgoli, et al. Expires January 7, 2020 [Page 30] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Root | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Tree-ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LSP-ID =L2 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <ASSOCIATION OBJECT> | Reserved | Flags |0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Association type= SR-P2MP-PAG | Association ID = z | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 Association Source = <pce-address> | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Root = A | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TREE-ID = Y | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |ProtOrigin 10 |Flags |0| Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Originator ASN | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Originator Address = <pce-address> | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Discriminator = 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Preference = 100 <default> | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <CC-ID OBJECT> | CC-ID = z10 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | Flags |0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type=TBD | Length = 12 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | sid-list-size = 2 | Rsvd | Flag|0|0|0|0|0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 address = NH2 | Bidgoli, et al. Expires January 7, 2020 [Page 31] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Interface ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Label= c1, b1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ A sample PC Initiate message to the transit replication policy C for cp1 Lets assume C is connected to D and C via 2 fiber hence Fast Reroute is possible: 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 = 4 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TLV Type = 28 (PathSetupType)| TLV Len = 4 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | PST = TBD | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <LSP OBJECT> | PLSP-ID = 0 | A:1,D:1,N:1,C:1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type=17 | Length=<var> | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | symbolic path name | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type=TBD | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Root=A | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Tree-ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LSP-ID =L1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <ASSOCIATION OBJECT> | Reserved | Flags |0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Association type= SR-P2MP-PAG | Association ID = z | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 Association Source = <pce-address> | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | Bidgoli, et al. Expires January 7, 2020 [Page 32] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Root = A | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TREE-ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |ProtOrigin 10 |Flags |0| Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Originator ASN | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Originator Address = <pce-address> | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Discriminator = 0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Preference = 100 <default> | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <CC-ID OBJECT> | CC-ID = z20 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | Flags |0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type=TBD | Length = 12 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | sid-list-size = 1 | Rsvd | Flag|E|0|0|0|0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Interface ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Label= c1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <incoming label c1 swap with D1> | CC-ID = z21 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | Flags |0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type=TBD | Length = 12 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | sid-list-size = 1 | Rsvd | Flag|0|0|S|E|0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 address =NHD1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Bidgoli, et al. Expires January 7, 2020 [Page 33] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 | Interface ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Label= D1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <With FRR over NH2> | CC-ID = z22 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | Flags |0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type=TBD | Length = 12 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | sid-list-size = 1 | Rsvd | Flag|0|0|0|0|P| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 address =NHD2 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Interface ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Label= D1Protect | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <incoming label c1 swap with E1> | CC-ID = z23 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | Flags |0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type=TBD | Length = 12 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | sid-list-size = 1 | Rsvd | Flag|0|0|S|E|0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 address =NHE1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Interface ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Label= E1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <With FRR over NH2> | CC-ID = z24 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | Flags |0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type=TBD | Length = 12 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | sid-list-size = 1 | Rsvd | Flag|0|0|0|0|P| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 address =NHE2 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Interface ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Label= E1Protect | Bidgoli, et al. Expires January 7, 2020 [Page 34] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 5.3. PCC Rpt for PCE Update and Init Messages In response to the PC Initiate message / PC Update message , PCC will send PC Reports to PCE indicating the state of the label download for that particular candidate path. PCC's will generate PLSP-ID for newly initiated candidate path. Here is an PC Report Message send for the root PCE Init message with cp2 on the root. Bidgoli, et al. Expires January 7, 2020 [Page 35] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 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 = 2 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TLV Type = 28 (PathSetupType)| TLV Len = 4 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | PST = TBD | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <LSP OBJECT> | PLSP-ID = 1 | O:1,A:1,D:1,N:1,C:1| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type=17 | Length=<var> | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | symbolic path name | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type=TBD | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Root | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Tree-ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LSP-ID = L1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <ASSOCIATION OBJECT> | Reserved | Flags |0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Association type= SR-P2MP-PAG | Association ID = z | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 Association Source = <pce-address> | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Tunnel Sender Address Ipv4 or IPv6 =A | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TREE-ID = Y | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |ProtOrigin 10 |Flags |1| Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Originator ASN | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Originator Address = <pce-address> | | | Bidgoli, et al. Expires January 7, 2020 [Page 36] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Discriminator = 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Preference = 100 <default> | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <CC-ID OBJECT> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CC-ID = z | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | Flags |1| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 6. Tree Deletion To delete the entire tree (P2MP LSP) , Root send a PCRpt message with the R bit of the LSP object set and all the fields of the SR-P2MP- LSP-ID TLV set to 0(indicating to remove all state associated with this P2MP tunnel). The controller in response sends a PCInitiate message with R bit in the SRP object SET to all nodes along the path to indicate deletion of a label entry. 7. Fragmentation The Fragmentation bit in the LSP object (F bit) can be used to indicate a fragmented PCEP message. 8. Example workflow As per slides submitted in IETF 105. 6. IANA Considerations This document contains no actions for IANA. 7. Security Considerations TBD 8. References 8.1. Normative References Bidgoli, et al. Expires January 7, 2020 [Page 37] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 8.2. Informative References [sr-p2mp-policy] D. Yoyer, Ed., C. Hassen, K. Gillis, C. Filsfils, R. Parekh, H.Bidgoli, "SR Replication Policy for P2MP Service Delivery", draft-voyer-spring-sr-p2mp-policy-01, April 2019. 7. Acknowledgments The authors would like to thank Tanmoy Kundu and Stone Andrew at Nokia for Thier feedback and major contribution to this draft. Authors' Addresses Hooman Bidgoli Nokia 600 March Rd. Ottawa, Ontario K2K 2E6 Canada Email: hooman.bidgoli@nokia.com Daniel Voyer Bell Canada Montreal CA Email: daniel.voyer@bell.ca Siva Sivabalan Cisco Systems Ottawa Canada Email: msiva@cisco.com Jayant Kotalwar Nokia 380 N Bernardo Ave, Mountain View, CA 94043 US Email: jayant.kotalwar@nokia.com Saranya Rajarathinam Nokia 380 N Bernardo Ave, Mountain View, CA 94043 US Bidgoli, et al. Expires January 7, 2020 [Page 38] Internet-Draft PCEP extensions for p2mp policy July 6, 2019 Email: saranya.rajarathinam@nokia.com Bidgoli, et al. Expires January 7, 2020 [Page 39]