idnits 2.17.1 draft-peng-spring-truncated-sid-inter-domain-02.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 : ---------------------------------------------------------------------------- No issues found here. 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 seems to have RFC 2119 boilerplate text. -- The document date (25 July 2021) is 999 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) == Outdated reference: A later version (-14) exists of draft-ietf-idr-bgpls-srv6-ext-07 == Outdated reference: A later version (-19) exists of draft-ietf-lsr-isis-srv6-extensions-17 == Outdated reference: A later version (-15) exists of draft-ietf-lsr-ospfv3-srv6-extensions-02 == Outdated reference: A later version (-10) exists of draft-mirsky-6man-unified-id-sr-09 Summary: 0 errors (**), 0 flaws (~~), 6 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 SPRING Working Group Y. Liu 3 Internet-Draft Shaofu. Peng 4 Intended status: Standards Track G. Mirsky 5 Expires: 26 January 2022 ZTE Corporation 6 25 July 2021 8 Truncated SID Inter Domain Considerations 9 draft-peng-spring-truncated-sid-inter-domain-02 11 Abstract 13 This document introduces a method for interworking between domains of 14 Segment Routing in IPv6 network that use different levels of Segment 15 Identifier's compression. 17 Status of This Memo 19 This Internet-Draft is submitted in full conformance with the 20 provisions of BCP 78 and BCP 79. 22 Internet-Drafts are working documents of the Internet Engineering 23 Task Force (IETF). Note that other groups may also distribute 24 working documents as Internet-Drafts. The list of current Internet- 25 Drafts is at https://datatracker.ietf.org/drafts/current/. 27 Internet-Drafts are draft documents valid for a maximum of six months 28 and may be updated, replaced, or obsoleted by other documents at any 29 time. It is inappropriate to use Internet-Drafts as reference 30 material or to cite them other than as "work in progress." 32 This Internet-Draft will expire on 26 January 2022. 34 Copyright Notice 36 Copyright (c) 2021 IETF Trust and the persons identified as the 37 document authors. All rights reserved. 39 This document is subject to BCP 78 and the IETF Trust's Legal 40 Provisions Relating to IETF Documents (https://trustee.ietf.org/ 41 license-info) in effect on the date of publication of this document. 42 Please review these documents carefully, as they describe your rights 43 and restrictions with respect to this document. Code Components 44 extracted from this document must include Simplified BSD License text 45 as described in Section 4.e of the Trust Legal Provisions and are 46 provided without warranty as described in the Simplified BSD License. 48 Table of Contents 50 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 51 2. Conventions used in this document . . . . . . . . . . . . . . 3 52 2.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 53 3. Interworking Between Different Domains . . . . . . . . . . . 3 54 4. Control Plane Extensions . . . . . . . . . . . . . . . . . . 5 55 4.1. Extensions to BGP-LS . . . . . . . . . . . . . . . . . . 5 56 4.2. Extensions to IGP . . . . . . . . . . . . . . . . . . . . 6 57 4.2.1. Extensions to IS-IS . . . . . . . . . . . . . . . . . 6 58 4.2.2. Extensions to OSPFv3 . . . . . . . . . . . . . . . . 6 59 5. Security Considerations . . . . . . . . . . . . . . . . . . . 7 60 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 61 6.1. BGP-LS SRv6 SID Swapped Block Sub-TLV . . . . . . . . . . 7 62 6.2. IS-IS SRv6 SID Swapped Block Sub-TLV . . . . . . . . . . 7 63 6.3. OSPFv3 SRv6 SID Swapped Block Sub-TLV . . . . . . . . . . 7 64 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 65 7.1. Normative References . . . . . . . . . . . . . . . . . . 8 66 7.2. Informative References . . . . . . . . . . . . . . . . . 9 67 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 69 1. Introduction 71 Segment Routing [RFC8402] leverages the source routing paradigm. An 72 ingress node steers a packet through an ordered list of instructions, 73 called segments. [I-D.ietf-spring-srv6-network-programming] proposes 74 the Segment Routing in IPv6 (SRv6) Network Programming to specify a 75 packet processing program by encoding a sequence of instructions in 76 the IPv6 packet's extension header. 77 [I-D.ietf-spring-srv6-network-programming] defined a Segment 78 Identifier (SID) as consisting of LOC:FUNCT:ARG, where a locator 79 (LOC) is encoded in the L most significant bits of the SID, followed 80 by F bits of function (FUNCT) and A bits of arguments (ARG). A 81 locator may be represented as BLOCK:NODE where BLOCK is the SRv6 SID 82 block (IPv6 prefix allocated for SRv6 SIDs by the operator) and NODE 83 is the identifier of the node instantiating the SID. Note that "SID 84 Locator Block" and "BLOCK" are used interchangeably throughout the 85 document. 87 Referring to the scheme described in [RFC6554], when all segments in 88 SRH share the common prefix (i.e., SRv6 SID Locator Block), SRH only 89 needs to store the difference between SIDs (i.e., NODE:FUNCT:ARGS). 90 In this scheme, SRH Segments Left field must represent the number of 91 explicitly listed intermediate nodes (but not 128-bits items) still 92 to be visited before reaching the final destination as specified in 93 [RFC8200]. However, [RFC6554] mainly focus on the case where all 94 segments share the common prefix and their difference parts are the 95 same length. To meet more complex scenarios, 97 [I-D.mirsky-6man-unified-id-sr] introduces a stiching mode to permit 98 SIDs with different common prefix and different length of difference 99 parts. In detailed, [I-D.mirsky-6man-unified-id-sr] introduces 100 several new SID flavors to current SID, to indicate the type/length 101 of the next SID in the SRH. 103 An SRv6 path could traverse domains that use different block prefixes 104 and achieving different compressed SIDs lengths. Although it is 105 possible to encapsulate the complete 128-bits SID of the boundary 106 node where the block swapping occurs in the SRH, the compression 107 efficiency is low. For higher compression efficiency in such cases, 108 this document continues to introduce a new SID flavor to indicate the 109 block swapping information of the next SID in the SRH. The required 110 control plane extensions are also defined. 112 The flavor defined in this document can be used in combination with 113 any other flavors, and is applicable to any SID behaviors such as 114 END, END.X, and SFC related behaviors, etc. 116 2. Conventions used in this document 118 2.1. Requirements Language 120 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 121 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 122 "OPTIONAL" in this document are to be interpreted as described in BCP 123 14 [RFC2119] [RFC8174] when, and only when, they appear in all 124 capitals, as shown here. 126 3. Interworking Between Different Domains 128 The interworking of different domains is illustrated in Figure 1. 130 ................................. ....................... 131 : : : : 132 +----+ +----+ +----+ +----+ +----+ +----+ 133 + S +-----+ A +-----+ B +-----+ABR +-----+ C +-----+ D + 134 +----+ +----+ +----+ +----+ +----+ +----+ 135 : : : : 136 .......... domain 1.............. .......domain2......... 138 Figure 1: Figure 1: Interworking between domains 140 This section describes the process of new flavor based on the SRv6 141 compression scheme defined in [I-D.mirsky-6man-unified-id-sr]. 142 However, this new flavor is an extension of SRv6 programming, and is 143 independent with any specific SRv6 compression schemes. 145 An end-to-end SRv6 path from A to D passes through two domains. The 146 block prefix of Domain 1 is BLOCK1, and the compressed SID's length 147 is 32 bits. The block prefix of Domain 2 is BLOCK2, and the 148 compressed SID's length is 16 bits. 150 The following notation is used in the document, 128bits-BLOCK1-SID- 151 A-32 means that this is a 128-bit SID of node A whose block is BLOCK1 152 and itself can be compressed to 32 bits if needed. The original 153 segment list before the compression is <128bits-BLOCK1-SID-A-32, 154 128bits-BLOCK1-SID-B-32, 128bits-BLOCK1-SID-ABR-32, 128bits-BLOCK2- 155 SID-C-16, 128bits-BLOCK2-SID-D-16>. 157 Typically, this segment list is selected/computed by a Path 158 Computation Element (PCE) system or a controller based on the 159 structure and flavor of each SID. 161 A new SID flavor is defined in this document to make the entire 162 segment list more compressible. 164 Block Swapping (BS) Flavor: it indicates that SRv6 SID Locator Block 165 will be swapped. And the information about the new block with its 166 length is maintained in the local SID entry of the current SID. 168 So in ABR, a 128bits-BLOCK1-ABR-32 SID with BS flavor is allocated. 169 The local SID entry will swap BLOCK1 to BLOCK2. Thus, the next short 170 16 bit SID can be stitched with BLOCK2 to generate a full 128 bit 171 SID. With the help of the BS flavor, the corresponding compressed 172 segment list could be <32bits-SID-A,32bits-SID-B,32bits-SID-ABR(BS), 173 16bits-SID-C, 16bits-SID-D>. 175 32bits-SID-A means this is a 32-bit compressed SID of node A. 177 32bits-SID-ABR(BS) means this is a 32-bit compressed SID of node ABR 178 with BS flavor. 180 At the headend S, the packet sent to node A is (SA,DA=BLOCK1+32bits- 181 SID-A)(16bits-SID-D, 16bits-SID-C, 32bits-SID-ABR, 32bits-SID-B, 182 32bits-SID-A; SL=3), i.e., only one single 128 segment entry is 183 needed in SRH. Note that SL=3 means there are three 32-bits segment 184 items within SRH remaining to be visited. 186 The packet sent from node A to node B is (SA,DA=BLOCK1+32bits-SID- 187 B)(16bits-SID-D, 16bits-SID-C, 32bits-SID-ABR, 32bits-SID-B, 32bits- 188 SID-A; SL=2). 190 The packet sent from B to ABR is (SA,DA=BLOCK1+32bits-SID- 191 ABR)(16bits-SID-D, 16bits-SID-C, 32bits-SID-ABR, 32bits-SID-B, 192 32bits-SID-A; SL=1). 194 When the packet arrives at ABR, it matches the local SID entry. The 195 endpoint behavior of that entry is END with BS Flavor, and the new 196 block with its length is provided in the local SID entry. The next 197 short 16 bit SID can be retrieved from SRH and be stitched with the 198 new block to generate a full 128 bit SID copied to the DA field. 199 Thus, the packet sent from ABR to C could be (SA,DA=BLOCK2+16bits- 200 SID-C)(16bits-SID-D, 16bits-SID-C, 32bits-SID-ABR, 32bits-SID-B, 201 32bits-SID-A; SL=1). Note that SL=1 means there are one 16-bits 202 segment items within SRH remaining to be visited. 204 Generally, multiple BS-flavored SIDs may be allocated on the boundary 205 node. For example, SID-12 with BS flavor indicates that SRv6 SID 206 Locator Block switches from BLOCK1 to BLOCK2, and SID-13 indicates 207 that SRv6 SID Locator Block switches from BLOCK1 to block3. 209 For the inter-AS scenario, the processing is similar, especially an 210 END.X SID allocated for SR-EPE or a direct link can also have BS 211 flavor to indicate the new block information of the next AS. 213 4. Control Plane Extensions 215 4.1. Extensions to BGP-LS 217 This document introduces an SRv6 SID Swapped Block Sub-TLV. It is an 218 optional TLV for use in the BGP-LS Attribute for an SRv6 SID NLRI and 219 as a sub-TLV of the SRv6 End.X, IS-IS SRv6 LAN End.X and OSPFv3 SRv6 220 LAN End.X TLVs [I-D.ietf-idr-bgpls-srv6-ext]. This TLV is validate 221 only when the SID has a BS flavor. 223 The TLV has the following format: 225 0 1 2 3 226 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 227 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 228 | Type | Length | 229 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 230 // Variable Swapped Block // 231 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 233 Figure 2: Figure 2: BGP-LS SRv6 SID Swapped Block Sub-TLV 235 Type: TBA 237 Length: 2 octet field, indicate the length of Swapped Block. 239 Swapped Block: This field encodes the advertised swapped block prefix 240 information. 242 4.2. Extensions to IGP 244 Different nodes in the same IGP domain may have different block 245 prefixes. So IGP extensions are also needed in this scenario. 247 4.2.1. Extensions to IS-IS 249 SID Swapped Block Sub-Sub-TLV is introduced in this document. It is 250 an optional Sub-Sub-TLV of SRv6 End SID Sub-TLV, SRv6 End.X SID Sub- 251 TLV and SRv6 LAN End.X SID Sub-TLV 252 [I-D.ietf-lsr-isis-srv6-extensions]. 254 0 1 2 3 255 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 256 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 257 | Type | Length | 258 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 259 // Variable Swapped Block // 260 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 262 Figure 3: Figure 3: ISIS SRv6 SID Swapped Block Sub-Sub-TLV 264 Type: TBA, 1 octets. 266 Length: 1 octet field, indicate the length of Swapped Block. 268 Swapped Block: This field encodes the advertised swapped block prefix 269 information. 271 4.2.2. Extensions to OSPFv3 273 SID Swapped Block Sub-TLV is introduced in this document. It is used 274 as an optional Sub-TLV of SRv6 End SID Sub-TLV, SRv6 End.X SID Sub- 275 TLV, SRv6 LAN End.X SID Sub-TLV 276 [I-D.ietf-lsr-ospfv3-srv6-extensions]. 278 0 1 2 3 279 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 280 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 281 | Type | Length | 282 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 283 // Variable Swapped Block // 284 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 286 Figure 4: Figure 4: OSPFv3 SRv6 SID Swapped Block Sub-Sub-TLV 288 Type: TBA, 2 octets. 290 Length: 2 octet field, indicate the length of Swapped Block. 292 Swapped Block: This field encodes the advertised swapped block prefix 293 information. 295 5. Security Considerations 297 TBD 299 6. IANA Considerations 301 6.1. BGP-LS SRv6 SID Swapped Block Sub-TLV 303 This document requests IANA to assign a new code point in the "BGP-LS 304 Node Descriptor, Link Descriptor, Prefix Descriptor, and Attribute 305 TLVs" sub-registry under the "Border Gateway Protocol - Link State 306 (BGP-LS) Parameters" registry. 308 +-----------+---------------------+--------------+------------------+ 309 | TLV Code | Description | IS-IS TLV/ | Reference | 310 | Point | | Sub-TLV | | 311 +-----------+---------------------+--------------+------------------+ 312 | TBA1 | SRv6 SID Swapped | --- | This document | 313 | | Block | | | 314 +-----------+---------------------+--------------+------------------+ 316 6.2. IS-IS SRv6 SID Swapped Block Sub-TLV 318 This document requests IANA to assign a new code point in the "Sub- 319 Sub-TLVs for SID Sub-TLVs" registry under the IS-IS registry. 320 Referring to section "12.5. Sub-Sub-TLVs for SID Sub-TLVs" of 321 [I-D.ietf-lsr-isis-srv6-extensions], the registration procedure of 322 "Sub-Sub-TLVs for SID Sub-TLVs" is still "Expert Review" as defined 323 in [RFC8126]. 325 +----------+----------------------------------------+---------------+ 326 | TLV Code | Description | Reference | 327 | Point | | | 328 +----------+----------------------------------------+---------------+ 329 | TBA2 | SRv6 SID Swapped Block | this document | 330 +----------+----------------------------------------+---------------+ 332 6.3. OSPFv3 SRv6 SID Swapped Block Sub-TLV 334 This document requests IANA to assign a new code point in the "OSPFv3 335 Extended-LSA Sub-TLVs" registry under the "Open Shortest Path First 336 v3 (OSPFv3) Parameters" registry. 338 +----------+----------------------------------------+---------------+ 339 | TLV Code | Description | Reference | 340 | Point | | | 341 +----------+----------------------------------------+---------------+ 342 | TBA3 | SRv6 SID Swapped Block | this document | 343 +----------+----------------------------------------+---------------+ 345 7. References 347 7.1. Normative References 349 [I-D.ietf-idr-bgpls-srv6-ext] 350 Dawra, G., Filsfils, C., Talaulikar, K., Chen, M., 351 Bernier, D., and B. Decraene, "BGP Link State Extensions 352 for SRv6", Work in Progress, Internet-Draft, draft-ietf- 353 idr-bgpls-srv6-ext-07, 25 March 2021, 354 . 357 [I-D.ietf-lsr-isis-srv6-extensions] 358 Psenak, P., Filsfils, C., Bashandy, A., Decraene, B., and 359 Z. Hu, "IS-IS Extensions to Support Segment Routing over 360 IPv6 Dataplane", Work in Progress, Internet-Draft, draft- 361 ietf-lsr-isis-srv6-extensions-17, 18 June 2021, 362 . 365 [I-D.ietf-lsr-ospfv3-srv6-extensions] 366 Li, Z., Hu, Z., Cheng, D., Talaulikar, K., and P. Psenak, 367 "OSPFv3 Extensions for SRv6", Work in Progress, Internet- 368 Draft, draft-ietf-lsr-ospfv3-srv6-extensions-02, 15 369 February 2021, . 372 [I-D.ietf-spring-srv6-network-programming] 373 Filsfils, C., Garvia, P. C., Leddy, J., Voyer, D., 374 Matsushima, S., and Z. Li, "Segment Routing over IPv6 375 (SRv6) Network Programming", Work in Progress, Internet- 376 Draft, draft-ietf-spring-srv6-network-programming-28, 29 377 December 2020, . 380 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 381 Requirement Levels", BCP 14, RFC 2119, 382 DOI 10.17487/RFC2119, March 1997, 383 . 385 [RFC6554] Hui, J., Vasseur, JP., Culler, D., and V. Manral, "An IPv6 386 Routing Header for Source Routes with the Routing Protocol 387 for Low-Power and Lossy Networks (RPL)", RFC 6554, 388 DOI 10.17487/RFC6554, March 2012, 389 . 391 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 392 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 393 May 2017, . 395 [RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6 396 (IPv6) Specification", STD 86, RFC 8200, 397 DOI 10.17487/RFC8200, July 2017, 398 . 400 [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., 401 Decraene, B., Litkowski, S., and R. Shakir, "Segment 402 Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, 403 July 2018, . 405 7.2. Informative References 407 [I-D.mirsky-6man-unified-id-sr] 408 Weiqiang, C., Mirsky, G., Shaofu, P., Aihua, L., and G. S. 409 Mishra, "Unified Identifier in IPv6 Segment Routing 410 Networks", Work in Progress, Internet-Draft, draft-mirsky- 411 6man-unified-id-sr-09, 30 March 2021, 412 . 415 [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for 416 Writing an IANA Considerations Section in RFCs", BCP 26, 417 RFC 8126, DOI 10.17487/RFC8126, June 2017, 418 . 420 Authors' Addresses 422 Liu Yao 423 ZTE Corporation 425 Email: liu.yao71@zte.com.cn 427 Peng Shaofu 428 ZTE Corporation 430 Email: peng.shaofu@zte.com.cn 431 Greg Mirsky 432 ZTE Corporation 434 Email: gregory.mirsky@ztetx.com