idnits 2.17.1 draft-ietf-spring-sr-replication-segment-01.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** There are 2 instances of too long lines in the document, the longest one being 11 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (October 28, 2020) is 1274 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) -- Looks like a reference, but probably isn't: '0' on line 250 == Outdated reference: A later version (-22) exists of draft-ietf-spring-segment-routing-policy-08 == Outdated reference: A later version (-28) exists of draft-ietf-spring-srv6-network-programming-24 == Outdated reference: A later version (-04) exists of draft-filsfils-spring-srv6-net-pgm-illustration-03 == Outdated reference: A later version (-08) exists of draft-ietf-pim-sr-p2mp-policy-00 Summary: 1 error (**), 0 flaws (~~), 5 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group D. Voyer, Ed. 3 Internet-Draft Bell Canada 4 Intended status: Standards Track C. Filsfils 5 Expires: May 1, 2021 R. Parekh 6 Cisco Systems, Inc. 7 H. Bidgoli 8 Nokia 9 Z. Zhang 10 Juniper Networks 11 October 28, 2020 13 SR Replication Segment for Multi-point Service Delivery 14 draft-ietf-spring-sr-replication-segment-01 16 Abstract 18 This document describes the SR Replication segment for Multi-point 19 service delivery. A SR Replication segment allows a packet to be 20 replicated from a replication node to downstream nodes. 22 Requirements Language 24 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 25 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 26 document are to be interpreted as described in RFC 2119 [RFC2119]. 28 Status of This Memo 30 This Internet-Draft is submitted in full conformance with the 31 provisions of BCP 78 and BCP 79. 33 Internet-Drafts are working documents of the Internet Engineering 34 Task Force (IETF). Note that other groups may also distribute 35 working documents as Internet-Drafts. The list of current Internet- 36 Drafts is at https://datatracker.ietf.org/drafts/current/. 38 Internet-Drafts are draft documents valid for a maximum of six months 39 and may be updated, replaced, or obsoleted by other documents at any 40 time. It is inappropriate to use Internet-Drafts as reference 41 material or to cite them other than as "work in progress." 43 This Internet-Draft will expire on May 1, 2021. 45 Copyright Notice 47 Copyright (c) 2020 IETF Trust and the persons identified as the 48 document authors. All rights reserved. 50 This document is subject to BCP 78 and the IETF Trust's Legal 51 Provisions Relating to IETF Documents 52 (https://trustee.ietf.org/license-info) in effect on the date of 53 publication of this document. Please review these documents 54 carefully, as they describe your rights and restrictions with respect 55 to this document. Code Components extracted from this document must 56 include Simplified BSD License text as described in Section 4.e of 57 the Trust Legal Provisions and are provided without warranty as 58 described in the Simplified BSD License. 60 Table of Contents 62 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 63 2. Replication Segment . . . . . . . . . . . . . . . . . . . . . 3 64 2.1. SRv6 . . . . . . . . . . . . . . . . . . . . . . . . . . 4 65 2.1.1. End.Replicate: Replicate and/or Decapsulate . . . . . 6 66 2.1.2. H.Encaps.Replicate: SR Headend encapsulation in 67 Replication Segment . . . . . . . . . . . . . . . . . 7 68 3. Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . 7 69 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 70 5. Security Considerations . . . . . . . . . . . . . . . . . . . 8 71 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 8 72 7. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 8 73 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 74 8.1. Normative References . . . . . . . . . . . . . . . . . . 10 75 8.2. Informative References . . . . . . . . . . . . . . . . . 10 76 Appendix A. Illustration of a Replication Segment . . . . . . . 11 77 A.1. SR-MPLS . . . . . . . . . . . . . . . . . . . . . . . . . 11 78 A.2. SRv6 . . . . . . . . . . . . . . . . . . . . . . . . . . 13 79 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 81 1. Introduction 83 We define a new type of segment for Segment Routing [RFC8402], called 84 Replication segment, which allows a node (henceforth called as 85 Replication Node) to replicate packets to a set of other nodes 86 (called Downstream Nodes) in a Segment Routing Domain. Replication 87 segments provide building blocks for Point-to-Multipoint Service 88 delivery via SR Point-to-Multipoint (SR P2MP) policy. A Replication 89 segment can replicate packet to directly connected nodes or to 90 downstream nodes (without need for state on the transit routers). 91 Replication segments apply equally to both SR-MPLS and SRv6 92 instantiations of Segment Routing. This document focuses on the 93 Replication Segment building block. The use of one or more stitched 94 Replication Segments constructed for SR P2MP Policy tree is specified 95 in [I-D.ietf-pim-sr-p2mp-policy]. 97 2. Replication Segment 99 In a Segment Routing Domain, a Replication segment is a logical 100 construct which connects a Replication Node to a set of Downstream 101 Nodes. A Replication segment is a local segment instantiated at a 102 Replication node. It can be either provisioned locally on a node or 103 programmed by a PCE. 105 A Replication segment is identified by the tuple , where: 108 o Replication-ID: An identifier for a Replication segment that is 109 unique in context of the Replication Node. 111 o Node-ID: The address of the Replication Node that the Replication 112 segment is for. Note that the root of a multi-point service is 113 also a replication node. 115 In simplest case, Replication-ID can be a 32-bit number, but it can 116 be extended or modified as required based on specific use of a 117 Replication segment. When the PCE signals a Replication segment to 118 its node, the tuple identifies the segment. 119 Examples of such signaling and extension are described in 120 [I-D.ietf-pim-sr-p2mp-policy]. 122 A Replication segment includes the following elements: 124 o Replication SID: The Segment Identifier of a Replication segment. 125 This is a SR-MPLS label or a SRv6 SID [RFC8402]. 127 o Downstream Nodes: Set of nodes in Segment Routing domain to which 128 a packet is replicated by the Replication segment. 130 o Replication State: See below. 132 The Downstream Nodes and Replication State of a Replication segment 133 can change over time, depending on the network state and leaf nodes 134 of a multi-point service that the segment is part of. 136 Replication State is a list of replication branches to the Downstream 137 Nodes. In this document, each branch is abstracted to a tuple. A Downstream Node is 139 represented by a SID-list or a Segment Routing Policy 140 [I-D.ietf-spring-segment-routing-policy] that specifies the explicit 141 path from the Replication Node to the Downstream Node, or even 142 represented by another Replication segment. The SID-list MAY just 143 have one SID. If a downstream node is adjacent to a Replication 144 node, it MAY also be represented by an interface. 146 Replication SID identifies the Replication segment in the forwarding 147 plane. At a Replication node, the Replication SID is the equivalent 148 of Binding SID [I-D.ietf-spring-segment-routing-policy] of a Segment 149 Routing Policy. 151 A packet steered into a Replication segment at a Replication node is 152 replicated to each Downstream Node with the Downstream Replication 153 SID that is relevant at that node. A packet is steered into a 154 Replication Segment in two ways: 156 o When the Active Segment [RFC8402] is the Replication SID. In this 157 case, the operation is NEXT followed by a PUSH for a replicated 158 copy. 160 o On the root of a multi-point service, based on local policy-based 161 routing. In this case, the operation for a replicated copy is 162 PUSH. 164 If a Downstream Node is an egress (aka leaf) of the multi-point 165 service, i.e. no further replication is needed, then that leaf node's 166 Replication segment will not have any Replication State and the 167 operation is NEXT. At an egress node, the Replication SID MAY be 168 used to identify that portion of the multi-point service. Notice 169 that the segment on the leaf node is still referred to as a 170 Replication segment for the purpose of generalization. 172 A node can be a bud node, i.e. it is a replication node and a leaf 173 node of a multi-point service at the same time 174 [I-D.ietf-pim-sr-p2mp-policy]. In this case, the Replication 175 segment's Replication State includes a branch with the Downstream 176 Node being itself and the operation for the replicated copy is NEXT. 178 The Replication SID MUST be the last SID (at the bottom of stack for 179 SR-MPLS) in a packet that is steered out from a Replication node of a 180 Replication Segment. The behavior at Downstream nodes of a 181 Replication Segment is undefined If there are any SIDs after the 182 Replication SID and is outside the scope of this document. 184 2.1. SRv6 186 SRv6 network programming [I-D.ietf-spring-srv6-network-programming] 187 introduces concept of functions. A function defines local behavior 188 on a node and is identified by opaque function part of a SRv6 SID. 189 Familiarity with SRv6 Network Programming is expected. 191 In SRv6, a Replication Segment can be realized by defining a SRv6 192 Segment Endpoint behavior for replication. End.Replicate is an 193 Endpoint function for replicating packets and, if required, 194 decapsulation and processing of next header. This function is bound 195 to a local SRv6 Replication SID at the Replication Node and 196 Downstream Nodes of a Replication segment. FUNCT part of a 197 Replication SID can represent both replication function as well the 198 Replication State of a specific Replication Segment, or the 199 Replication state MAY be represented by ARG part of Replication SID. 200 For example, assuming two Replication Segments, RS1 and RS2 at a 201 node, the node can bind two functions 0x00F1 and 0x00F2 (F=16, A=0) 202 to End.Replicate function on Replication Segments RS1 and RS2 203 respectively. The node can also choose to bind one function 0x00FA 204 with End.Replicate and ARGs 0x0001 and 0x0002 (F=16, A=16) to RS1 and 205 RS2 respectively. 207 A Replication Node will replicate packet matching local SRv6 208 Replication SID to all Downstream Nodes. Each replication is 209 equivalent to pushing segment list of an SRv6 policy to a Downstream 210 Node, If there is only one SID, the Downstream Replication SID and 211 there is no need to use any Flag, Tag or TLV, the SRH MAY be omitted 212 and the Downstream Replication SID is set as IPv6 DA in replicated 213 copy of packet. In this case, the LOC part of routed Downstream 214 Replication SID takes packet from Replication Node to the Downstream 215 Node. If an SRH is inserted in a replicated copy of packet, the 216 Downstream Replication SID MUST be the last Segment in SRH i.e at 217 Segment List index 0. 219 If a Downstream Node is an egress (aka leaf) of the multi-point 220 service, i.e. no further replication is needed, then that leaf node's 221 Replication segment will not have any Replication State and the 222 operation on packet wtih local Replication SID is decapsulation with 223 processing of next header equivalent to End.DT46. 225 A bud node performs both the replication and decapsulation part of 226 End.Replicate function on a packet with local Replication SID. 228 H.Encaps.Replicate is behavior on the root of a multipoint service to 229 steer a packet into a SRv6 Replication Segment. 231 Considerations of SRv6 Small SID/Compresion SID for SRv6 Replication 232 SID will be addressed in future revision of this document. 234 2.1.1. End.Replicate: Replicate and/or Decapsulate 236 The "Endpoint with replication and/or decapsulate behavior 237 (End.Replicate for short) is variant of End behavior. 239 We define a generic Replicate function on a packet for Replication 240 State (RS). 242 S01. Replicate(RS, packet) 243 S02. { 244 S03. For each Replication R with Downstream Replication SID, R-SID { 245 S04. Make copy of packet 246 S05. If (NumSID(R)== 1) { 247 S06. Set IPv6 DA = R-SID 248 S07. Set NH-Header in copy to Next-Header value of packet 249 S08. } Else { 250 S09. Insert SRH with R-SID at SID List[0] followed by other SIDS 251 S10. Set NH-Header of SRH to Next-Header value of packet 252 S10. Set IPv6 DA = First SID of R 253 S11. Set NH-Header in copy to SRH 254 S12. } 255 S13. Submit the packet to the egress IPv6 FIB lookup and 256 transmission to the new destination 257 S14. } 259 When N receives a packet whose IPv6 DA is S and S is a local 260 End.Replicate SID, N does: 262 S01. Lookup FUNCT OR (FUNCT,ARG) portion of S to get Replication State RS 263 S02. Call Replicate(RS, packet) 264 S03. If NH==SRH and SL != 0 { 265 S04. Send an ICMP Parameter Problem to the Source Address, 266 Code 0 (Erroneous header field encountered), 267 Pointer set to the Segments Left field, 268 interrupt packet processing and discard the packet. 269 S05. } Else If "decap check" success: { 270 S06. Process packet according to End.DT46 behavior in SRv6 Network Programming 271 S07. } Else { 272 S08. Drop packet 273 S09. } 275 Notes: 276 The "decap check" would succeed on egress or bud node. The SRv6 277 Replication SID is bound to a specific tenant table at these nodes. 279 2.1.2. H.Encaps.Replicate: SR Headend encapsulation in Replication 280 Segment 282 Node N receives two packets P1=(A, B2) and P2=(A,B2)(B3, B2, B1; 283 SL=1). B2 is neither a local address nor SID of N. 285 Node N is configured with an IPv6 Address T (e.g. assigned to its 286 loopback). 288 N steers the transit packets P1 and P2 into an SRv6 Replication 289 Segment, R, with a Source Address T and Replication State RS.. 291 The H.Encaps.Replicate encapsulation behavior is defined as follows: 293 S01. Push an IPv6 header 294 S02. Set outer IPv6 SA = T 295 S03. Set outer Payload Length, Traffic Class, Hop Limit and 296 Flow Label fields 297 S04. Set the outer Next-Header value 298 S05. Decrement inner IPv6 Hop Limit or IPv4 TTL 299 S06. Call Replicate(RS, Outer packet) 301 After the H.Encaps behavior, assuming a directly adjacent Downstream 302 Node with Downstream Replication SID, D-RSID, P1' and P2' 303 respectively look like: 305 - (T, D-RSID) (A, B2) 307 - (T, D-RSID) (A, B2) (B3, B2, B1; SL=1) 309 After the H.Encaps behavior, assuming a non-adjacent Downstream Node 310 with Downstream Replication SID, D-RSID and a Segment list 311 to reach Downstream Node, P1' and P2' respectively look like: 313 - (T, S1) (D-RSID, S2, S1; SL=2) (A, B2) 315 - (T, S1) (D-RSID, S2, S1; SL=2) (A, B2) (B3, B2, B1; SL=1) 317 3. Use Cases 319 In the simplest use case, a single Replication segment includes the 320 root node of a multi-point service and the egress/leaf nodes of the 321 the service as all the Downstream Nodes. This achieves Ingress 322 Replication [RFC7988] that has been widely used for MVPN [RFC6513] 323 and EVPN [RFC7432] BUM (Broadcast, Unknown and Multicast) traffic. 325 Replication segments can also be used as building blocks for 326 replication trees when Replication segments on the root, intermediate 327 replication nodes and leaf nodes are stitched together to achieve 328 efficient replication. That is specified in 329 [I-D.ietf-pim-sr-p2mp-policy]. 331 4. IANA Considerations 333 This document requires registration of End.Replicate behavior in 334 "SRv6 Endpoint Behaviors" sub-registry of "Segment Routing 335 Parameters" top-level registry. 337 +-------+-----+------------------------+-----------+ 338 | Value | Hex | Endpoint behavior | Reference | 339 +-------+-----+------------------------+-----------+ 340 | TBD | TBD | End.Replicate | [This.ID] | 341 | TBD | TBD | End.Replicate with ARG | [This.ID] | 342 +-------+-----+------------------------+-----------+ 344 Table 1: IETF - SRv6 Endpoint Behaviors 346 5. Security Considerations 348 There are no additional security risks introduced by this design. 350 6. Acknowledgements 352 The authors would like to acknowledge Siva Sivabalan, Mike Koldychev, 353 Vishnu Pavan Beeram, Alexander Vainshtein, Bruno Decraene and Joel 354 Halpern for their valuable inputs. 356 7. Contributors 358 Clayton Hassen 359 Bell Canada 360 Vancouver 361 Canada 363 Email: clayton.hassen@bell.ca 365 Kurtis Gillis 366 Bell Canada 367 Halifax 368 Canada 370 Email: kurtis.gillis@bell.ca 372 Arvind Venkateswaran 373 Cisco Systems, Inc. 374 San Jose 375 US 377 Email: arvvenka@cisco.com 379 Zafar Ali 380 Cisco Systems, Inc. 381 US 383 Email: zali@cisco.com 385 Swadesh Agrawal 386 Cisco Systems, Inc. 387 San Jose 388 US 390 Email: swaagraw@cisco.com 392 Jayant Kotalwar 393 Nokia 394 Mountain View 395 US 397 Email: jayant.kotalwar@nokia.com 399 Tanmoy Kundu 400 Nokia 401 Mountain View 402 US 404 Email: tanmoy.kundu@nokia.com 406 Andrew Stone 407 Nokia 408 Ottawa 409 Canada 411 Email: andrew.stone@nokia.com 413 Tarek Saad 414 Juniper Networks 415 Canada 417 Email:tsaad@juniper.net 419 8. References 421 8.1. Normative References 423 [I-D.ietf-spring-segment-routing-policy] 424 Filsfils, C., Talaulikar, K., Voyer, D., Bogdanov, A., and 425 P. Mattes, "Segment Routing Policy Architecture", draft- 426 ietf-spring-segment-routing-policy-08 (work in progress), 427 July 2020. 429 [I-D.ietf-spring-srv6-network-programming] 430 Filsfils, C., Camarillo, P., Leddy, J., Voyer, D., 431 Matsushima, S., and Z. Li, "SRv6 Network Programming", 432 draft-ietf-spring-srv6-network-programming-24 (work in 433 progress), October 2020. 435 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 436 Requirement Levels", BCP 14, RFC 2119, 437 DOI 10.17487/RFC2119, March 1997, 438 . 440 [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., 441 Decraene, B., Litkowski, S., and R. Shakir, "Segment 442 Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, 443 July 2018, . 445 8.2. Informative References 447 [I-D.filsfils-spring-srv6-net-pgm-illustration] 448 Filsfils, C., Camarillo, P., Li, Z., Matsushima, S., 449 Decraene, B., Steinberg, D., Lebrun, D., Raszuk, R., and 450 J. Leddy, "Illustrations for SRv6 Network Programming", 451 draft-filsfils-spring-srv6-net-pgm-illustration-03 (work 452 in progress), September 2020. 454 [I-D.ietf-pim-sr-p2mp-policy] 455 Voyer, D., Filsfils, C., Parekh, R., Bidgoli, H., and Z. 456 Zhang, "Segment Routing Point-to-Multipoint Policy", 457 draft-ietf-pim-sr-p2mp-policy-00 (work in progress), July 458 2020. 460 [RFC6513] Rosen, E., Ed. and R. Aggarwal, Ed., "Multicast in MPLS/ 461 BGP IP VPNs", RFC 6513, DOI 10.17487/RFC6513, February 462 2012, . 464 [RFC7432] Sajassi, A., Ed., Aggarwal, R., Bitar, N., Isaac, A., 465 Uttaro, J., Drake, J., and W. Henderickx, "BGP MPLS-Based 466 Ethernet VPN", RFC 7432, DOI 10.17487/RFC7432, February 467 2015, . 469 [RFC7988] Rosen, E., Ed., Subramanian, K., and Z. Zhang, "Ingress 470 Replication Tunnels in Multicast VPN", RFC 7988, 471 DOI 10.17487/RFC7988, October 2016, 472 . 474 Appendix A. Illustration of a Replication Segment 476 This section illustrates an example of a single Replication Segment. 477 Examples showing Replication Segment stitched together to form P2MP 478 tree (based on SR P2MP policy) are in [I-D.ietf-pim-sr-p2mp-policy]. 480 Consider the following topology: 482 R3------R6 483 / \ 484 R1----R2----R5-----R7 485 \ / 486 +--R4---+ 488 Figure 1 490 A.1. SR-MPLS 492 In this example, the Node-SID of a node Rn is N-SIDn and Adjacency- 493 SID from node Rm to node Rn is A-SIDmn. Interface between Rm and Rn 494 is Lmn. 496 Assume a Replication Segment identified with R-ID at replication node 497 R1 and downstream Nodes R2, R6 and R7. The Replication SID at node n 498 is R-SIDn. A packet replicated from R1 to R7 has to traverse R4. 500 The Replication Segment state at nodes R1, R2, R6 and R7 is shown 501 below. Note nodes R3, R4 and R5 do not have state for the 502 Replication Segment. 504 Replication Segment at R1: 506 Replication Segment : 507 Replication SID: R-SID1 508 Replication State: 509 R2: L12> 510 R6: 511 R7: 513 Replication to R2 steers packet directly to R2 on interface L12. 514 Replication to R6, using N-SID6, steers packet via IGP shortest path 515 to that node. Replication to R7 is steered via R4, using N-SID4 and 516 then adjacency SID A-SID47 to R7. 518 Replication Segment at R2: 520 Replication Segment : 521 Replication SID: R-SID2 522 Replication State: 523 R2: 525 Replication Segment at R6: 527 Replication Segment : 528 Replication SID: R-SID6 529 Replication State: 530 R6: 532 Replication Segment at R7: 534 Replication Segment : 535 Replication SID: R-SID7 536 Replication State: 537 R7: 539 When a packet is steered into the replication segment at R1: 541 o Since R1 is directly connected to R2, R1 performs PUSH operation 542 with just label for the replicated copy and sends it to 543 R2 on interface L12. R2, as Leaf, performs NEXT operation, pops 544 R-SID2 label and delivers the payload. 546 o R1 performs PUSH operation with label stack for 547 the replicated copy to R6 and sends it to R2, the nexthop on IGP 548 shortest path to R6. R2 performs CONTINUE operation on N-SID6 and 549 forwards it to R3. R3 is the penultimate hop for N-SID6; it 550 performs penultimate hop popping, which corresponds to the NEXT 551 operation and the packet is then sent to R6 with in the 552 label stack. R6, as Leaf, performs NEXT operation, pops R-SID6 553 label and delivers the payload. 555 o R1 performs PUSH operation with label 556 stack for the replicated copy to R7 and sends it to R2, the 557 nexthop on IGP shortest path to R4. R2 is the penultimate hop for 558 N-SID4; it performs penultimate hop popping, which corresponds to 559 the NEXT operation and the packet is then sent to R4 with 560 in the label stack. R4 performs NEXT operation, 561 pops A-SID47, and delivers packet to R7 with in the label 562 stack. R7, as Leaf, performs NEXT operation, pops R-SID7 label 563 and delivers the payload. 565 A.2. SRv6 567 For SRv6 , we use SID allocation scheme, reproduced below, from 568 Illustrations for SRv6 Network Programming 569 [I-D.filsfils-spring-srv6-net-pgm-illustration] 571 2001:db8::/32 is an IPv6 block allocated by a RIR to the operator 573 2001:db8:0::/48 is dedicated to the internal address space 575 2001:db8:cccc::/48 is dedicated to the internal SRv6 SID space 577 We assume a location expressed in 64 bits and a function expressed 578 in 16 bits 580 Node k has a classic IPv6 loopback address 2001:db8::k/128 which 581 is advertised in the IGP 583 Node k has 2001:db8:cccc:k::/64 for its local SID space. Its SIDs 584 will be explicitly assigned from that block 586 Node k advertises 2001:db8:cccc:k::/64 in its IGP 588 Function :1:: (function 1, for short) represents the End function 589 with PSP support 591 Function :Cn:: (function Cn, for short) represents the End.X 592 function from to Node n 594 Each node k has: 596 An explicit SID instantiation 2001:db8:cccc:k:1::/128 bound to an 597 End function with additional support for PSP 599 An explicit SID instantiation 2001:db8:cccc:k:Cj::/128 bound to an 600 End.X function to neighbor J with additional support for PSP 602 An explicit SID instantiation 2001:db8:cccc:k:Fk::/128 bound to an 603 End.Replcate function 605 Assume a Replication Segment identified with R-ID at replication node 606 R1 and downstream Nodes R2, R6 and R7. The Replication SID at node 607 k, bound to an End.Replcate function, is 2001:db8:cccc:k:Fk::/128 608 with ARG value 0. A packet replicated from R1 to R7 has to traverse 609 R4. 611 The Replication Segment state at nodes R1, R2, R6 and R7 is shown 612 below. Note nodes R3, R4 and R5 do not have state for the 613 Replication Segment. 615 Replication Segment at R1: 617 Replication Segment : 618 Replication SID: 2001:db8:cccc:1:F1::0 619 Replication State: 620 R2: <2001:db8:cccc:2:F2::0->L12> 621 R6: <2001:db8:cccc:6:F6::0> 622 R7: <2001:db8:cccc:4:C7::0, 2001:db8:cccc:7:F7::0> 624 Replication to R2 steers packet directly to R2 on interface L12. 625 Replication to R6, using 2001:db8:cccc:6:F6::0, steers packet via IGP 626 shortest path to that node. Replication to R7 is steered via R4, 627 using End.X SID 2001:db8:cccc:4:C7::0 at R4 to R7. 629 Replication Segment at R2: 631 Replication Segment : 632 Replication SID: 2001:db8:cccc:2:F2::0 633 Replication State: 634 R2: 636 Replication Segment at R6: 638 Replication Segment : 639 Replication SID: 2001:db8:cccc:6:F6::0 640 Replication State: 641 R6: 643 Replication Segment at R7: 645 Replication Segment : 646 Replication SID: 2001:db8:cccc:7:F7::0 647 Replication State: 648 R7: 650 At R1, a H.Encaps.Replicate behavior is associated with the 651 replication segment. When a packet, (A,B2), is steered into the 652 replication segment at R1: 654 o Since R1 is directly connected to R2, R1 creates encapsulated 655 replicated copy (2001:db8::1, 2001:db8:cccc:2:F2::0) (A, B2), and 656 sends it to R2 on interface L12. R2, as Leaf, executes 657 decapsulation operation of End.Replicate, removes outer IPv6 658 header and delivers the payload. 660 o R1 creates encapsulated replicated copy (2001:db8::1, 661 2001:db8:cccc:6:F6::0) (A, B2) then forwards the resulting packet 662 on the shortest path to 2001:db8:cccc:6::/64. R2 and R3 forward 663 the packet using 2001:db8:cccc:6::/64. R6, as Leaf, executes 664 decapsulation operation of End.Replicate, removes outer IPv6 665 header and delivers the payload. 667 o R1 created encapsulated replicated copy (2001:db8::1, 668 2001:db8:cccc:4:C7::0) (2001:db8:cccc:7:F7::0; SL=1) (A, B2) and 669 sends it to R2, the nexthop on IGP shortest path to 670 2001:db8:cccc:4::/64. R2 forwards packet to R4 using 671 2001:db8:cccc:4::/64. R4 executes End.X function on 672 2001:db8:cccc:4:C7::0, performs PSP action, removes SRH and sends 673 resulting packet (2001:db8::1, 2001:db8:cccc:7:F7::0) (A, B2) to 674 R4. R7, as Leaf, executes decapsulation operation of 675 End.Replicate, removes outer IPv6 header and delivers the payload. 677 Authors' Addresses 679 Daniel Voyer (editor) 680 Bell Canada 681 Montreal 682 CA 684 Email: daniel.voyer@bell.ca 686 Clarence Filsfils 687 Cisco Systems, Inc. 688 Brussels 689 BE 691 Email: cfilsfil@cisco.com 693 Rishabh Parekh 694 Cisco Systems, Inc. 695 San Jose 696 US 698 Email: riparekh@cisco.com 699 Hooman Bidgoli 700 Nokia 701 Ottawa 702 CA 704 Email: hooman.bidgoli@nokia.com 706 Zhaohui Zhang 707 Juniper Networks 709 Email: zzhang@juniper.net