idnits 2.17.00 (12 Aug 2021) /tmp/idnits25604/draft-xl-msr6-source-segment-00.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 6 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 doesn't use any RFC 2119 keywords, yet has text resembling RFC 2119 boilerplate text. -- The document date (25 October 2021) is 201 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) == Unused Reference: 'RFC4443' is defined on line 298, but no explicit reference was found in the text == Unused Reference: 'RFC6514' is defined on line 308, but no explicit reference was found in the text == Unused Reference: 'RFC6515' is defined on line 313, but no explicit reference was found in the text == Unused Reference: 'RFC6625' is defined on line 318, but no explicit reference was found in the text == Unused Reference: 'RFC7716' is defined on line 323, but no explicit reference was found in the text == Unused Reference: 'RFC8556' is defined on line 334, but no explicit reference was found in the text == Unused Reference: 'RFC8754' is defined on line 339, but no explicit reference was found in the text == Unused Reference: 'I-D.cheng-spring-ipv6-msr-design-consideration' is defined on line 352, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-6man-spring-srv6-oam' is defined on line 360, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-bess-srv6-services' is defined on line 377, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-rtgwg-dst-src-routing' is defined on line 385, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-spring-sr-replication-segment' is defined on line 392, but no explicit reference was found in the text == Unused Reference: 'I-D.raszuk-teas-ip-te-np' is defined on line 400, but no explicit reference was found in the text == Unused Reference: 'I-D.xie-bier-ipv6-encapsulation' is defined on line 407, but no explicit reference was found in the text == Unused Reference: 'I-D.xie-bier-ipv6-mvpn' is defined on line 416, but no explicit reference was found in the text == Unused Reference: 'RFC8174' is defined on line 429, but no explicit reference was found in the text == Outdated reference: A later version (-01) exists of draft-cheng-spring-ipv6-msr-design-consideration-00 == Outdated reference: A later version (-13) exists of draft-ietf-6man-spring-srv6-oam-11 == Outdated reference: A later version (-15) exists of draft-ietf-bess-srv6-services-07 == Outdated reference: A later version (-07) exists of draft-ietf-spring-sr-replication-segment-05 Summary: 1 error (**), 0 flaws (~~), 22 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group J. Xie 3 Internet-Draft X. Geng 4 Intended status: Standards Track Huawei Technologies 5 Expires: 28 April 2022 Y. Liu 6 China Mobile 7 25 October 2021 9 Source Segment for Multicast Source Routing over IPv6 10 draft-xl-msr6-source-segment-00 12 Abstract 14 This document defines the general concept of source segment which is 15 used as the IPv6 source address in an IPv6 packet. Source segment 16 for multicast service is introduced in this document. 18 Requirements Language 20 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 21 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 22 document are to be interpreted as described in RFC 2119 [RFC2119] 24 Status of This Memo 26 This Internet-Draft is submitted in full conformance with the 27 provisions of BCP 78 and BCP 79. 29 Internet-Drafts are working documents of the Internet Engineering 30 Task Force (IETF). Note that other groups may also distribute 31 working documents as Internet-Drafts. The list of current Internet- 32 Drafts is at https://datatracker.ietf.org/drafts/current/. 34 Internet-Drafts are draft documents valid for a maximum of six months 35 and may be updated, replaced, or obsoleted by other documents at any 36 time. It is inappropriate to use Internet-Drafts as reference 37 material or to cite them other than as "work in progress." 39 This Internet-Draft will expire on 28 April 2022. 41 Copyright Notice 43 Copyright (c) 2021 IETF Trust and the persons identified as the 44 document authors. All rights reserved. 46 This document is subject to BCP 78 and the IETF Trust's Legal 47 Provisions Relating to IETF Documents (https://trustee.ietf.org/ 48 license-info) in effect on the date of publication of this document. 49 Please review these documents carefully, as they describe your rights 50 and restrictions with respect to this document. Code Components 51 extracted from this document must include Simplified BSD License text 52 as described in Section 4.e of the Trust Legal Provisions and are 53 provided without warranty as described in the Simplified BSD License. 55 Table of Contents 57 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 58 2. Terminologies . . . . . . . . . . . . . . . . . . . . . . . . 3 59 3. Source Segment Definition . . . . . . . . . . . . . . . . . . 3 60 4. SID Format . . . . . . . . . . . . . . . . . . . . . . . . . 4 61 5. Source Segment for MVPN . . . . . . . . . . . . . . . . . . . 4 62 5.1. Behaviors . . . . . . . . . . . . . . . . . . . . . . . . 4 63 5.2. SRC.DT4 . . . . . . . . . . . . . . . . . . . . . . . . . 5 64 5.3. SRC.DT6 . . . . . . . . . . . . . . . . . . . . . . . . . 5 65 5.4. SRC.DT46 . . . . . . . . . . . . . . . . . . . . . . . . 5 66 5.5. Src.DT2 . . . . . . . . . . . . . . . . . . . . . . . . . 6 67 6. Use Case . . . . . . . . . . . . . . . . . . . . . . . . . . 6 68 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 69 8. Security Considerations . . . . . . . . . . . . . . . . . . . 7 70 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 7 71 9.1. Normative References . . . . . . . . . . . . . . . . . . 7 72 9.2. Informative References . . . . . . . . . . . . . . . . . 8 73 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 75 1. Introduction 77 Segment Routing ([RFC8402]) leverages the mechanism of source 78 routing. An ingress node steers a packet through an ordered list of 79 instructions, called "segments". Each one of these instructions 80 represents a function to be implemented at a specific location in the 81 network. A function is locally defined on the node where it is 82 executed. Network Programming combines Segment Routing functions to 83 achieve a networking objective that goes beyond mere packet routing. 84 [RFC8986] defines the SRv6 Network Programming concept and specifies 85 the main Segment Routing behaviors and network programming functions. 87 Previous segments defined in SRv6 can be used as the destination 88 address of an IPv6 packet. This document introduces the new 89 segments, source segments, which can be used as the IPv6 source 90 address of an IPv6 packet. This document defines the general concept 91 of source segment and the source segment used for multicast service. 92 Protocol extensions on the control plane are not in the scope of this 93 document. 95 This document defines the general concept of source segment and the 96 source segment used for multicast service. Protocol extensions on 97 the control plane are not in the scope of this document. 99 2. Terminologies 101 The following new terms are used throughout this document: 103 MSR6: Multicast Source Routing over IPv6; 105 MSR6 Domain: a set of nodes participating in the multicast source 106 routing; 108 3. Source Segment Definition 110 Source segment is different from the existing SID defined in RFC8402 111 from the following aspects: 113 * Source segment is unchanged along the SRv6 path 115 * Source segment is distributed by the ingress node but indicates 116 functions in other nodes along the path, e.g., egress node. 117 Forwarding table should be maintained in the nodes where the 118 instruction takes place. 120 * When the source segment is encapsulated in an SRv6 packet, it is 121 activated by other instructions in the data plane because source 122 address is not parsed in existing forwarding process of a unicast 123 packet 125 Using source segment for SRv6 Network Programming have several 126 benefits including: 128 * Enhance network programming capability for more SRv6 functions and 129 extend the programming space in IPv6 header; 131 * Provide sematic for source address with similar IPv6 address 132 allocation and management method as SRv6; 134 * Facilitates security management inside the limited domain; 136 Source segment should be avoided to process hop by hop. Per-hop 137 process of source segment which will degrade forwarding performance 138 and bring compatibility issues. 140 4. SID Format 142 Source segment leverages the format of SID defined in SRv6 network 143 programming. 145 Source segment consists of LOC:FUNCT:ARG, where a locator (LOC) is 146 encoded in the L most significant bits of the SID, followed by F bits 147 of function (FUNCT) and A bits of arguments (ARG). 149 A locator may be represented as B:N where B is the SRv6 SID block 150 (IPv6 prefix allocated for SRv6 SIDs by the operator) and N is the 151 identifier of the ingress node . 153 The FUNCT is an opaque identification of the behavior bound to the 154 SID. The behavior could be executed in other nodes except ingress 155 node. 157 The behavior indicated by FUNCT may require additional information 158 for its processing. This information may be encoded in the ARG bits 159 of the SID. 161 5. Source Segment for MVPN 163 In the multicast service, packet is replicated along the tree towards 164 a set of leaf nodes. MVPN routing and the corresponding information 165 could be encapsulated in the source segment carried in the IPv6 166 source address. Source Segment for MVPN is distributed by the 167 multicast source node and the function is executed by the multicast 168 leaf nodes.As described in section 3, Source Segment for MVPN is not 169 changed when the packet is replicated and forwarded along the P2MP 170 path. 172 This section defines the source segment for MVPN. 174 5.1. Behaviors 176 The following is a set of behaviors that can be associated with a 177 source segment for MVPN. 179 +------------+------------------------------------------------------+ 180 | Src.DT4 |Source address for decapsulation and IPv4 table lookup| 181 |------------|------------------------------------------------------+ 182 | Src.DT6 |Source address for decapsulation and IPv6 table lookup| 183 |------------|------------------------------------------------------+ 184 | Src.DT46 |Source address for decapsulation and IP table lookup | 185 |------------|------------------------------------------------------+ 186 | Src.DT2 |Source address for decapsulation and L2 table lookup | 187 |------------|------------------------------------------------------+ 189 5.2. SRC.DT4 191 The "Source address for decapsulation and IPv4 table lookup" behavior 192 ("Src.DT4" for short) is used in MVPNv4 use case where an MFIB lookup 193 in a specific VRF table T at the egress node is required. The 194 Src.DT4 SID is an SID associated with an IPv4 MFIB table T on the 195 egress PE, either through a control-plane message advertised by the 196 ingress PE, or through a local configuration on the egress PE. When 197 an IPv6 encapsulated packet with IPv6 source address being S is 198 received on an egress PE, and S is associated with an Src.DT4 SID on 199 the egress PE, the egress PE does the following behavior: 201 S01. If (Upper-Layer header type == 4(IPv4) ) { 202 S02. Remove the outer IPv6 header with all its extension headers 203 S03. Set the packet's associated MFIB table to T 204 S04. Submit the packet to the egress IPv4 MFIB lookup for 205 transmission to the new multicast downstreams 206 S05. } Else { 207 S06. Drop the packet; 208 S07. } 210 5.3. SRC.DT6 212 SRC.DT6 behavior could be used in MVPNv6 use case where a MFIB lookup 213 in a specific VRF table at the egress node is required. 215 S01. If (Upper-Layer header type == 41(IPv6) ) { 216 S02. Remove the outer IPv6 header with all its extension headers 217 S03. Set the packet's associated IPv6 MFIB table to T 218 S04. Submit the packet to the egress IPv6 MFIB lookup for 219 transmission to the new multicast downstreams 220 S05. } Else { 221 S06. Drop the packet; 222 S07. } 224 5.4. SRC.DT46 226 SRC.DT46 behavior could be used in MVPN use case where a MFIB lookup 227 in a specific VRF table at the egress node is required. 229 S01. If (Upper-Layer header type == 4(IPv4) ) { 230 S02. Remove the outer IPv6 header with all its extension headers 231 S03. Set the packet's associated MFIB table to T 232 S04. Submit the packet to the egress IPv4 MFIB lookup for 233 transmission to the new destination 234 S05. } Else if (Upper-Layer header type == 41(IPv6) ) { 235 S06. Remove the outer IPv6 header with all its extension headers 236 S07. Set the packet's associated MFIB table to T 237 S08. Submit the packet to the egress IPv6 MFIB lookup for 238 transmission to the new destination 239 S09. } Else { 240 S10. Drop the packet; 241 S11. } 243 5.5. Src.DT2 245 SRC.DT2 behavior could be used in MVPN use case where a L2 table 246 lookup in a specific Layer-2 Multicast forwarding table at the egress 247 node is required. 249 S01. If (Upper-Layer header type == 143(Ethernet) ) { 250 S02. Remove the outer IPv6 header with all its extension headers 251 S03. Set the packet's associated Layer-2 Multicast forwarding table to T 252 S04. Submit the packet to the egress Layer-2 Multicast forwarding table 253 lookup for transmission to the new multicast downstreams 254 S05. } Else { 255 S06. Send an ICMP Parameter Problem to the Source Address 256 with Code 4 (SR Upper-layer Header Error) 257 and Pointer set to the offset of the Upper-Layer header, 258 interrupt packet processing, and discard the packet 259 S07. } 261 6. Use Case 263 The source segment could be applied in the following case: 265 1. MSR6: The MSR6 MVPN uses the source segment in the IPv6 source 266 address for identifying a VRF in IPv6 multicast source routing. 268 2. Tree SID over SRv6: MVPN service can use Tree SID over SRv6 269 [I-D.ietf-bess-mvpn-evpn-sr-p2mp] for point-to-multipoint 270 transport of a packet. When a Tree SID over SRv6 P-tunnel is 271 shared across different MVPNs, an IPv6 address in IPv6 source 272 address for identifying a VRF is possible. 274 3. MVPN service can use Ingress Replication(IR) [RFC6513] to 275 simulate a point-to-multipoint P-tunnel. In an IPv6 environment, 276 Ingress Replication can use IPv6 encapsulation for each branch. 277 When the egress PE of an Ingress Replication P-tunnel branch 278 receives a packet, it gets to know the VRF of the packet through 279 the Destination address in the IPv6 header. This means that, 280 every egress PE of the IR P-tunnel branch need to allocate an 281 IPv6 address to identify a VRF. If the source segment is used 282 for the IPv6 source address, only one IPv6 address of the Ingress 283 PE is needed for identifying a VRF, and thus save the IPv6 284 addresses and their operation costs. 286 7. IANA Considerations 288 TBD 290 8. Security Considerations 292 TBD 294 9. References 296 9.1. Normative References 298 [RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet 299 Control Message Protocol (ICMPv6) for the Internet 300 Protocol Version 6 (IPv6) Specification", STD 89, 301 RFC 4443, DOI 10.17487/RFC4443, March 2006, 302 . 304 [RFC6513] Rosen, E., Ed. and R. Aggarwal, Ed., "Multicast in MPLS/ 305 BGP IP VPNs", RFC 6513, DOI 10.17487/RFC6513, February 306 2012, . 308 [RFC6514] Aggarwal, R., Rosen, E., Morin, T., and Y. Rekhter, "BGP 309 Encodings and Procedures for Multicast in MPLS/BGP IP 310 VPNs", RFC 6514, DOI 10.17487/RFC6514, February 2012, 311 . 313 [RFC6515] Aggarwal, R. and E. Rosen, "IPv4 and IPv6 Infrastructure 314 Addresses in BGP Updates for Multicast VPN", RFC 6515, 315 DOI 10.17487/RFC6515, February 2012, 316 . 318 [RFC6625] Rosen, E., Ed., Rekhter, Y., Ed., Hendrickx, W., and R. 319 Qiu, "Wildcards in Multicast VPN Auto-Discovery Routes", 320 RFC 6625, DOI 10.17487/RFC6625, May 2012, 321 . 323 [RFC7716] Zhang, J., Giuliano, L., Rosen, E., Ed., Subramanian, K., 324 and D. Pacella, "Global Table Multicast with BGP Multicast 325 VPN (BGP-MVPN) Procedures", RFC 7716, 326 DOI 10.17487/RFC7716, December 2015, 327 . 329 [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., 330 Decraene, B., Litkowski, S., and R. Shakir, "Segment 331 Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, 332 July 2018, . 334 [RFC8556] Rosen, E., Ed., Sivakumar, M., Przygienda, T., Aldrin, S., 335 and A. Dolganow, "Multicast VPN Using Bit Index Explicit 336 Replication (BIER)", RFC 8556, DOI 10.17487/RFC8556, April 337 2019, . 339 [RFC8754] Filsfils, C., Ed., Dukes, D., Ed., Previdi, S., Leddy, J., 340 Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header 341 (SRH)", RFC 8754, DOI 10.17487/RFC8754, March 2020, 342 . 344 [RFC8986] Filsfils, C., Ed., Camarillo, P., Ed., Leddy, J., Voyer, 345 D., Matsushima, S., and Z. Li, "Segment Routing over IPv6 346 (SRv6) Network Programming", RFC 8986, 347 DOI 10.17487/RFC8986, February 2021, 348 . 350 9.2. Informative References 352 [I-D.cheng-spring-ipv6-msr-design-consideration] 353 Cheng, W., Mishra, G., Li, Z., Wang, A., Qin, Z., and C. 354 Fan, "Design Consideration of IPv6 Multicast Source 355 Routing (MSR6)", Work in Progress, Internet-Draft, draft- 356 cheng-spring-ipv6-msr-design-consideration-00, 12 July 357 2021, . 360 [I-D.ietf-6man-spring-srv6-oam] 361 Ali, Z., Filsfils, C., Matsushima, S., Voyer, D., and M. 362 Chen, "Operations, Administration, and Maintenance (OAM) 363 in Segment Routing Networks with IPv6 Data plane (SRv6)", 364 Work in Progress, Internet-Draft, draft-ietf-6man-spring- 365 srv6-oam-11, 2 June 2021, 366 . 369 [I-D.ietf-bess-mvpn-evpn-sr-p2mp] 370 Parekh, R., Filsfils, C., Venkateswaran, A., Bidgoli, H., 371 Voyer, D., and Z. Zhang, "Multicast and Ethernet VPN with 372 Segment Routing P2MP", Work in Progress, Internet-Draft, 373 draft-ietf-bess-mvpn-evpn-sr-p2mp-04, 19 October 2021, 374 . 377 [I-D.ietf-bess-srv6-services] 378 Dawra, G., Filsfils, C., Talaulikar, K., Raszuk, R., 379 Decraene, B., Zhuang, S., and J. Rabadan, "SRv6 BGP based 380 Overlay Services", Work in Progress, Internet-Draft, 381 draft-ietf-bess-srv6-services-07, 11 April 2021, 382 . 385 [I-D.ietf-rtgwg-dst-src-routing] 386 Lamparter, D. and A. Smirnov, "Destination/Source 387 Routing", Work in Progress, Internet-Draft, draft-ietf- 388 rtgwg-dst-src-routing-07, 10 March 2019, 389 . 392 [I-D.ietf-spring-sr-replication-segment] 393 (editor), D. V., Filsfils, C., Parekh, R., Bidgoli, H., 394 and Z. Zhang, "SR Replication Segment for Multi-point 395 Service Delivery", Work in Progress, Internet-Draft, 396 draft-ietf-spring-sr-replication-segment-05, 20 August 397 2021, . 400 [I-D.raszuk-teas-ip-te-np] 401 Raszuk, R., "IP Traffic Engineering Architecture with 402 Network Programming", Work in Progress, Internet-Draft, 403 draft-raszuk-teas-ip-te-np-00, 2 October 2019, 404 . 407 [I-D.xie-bier-ipv6-encapsulation] 408 Xie, J., Geng, L., McBride, M., Asati, R., Dhanaraj, S., 409 Zhu, Y., Qin, Z., Shin, M., Mishra, G., and X. Geng, 410 "Encapsulation for BIER in Non-MPLS IPv6 Networks", Work 411 in Progress, Internet-Draft, draft-xie-bier-ipv6- 412 encapsulation-10, 22 February 2021, 413 . 416 [I-D.xie-bier-ipv6-mvpn] 417 Xie, J., McBride, M., Dhanaraj, S., Geng, L., and G. 418 Mishra, "Use of BIER IPv6 Encapsulation (BIERv6) for 419 Multicast VPN in IPv6 networks", Work in Progress, 420 Internet-Draft, draft-xie-bier-ipv6-mvpn-03, 10 October 421 2020, . 424 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 425 Requirement Levels", BCP 14, RFC 2119, 426 DOI 10.17487/RFC2119, March 1997, 427 . 429 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 430 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 431 May 2017, . 433 Authors' Addresses 435 Jingrong Xie 436 Huawei Technologies 438 Email: xiejingrong@huawei.com 440 Xuesong Geng 441 Huawei Technologies 443 Email: gengxuesong@huawei.com 445 Yisong Liu 446 China Mobile 448 Email: liuyisong@chinamobile.com