idnits 2.17.00 (12 Aug 2021) /tmp/idnits21404/draft-xu-msr6-rbs-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 35 instances of too long lines in the document, the longest one being 28 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- -- The document date (30 March 2022) is 45 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) ** Downref: Normative reference to an Experimental draft: draft-chen-pim-srv6-p2mp-path (ref. 'I-D.chen-pim-srv6-p2mp-path') ** Downref: Normative reference to an Informational draft: draft-cheng-spring-ipv6-msr-design-consideration (ref. 'I-D.cheng-spring-ipv6-msr-design-consideration') ** Downref: Normative reference to an Experimental draft: draft-eckert-bier-cgm2-rbs (ref. 'I-D.eckert-bier-cgm2-rbs') ** Downref: Normative reference to an Experimental draft: draft-geng-msr6-rlb-segment (ref. 'I-D.geng-msr6-rlb-segment') Summary: 5 errors (**), 0 flaws (~~), 0 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group B. Xu 3 Internet-Draft X. Geng 4 Intended status: Standards Track Huawei 5 Expires: 1 October 2022 T. Eckert 6 Futurewei Technologies 7 30 March 2022 9 RBS(Recursive BitString Structure) for Multicast Source Routing over 10 IPv6 11 draft-xu-msr6-rbs-01 13 Abstract 15 This document defines a new type of segment: End.RBS, and the 16 corresponding packet processing procedures over the IPv6 data plane 17 for the MSR6(Multicast Source Routing over IPv6) TE solutions. 19 Requirements Language 21 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 22 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 23 document are to be interpreted as described in RFC 2119 [RFC2119]. 25 Status of This Memo 27 This Internet-Draft is submitted in full conformance with the 28 provisions of BCP 78 and BCP 79. 30 Internet-Drafts are working documents of the Internet Engineering 31 Task Force (IETF). Note that other groups may also distribute 32 working documents as Internet-Drafts. The list of current Internet- 33 Drafts is at https://datatracker.ietf.org/drafts/current/. 35 Internet-Drafts are draft documents valid for a maximum of six months 36 and may be updated, replaced, or obsoleted by other documents at any 37 time. It is inappropriate to use Internet-Drafts as reference 38 material or to cite them other than as "work in progress." 40 This Internet-Draft will expire on 1 October 2022. 42 Copyright Notice 44 Copyright (c) 2022 IETF Trust and the persons identified as the 45 document authors. All rights reserved. 47 This document is subject to BCP 78 and the IETF Trust's Legal 48 Provisions Relating to IETF Documents (https://trustee.ietf.org/ 49 license-info) in effect on the date of publication of this document. 50 Please review these documents carefully, as they describe your rights 51 and restrictions with respect to this document. Code Components 52 extracted from this document must include Revised BSD License text as 53 described in Section 4.e of the Trust Legal Provisions and are 54 provided without warranty as described in the Revised BSD License. 56 Table of Contents 58 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 59 2. Terminologies . . . . . . . . . . . . . . . . . . . . . . . . 3 60 3. Explicit Multicast Path with RBS . . . . . . . . . . . . . . 3 61 3.1. RBS Architecture . . . . . . . . . . . . . . . . . . . . 3 62 3.2. Recursive encoding in packet . . . . . . . . . . . . . . 4 63 3.3. RBS BIFT . . . . . . . . . . . . . . . . . . . . . . . . 5 64 4. End.RBS Segment Definition . . . . . . . . . . . . . . . . . 5 65 5. RBS Sub-TLV . . . . . . . . . . . . . . . . . . . . . . . . . 6 66 6. Illustration . . . . . . . . . . . . . . . . . . . . . . . . 7 67 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 68 8. Security Considerations . . . . . . . . . . . . . . . . . . . 10 69 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 10 70 10. Normative References . . . . . . . . . . . . . . . . . . . . 10 71 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 73 1. Introduction 75 MSR6(Multicast Source Routing over IPv6) is an IPv6 based multicast 76 source routing (MSR6) solution, defined in 77 [I-D.cheng-spring-ipv6-msr-design-consideration], which leverages the 78 benefits of source routing over IPv6 data plane to provide simplified 79 multicast TE and BE service in an IPv6 network without unnecessary 80 multicast tree status and complex control plane protocols. MSR6 81 needs to reuse the advantages of SRv6 and BIER to implement source 82 routing. 84 MSR6 has two basic modes of forwarding: one is based on Shortest Path 85 First(SPF), which is called MSR6 BE mode; the other is based on 86 traffic engineered, which is called MSR6 TE mode. 87 [I-D.geng-msr6-traffic-engineering], [I-D.chen-pim-srv6-p2mp-path] 88 and [I-D.geng-msr6-rlb-segment] have introduced structured segment 89 list by defining arguments in each segment. 91 This document defines IPv6 based RBS [I-D.eckert-bier-cgm2-rbs] which 92 provides an optional solution for MSR6 TE. A new type of segment 93 End.RBS and the corresponding RBS type sub-TLV in MRH defined in 94 [I-D.geng-msr6-traffic-engineering], which could indicate multicast 95 tree in the a recuisive bitstring and save the header overhead. 97 2. Terminologies 99 MSR6: Multicast Source Routing over IPv6, defined in . 101 MRH: Multicast Routing Header, a new type of Routing Header which is 102 used for MSR6 [I-D.cheng-spring-ipv6-msr-design-consideration]. 104 Replication Endpoint: the intermediate node of a multicast tree, 105 which replicates packet and forwards the packet to the downstream 106 nodes. For MSR6, the Replication Node is called Replication Endpoint 107 which can be indicated by the MSR6 Segment and replicate packets 108 according to the multicast source routing information encapsulation 109 in the MSR6 header of the packet. 111 BFR: Bit-Forwarding Router, a router support RBS. 113 BIFT: Bit Index Forwarding Table, locally to BFR. 115 RU: RecursiveUnit, a Bit String is to be parsed by BFR along the 116 multicast tree of the packet, defined in [I-D.eckert-bier-cgm2-rbs] 118 3. Explicit Multicast Path with RBS 120 This section describes the encoding of explictit multicast path with 121 RecursiveUnit BitString Structure (RBS) . 123 3.1. RBS Architecture 125 An explicit muliticast path is encapsulated with RBS as shown in 126 Figure 1. 128 +----------+---------------------+---------+ 129 | TotalLen | RecursiveUnit | Padding | 130 +----------+---------------------+---------+ 131 . . 132 ...... TotalLen ....... 133 Figure 1: Architecture of RBS Address 135 For the reference encoding, TotalLen is an 16-bit field that counts 136 the size of the RecursiveUnit in bits, permitting for up to 65535 Bit 137 long RBS addresses. 139 The Rsv filed,which is defined in [I-D.eckert-bier-cgm2-rbs] , is 140 omitted in this scenario. 142 Padding is used to align the RBS address as required by the IPv6 143 encapsulation. 145 3.2. Recursive encoding in packet 147 This section uses a hierarchical multicast tree as an example to 148 describe the RecursiveUnit coding format. 150 +---+ 151 | R | 152 +-+-+ 153 | 154 +----------+----+-----+-----------+ 155 | | | | 156 +-v-+ +-v-+ +-v-+ +-v-+ 157 | A1| | A2| | A3| ... | AM| 158 +-+-+ +---+ +---+ +---+ 159 | 160 +----------+----+-----+----------+ 161 | | | | 162 +-v-+ +-v-+ +-v-+ +-v-+ 163 | B1| | B2| | B3| ... | BN| 164 +---+ +---+ +---+ +---+ 165 Figure 2: Hierarchical multicast tree 167 As Shown in Figure 2, the whole explicit multicast path should be 168 encapsulated (See Section 3.1) in-packet, which will be parsed by 169 each Router along the delivery tree. 171 The RecursiveUnit filed is structured as shown in Figure 3. To 172 abbreviate the size of the figure, we use AF for AddressingFiled, and 173 RU for RecursiveUnit In the following figures. 175 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 176 | TotalLen| BitString | AF 1 | AF 2 | ...| AF M-1 | RU 1 | RU 2 | ...| RU M | Padding | 177 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 178 / \ 179 / \ 180 / \ 181 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+ 182 |BitString|AF 1...N-1|RU 1 ...N| 183 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+ 184 Figure 3: RecursiveUnit Filed Structure 186 The BitString field guides the first-hop node 'R' to locally 187 duplicate packets and forwarding. The length of BitString matches 188 the Maxnumber of adjacencies in node 'R' (See Section 3.3). 190 The AddressingField consists M-1 fields. Each filed is an 8-bits 191 filed and the value of it is the length of relative RecursiveUnit, 192 and may be the offset in some scenario . The length of last 193 RecursiveUnit M could be caculated by TotalLen. 195 And each RecursiveUnit is structured in same mechnism as shown in 196 Figurse 3. 198 3.3. RBS BIFT 200 RBS BIFT as shown in Figure 4 are containing for each BP an 201 adjacency. 203 +--+---------+-------------+ 204 |BP|RecuFlag | Adjacency| 205 +--+---------+-------------+ 206 | 1| 1|adjacenct BFR| 207 +--+---------+-------------+ 208 | 2| 0| punt/host| 209 +--+---------+-------------+ 210 | ..... ... | 211 +--+---------+-------------+ 212 | N| ...| ... | 213 +--+---------+-------------+ 215 Figure 4: RBS BIFT 217 The BP of the BIFT are all local to the BFR. When a BFR receives a 218 packet encapuslated with RBS, it expects that the BitString filed 219 length must be matched with N, which is configured by BFR. 221 4. End.RBS Segment Definition 223 When the packet is received by an Replication Endpoint and the DA of 224 this packet is a local SID with the function of End.RBS, the packet 225 will be replicated based on the RBS sub-TLV defined in section 5. 226 The DA of the replicated packets is replaced by the End.RBS for the 227 next Replication Endpoinds. 229 The behavior of End.RBS is defined in section 5 of 230 [I-D.eckert-bier-cgm2-rbs]. 232 5. RBS Sub-TLV 234 MRH defined in [I-D.geng-msr6-traffic-engineering] is as follows: 236 0 1 2 3 237 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 238 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 239 | Next Header | Hdr Ext Len | Routing Type | Segments Left | 240 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 241 | MRH Sub-type | Reserved | 242 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 243 // // 244 // Optional Type Length Value objects (variable) // 245 // // 246 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 247 Figure 5.MRH of RBS Type Encapsulation 249 MRH Sub-type: 8-bit identifier of the sub-type. The sub-type of RBS 250 is to be assigned by IANA. 252 Segments Left: MUST be set to 0 when the MRH sub-type is RBS sub- 253 type. 255 Type Length Value objects: Must habe RBS sub-TLV when the MRH sub- 256 type is RBS sub-type. 258 A "RBS" type sub-TLV is defined for RBS in the feild of Optional Type 259 Length Value Objects. The format is shown as below 261 0 1 2 3 262 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 263 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 264 | Type | Length | RESERVED | 265 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 266 | | 267 | RBS Address(variable) // 268 | // 269 | // 270 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 271 Figure 6.RBS Sub-TLV 273 Type: 8-bit identifier of the type of sub-TLV. The type of RBS 274 option is to be assigned by IANA. 276 Length: 16-bit unsigned integer indicates the length of the option 277 Data field of this option, in octets. The value of Opt Data Len of 278 RBS option depends on the encoding of multicast tree, according to 279 the mechanism defined in section 3. 281 RBS Address: defined in [I-D.eckert-bier-cgm2-rbs]. The packet is 282 forwarded based on the multicast tree indicated by the RBS Address. 284 6. Illustration 286 Figure 7 shows an example for RBS forwarding. 288 +-+ 289 /-=>-|C|-=> Client2 290 / +-+ 291 / 292 +-+ +-+ +-+ +-+ 293 Client1 =>-|B|-=>-|R|-=>-|S|-=>-|D|-=> Client3 294 +-+ +-+ +-+ +-+ 295 \ 296 \ +-+ 297 \-=>-|E|-=> Client4 298 +-+ 300 Figure 7: Example Network Topology 302 A packet from Client1 connected to BFR B is intended to be replicated 303 to Client2,3,4. 305 The encapsulation of RBS at BFR-B is shown in Figure 8. 307 ........................ RecursiveUnit ................................... 308 . . 309 +-----------+------------+-----------------------------------------------------------+-------+ 310 |TotalLen:34|BitString:01|RU1:(R:011|AF:00010010|S:011|AF:00000011|C:001|D:0001|E:001)|Padding| 311 +-----------+------------+-----------------------------------------------------------+-------+ 312 Figure 8: Encapsulation of RBS at BFR-B 314 Since there is only one RecursiveUnit, the AddressingField is omitted 315 at BFR-B. 317 BFR-B rewrites the RBS by replacing the RecursiveUnit with 318 RecursiveUnit 1 and adjusts the TotalLen and Padding fileds. 320 And BFR-R receives the packet with RBS, which has been processed by 321 BFR-B, shown in Figure 9. 323 .......................... RecursiveUnit .............................. 324 . . 325 +-----------+-------------+------------+----------------------------------------------+-------+ 326 |TotalLen:32|BitString:011|AF1:00010010|RU1(S:011|AF1:00000011|C:001|D:0001)RU2(E:001)|Padding| 327 +-----------+-------------+------------+----------------------------------------------+-------+ 328 Figure 9: Encapsulation of RBS at BFR-R 330 And BFR-R parse the Bitstring filed using BIFT shown in Figure 10. 332 Because there are two recursive BP set in the BitString for R, one 333 AddressingFiled is required to indicate the length of RecursiveUnit 334 1. 336 +--+---------+---------+ 337 |BP|RecuFlag |Adjacency| 338 +--+---------+---------+ 339 | 1| 1| B | 340 +--+---------+---------+ 341 | 2| 1| S | 342 +--+---------+---------+ 343 | 3| 1| E | 344 +--+---------+---------+ 345 Figure 10: RBS BIFT on BFR-R 347 BFR-R accordingly creates one copy for BFR-S using RecursiveUnit 1, 348 and only copy for BFR-E using RecursiveUnit 2, updating Padding 349 accordingly for each copy. 351 BFR-S receives from BFR-R the packet as shown in Figure 11. 353 ............. RecursiveUnit ...................... 354 . . 355 +-----------+-------------+------------+---------------------+-------+ 356 |TotalLen:18|BitString:011|AF1:00000011|RU1(C:001)RU2(D:0001)|Padding| 357 +-----------+-------------+------------+---------------------+-------+ 358 Figure 11: Encapsulation of RBS at BFR-S 360 BFR-E receives from BFR-R the packet as shown in Figure 12. 362 +-----------+-------------+-------+ 363 |TotalLen:32|BitString:001|Padding| 364 +-----------+-------------+-------+ 365 Figure 12: Encapsulation of RBS at BFR-E 367 BFR-E would impose or rewrite a unicast encapsulation to make the 368 packet become a unicast packet directed to Client 4. 370 The procedures for processing of the packet on BFR-S are very much 371 the same as on BFR-R. 373 BFR-C receives from BFR-R the packet as shown in Figure 13. And it 374 will make the packet become a unicast packet directed to Client 2. 376 +-----------+-------------+-------+ 377 |TotalLen:3 |BitString:001|Padding| 378 +-----------+-------------+-------+ 379 Figure 13: Encapsulation of RBS at BFR-C 381 BFR-D receives from BFR-R the packet as shown in Figure 14. And it 382 will make the packet become a unicast packet directed to Client 3. 384 +-----------+--------------+-------+ 385 |TotalLen:4 |BitString:0001|Padding| 386 +-----------+--------------+-------+ 387 Figure 14: Encapsulation of RBS at BFR-D 389 The brief of RBS BitString conversion is shown in Figure 15. 391 +------------+ 392 |{S=S , D=C} | 393 +------------+ 394 |[BitStr=001]| 395 +============+ 396 | (C-MC Pkt) | 397 +============+ +-+ 398 /--------=>------|C|----=>---Client2 399 +------------+ +------------+ /+------------+ +-+ +==========+ 400 |{S=B , D=R} | |{S=R , D=S} | / |{S=S , D=D} | |(C-MC Pkt)| 401 +------------+ +------------+ / +------------+ +==========+ 402 |[BitStr=011]| |[BitStr=011]| / |[BitStr=0001]| 403 +==========+ +============+ +=============+ / +============+ 404 |(C-MC Pkt)| | (C-MC Pkt) | | (C-MC Pkt) | / | (C-MC Pkt) | 405 +==========+ +-+ +============+ +-+ +============+ +-+ +============+ +-+ 406 Client1---=>---|B|-------=>-------|R|-------=>-------|S|---------=>-=--------|D|----=>----Client3 407 +-+ +-+ +-+ +-+ +==========+ 408 +------------+ \ |(C-MC Pkt)| 409 |{S=R , D=E}| \ +-+ +==========+ 410 +------------+ \-=>-|E|-----=>------ Client4 411 |[BitStr=001]| +-+ +==========+ 412 +============+ |(C-MC Pkt)| 413 | (C-MC Pkt) | +==========+ 414 +============+ 416 Figure 15: Brief of RBS BitString coversion 418 7. IANA Considerations 420 This document makes no request of IANA. 422 Note to RFC Editor: this section may be removed on publication as an 423 RFC. 425 8. Security Considerations 427 9. Acknowledgements 429 10. Normative References 431 [I-D.chen-pim-srv6-p2mp-path] 432 Chen, H., McBride, M., Fan, Y., Li, Z., Geng, X., Toy, M., 433 Mishra, G. S., Wang, A., Liu, L., and X. Liu, "Stateless 434 SRv6 Point-to-Multipoint Path", Work in Progress, 435 Internet-Draft, draft-chen-pim-srv6-p2mp-path-05, 11 436 November 2021, . 439 [I-D.cheng-spring-ipv6-msr-design-consideration] 440 Cheng, W., Mishra, G., Li, Z., Wang, A., Qin, Z., and C. 441 Fan, "Design Consideration of IPv6 Multicast Source 442 Routing (MSR6)", Work in Progress, Internet-Draft, draft- 443 cheng-spring-ipv6-msr-design-consideration-01, 25 October 444 2021, . 447 [I-D.eckert-bier-cgm2-rbs] 448 Eckert, T. and B. (. Xu, "Carrier Grade Minimalist 449 Multicast (CGM2) using Bit Index Explicit Replication 450 (BIER) with Recursive BitString Structure (RBS) 451 Addresses", Work in Progress, Internet-Draft, draft- 452 eckert-bier-cgm2-rbs-01, 9 February 2022, 453 . 456 [I-D.geng-msr6-rlb-segment] 457 Geng, X., Li, Z., and J. Xie, "RLB (Replication through 458 Local Bitstring) Segment for Multicast Source Routing over 459 IPv6", Work in Progress, Internet-Draft, draft-geng-msr6- 460 rlb-segment-00, 10 February 2022, 461 . 464 [I-D.geng-msr6-traffic-engineering] 465 Geng, X., Li, Z., and J. Xie, "IPv6 Multicast Source 466 Routing Traffic Engineering", Work in Progress, Internet- 467 Draft, draft-geng-msr6-traffic-engineering-01, 7 March 468 2022, . 471 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 472 Requirement Levels", BCP 14, RFC 2119, 473 DOI 10.17487/RFC2119, March 1997, 474 . 476 Authors' Addresses 478 Bing Xu 479 Huawei 480 Email: bing.xu@huawei.com 482 Xuesong Geng 483 Huawei 484 Email: gengxuesong@huawei.com 486 Toerless Eckert 487 Futurewei Technologies 488 Email: tte@cs.fau.de