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.
T. Saad
Juniper
Expires: May 5, 2020 November 2, 2019
PCEP extensions for p2mp sr policy
draft-hsd-pce-sr-p2mp-policy-01
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
Bidgoli, et al. Expires May 5, 2020 [Page 1]
Internet-Draft PCEP extensions for p2mp policy November 2, 2019
http://www.ietf.org/shadow.html
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. shared tree vs non-shared tree . . . . . . . . . . . . 6
3.1.1. Existing drafts used in defining the P2MP Policy . . . 6
3.1.2. P2MP Policy Identification . . . . . . . . . . . . . . 8
3.1.3. Replication Segment Identification . . . . . . . . . . 8
3.2 High-Level Procedures for P2MP SR LSP Instantiation . . . . 8
3.2.1 MVPN procedures . . . . . . . . . . . . . . . . . . . . 9
3.2.2. Global Optimization for P2MP LSPs . . . . . . . . . . . 11
3.2.3. Fast Reroute . . . . . . . . . . . . . . . . . . . . . 11
3.2.3. Connecting Replication Segment via Segment List . . . . 12
3.3. SR P2MP Policy and Replication Segment TLVs and Objects . . 12
3.3.1. SR P2MP Policy Objects . . . . . . . . . . . . . . . . 13
3.3.2. Replication Segment Objects . . . . . . . . . . . . . . 13
3.3.3. P2MP Policy vs Replication Segment . . . . . . . . . . 13
3.3.4. P2MP Policy and Replication Segment general
considerations . . . . . . . . . . . . . . . . . . . . 13
4. Object Format . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.1. Open Message and Capability Exchange . . . . . . . . . . . 14
4.2. Symbolic Name in PCInitiate message from PCC . . . . . . . 15
4.3. P2MP Policy Specific Objects and TLVs . . . . . . . . . . . 15
4.3.1. P2MP Policy Association Group for P2MP Policy . . . . . 15
4.3.1.2. P2MP SR Policy Association Group Policy
Identifiers TLV . . . . . . . . . . . . . . . . . . 15
Bidgoli, et al. Expires May 5, 2020 [Page 2]
Internet-Draft PCEP extensions for p2mp policy November 2, 2019
4.3.1.3. P2MP SR Policy Association Group Candidate Path
Identifiers TLV . . . . . . . . . . . . . . . . . . 16
4.3.1.4. P2MP SR Policy Association Group Candidate Path
Attributes TLV . . . . . . . . . . . . . . . . . . 17
4.3.2. P2MP-END-POINTS OBJECT . . . . . . . . . . . . . . . . 18
4.4. P2MP Policy and Replication Segment Identifier Object and
TLV . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.4.1 Extension of the LSP Object, SR-P2MP-LSPID-TLV . . . . . 20
4.5. Replication Segment . . . . . . . . . . . . . . . . . . . . 21
4.5.1. shared vs non-shared replication segment . . . . . . . 21
4.5.2. The format of the replication segment message . . . . . 21
4.5.3. Label action rules in replicating segment . . . . . . . 21
5. Examples of PCEP messages between PCE and PCEP . . . . . . . . 22
5.1. PCE Initiate and PCC Leaves Update . . . . . . . . . . . . 22
5.2. PCE P2MP LSP Calculation and Replication Segment download . 25
5.3. PCC Rpt for PCE Update and Init Messages . . . . . . . . . 32
6. Tree Deletion . . . . . . . . . . . . . . . . . . . . . . . . . 33
7. Fragmentation . . . . . . . . . . . . . . . . . . . . . . . . . 34
8. Example workflow . . . . . . . . . . . . . . . . . . . . . . . 34
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 34
7. Security Considerations . . . . . . . . . . . . . . . . . . . . 34
8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 34
8.1. Normative References . . . . . . . . . . . . . . . . . . . 34
8.2. Informative References . . . . . . . . . . . . . . . . . . 34
7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 34
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 34
1. Introduction
The draft [draft-voyer-pim-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) Policy connects a Root node to a set of
Leaf nodes. We also define a Replication segment, which corresponds
to the state of a P2MP segment on a particular node, as an example
the forwarding instructions for the replication SID.
A P2MP Policy is relevant on the root of the P2MP Tree and it
contains candidate paths. The candidate paths are made of replication
segments that are programmed on the root, leaves and optionally
intermediate replication nodes.
It should be noted that two replication segments can be connected
directly, or they can be connected via unicast SR segment or a
segment list.
Bidgoli, et al. Expires May 5, 2020 [Page 3]
Internet-Draft PCEP extensions for p2mp policy November 2, 2019
For a P2MP Tree, 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 Tree: 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
Policy consists of replication segments only for the root and the
leaves and they are connected via a SR Segment
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.
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
[RFC 6514, RFC 6513] 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 Policy 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, Transit 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 provide 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 May 5, 2020 [Page 4]
Internet-Draft PCEP extensions for p2mp policy November 2, 2019
As per draft draft-voyer-pim-sr-p2mp-policy a P2MP Policy is defined
by a root and set of leaves. A P2MP policy is a variant of SR policy
as such it uses the same concept as draft draft-darth-pce-sement-
routing-policy-cp. In short a P2MP policy uses a collection of SR
P2MP Candidate paths. Candidate paths are computed by the PCE and can
be used for P2MP Tree redundancy. Each candidate paths can be
globally optimized and is consists of multiple path-instances. A
path-instance can be thought of as a P2MP LSP. If a candidate path is
needed to be globally optimized two path-instances can be programmed
on the node and via make before procedures the candidate path can be
switched from path-instance 1 to the 2nd. The forwarding states of
these path-instances are build via replication segments.
A replication segment 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.
PCE could also calculate and download additional information such as
next-hops for link/node protection.
3.1. High level view of a P2MP Policy Objects
-SR P2MP Policy:
-Is only relevant on the root of the P2MP tree and is a policy on
PCE which contains information about:
- root node of the P2MP Segment
- leaf nodes of the P2MP Segment
- Tree-ID, which is a unique identifier of the P2MP tree on the
root
- It also contains a set of Candidate paths and their path-
instances for P2MP tree redundancy and global optimization
- optional constrains used to build these candidate paths
- Path-instances which are P2MP LSPs under each candidate path
for global optimization of the candidate path.
- P2MP policy information is downloaded only on the Root node and
is identified via <Root-ID, Tree-ID>
-Candidate Path:
Bidgoli, et al. Expires May 5, 2020 [Page 5]
Internet-Draft PCEP extensions for p2mp policy November 2, 2019
- Is used for P2MP Tree redundancy where the P2MP LSP with the
highest preference is the active LSP
- It can contain up to two path-instance P2MP LSP global
optimization procedures, each identified with their own path-
instance-ID (i.e. make before break)
- Contains information about protocol-id, originator,
discriminator, preference, path-instances.
-Replication Segment:
- Is the forwarding information needed on each node for building
the datapath for each path-instance of the P2MP Candidate path.
o As it will be explained in upcoming sections there are 2 ways
to identify the replication segment, shared and non-shared trees
- Tree-ID and Root-ID and path-instance for non-shared trees.
- Its node-ID, Replication-id, for shared trees
- Contains forwarding instructions for the path-instances (P2MP
LSPs), these instructions can be a replication SID or a segment
list.
- Replication segment information downloaded on Root, Transit
and Leaf nodes respectively.
3.1.1. shared tree vs non-shared tree
A non-shared tree is used when the label field of the PMSI Tunnel
Attribute (PTA) is set to zero as per [draft-parekh-bess-mvpn-sr-
p2mp]. In short this tree is used when there is no upstream assigned
label in the PTA and aggregate of MVPNs into a single P-Tunnel is not
desired.
On other hand shared tree is used when the label field of the PTA is
NOT set to Zero and there is an upstream assigned label in the PTA.
In this case multiple MVPNs (VRFs) can be aggregate into a single P-
Tunnel and the upstream assigned label distinguishes the MVPNs.
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
Bidgoli, et al. Expires May 5, 2020 [Page 6]
Internet-Draft PCEP extensions for p2mp policy November 2, 2019
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 and concepts:
- [RFC8231] The bases for a stateful PCE, and reuses the following
objects or a variant of them
<SRP Object>
<LSP Object>
o A variation of the LSP identifier TLV is defined in this
draft, to support P2MP LSP Identifier
- [RFC8236] P2MP capabilities advertisement
- [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 preference of the
candidate path.
- [RFC 3209] defines the instance-ID, instance-ID is used for global
optimization of a candidate path with in a P2MP policy. Each
Candidate path can have 2 sub-lsps (instance-IDs) for MBB and global
optimization procedures. instance-ID is equivalent to LSP ID as per
[RFC 3209]
- [draft-ietf-spring-segment-routing-policy] segment-list, used for
connecting two non-adjacent replication policy via a unicast binding
SID or Segment-list.
- [RFC8306] P2MP End Point objects, used for the PCC to update the
PCE with discovered Leaves.
- [draft-sivabalan-pce-binding-label-sid-04#section-3] Path binding
TLV is used to indicate the incoming replication SID
- [draft-koldychev-pce-multipath-01] forwarding instruction for a
P2MP LSP is defined by a set of SR-ERO sub-objects in the ERO object,
ERO-ATTRIBUTES object and MULTIPATH-BACKUP TLV as defined in this
draft.
- [draft-ietf-pce-segment-routing] SR-ERO Sub Object used in the
multipath.
Bidgoli, et al. Expires May 5, 2020 [Page 7]
Internet-Draft PCEP extensions for p2mp policy November 2, 2019
It should be noted that the [draft-dhs-spring-sr-p2mp-policy-yang]
can provide further details of the high level P2MP Policy Model.
3.1.2. P2MP Policy Identification
A P2MP Policy and its candidate path on the root can be identified on
the Root via the P2MP LSP Object, this Object is a variation of the
LSP ID Object defined in RFC 8231 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. Stand-by
P2MP LSPs will be downloaded with a new PLSP-ID, since every P2MP LSP
is a candidate path on its own. 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.
Root-ID: is equivalent to the first MPLS node on the path, as per
[RFC3209], Section 4.6.2.1
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.
Instance-ID: LSP ID Identifier as defined in RFC 3209, and is used
for global optimization of a P2MP LSP (Candidate path)
Note that the Root-ID, Tree-ID and instance-ID are part of a new SR-
P2MP-LSP-IDENTIFIER TLV which will be identified in this draft.
3.1.3. Replication Segment Identification
The key to identify a replication segment is also the P2MP LSP
Object.
That said there are different rules for coding the SR-P2MP-LSP-
IDENTIFIER TLV which will be explained in later sections.
3.2 High-Level Procedures for P2MP SR LSP Instantiation
A P2MP policy is defined by Root, Tree-Id, set of Leaves. It also
contains a set of candidate-path and path-instances which are used
for global optimization of the candidate paths. The P2MP policy is
used to calculate and download a set of replication segment to
connect the root to a set of leaves, optionally via a set of transit
nodes. As mentioned previously a replication segments are set of
forwarding rules used on root, transit nodes and leaves. Each path-
instance of a candidate path will have a set of replication segments
to connect the root the leaves via a set of transit nodes. A path-
Bidgoli, et al. Expires May 5, 2020 [Page 8]
Internet-Draft PCEP extensions for p2mp policy November 2, 2019
instance can be viewed as a P2MP LSP.
The Root and Leaves can be discovered via many methods.
- 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 [RFC 6513] and [RFC 6514] 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 :
o PCE is informed of the P2MP request through it's API or
configuration mechanism to instantiate a P2MP tunnel.
o PCE will initiate the P2MP Tunnel for the request, by sending a PC
Initiate message to the Root and start programing the P2MP Policy on
the root.
o Root in response to the PC Initiate message. It will generate PLSP-
ID for the candidate paths, Path-Instance-ID for the P2MP LSP
contained with in a candidate path and tree-id for the candidate
paths and P2MP Policy. It will reports back the PLSP-ID, Instance ID
and tree-id, and any leaves that were discovered until then to PCE.
o PCE on discovering leaves from the root, will compute the P2MP
Policy from the Root to the leaves and downloads the replication
segment by sending PC Initiate message on the transit and leaf nodes.
o PCE will also sends a PC Initiate message to the Root for the
Replication Segment.
2. PCC Initiated Procedure:
After Root discovers the leaves (as an example via MVPN Procedures),
the following communication happens between the PCE and PCCs
o Root sends a PC Report for P2MP policy to PCE including the root,
Bidgoli, et al. Expires May 5, 2020 [Page 9]
Internet-Draft PCEP extensions for p2mp policy November 2, 2019
tree-id, PLSP-ID, Path-Instance-ID, symbolic-path-name, and any
leaves discovered until then.
o PCE on receiving of this report, will compute the P2MP Policy and
its replication segments.
- On Root it will send and update for P2MP policy with the PLSP-ID
and the corresponding replication segment. It should be noted the
replication segment is downloaded via an update message also.
- It will download replication segments to leaves and transit nodes
using PC Initiate message with PLSP-ID = 0, symbolic path name,
Root-address, Tree-id(sent by the root), Instance-id(sent by root).
The replication segment information(containing TE-Path binding TLV,
ERO object, ERO attributes object, multipath backup TLV,SR-ERO sub-
objects).
Beyond this, procedures for (1) and (2) are same.
o Any new candidate path is downloaded by PCE to its connected Root
by sending a PC Initiate message to them.
- it should be noted, PLSP-ID, Path-Instance-ID and the Tree-ID are
generated by the PCC
o The replication segments are downloaded via a PC Initiate message
to the Root, Transit and Leaf nodes for these new candidate paths and
their Path-Instance-ID.
- it should be noted, a replication segment message never has the
association object.
o Every candidate path is a different P2MP Tree which gets a unique
PLSP-ID. All candidate path is associated to the same SR-P2MP policy.
o Any new leaves discovered from here on, are reported to PCE.
o 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.
o 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.
o The candidate-path that was informed by PCE to PCC, is active or
not is indicated by the PCC through the operational bits(Up/Active)
of the LSP object in the PC Report. If a candidate path needs to be
Bidgoli, et al. Expires May 5, 2020 [Page 10]
Internet-Draft PCEP extensions for p2mp policy November 2, 2019
removed, PCE sends PC Initiate message, setting the R-flag in the LSP
object and R bit in the SRP-object.
o 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-POLICY-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.
o 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.
o Discovery of local replication policies is outside the scope of
this document, however it may be achieved using methods such as
learning via NMS, NetConf or extending dynamic discovery protocols
such as extending draft-ietf-idr-te-lsp-distribution for sr
replication policies
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 tunnel or new routers are added to the network) a global
optimization is possible. At any instance, a PCE can download more
than one candidate path to the existing SR-P2MP policy. Each
candidate path has a unique PLSP-ID generated by PCC. Only one
candidate path can be active at any instance. A candidate path is
made active based on the preference of the path. On MBB, PCE will
update the candidate path with a new path, and two paths will briefly
co-exist. Two paths are uniquely identified by the Instance-ID in the
SR-P2MP-POLICY-ID-TLV (defined in this document). After the optimized
LSP has been downloaded successfully PCC MUST send two reports,
reporting UP of the new path indicating the new LSP-ID, and a second
reporting the tear down of the old path with the R bit of the LSP
Object SET with the old Instance-ID in the SR-P2MP-POLICY-ID-TLV.
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 May 5, 2020 [Page 11]
Internet-Draft PCEP extensions for p2mp policy November 2, 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.
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. 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.
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 Segment via Segment List
There could be nodes between two replication segment that do not
understand P2MP Policy or Replication segment. It is possible to
connect two non-adjacent Replication segment via a unicast binding
SID or segment-list.
Replication segment 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 SR-ERO sub-objects and
ERO-attributes object.
3.3. SR P2MP Policy and Replication Segment TLVs and Objects
Bidgoli, et al. Expires May 5, 2020 [Page 12]
Internet-Draft PCEP extensions for p2mp policy November 2, 2019
3.3.1. SR P2MP Policy Objects
SR P2MP Policy can be constructed via the following objects
<Common Header>
[<SRP>]
<LSP>
[<association-list>]
optionally if the root is updating the PCE with end point list the
end-point-list object can be added.
[<end-points-list>]
3.3.2. Replication Segment Objects
Replication segment can be constructed via the following objects
<Common Header>
[<SRP>]
<LSP>
[<replication-sid>]
as described in
[draft-sivabalan-pce-binding-label-sid-06#section-3]
[<ERO-Attributes Object>]
as per [draft-koldychev-pce-multipath]
3.3.3. P2MP Policy vs Replication Segment
Note P2MP Policy and Replication segments objects have a very close
definition. They can be told apart via the following abstracts:
o The P2MP Policy will always have an association list object at
least in its PC-Init message. While the replication segment does not
have the association list object.
o Both P2MP Policy and Replication segment have the PLSP-ID and it is
set to 0 in the PC-Init message. For both Objects the PLSP-ID is set
via the PCC.
3.3.4. P2MP Policy and Replication Segment general considerations
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
Bidgoli, et al. Expires May 5, 2020 [Page 13]
Internet-Draft PCEP extensions for p2mp policy November 2, 2019
forwarding information that is needed to build the P2MP LSP. They
will 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 ERO path Id and generates new path Id
for new instructions. This means the pathId are maintained for each
specific forwarding and label instructions until these instructions
are deleted. For example: When the first leaf is added I get
instructions, path-id A, path-id B on a node. On a second leaf add,
according to the path calculated, PCE might just append the existing
instruction A,B with C,D. This is done by sending a PC Update with
downstream-index A, B, C,D.
ERO path-Id requirements are mentioned in draft-koldychev-pce-
multipath-01 and MUST be followed.
4. Object Format
4.1. Open Message and Capability Exchange
Format of the open 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 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 need to set flags N,
M, P in the STATEFUL-PCE-CAPABILITY TLV as defined in
https://tools.ietf.org/html/draft-ietf-pce-stateful-pce-p2mp-
08#section-5.2
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
https://tools.ietf.org/html/rfc8306#section-3.1.2 and a new value
needs to be defined for SR-P2MP.
Bidgoli, et al. Expires May 5, 2020 [Page 14]
Internet-Draft PCEP extensions for p2mp policy November 2, 2019
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.
Finally the open message needs to include the MULTIPATH CAPABILITY
TLV as defined in draft-koldychev-pce-multipath-01
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.
As an example in the case of P2MP LSP the symbolic name can be p2mp
policy name + candidate path name of the LSP.
4.3. P2MP Policy Specific Objects and TLVs
4.3.1. P2MP Policy Association Group for P2MP Policy
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.2. P2MP SR Policy Association Group Policy Identifiers TLV
The P2MP-SRPOLICY-POL-ID TLV is a mandatory TLV for the P2MP-SRPAG
Association. Only one P2MP-SRPOLICY-POL-ID TLV can be carried and
Bidgoli, et al. Expires May 5, 2020 [Page 15]
Internet-Draft PCEP extensions for p2mp policy November 2, 2019
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.3. 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: TBD3 for "P2MP-SRPOLICY-CPATH-ID" TLV.
Bidgoli, et al. Expires May 5, 2020 [Page 16]
Internet-Draft PCEP extensions for p2mp policy November 2, 2019
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.4. 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.
If the TLV is missing, a default preference of 100 as specified in
Bidgoli, et al. Expires May 5, 2020 [Page 17]
Internet-Draft PCEP extensions for p2mp policy November 2, 2019
[I-D.ietf-spring-segment-routing-policy] is used.
4.3.2. P2MP-END-POINTS OBJECT
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>]
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:
Bidgoli, et al. Expires May 5, 2020 [Page 18]
Internet-Draft PCEP extensions for p2mp policy November 2, 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 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)
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.
4.4. P2MP Policy and Replication Segment Identifier Object and TLV
As it was mentioned previously both P2MP Policy and Replication
Segment are identified via the LSP object and more precisely via the
SR-P2MP-LSPID-TLV
The P2MP Policy uses the PLSP-ID to identify the candidate paths and
the Path-Instance-ID to identify a P2MP LSP under the candidate path.
On other hand the Replication Segment uses the SR-P2MP-LSPID-TLV to
identify and correlate a Replication Segment to a P2MP Policy
Bidgoli, et al. Expires May 5, 2020 [Page 19]
Internet-Draft PCEP extensions for p2mp policy November 2, 2019
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 uniquely with in the P2MP policy.
The LSP Object MUST include the new SR-P2MP-POLICY-ID-TLV (IPV4/IpV6)
defined in this document below. This is a variation to the P2MP
object defined in [draft-ietf-pce-stateful-pce-p2mp]
SR-IPV4-P2MP-POLICY-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=10 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Root |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Tree-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Path-Instance-ID | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
SR-IPV6-P2MP-POLICY-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=22 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| Root |
+ (16 octets) +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Tree-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Path-Instance-ID | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The type (16-bit) of the TLV is TBD (need allocation by IANA).
Root: Source Router IP Address
Bidgoli, et al. Expires May 5, 2020 [Page 20]
Internet-Draft PCEP extensions for p2mp policy November 2, 2019
Tree-ID: Unique Identifier of this P2MP LSP on the Root.
Instance-ID : Contains 16 Bit instance ID.
4.5. Replication Segment
As per draft-voyer-spring-sr-replication-segment-00 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 at the bottom of
the stack. This means two replication segments can be directly
connected or connected via a SR domain.
4.5.1. shared vs non-shared replication segment
A non-shared tree is used when the label field of the PMSI Tunnel
Attribute (PTA) is set to zero as per [draft-parekh-bess-mvpn-sr-
p2mp]. In this case is when there is no upstream assigned label in
the PTA and aggregation of MVPNs into one P-Tunnel is not desired.
A shared tree, on other hand, has a non Zero label field in the PTA
and is used when there is an upstream assigned label in the PTA and
aggregate of MVPNs into one P-Tunnel is desired.
4.5.2. The format of the replication segment message
As it was mentioned in previous chapters the format of the
replication segment message is close to P2MP Policy. That said the
P2MP Policy contains the association object and the replication
segment message does not contain the association object.
The replication segment uses SR-P2MP-LSPID-TLV as its identifier.
That said this TLV is coded differently for shared and on shared
case.
o In the case of a replication segment being shared, the Tree-ID in
the SR-P2MP-POLICY Identifier TLV is the replication-id of the
replication segment and Root = 0, Instance-Id = 0. When downloading a
shared replication segment from PCE through a PcInitiate message, the
SR-P2MP-POLICY Identifier TLV is all 0, and on the report back from
PCC, PCC generates PLSP-ID, Replication-id (Tree-id field will be
populated with replication-id). Instance-id will be 0.
4.5.3. Label action rules in replicating segment
If a node is ingress, transit, leaf or Bud, is implicitly identified
Bidgoli, et al. Expires May 5, 2020 [Page 21]
Internet-Draft PCEP extensions for p2mp policy November 2, 2019
by the following information in the replication segment:
- If there is a next-hop with local loop back it is a Leaf
- If there is a next-hop with local loop back and a next-hop with
swap downstream it is a Bud
- If incoming label and next-hop is downstream node loop back ip and
there is p2mp policy then Ingress
- If incoming label and next-hop is downstream node loop back ip and
no p2mp policy then it is a Transit
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 May 5, 2020 [Page 22]
Internet-Draft PCEP extensions for p2mp policy November 2, 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 = 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Instance-id = 0 | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
<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 | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Originator ASN |
Bidgoli, et al. Expires May 5, 2020 [Page 23]
Internet-Draft PCEP extensions for p2mp policy November 2, 2019
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Originator Address = <pce-address> |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Discriminator = 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Preference = 100 <default> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
On Response to the above initiate message, PCC generates a Tree-ID,
PLSP-ID, Instance-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 May 5, 2020 [Page 24]
Internet-Draft PCEP extensions for p2mp policy November 2, 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Instance-ID =L1 | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
<END POINT OBJECT>
| Leaf type =1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source IPv4 address = A |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination IPv4 address = D |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination IPv4 address = E |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Presence of an association object with Tree-ID = 0 in the Initiate
message, is an indication to the node to create a P2MP policy and
associated candidate path. An initiate message without an association
object, is an indication to the node to download the replication
segment (forwarding instructions).
5.2. PCE P2MP LSP Calculation and Replication Segment download
Bidgoli, et al. Expires May 5, 2020 [Page 25]
Internet-Draft PCEP extensions for p2mp policy November 2, 2019
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 TE-PATH-BINDING TLV and
label download information using ERO object, ERO-attribute object and
SR-ERO sub-objects.
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-02
A sample PC Update message sent to the Root for cp1 is as follows:
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 May 5, 2020 [Page 26]
Internet-Draft PCEP extensions for p2mp policy November 2, 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Instance-ID = L1 | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| BT= 0 | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Binding value = incoming replication SID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
<ERO-ATTRIBUTES OBJECT>
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Oper|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|0|0| Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ERO-path Id = 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Back-up ero path id = 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|L| Type=36 | Length | NT= 1| Flags |0|0|0|0|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID = b |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Bidgoli, et al. Expires May 5, 2020 [Page 27]
Internet-Draft PCEP extensions for p2mp policy November 2, 2019
| ipv4-address = NH |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|L| Type=36 | Length | NT= 1| Flags |0|0|0|0|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID = c |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ipv4-address = NH |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Root = A |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Tree-ID = Y |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Instance-ID = 0 | reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| BT | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Binding Value= incoming replication sid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Bidgoli, et al. Expires May 5, 2020 [Page 28]
Internet-Draft PCEP extensions for p2mp policy November 2, 2019
<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 | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Originator ASN |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Originator Address = <pce-address> |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Discriminator = 2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Preference = 100 <default> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
<ERO-ATTRIBUTES OBJECT>
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Oper|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|0|0| Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ERO-path Id = 2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Back-up ero path id = 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|L| Type=36 | Length | NT= 1| Flags |0|0|0|0|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID = b1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ipv4-address = NH2 |
Bidgoli, et al. Expires May 5, 2020 [Page 29]
Internet-Draft PCEP extensions for p2mp policy November 2, 2019
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|L| Type=36 | Length | NT= 1| Flags |0|0|0|0|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID = c1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ipv4-address = NH2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
A sample PC Initiate message to the transit replication policy C
for cp1
Lets assume C is connected to D 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 = Y |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Instance-ID =L1 | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| BT | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Binding Value= incoming replication sid = c1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
<With FRR over NHD2>
<ERO-ATTRIBUTES OBJECT>
Bidgoli, et al. Expires May 5, 2020 [Page 30]
Internet-Draft PCEP extensions for p2mp policy November 2, 2019
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Oper|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|0|1| Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ERO-path Id = 3 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Back-up ero path id = 4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|L| Type=36 | Length | NT= 1| Flags |0|0|0|0|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID = d |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ipv4-address = NHD1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
<ERO-ATTRIBUTES OBJECT>
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Oper|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0|1|0| Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ERO-path Id = 4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Back-up ero path id = 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|L| Type=36 | Length | NT= 1| Flags |0|0|0|0|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID = d protect |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ipv4-address = NHD2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
<incoming label c1 swap with E1>
<ERO-ATTRIBUTES OBJECT>
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Oper|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|0|1| Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ERO-path Id = 5 |
Bidgoli, et al. Expires May 5, 2020 [Page 31]
Internet-Draft PCEP extensions for p2mp policy November 2, 2019
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Back-up ero path id = 6 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|L| Type=36 | Length | NT= 1| Flags |0|0|0|0|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID = e |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ipv4-address = NHE1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
<ERO-ATTRIBUTES OBJECT>
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Oper|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0|1|0| Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ERO-path Id = 6 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Back-up ero path id = 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|L| Type=36 | Length | NT= 1| Flags |0|0|0|0|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID = e protect |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ipv4-address = NHE2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
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 May 5, 2020 [Page 32]
Internet-Draft PCEP extensions for p2mp policy November 2, 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Instance-ID = L1 | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
<ERO-ATTRIBUTE OBJECT>
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags |O =Up|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|0|1| Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ERO-path Id = 5 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Back-up ero path id = 6 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
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.
Bidgoli, et al. Expires May 5, 2020 [Page 33]
Internet-Draft PCEP extensions for p2mp policy November 2, 2019
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
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
Bidgoli, et al. Expires May 5, 2020 [Page 34]
Internet-Draft PCEP extensions for p2mp policy November 2, 2019
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
Email: saranya.rajarathinam@nokia.com
Takre Saad
Juniper
Ottawa
Canada
tsaad@juniper.net
Bidgoli, et al. Expires May 5, 2020 [Page 35]