| rfc9960v1.txt | rfc9960.txt | |||
|---|---|---|---|---|
| skipping to change at line 98 ¶ | skipping to change at line 98 ¶ | |||
| A.1.2. SRv6 | A.1.2. SRv6 | |||
| A.2. P2MP Tree with Adjacent Replication Segments | A.2. P2MP Tree with Adjacent Replication Segments | |||
| A.2.1. SR-MPLS | A.2.1. SR-MPLS | |||
| A.2.2. SRv6 | A.2.2. SRv6 | |||
| Acknowledgements | Acknowledgements | |||
| Contributors | Contributors | |||
| Authors' Addresses | Authors' Addresses | |||
| 1. Introduction | 1. Introduction | |||
| [RFC9524] defines a Replication segment that enables a Segment | [RFC9524] defines a Replication segment that enables a SR node to | |||
| Routing (SR) node to replicate traffic to multiple downstream nodes | replicate traffic to multiple downstream nodes in an SR domain | |||
| in an SR domain [RFC8402]. A Point-to-Multipoint (P2MP) service can | [RFC8402]. A Point-to-Multipoint (P2MP) service can be realized by a | |||
| be realized by a single Replication segment spanning from the ingress | single Replication segment spanning from the ingress node to the | |||
| node to the egress nodes of the service. This effectively achieves | egress nodes of the service. This effectively achieves ingress | |||
| ingress replication, which is inefficient since the traffic of the | replication, which is inefficient since the traffic of the P2MP | |||
| P2MP service may traverse the same set of nodes and links in the SR | service may traverse the same set of nodes and links in the SR domain | |||
| domain on its path from the ingress node to the egress nodes. | on its path from the ingress node to the egress nodes. | |||
| A multipoint service delivery can be efficiently realized with a P2MP | A multipoint service delivery can be efficiently realized with a P2MP | |||
| tree in a Segment Routing domain. A P2MP tree spans from a Root node | tree in a SR domain. A P2MP tree spans from a Root node to a set of | |||
| to a set of Leaf nodes via intermediate Replication nodes. It | Leaf nodes via intermediate Replication nodes. It consists of a | |||
| consists of a Replication segment at the Root node, stitched to one | Replication segment at the Root node, and that Replication segment is | |||
| or more Replication segments at Leaf nodes and intermediate | stitched to one or more Replication segments between the Leaf nodes | |||
| Replication nodes. A Bud node [RFC9524] is a node that is both a | and intermediate Replication nodes. A Bud node [RFC9524] is a node | |||
| Replication node and a Leaf node. Any mention of "Leaf node(s)" in | that is both a Replication node and a Leaf node. Any mention of | |||
| this document should be considered as referring to "Leaf or Bud | "Leaf node(s)" in this document should be considered as referring to | |||
| node(s)". | "Leaf or Bud node(s)". | |||
| An SR P2MP Policy defines the Root and Leaf nodes of a P2MP tree. It | An SR P2MP Policy defines the Root and Leaf nodes of a P2MP tree. It | |||
| has one or more candidate paths (CPs) provisioned with optional | has one or more CPs provisioned with optional constraints and/or | |||
| constraints and/or optimization objectives. | optimization objectives. | |||
| A controller computes P2MP tree instances of the candidate paths | A controller computes PTIs of the CPs using the constraints and | |||
| using the constraints and objectives specified in the candidate path. | objectives specified in the CP. The controller then instantiates a | |||
| The controller then instantiates a P2MP tree instance in the SR | PTI in the SR domain by signaling Replication segments to the Root, | |||
| domain by signaling Replication segments to the Root, Replication, | Replication, and Leaf nodes. A Path Computation Element (PCE) | |||
| and Leaf nodes. A Path Computation Element (PCE) [RFC4655] is one | [RFC4655] is one example of such a controller. In other cases, a PTI | |||
| example of such a controller. In other cases, a P2MP tree instance | ||||
| can be installed using the Network Configuration Protocol (NETCONF) / | can be installed using the Network Configuration Protocol (NETCONF) / | |||
| YANG or the Command Line Interface (CLI) on the Root, Replication, | YANG or the Command Line Interface (CLI) on the Root, Replication, | |||
| and Leaf nodes. | and Leaf nodes. | |||
| The Replication segments of a P2MP tree instance can be instantiated | The Replication segments of a PTI can be instantiated for SR-MPLS | |||
| for SR-MPLS [RFC8660] and SRv6 [RFC8986] data planes, enabling | [RFC8660] and SRv6 [RFC8986] data planes, enabling efficient packet | |||
| efficient packet replication within an SR domain. | replication within an SR domain. | |||
| This document updates the Replication-ID portion of the Replication | This document updates the Replication-ID portion of the Replication | |||
| segment identifier (Replication-SID) specified in Section 2 of | segment identifier (Replication-SID) specified in Section 2 of | |||
| [RFC9524]. | [RFC9524]. | |||
| 1.1. Terminology | 1.1. Terminology | |||
| This section defines terms used frequently in this document. Refer | This section defines terms used frequently in this document. Refer | |||
| to the Terminology section of [RFC9524] for the definitions of | to the Terminology section of [RFC9524] for the definitions of | |||
| Replication segment and other terms associated with it and the | Replication segment and other terms associated with it and the | |||
| definitions of Root, Leaf, and Bud nodes. | definitions of Root, Leaf, and Bud nodes. | |||
| SR P2MP Policy: An SR P2MP Policy is a framework to construct P2MP | SR P2MP Policy: An SR P2MP Policy is a framework to construct P2MP | |||
| trees in an SR domain by specifying Root and Leaf nodes. | trees in an SR domain by specifying Root and Leaf nodes. | |||
| Tree-ID: An identifier of an SR P2MP Policy in context of the Root | Tree-ID: An identifier of an SR P2MP Policy in context of the Root | |||
| node. | node. | |||
| Candidate path (CP): A CP of the SR P2MP Policy defines topological | Candidate path (CP): A CP of the SR P2MP Policy defines topological | |||
| or resource constraints and optimization objectives that are used | or resource constraints and optimization objectives that are used | |||
| to compute and construct P2MP tree instances. | to compute and construct PTIs. | |||
| P2MP tree instance (PTI): A PTI of a candidate path is constructed | P2MP tree instance (PTI): A PTI of a CP is constructed by stitching | |||
| by stitching Replication segments between the Root and Leaf nodes | Replication segments between the Root and Leaf nodes of an SR P2MP | |||
| of an SR P2MP Policy. Its topology is determined by the | Policy. Its topology is determined by the constraints and | |||
| constraints and optimization objective of the candidate path. | optimization objective of the CP. | |||
| Instance-ID: An identifier of a P2MP tree instance in context of the | Instance-ID: An identifier of a PTI in context of the SR P2MP | |||
| SR P2MP Policy. | Policy. | |||
| Tree-SID: The Replication-SID of the Replication segment at the Root | Tree-SID: The Replication-SID of the Replication segment at the Root | |||
| node of a P2MP tree instance. | node of a PTI. | |||
| 1.2. Requirements Language | 1.2. Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in | "OPTIONAL" in this document are to be interpreted as described in | |||
| BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 2. SR P2MP Policy | 2. SR P2MP Policy | |||
| An SR P2MP Policy is used to instantiate P2MP trees between Root and | An SR P2MP Policy is used to instantiate P2MP trees between Root and | |||
| Leaf nodes in an SR domain. Note that multiple SR P2MP Policies can | Leaf nodes in an SR domain. Note that multiple SR P2MP Policies can | |||
| have identical Root nodes and identical sets of Leaf nodes. An SR | have identical Root nodes and identical sets of Leaf nodes. An SR | |||
| P2MP Policy has one or more candidate paths [RFC9256]. | P2MP Policy has one or more CPs [RFC9256]. | |||
| 2.1. SR P2MP Policy Identification | 2.1. SR P2MP Policy Identification | |||
| An SR P2MP Policy is uniquely identified by the tuple <Root, Tree- | An SR P2MP Policy is uniquely identified by the tuple <Root, Tree- | |||
| ID>, where: | ID>, where: | |||
| * Root: The IP address of the Root node of P2MP trees instantiated | * Root: The IP address of the Root node of P2MP trees instantiated | |||
| by the SR P2MP Policy. | by the SR P2MP Policy. | |||
| * Tree-ID: A 32-bit unsigned integer that uniquely identifies the SR | * Tree-ID: A 32-bit unsigned integer that uniquely identifies the SR | |||
| P2MP Policy in the context of the Root node. | P2MP Policy in the context of the Root node. | |||
| 2.2. Components of an SR P2MP Policy | 2.2. Components of an SR P2MP Policy | |||
| An SR P2MP Policy consists of the following elements: | An SR P2MP Policy consists of the following elements: | |||
| * Leaf nodes: A set of nodes that terminate the P2MP trees of the SR | * Leaf nodes: A set of nodes that terminate the P2MP trees of the SR | |||
| P2MP Policy. | P2MP Policy. | |||
| * Candidate paths: A set of possible paths that define constraints | * Candidate paths: A set of possible paths that define constraints | |||
| and optimization objectives for P2MP tree instances of the SR P2MP | and optimization objectives for PTIs of the SR P2MP Policy. | |||
| Policy. | ||||
| An SR P2MP Policy and its CPs are provisioned on a controller (see | An SR P2MP Policy and its CPs are provisioned on a controller (see | |||
| Section 5) or the Root node or both, depending upon the provisioning | Section 5) or the Root node or both, depending upon the provisioning | |||
| model. After provisioning, the Policy and its CPs are instantiated | model. After provisioning, the Policy and its CPs are instantiated | |||
| on the Root node or the controller by using a signaling protocol. | on the Root node or the controller by using a signaling protocol. | |||
| 2.3. Candidate Paths and P2MP Tree Instances | 2.3. Candidate Paths and P2MP Tree Instances | |||
| An SR P2MP Policy has one or more CPs. The tuple <Protocol-Origin, | An SR P2MP Policy has one or more CPs. The tuple <Protocol-Origin, | |||
| Originator, Discriminator>, as specified in Section 2.6 of [RFC9256], | Originator, Discriminator>, as specified in Section 2.6 of [RFC9256], | |||
| uniquely identifies a candidate path in the context of an SR P2MP | uniquely identifies a CP in the context of an SR P2MP Policy. The | |||
| Policy. The semantics of Protocol-Origin, Originator, and | semantics of Protocol-Origin, Originator, and Discriminator fields of | |||
| Discriminator fields of the identifier are the same as in Sections | the identifier are the same as in Sections 2.3, 2.4, and 2.5 of | |||
| 2.3, 2.4, and 2.5 of [RFC9256], respectively. | [RFC9256], respectively. | |||
| The Root node of the SR P2MP Policy selects the active candidate path | The Root node of the SR P2MP Policy selects the active CP based on | |||
| based on the tiebreaking rules defined in Section 2.9 of [RFC9256]. | the tiebreaking rules defined in Section 2.9 of [RFC9256]. | |||
| A CP may include topological and/or resource constraints and | A CP may include topological and/or resource constraints and | |||
| optimization objectives that influence the computation of the PTIs of | optimization objectives that influence the computation of the PTIs of | |||
| the CP. | the CP. | |||
| A candidate path has zero or more PTIs. A candidate path does not | A CP has zero or more PTIs. A CP does not have a PTI when the | |||
| have a PTI when the controller cannot compute a P2MP tree from the | controller cannot compute a P2MP tree from the network topology based | |||
| network topology based on the constraints and/or optimization | on the constraints and/or optimization objectives of the CP. A CP | |||
| objectives of the CP. A candidate path can have more than one PTI, | can have more than one PTI, e.g., during the Make-Before-Break (see | |||
| e.g., during the Make-Before-Break (see Section 5.3) procedure to | Section 5.3) procedure to handle a network state change. However, | |||
| handle a network state change. However, one and only one PTI MUST be | one and only one PTI MUST be the active instance of the CP. If more | |||
| the active instance of the CP. If more than one PTI of a CP is | than one PTI of a CP is active at same time, and that CP is the | |||
| active at same time, and that CP is the active CP of the SR P2MP | active CP of the SR P2MP Policy, then duplicate traffic may be | |||
| Policy, then duplicate traffic may be delivered to the Leaf nodes. | delivered to the Leaf nodes. | |||
| A PTI is identified by an Instance-ID. This is an unsigned 16-bit | A PTI is identified by an Instance-ID. This is an unsigned 16-bit | |||
| number that is unique in context of the SR P2MP Policy of the | number that is unique in context of the SR P2MP Policy of the CP. | |||
| candidate path. | ||||
| PTIs are instantiated using Replication segments. Section 2 of | PTIs are instantiated using Replication segments. Section 2 of | |||
| [RFC9524] specifies the Replication-ID of the Replication segment | [RFC9524] specifies the Replication-ID of the Replication-SID tuple | |||
| identifier tuple as a variable length field that can be modified as | as a variable length field that can be modified as required based on | |||
| required based on the use of a Replication segment. However, length | the use of a Replication segment. However, length is an imprecise | |||
| is an imprecise indicator of the actual structure of the Replication- | indicator of the actual structure of the Replication-ID. This | |||
| ID. This document updates the Replication-ID of a Replication | document updates the Replication-ID of a Replication-SID [RFC9524] to | |||
| segment identifier [RFC9524] to be the tuple: <Root, Tree-ID, | be the tuple: <Root, Tree-ID, Instance-ID, Node-ID>, where <Root, | |||
| Instance-ID, Node-ID>, where <Root, Tree-ID> identifies the SR P2MP | Tree-ID> identifies the SR P2MP Policy and Instance-ID identifies the | |||
| Policy and Instance-ID identifies the PTI within that SR P2MP Policy. | PTI within that SR P2MP Policy. This results in the Replication | |||
| This results in the Replication segments used to instantiate a PTI | segments used to instantiate a PTI being identified by the tuple: | |||
| being identified by the tuple: <Root, Tree-ID, Instance-ID, Node-ID>. | <Root, Tree-ID, Instance-ID, Node-ID>. In the simplest case, the | |||
| In the simplest case, the Replication-ID of a Replication segment is | Replication-ID of a Replication segment is a 32-bit number as per | |||
| a 32-bit number as per Section 2 of [RFC9524]. For this use case, | Section 2 of [RFC9524] for which the Root MUST be zero (0.0.0.0 for | |||
| the Root MUST be zero (0.0.0.0 for IPv4 and :: for IPv6) and the | IPv4 and :: for IPv6), the Instance-ID MUST be zero, and the 32-bit | |||
| Instance-ID MUST be zero and the 32-bit Tree-ID effectively make the | Tree-ID to effectively make the Replication-SID <[0.0.0.0 or ::], | |||
| Replication segment identifier <[0.0.0.0 or ::], Tree-ID, 0, Node- | Tree-ID, 0, Node-ID>. | |||
| ID>. | ||||
| PTIs may have different tree topologies due to possibly differing | PTIs may have different tree topologies due to possibly differing | |||
| constraints and optimization objectives of the CPs in an SR P2MP | constraints and optimization objectives of the CPs in an SR P2MP | |||
| Policy and across different policies. Even within a given CP, two | Policy and across different policies. Even within a given CP, two | |||
| PTIs of that CP, say during the Make-Before-Break procedure, are | PTIs of that CP, say during the Make-Before-Break procedure, are | |||
| likely to have different tree topologies due to a change in the | likely to have different tree topologies due to a change in the | |||
| network state. Since the PTIs may have different tree topologies, | network state. Since the PTIs may have different tree topologies, | |||
| their replication states also differ at various nodes in the SR | their replication states also differ at various nodes in the SR | |||
| domain. Therefore, each PTI has its own Replication segment and a | domain. Therefore, each PTI has its own Replication segment and a | |||
| unique Replication-SID at a given node in the SR domain. | unique Replication-SID at a given node in the SR domain. | |||
| skipping to change at line 301 ¶ | skipping to change at line 297 ¶ | |||
| the PTI as it simplifies operations and troubleshooting. However, | the PTI as it simplifies operations and troubleshooting. However, | |||
| the Replication-SIDs of the Replication segments at the intermediate | the Replication-SIDs of the Replication segments at the intermediate | |||
| Replication nodes and the Leaf nodes MAY differ from the Tree-SID. | Replication nodes and the Leaf nodes MAY differ from the Tree-SID. | |||
| For SRv6, Replication-SID is the FUNCT portion of the SRv6 segment ID | For SRv6, Replication-SID is the FUNCT portion of the SRv6 segment ID | |||
| (SID) [RFC8986] [RFC9524]. Note that even if the Tree-SID is the | (SID) [RFC8986] [RFC9524]. Note that even if the Tree-SID is the | |||
| Replication-SID of all the Replication segments of a PTI, the locator | Replication-SID of all the Replication segments of a PTI, the locator | |||
| (LOC) portion of the SRv6 SID [RFC8986] differs for the Root node, | (LOC) portion of the SRv6 SID [RFC8986] differs for the Root node, | |||
| the intermediate Replication nodes, and the Leaf nodes of the PTI. | the intermediate Replication nodes, and the Leaf nodes of the PTI. | |||
| An SR P2MP Policy has a Binding SID (BSID). The BSID is used to | An SR P2MP Policy has a Binding SID (BSID). The BSID is used to | |||
| steer traffic into an SR Policy, as described below, when the Root | steer traffic into an SR P2MP Policy, as described below, when the | |||
| node is not the ingress node of the SR domain where the traffic | Root node is not the ingress node of the SR domain where the traffic | |||
| arrives. The packets are steered from the ingress node to the Root | arrives. The packets are steered from the ingress node to the Root | |||
| node using a segment list with the BSID as the last segment in the | node using a segment list with the BSID as the last segment in the | |||
| list. In this case, it is RECOMMENDED that the BSID of an SR P2MP | list. In this case, it is RECOMMENDED that the BSID of an SR P2MP | |||
| Policy SHOULD be constant throughout the lifetime of the policy so | Policy SHOULD be constant throughout the lifetime of the policy so | |||
| the steering of traffic to the Root node remains unchanged. The BSID | the steering of traffic to the Root node remains unchanged. The BSID | |||
| of an SR P2MP Policy MAY be the Tree-SID of the active P2MP instance | of an SR P2MP Policy MAY be the Tree-SID of the active P2MP instance | |||
| of the active CP of the policy. In this case, the BSID of an SR P2MP | of the active CP of the policy. In this case, the BSID of an SR P2MP | |||
| Policy changes when the active CP or the active PTI of the SR P2MP | Policy changes when the active CP or the active PTI of the SR P2MP | |||
| Policy changes. Note that the BSID is not required to steer traffic | Policy changes. Note that the BSID is not required to steer traffic | |||
| into an SR P2MP Policy when the Root node of an SR P2MP Policy is | into an SR P2MP Policy when the Root node of an SR P2MP Policy is | |||
| skipping to change at line 329 ¶ | skipping to change at line 325 ¶ | |||
| packet to the active PTI of the active CP of an SR P2MP Policy | packet to the active PTI of the active CP of an SR P2MP Policy | |||
| based on local forwarding policy, and it is replicated with the | based on local forwarding policy, and it is replicated with the | |||
| encapsulated Replication-SIDs of the downstream nodes. The | encapsulated Replication-SIDs of the downstream nodes. The | |||
| procedures to map an incoming packet to an SR P2MP Policy are out | procedures to map an incoming packet to an SR P2MP Policy are out | |||
| of scope of this document. It is RECOMMENDED that an | of scope of this document. It is RECOMMENDED that an | |||
| implementation provide a mechanism to examine the result of | implementation provide a mechanism to examine the result of | |||
| application of the local forwarding policy, i.e., provide | application of the local forwarding policy, i.e., provide | |||
| information about the traffic mapped to an SR P2MP Policy and the | information about the traffic mapped to an SR P2MP Policy and the | |||
| active CP and active PTI of the policy. | active CP and active PTI of the policy. | |||
| * Tree-SID-based forwarding: The Binding SID, which may be the Tree- | * Tree-SID-based forwarding: The BSID, which may be the Tree-SID of | |||
| SID of the active PTI, in an incoming packet is used to map the | the active PTI, in an incoming packet is used to map the packet to | |||
| packet to the active PTI. The Binding SID in the incoming packet | the active PTI. The BSID in the incoming packet is replaced with | |||
| is replaced with the Tree-SID of the active PTI of the active CP, | the Tree-SID of the active PTI of the active CP, and the packet is | |||
| and the packet is replicated with the Replication-SIDs of the | replicated with the Replication-SIDs of the downstream nodes. | |||
| downstream nodes. | ||||
| For local-policy-based forwarding with SR-MPLS, the TTL for the Root | For local-policy-based forwarding with SR-MPLS, the TTL for the Root | |||
| node SHOULD set the TTL in the encapsulating MPLS header so that the | node SHOULD set the TTL in the encapsulating MPLS header so that the | |||
| replicated packet can reach the furthest Leaf node. The Root MAY set | replicated packet can reach the furthest Leaf node. The Root MAY set | |||
| the TTL in the encapsulating MPLS header from the payload. In this | the TTL in the encapsulating MPLS header from the payload. In this | |||
| case, the TTL may not be sufficient for the replicated packet to | case, the TTL may not be sufficient for the replicated packet to | |||
| reach the furthest node. For SRv6, Section 2.2 of [RFC9524] provides | reach the furthest node. For SRv6, Section 2.2 of [RFC9524] provides | |||
| guidance to set the IPv6 Hop Limit of the encapsulating IPv6 header. | guidance to set the IPv6 Hop Limit of the encapsulating IPv6 header. | |||
| 4. P2MP Tree Instance | 4. P2MP Tree Instance | |||
| A P2MP tree instance within an SR domain establishes a forwarding | A PTI within an SR domain establishes a forwarding structure that | |||
| structure that connects a Root node to a set of Leaf nodes via a | connects a Root node to a set of Leaf nodes via a series of | |||
| series of intermediate Replication nodes. The tree consists of: | intermediate Replication nodes. The tree consists of: | |||
| * A Replication segment at the Root node. | * A Replication segment at the Root node. | |||
| * Zero or more Replication segments at intermediate Replication | * Zero or more Replication segments at intermediate Replication | |||
| nodes. | nodes. | |||
| * Replication segments at the Leaf nodes. | * Replication segments at the Leaf nodes. | |||
| 4.1. Replication Segments at Leaf Nodes | 4.1. Replication Segments at Leaf Nodes | |||
| skipping to change at line 397 ¶ | skipping to change at line 392 ¶ | |||
| Root node or assigned from the DCB. This SRv6 SID MUST be encoded as | Root node or assigned from the DCB. This SRv6 SID MUST be encoded as | |||
| the last segment in the Segment List of the Segment Routing Header | the last segment in the Segment List of the Segment Routing Header | |||
| [RFC8754] by the Root node to derive the packet processing context | [RFC8754] by the Root node to derive the packet processing context | |||
| (PPC) for the service, as described in Section 2.2 of [RFC9524], at a | (PPC) for the service, as described in Section 2.2 of [RFC9524], at a | |||
| Leaf node. | Leaf node. | |||
| 4.2. Shared Replication Segments | 4.2. Shared Replication Segments | |||
| A Replication segment MAY be shared across different PTIs. One | A Replication segment MAY be shared across different PTIs. One | |||
| simple use of a shared Replication segment is for local protection on | simple use of a shared Replication segment is for local protection on | |||
| a Replication node. A shared Replication segment can protect | a Replication node. Assume a Replication node, say node X, has | |||
| Replication segments of different PTIs against an adjacency or path | multiple PTIs. Assume the Replications segments of these PTIs | |||
| failure to the common downstream node of these Replication segments. | replicate to a downstream node, say node Y, amongst other downstream | |||
| nodes. This node Y is a common downstream node of these Replication | ||||
| segments at node X. A Replication segment is established to protect | ||||
| the adjacency or path between node X and node Y; this Replication | ||||
| segment can be shared across all the Replication segments of the PTIs | ||||
| replicating from node X to node Y. | ||||
| A shared Replication segment MUST be identified using a Root set to | A shared Replication segment MUST be identified using a Root set to | |||
| zero (0.0.0.0 for IPv4 and :: for IPv6), an Instance-ID set to zero, | zero (0.0.0.0 for IPv4 and :: for IPv6), an Instance-ID set to zero, | |||
| and a Tree-ID that is unique within the context of the node where the | and a Tree-ID that is unique within the context of the node where the | |||
| Replication segment is instantiated. The Root is zero because a | Replication segment is instantiated. The Root is zero because a | |||
| shared Replication segment is not associated with a particular SR | shared Replication segment is not associated with a particular SR | |||
| P2MP Policy or a PTI. Note that the shared Replication segment | P2MP Policy or a PTI. Note that the shared Replication-SID conforms | |||
| identifier conforms with the updated Replication-ID definition in | with the updated Replication-ID definition in Section 2.3. | |||
| Section 2.3. | ||||
| It is possible for different PTIs to share a P2MP tree at a | It is possible for different PTIs to share a P2MP tree at a | |||
| Replication node. This allows a common sub-tree to be shared across | Replication node. This allows a common sub-tree to be shared across | |||
| PTIs whose tree topologies are identical in some portion of an SR | PTIs whose tree topologies are identical in some portion of an SR | |||
| domain. The procedures to share a P2MP tree across PTIs are outside | domain. The procedures to share a P2MP tree across PTIs are outside | |||
| the scope of this document. | the scope of this document. | |||
| 4.3. Packet Forwarding in a P2MP Tree Instance | 4.3. Packet Forwarding in a P2MP Tree Instance | |||
| When a packet is steered into a PTI, the Replication segment at the | When a packet is steered into a PTI, the Replication segment at the | |||
| skipping to change at line 441 ¶ | skipping to change at line 440 ¶ | |||
| packet through its associated Replication segments until it | packet through its associated Replication segments until it | |||
| reaches all Leaf nodes. | reaches all Leaf nodes. | |||
| A Replication node and a downstream node can be non-adjacent. In | A Replication node and a downstream node can be non-adjacent. In | |||
| this case, the replicated packet has to traverse a path to reach the | this case, the replicated packet has to traverse a path to reach the | |||
| downstream node. For SR-MPLS, this is achieved by inserting one or | downstream node. For SR-MPLS, this is achieved by inserting one or | |||
| more SIDs before the downstream Replication-SID. For SRv6, the LOC | more SIDs before the downstream Replication-SID. For SRv6, the LOC | |||
| [RFC8986] of the downstream Replication-SID can guide the packet to | [RFC8986] of the downstream Replication-SID can guide the packet to | |||
| the downstream node or an optional segment list may be used to steer | the downstream node or an optional segment list may be used to steer | |||
| the replicated packet on a specific path to the downstream node. For | the replicated packet on a specific path to the downstream node. For | |||
| details of SRv6 replication to non-adjacent downstream node and IPv6 | details of SRv6 replication to a non-adjacent downstream node and | |||
| Hop Limit considerations, refer to Section 2.2 of [RFC9524]. | IPv6 Hop Limit considerations, refer to Section 2.2 of [RFC9524]. | |||
| 5. Using a Controller to Build a P2MP Tree | 5. Using a Controller to Build a P2MP Tree | |||
| A controller is instantiated or provisioned with the SR P2MP Policy | A controller is instantiated or provisioned with the SR P2MP Policy | |||
| and its candidate paths to compute and instantiate PTIs in an SR | and its CPs to compute and instantiate PTIs in an SR domain. The | |||
| domain. The procedures for provisioning or instantiation of these | procedures for provisioning or instantiation of these constructs on a | |||
| constructs on a controller are outside the scope of this document. | controller are outside the scope of this document. | |||
| 5.1. SR P2MP Policy on a Controller | 5.1. SR P2MP Policy on a Controller | |||
| An SR P2MP Policy is provisioned on a controller by an entity that | An SR P2MP Policy is provisioned on a controller by an entity that | |||
| can be an operator, a network node, or a machine by specifying the | can be an operator, a network node, or a machine by specifying the | |||
| addresses of the Root, the set of Leaf nodes, and the candidate | addresses of the Root, the set of Leaf nodes, and the CPs. In this | |||
| paths. In this case, the policy and its CPs are instantiated on the | case, the policy and its CPs are instantiated on the Root node using | |||
| Root node using a signaling protocol. An SR P2MP Policy, its Leaf | a signaling protocol. An SR P2MP Policy, its Leaf nodes, and the CPs | |||
| nodes, and the CPs may also be provisioned on the Root node and then | may also be provisioned on the Root node and then instantiated on the | |||
| instantiated on the controller using a signaling protocol. The | controller using a signaling protocol. The procedures and mechanisms | |||
| procedures and mechanisms for provisioning and instantiation of an SR | for provisioning and instantiation of an SR P2MP Policy and its CPS | |||
| P2MP Policy and its CPS on a controller or a Root node are outside | on a controller or a Root node are outside the scope of this | |||
| the scope of this document. | document. | |||
| The possible set of constraints and optimization objective of a CP | The possible set of constraints and optimization objective of a CP | |||
| are described in Section 3 of [SR-POLICY]. Other constraints and | are described in Section 3 of [SR-POLICY]. Other constraints and | |||
| optimization objectives MAY be used for P2MP tree computation. | optimization objectives MAY be used for P2MP tree computation. | |||
| 5.2. Controller Functions | 5.2. Controller Functions | |||
| A controller performs the following functions in general: | A controller performs the following functions in general: | |||
| * Topology Discovery: A controller discovers network topology across | * Topology Discovery: A controller discovers network topology across | |||
| Interior Gateway Protocol (IGP) areas, levels, or Autonomous | Interior Gateway Protocol (IGP) areas, levels, or Autonomous | |||
| Systems (ASes). | Systems (ASes). | |||
| * Capability Exchange: A controller discovers a node's capability to | * Capability Exchange: A controller discovers a node's capability to | |||
| participate in SR P2MP as well as advertise its capability to | participate in an SR P2MP Policy as well as advertise its | |||
| support SR P2MP. | capability to support the SR P2MP Policy. | |||
| 5.3. P2MP Tree Compute | 5.3. P2MP Tree Compute | |||
| A controller computes one or more PTIs for CPs of an SR P2MP Policy. | A controller computes one or more PTIs for CPs of an SR P2MP Policy. | |||
| A CP may not have any PTIs if a controller cannot compute a P2MP tree | A CP may not have any PTIs if a controller cannot compute a P2MP tree | |||
| for it. | for it. | |||
| A controller MUST compute a P2MP tree such that there are no loops in | A controller MUST compute a P2MP tree such that there are no loops in | |||
| the tree at steady state as required by [RFC9524]. | the tree at steady state as required by [RFC9524]. | |||
| A controller SHOULD modify a PTI of a candidate path on detecting a | A controller SHOULD modify a PTI of a CP on detecting a change in the | |||
| change in the network topology if the change affects the tree | network topology if the change affects the tree instance or when a | |||
| instance or when a better path can be found based on the new network | better path can be found based on the new network state. | |||
| state. Alternatively, the controller MAY decide to implement a Make- | Alternatively, the controller MAY decide to implement a Make-Before- | |||
| Before-Break approach to minimize traffic loss. The controller can | Break approach to minimize traffic loss. The controller can do this | |||
| do this by creating a new PTI, activating the new instance once it is | by creating a new PTI, activating the new instance once it is | |||
| instantiated in the network, and then removing the old PTI. | instantiated in the network, and then removing the old PTI. | |||
| 5.4. SID Management | 5.4. SID Management | |||
| The controller assigns the Replication-SIDs for the Replication | The controller assigns the Replication-SIDs for the Replication | |||
| segments of the PTI. | segments of the PTI. | |||
| The Replication-SIDs of a PTI of a CP of an SR P2MP Policy can be | The Replication-SIDs of a PTI of a CP of an SR P2MP Policy can be | |||
| either dynamically assigned by the controller or statically assigned | either dynamically assigned by the controller or statically assigned | |||
| by the entity provisioning the SR P2MP Policy. | by the entity provisioning the SR P2MP Policy. | |||
| For SR-MPLS, a Replication-SID may be assigned from the SR Local | For SR-MPLS, a Replication-SID may be assigned from the SR Local | |||
| Block (SRLB) or the SR Global Block (SRGB) [RFC8402]. It is | Block (SRLB) or the SR Global Block (SRGB) [RFC8402]. It is | |||
| RECOMMENDED to assign a Replication-SID from the SRLB since | RECOMMENDED to assign a Replication-SID from the SRLB since | |||
| Replication segments are local to each node of the PTI. It is NOT | Replication segments are local to each node of the PTI. It is NOT | |||
| RECOMMENDED to allocate a Replication-SID from the SRGB since this | RECOMMENDED to allocate a Replication-SID from the SRGB since this | |||
| block is globally significant the SR domain any it may get depleted | block is globally significant in the SR domain any it may get | |||
| if significant number of PTIs are instantiated in the SR domain. | depleted if a significant number of PTIs are instantiated in the SR | |||
| domain. | ||||
| Section 3 recommends that the Tree-SID be used as the Replication- | Section 3 recommends that the Tree-SID be used as the Replication- | |||
| SIDs for all the Replication segments of a PTI. It may be feasible | SIDs for all the Replication segments of a PTI. It may be feasible | |||
| to allocate the same Tree-SID value for all the Replication segments | to allocate the same Tree-SID value for all the Replication segments | |||
| if the blocks used for allocation are not identical on all the nodes | if the blocks used for allocation are not identical on all the nodes | |||
| of the PTI or if the particular Tree-SID value in the block is | of the PTI or if the particular Tree-SID value in the block is | |||
| assigned to some other SID on some node. | assigned to some other SID on some node. | |||
| A BSID is also assigned for the SR P2MP Policy. The controller MAY | A BSID is also assigned for the SR P2MP Policy. The controller MAY | |||
| decide to not assign a BSID and allow the Root node of the SR P2MP | decide to not assign a BSID and allow the Root node of the SR P2MP | |||
| skipping to change at line 546 ¶ | skipping to change at line 546 ¶ | |||
| A controller may not be aware of all the assignments of SIDs from the | A controller may not be aware of all the assignments of SIDs from the | |||
| SRGB or the SRLB of the SR domain. If reserved blocks are not used, | SRGB or the SRLB of the SR domain. If reserved blocks are not used, | |||
| the assignment of Replication-SIDs or BSIDs of SR P2MP Policies from | the assignment of Replication-SIDs or BSIDs of SR P2MP Policies from | |||
| these blocks may conflict with other SIDs. | these blocks may conflict with other SIDs. | |||
| 5.5. Instantiating P2MP Tree Instance on Nodes | 5.5. Instantiating P2MP Tree Instance on Nodes | |||
| After computing P2MP trees, the controller instantiates the | After computing P2MP trees, the controller instantiates the | |||
| Replication segments that compose the PTIs in the SR domain using | Replication segments that compose the PTIs in the SR domain using | |||
| signaling protocols such as the Path Computation Element | signaling protocols such as the Path Computation Element | |||
| Communication Protocol (PCEP) [SR-P2MP-PING], BGP [P2MP-BGP], or | Communication Protocol (PCEP) [SR-P2MP-PCEP], BGP [P2MP-BGP], or | |||
| other mechanisms such as NETCONF/YANG [SR-P2MP-YANG], etc. The | other mechanisms such as NETCONF/YANG [SR-P2MP-YANG], etc. The | |||
| procedures for the instantiation of the Replication segments in an SR | procedures for the instantiation of the Replication segments in an SR | |||
| domain are outside the scope of this document. | domain are outside the scope of this document. | |||
| A node SHOULD report a successful instantiation of a Replication | A node SHOULD report a successful instantiation of a Replication | |||
| segment. The exact procedure for reporting this is outside the scope | segment. The exact procedure for reporting this is outside the scope | |||
| of this document. | of this document. | |||
| The instantiation of a Replication segment on a node may fail, e.g., | The instantiation of a Replication segment on a node may fail, e.g., | |||
| when the Replication-SID conflicts with another SID on the node. The | when the Replication-SID conflicts with another SID on the node. The | |||
| skipping to change at line 624 ¶ | skipping to change at line 624 ¶ | |||
| 6. IANA Considerations | 6. IANA Considerations | |||
| This document has no IANA actions. | This document has no IANA actions. | |||
| 7. Security Considerations | 7. Security Considerations | |||
| This document describes how a PTI can be created in an SR domain by | This document describes how a PTI can be created in an SR domain by | |||
| stitching Replication segments together. Some security | stitching Replication segments together. Some security | |||
| considerations for Replication segments outlined in [RFC9524] are | considerations for Replication segments outlined in [RFC9524] are | |||
| also applicable to this document. Following is a brief reminder of | also applicable to this document. Following is a brief reminder of | |||
| the same. | those security considerations. | |||
| An SR domain needs protection from outside attackers as described in | An SR domain needs protection from outside attackers as described in | |||
| [RFC8402], [RFC8754], and [RFC8986]. | [RFC8402], [RFC8754], and [RFC8986]. | |||
| Failure to protect the SR MPLS domain by correctly provisioning MPLS | Failure to protect the SR-MPLS domain by correctly provisioning MPLS | |||
| support per interface permits attackers from outside the domain to | support per interface permits attackers from outside the domain to | |||
| send packets to receivers of the multipoint services that use the SR | send packets to receivers of the multipoint services that use the SR | |||
| P2MP Policies provisioned within the domain. | P2MP Policies provisioned within the domain. | |||
| Failure to protect the SRv6 domain with inbound Infrastructure Access | Failure to protect the SRv6 domain with inbound Infrastructure Access | |||
| Control Lists (IACLs) on external interfaces, combined with failure | Control Lists (IACLs) on external interfaces, combined with failure | |||
| to implement the method described in RFC 2827 [BCP38] or apply IACLs | to implement the method described in RFC 2827 [BCP38] or apply IACLs | |||
| on nodes provisioning SIDs, permits attackers from outside the SR | on nodes provisioning SIDs, permits attackers from outside the SR | |||
| domain to send packets to the receivers of multipoint services that | domain to send packets to the receivers of multipoint services that | |||
| use the SR P2MP Policies provisioned within the domain. | use the SR P2MP Policies provisioned within the domain. | |||
| skipping to change at line 652 ¶ | skipping to change at line 652 ¶ | |||
| computes SR PTI can result in a chain of Replication segments forming | computes SR PTI can result in a chain of Replication segments forming | |||
| a loop. In this case, replicated packets can create a storm until | a loop. In this case, replicated packets can create a storm until | |||
| MPLS TTL (for SR-MPLS) or IPv6 Hop Limit (for SRv6) decrements to | MPLS TTL (for SR-MPLS) or IPv6 Hop Limit (for SRv6) decrements to | |||
| zero. | zero. | |||
| The control plane protocols (like PCEP, BGP, etc.) used to | The control plane protocols (like PCEP, BGP, etc.) used to | |||
| instantiate Replication segments of SR PTI can leverage their own | instantiate Replication segments of SR PTI can leverage their own | |||
| security mechanisms such as encryption, authentication filtering, | security mechanisms such as encryption, authentication filtering, | |||
| etc. | etc. | |||
| For SRv6, [RFC9524] describes an exception for Parameter Problem | For SRv6, [RFC9524] describes an exception for the ICMPv6 Parameter | |||
| message, code 2 ICMPv6 Error messages. If an attacker is able to | Problem message with Code 2. If an attacker is able to inject a | |||
| inject a packet into a multipoint service with the source address of | packet into a multipoint service with the source address of a node | |||
| a node and with an extension header using an unknown option type | and with an extension header using an unknown option type marked as | |||
| marked as mandatory, then a large number of ICMPv6 Parameter Problem | mandatory, then a large number of ICMPv6 Parameter Problem messages | |||
| messages can cause a denial-of-service attack on the source node. | can cause a denial-of-service attack on the source node. | |||
| 8. References | 8. References | |||
| 8.1. Normative References | 8.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| skipping to change at line 754 ¶ | skipping to change at line 754 ¶ | |||
| DOI 10.17487/RFC9855, October 2025, | DOI 10.17487/RFC9855, October 2025, | |||
| <https://www.rfc-editor.org/info/rfc9855>. | <https://www.rfc-editor.org/info/rfc9855>. | |||
| [SR-LOOP] Bashandy, A., Filsfils, C., Litkowski, S., Decraene, B., | [SR-LOOP] Bashandy, A., Filsfils, C., Litkowski, S., Decraene, B., | |||
| Francois, P., and P. Psenak, "Loop avoidance using Segment | Francois, P., and P. Psenak, "Loop avoidance using Segment | |||
| Routing", Work in Progress, Internet-Draft, draft- | Routing", Work in Progress, Internet-Draft, draft- | |||
| bashandy-rtgwg-segment-routing-uloop-17, 29 June 2024, | bashandy-rtgwg-segment-routing-uloop-17, 29 June 2024, | |||
| <https://datatracker.ietf.org/doc/html/draft-bashandy- | <https://datatracker.ietf.org/doc/html/draft-bashandy- | |||
| rtgwg-segment-routing-uloop-17>. | rtgwg-segment-routing-uloop-17>. | |||
| [SR-P2MP-PING] | [SR-P2MP-PCEP] | |||
| Bidgoli, H., Voyer, D., Budhiraja, A., Parekh, R., and S. | Bidgoli, H., Voyer, D., Budhiraja, A., Parekh, R., and S. | |||
| Sivabalan, "PCEP extensions for SR P2MP Policy", Work in | Sivabalan, "PCEP extensions for SR P2MP Policy", Work in | |||
| Progress, Internet-Draft, draft-ietf-pce-sr-p2mp-policy- | Progress, Internet-Draft, draft-ietf-pce-sr-p2mp-policy- | |||
| 14, 23 February 2026, | 14, 23 February 2026, | |||
| <https://datatracker.ietf.org/doc/html/draft-ietf-pce-sr- | <https://datatracker.ietf.org/doc/html/draft-ietf-pce-sr- | |||
| p2mp-policy-14>. | p2mp-policy-14>. | |||
| [SR-P2MP-YANG] | [SR-P2MP-YANG] | |||
| Bidgoli, H., Voyer, D., Parekh, R., Saad, T., and T. | Bidgoli, H., Voyer, D., Parekh, R., Saad, T., and T. | |||
| Kundu, "YANG Data Model for p2mp sr policy", Work in | Kundu, "YANG Data Model for p2mp sr policy", Work in | |||
| skipping to change at line 844 ¶ | skipping to change at line 844 ¶ | |||
| Assume a controller is provisioned with the following SR P2MP Policy | Assume a controller is provisioned with the following SR P2MP Policy | |||
| at Root R1 with Tree-ID T-ID: | at Root R1 with Tree-ID T-ID: | |||
| SR P2MP Policy <R1,T-ID>: | SR P2MP Policy <R1,T-ID>: | |||
| Leaf nodes: {R2, R6, R7} | Leaf nodes: {R2, R6, R7} | |||
| candidate-path 1: | candidate-path 1: | |||
| Optimize: IGP metric | Optimize: IGP metric | |||
| Tree-SID: T-SID1 | Tree-SID: T-SID1 | |||
| The controller is responsible for computing a PTI of the candidate | The controller is responsible for computing a PTI of the CP. In this | |||
| path. In this example, we assume one active PTI with Instance-ID | example, we assume one active PTI with Instance-ID I-ID1. Assume the | |||
| I-ID1. Assume the controller instantiates PTIs by signaling | controller instantiates PTIs by signaling Replication segments, i.e., | |||
| Replication segments, i.e., the Replication-ID of these Replication | the Replication-ID of these Replication segments is <Root, Tree-ID, | |||
| segments is <Root, Tree-ID, Instance-ID>. All Replication segments | Instance-ID>. All Replication segments use the Tree-SID T-SID1 as | |||
| use the Tree-SID T-SID1 as the Replication-SID. For SRv6, assume the | the Replication-SID. For SRv6, assume the Replication-SID at node k, | |||
| Replication-SID at node k, bound to an End.Replicate function, is | bound to an End.Replicate function, is 2001:db8:cccc:k:fa::/128. | |||
| 2001:db8:cccc:k:fa::/128. | ||||
| A.1. P2MP Tree with Non-Adjacent Replication Segments | A.1. P2MP Tree with Non-Adjacent Replication Segments | |||
| Assume the controller computes a PTI with Root node R1, Intermediate | Assume the controller computes a PTI with Root node R1, Intermediate | |||
| and Leaf node R2, and Leaf nodes R6 and R7. The controller | and Leaf node R2, and Leaf nodes R6 and R7. The controller | |||
| instantiates the instance by stitching Replication segments at R1, | instantiates the instance by stitching Replication segments at R1, | |||
| R2, R6, and R7. The Replication segment at R1 replicates to R2. The | R2, R6, and R7. The Replication segment at R1 replicates to R2. The | |||
| Replication segment at R2 replicates to R6 and R7. Note that nodes | Replication segment at R2 replicates to R6 and R7. Note that nodes | |||
| R3, R4, and R5 do not have any Replication segment state for the | R3, R4, and R5 do not have any Replication segment state for the | |||
| tree. | tree. | |||
| skipping to change at line 907 ¶ | skipping to change at line 906 ¶ | |||
| Replication State: | Replication State: | |||
| R6: <Leaf> | R6: <Leaf> | |||
| Replication segment at R7: | Replication segment at R7: | |||
| Replication segment <R1,T-ID,I-ID1,R7>: | Replication segment <R1,T-ID,I-ID1,R7>: | |||
| Replication-SID: T-SID1 | Replication-SID: T-SID1 | |||
| Replication State: | Replication State: | |||
| R7: <Leaf> | R7: <Leaf> | |||
| When a packet is steered into the active instance candidate path 1 of | When a packet is steered into the active instance CP 1 of the SR P2MP | |||
| the SR P2MP Policy at R1: | Policy at R1: | |||
| * Since R1 is directly connected to R2, R1 performs the PUSH | * Since R1 is directly connected to R2, R1 performs the PUSH | |||
| operation with just the <T-SID1> label for the replicated copy and | operation with just the <T-SID1> label for the replicated copy and | |||
| sends it to R2 on interface L12. | sends it to R2 on interface L12. | |||
| * R2, as a Leaf, performs the NEXT operation, pops the T-SID1 label, | * R2, as a Leaf, performs the NEXT operation, pops the T-SID1 label, | |||
| and delivers the payload. For replication to R6, R2 performs a | and delivers the payload. For replication to R6, R2 performs a | |||
| PUSH operation of N-SID6 to send the <N-SID6,T-SID1> label stack | PUSH operation of N-SID6 to send the <N-SID6,T-SID1> label stack | |||
| to R3. R3 is the penultimate hop for N-SID6; it performs | to R3. R3 is the penultimate hop for N-SID6; it performs PHP, | |||
| penultimate hop popping, which corresponds to the NEXT operation, | which corresponds to the NEXT operation, and the packet is then | |||
| and the packet is then sent to R6 with <T-SID1> in the label | sent to R6 with <T-SID1> in the label stack. For replication to | |||
| stack. For replication to R7, R2 performs a PUSH operation of | R7, R2 performs a PUSH operation of N-SID7 to send the | |||
| N-SID7 to send the <N-SID7,T-SID1> label stack to R4, one of IGP | <N-SID7,T-SID1> label stack to R4, which is one of the IGP ECMP | |||
| ECMP nexthops towards R7. R4 is the penultimate hop for N-SID7; | next hops (R5 is other) towards R7. R4 is the penultimate hop for | |||
| it performs penultimate hop popping, which corresponds to the NEXT | N-SID7; it performs PHP, which corresponds to the NEXT operation, | |||
| operation, and the packet is then sent to R7 with <T-SID1> in the | and the packet is then sent to R7 with <T-SID1> in the label | |||
| label stack. | stack. | |||
| * R6, as a Leaf, performs the NEXT operation, pops the T-SID1 label, | * R6, as a Leaf, performs the NEXT operation, pops the T-SID1 label, | |||
| and delivers the payload. | and delivers the payload. | |||
| * R7, as a Leaf, performs the NEXT operation, pops the T-SID1 label, | * R7, as a Leaf, performs the NEXT operation, pops the T-SID1 label, | |||
| and delivers the payload. | and delivers the payload. | |||
| A.1.2. SRv6 | A.1.2. SRv6 | |||
| For SRv6, the replicated packet from R2 to R7 has to traverse R4 | For SRv6, the replicated packet from R2 to R7 has to traverse R4 | |||
| skipping to change at line 982 ¶ | skipping to change at line 981 ¶ | |||
| Replication State: | Replication State: | |||
| R6: <Leaf> | R6: <Leaf> | |||
| Replication segment at R7: | Replication segment at R7: | |||
| Replication segment <R1,T-ID,I-ID1,R7>: | Replication segment <R1,T-ID,I-ID1,R7>: | |||
| Replication-SID: 2001:db8:cccc:7:fa:: | Replication-SID: 2001:db8:cccc:7:fa:: | |||
| Replication State: | Replication State: | |||
| R7: <Leaf> | R7: <Leaf> | |||
| When a packet (A,B2) is steered into the active instance of candidate | When a packet (A,B2) is steered into the active instance of CP 1 of | |||
| path 1 of the SR P2MP Policy at R1 using H.Encaps.Replicate behavior: | the SR P2MP Policy at R1 using H.Encaps.Replicate behavior: | |||
| * Since R1 is directly connected to R2, R1 sends the replicated copy | * Since R1 is directly connected to R2, R1 sends the replicated copy | |||
| (2001:db8::1, 2001:db8:cccc:2:fa::) (A,B2) to R2 on interface L12. | (2001:db8::1, 2001:db8:cccc:2:fa::) (A,B2) to R2 on interface L12. | |||
| * R2, as a Leaf, removes the outer IPv6 header and delivers the | * R2, as a Leaf, removes the outer IPv6 header and delivers the | |||
| payload. R2, as a Bud node, also replicates the packet. | payload. R2, as a Bud node, also replicates the packet. | |||
| * - For replication to R6, R2 sends (2001:db8::1, | * - For replication to R6, R2 sends (2001:db8::1, | |||
| 2001:db8:cccc:6:fa::) (A,B2) to R3. R3 forwards the packet | 2001:db8:cccc:6:fa::) (A,B2) to R3. R3 forwards the packet | |||
| using the 2001:db8:cccc:6::/64 packet to R6. | using the 2001:db8:cccc:6::/64 packet to R6. | |||
| skipping to change at line 1167 ¶ | skipping to change at line 1166 ¶ | |||
| Replication State: | Replication State: | |||
| R6: <Leaf> | R6: <Leaf> | |||
| Replication segment at R7: | Replication segment at R7: | |||
| Replication segment <R1,T-ID,I-ID1,R7>: | Replication segment <R1,T-ID,I-ID1,R7>: | |||
| Replication-SID: 2001:db8:cccc:7:fa:: | Replication-SID: 2001:db8:cccc:7:fa:: | |||
| Replication State: | Replication State: | |||
| R7: <Leaf> | R7: <Leaf> | |||
| When a packet (A,B2) is steered into the active instance of candidate | When a packet (A,B2) is steered into the active instance of CP 1 of | |||
| path 1 of the SR P2MP Policy at R1 using the H.Encaps.Replicate | the SR P2MP Policy at R1 using the H.Encaps.Replicate behavior: | |||
| behavior: | ||||
| * Since R1 is directly connected to R2, R1 sends the replicated copy | * Since R1 is directly connected to R2, R1 sends the replicated copy | |||
| (2001:db8::1, 2001:db8:cccc:2:fa::) (A,B2) to R2 on interface L12. | (2001:db8::1, 2001:db8:cccc:2:fa::) (A,B2) to R2 on interface L12. | |||
| * R2, as a Leaf, removes the outer IPv6 header and delivers the | * R2, as a Leaf, removes the outer IPv6 header and delivers the | |||
| payload. R2, as a Bud node, also replicates the packet. For | payload. R2, as a Bud node, also replicates the packet. For | |||
| replication to R3, R2 sends (2001:db8::1, 2001:db8:cccc:3:fa::) | replication to R3, R2 sends (2001:db8::1, 2001:db8:cccc:3:fa::) | |||
| (A,B2) to R3 on interface L23. For replication to R5, R2 sends | (A,B2) to R3 on interface L23. For replication to R5, R2 sends | |||
| (2001:db8::1, 2001:db8:cccc:5:fa::) (A,B2) to R5 on interface L25. | (2001:db8::1, 2001:db8:cccc:5:fa::) (A,B2) to R5 on interface L25. | |||
| End of changes. 37 change blocks. | ||||
| 145 lines changed or deleted | 143 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||