idnits 2.17.1 draft-peng-spring-truncated-sid-inter-domain-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 : ---------------------------------------------------------------------------- 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 (January 4, 2021) is 1200 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-05 == Outdated reference: A later version (-19) exists of draft-ietf-lsr-isis-srv6-extensions-11 == Outdated reference: A later version (-15) exists of draft-ietf-lsr-ospfv3-srv6-extensions-01 == Outdated reference: A later version (-07) exists of draft-cl-spring-generalized-srv6-for-cmpr-02 == Outdated reference: A later version (-10) exists of draft-mirsky-6man-unified-id-sr-07 Summary: 0 errors (**), 0 flaws (~~), 7 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 SPRING Working Group Shaofu. Peng 3 Internet-Draft ZTE Corporation 4 Intended status: Standards Track January 4, 2021 5 Expires: July 8, 2021 7 Truncated SID Inter Domain Considerations 8 draft-peng-spring-truncated-sid-inter-domain-00 10 Abstract 12 This document introduces a method for interworking between domains of 13 Segment Routing in IPv6 network that use different levels of Segment 14 Identifier's compression. 16 Status of This Memo 18 This Internet-Draft is submitted in full conformance with the 19 provisions of BCP 78 and BCP 79. 21 Internet-Drafts are working documents of the Internet Engineering 22 Task Force (IETF). Note that other groups may also distribute 23 working documents as Internet-Drafts. The list of current Internet- 24 Drafts is at https://datatracker.ietf.org/drafts/current/. 26 Internet-Drafts are draft documents valid for a maximum of six months 27 and may be updated, replaced, or obsoleted by other documents at any 28 time. It is inappropriate to use Internet-Drafts as reference 29 material or to cite them other than as "work in progress." 31 This Internet-Draft will expire on July 8, 2021. 33 Copyright Notice 35 Copyright (c) 2021 IETF Trust and the persons identified as the 36 document authors. All rights reserved. 38 This document is subject to BCP 78 and the IETF Trust's Legal 39 Provisions Relating to IETF Documents 40 (https://trustee.ietf.org/license-info) in effect on the date of 41 publication of this document. Please review these documents 42 carefully, as they describe your rights and restrictions with respect 43 to this document. Code Components extracted from this document must 44 include Simplified BSD License text as described in Section 4.e of 45 the Trust Legal Provisions and are provided without warranty as 46 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 . . . . . . . . . . . . . . . . . . . . 5 57 4.2.1. Extensions to IS-IS . . . . . . . . . . . . . . . . . 5 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 . . . . . . . . . . . . . . . . . . . . . . . . . 7 65 7.1. Normative References . . . . . . . . . . . . . . . . . . 7 66 7.2. Informative References . . . . . . . . . . . . . . . . . 8 67 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 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 B:N where B is the SRv6 SID block (IPv6 82 prefix allocated for SRv6 SIDs by the operator) and N is the 83 identifier of the parent node instantiating the SID. Note that "SID 84 Locator Block" and "BLOCK" are used interchangeably throughout the 85 document. 87 As demonstrated in several proposals, such as 88 [I-D.cl-spring-generalized-srv6-for-cmpr] and 89 [I-D.mirsky-6man-unified-id-sr], SIDs could be allocated by SRv6 90 nodes from within the same SRv6 SID Locator Block, and referring to 91 the idea described in [RFC6554] SRH only needs to store the 92 difference between SIDs, such as NODE:FUNCT:ARGS, the non-BLOCK part, 93 and does not need to contain the SRv6 SID Locator Block information. 94 In this case, some or all SIDs encoded in the SRH are the non-BLOCK 95 part of the 128-bit SIDs. 97 An SRv6 path could traverse domains that use different block prefixes 98 and achieving different compressed SIDs lengths. This document 99 provides a method of higher compression efficiency for interworking 100 between domains. It introduces a new SID flavor and defines the 101 required control plane extensions. 103 2. Conventions used in this document 105 2.1. Requirements Language 107 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 108 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 109 "OPTIONAL" in this document are to be interpreted as described in BCP 110 14 [RFC2119] [RFC8174] when, and only when, they appear in all 111 capitals, as shown here. 113 3. Interworking Between Different Domains 115 The interworking of different domains is illustrated in Figure 1. 117 ................................. ....................... 118 : : : : 119 +----+ +----+ +----+ +----+ +----+ +----+ 120 + S +-----+ A +-----+ B +-----+ABR +-----+ C +-----+ D + 121 +----+ +----+ +----+ +----+ +----+ +----+ 122 : : : : 123 .......... domain 1.............. .......domain2......... 125 Figure 1: Interworking between domains 127 An end-to-end SRv6 path from A to D passes through two domains. The 128 block prefix of Domain 1 is BLOCK1, and the compressed SID's length 129 is 32 bits. The block prefix of Domain 2 is BLOCK2, and the 130 compressed SID's length is 16 bits. 132 The following notation is used in the document, 128bits-BLOCK1-SID- 133 A-32 means that this is a 128-bit SID of node A whose block is BLOCK1 134 and itself can be compressed to 32 bits if needed. The original 135 segment list before the compression is <128bits-BLOCK1-SID-A-32, 136 128bits-BLOCK1-SID-B-32, 128bits-BLOCK1-SID-ABR-32, 128bits-BLOCK2- 137 SID-C-16, 128bits-BLOCK2-SID-D-16>. 139 This segment list is selected/computed by a Path Computation Element 140 (PCE) system or a controller and the details are for further 141 discussion. 143 A new SID flavor is defined in this document to make the entire 144 segment list more compressible. 146 Block Swapping (BS) Flavor: it indicates that SRv6 SID Locator Block 147 will be swapped. And the information about the new block with 148 block's length is maintained in the local SID entry. 150 So in ABR, a 128bits-BLOCK1-ABR-32 SID with BS flavor is allocated. 151 It is within 128-bit SID with block1 and has BS Flavor, and the local 152 SID entry will swap BLOCK1 to BLOCK2. Thus, the next short 16 bit 153 SID can be stitched with BLOCK2 to generate a full 128 bit SID. With 154 the help of the BS flavor, the corresponding compressed segment list 155 could be <32bits-SID-A,32bits-SID-B,32bits-SID-ABR(BS), 16bits-SID-C, 156 16bits-SID-D>. 158 32bits-SID-A means this is a 32-bit compressed SID of node A. 160 32bits-SID-ABR(BS) means this is a 32-bit compressed SID of node ABR 161 with BS flavor. 163 At the headend S, the packet sent to node A is (SA,DA=BLOCK1+32bits- 164 SID-A)(16bits-SID-D, 16bits-SID-C, 32bits-SID-ABR, 32bits-SID-B, 165 32bits-SID-A; SL=3), i.e., only one single 128 segment entry is 166 needed in SRH. Note that SL=3 means there are three 32-bits segment 167 items within SRH remaining to be visited. 169 The packet sent from node A to node B is (SA,DA=BLOCK1+32bits-SID- 170 B)(16bits-SID-D, 16bits-SID-C, 32bits-SID-ABR, 32bits-SID-B, 32bits- 171 SID-A; SL=2). 173 The packet sent from B to ABR is (SA,DA=BLOCK1+32bits-SID- 174 ABR)(16bits-SID-D, 16bits-SID-C, 32bits-SID-ABR, 32bits-SID-B, 175 32bits-SID-A; SL=1). 177 When the packet arrives at ABR, it matches the local SID entry. The 178 endpoint behavior of that entry is END with BS Flavor, and the new 179 block with its block length is provided in the local SID entry. The 180 next short 16 bit SID can be retrieved from SRH and be stitched with 181 the new block to generate a full 128 bit SID to be copied to the DA 182 field. Thus, the packet sent from ABR to C could be 183 (SA,DA=BLOCK2+16bits-SID-C)(16bits-SID-D, 16bits-SID-C, 32bits-SID- 184 ABR, 32bits-SID-B, 32bits-SID-A; SL=1). Note that SL=1 means there 185 are one 16-bits segment items within SRH remaining to be visited. 187 Generally, multiple BS-flavored SIDs may be allocated on the boundary 188 node. For example, SID-12 with BS flavor indicates that SRv6 SID 189 Locator Block switches from BLOCK1 to BLOCK2, and SID-13 indicates 190 that SRv6 SID Locator Block switches from BLOCK1 to block3. 192 For the inter-AS scenario, END.X SID allocated for SR-EPE or a direct 193 link can also have BS flavor to indicate the new block information of 194 the next AS. 196 4. Control Plane Extensions 198 4.1. Extensions to BGP-LS 200 This document introduces an SRv6 SID Swapped Block Sub-TLV. It is an 201 optional TLV for use in the BGP-LS Attribute for an SRv6 SID NLRI and 202 as a sub-TLV of the SRv6 End.X, IS-IS SRv6 LAN End.X and OSPFv3 SRv6 203 LAN End.X TLVs [I-D.ietf-idr-bgpls-srv6-ext]. This TLV is validate 204 only when the SID has a BS flavor. 206 The TLV has the following format: 208 0 1 2 3 209 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 210 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 211 | Type | Length | 212 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 213 // Variable Swapped Block // 214 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 216 Figure 2: BGP-LS SRv6 SID Swapped Block Sub-TLV 218 Type: TBA 220 Length: 2 octet field, indicate the length of Swapped Block. 222 Swapped Block: This field encodes the advertised swapped block prefix 223 information. 225 4.2. Extensions to IGP 227 Different nodes in the same IGP domain may have different block 228 prefixes. So IGP extensions are also needed in this scenario. 230 4.2.1. Extensions to IS-IS 232 SID Swapped Block Sub-Sub-TLV is introduced in this document. It is 233 an optional Sub-Sub-TLV of SRv6 End SID Sub-TLV, SRv6 End.X SID Sub- 234 TLV and SRv6 LAN End.X SID Sub-TLV 235 [I-D.ietf-lsr-isis-srv6-extensions]. 237 0 1 2 3 238 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 239 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 240 | Type | Length | 241 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 242 // Variable Swapped Block // 243 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 245 Figure 3: ISIS SRv6 SID Swapped Block Sub-Sub-TLV 247 Type: TBA, 1 octets. 249 Length: 1 octet field, indicate the length of Swapped Block. 251 Swapped Block: This field encodes the advertised swapped block prefix 252 information. 254 4.2.2. Extensions to OSPFv3 256 SID Swapped Block Sub-TLV is introduced in this document. It is used 257 as an optional Sub-TLV of SRv6 End SID Sub-TLV, SRv6 End.X SID Sub- 258 TLV, SRv6 LAN End.X SID Sub-TLV 259 [I-D.ietf-lsr-ospfv3-srv6-extensions]. 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 | 265 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 266 // Variable Swapped Block // 267 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 269 Figure 4: OSPFv3 SRv6 SID Swapped Block Sub-Sub-TLV 271 Type: TBA, 2 octets. 273 Length: 2 octet field, indicate the length of Swapped Block. 275 Swapped Block: This field encodes the advertised swapped block prefix 276 information. 278 5. Security Considerations 280 TBD 282 6. IANA Considerations 284 6.1. BGP-LS SRv6 SID Swapped Block Sub-TLV 286 This document requests IANA to assign a new code point in the "BGP-LS 287 Node Descriptor, Link Descriptor, Prefix Descriptor, and Attribute 288 TLVs" sub-registry under the "Border Gateway Protocol - Link State 289 (BGP-LS) Parameters" registry. 291 Type: TBA 293 6.2. IS-IS SRv6 SID Swapped Block Sub-TLV 295 This document requests IANA to assign a new code point in the "Sub- 296 Sub-TLVs for SID Sub-TLVs" registry under the IS-IS registry. 298 Type: TBA 300 6.3. OSPFv3 SRv6 SID Swapped Block Sub-TLV 302 This document requests IANA to assign a new code point in the "OSPFv3 303 Extended-LSA Sub-TLVs" registry under the "Open Shortest Path First 304 v3 (OSPFv3) Parameters" registry. 306 Type: TBA 308 7. References 310 7.1. Normative References 312 [I-D.ietf-idr-bgpls-srv6-ext] 313 Dawra, G., Filsfils, C., Talaulikar, K., Chen, M., 314 daniel.bernier@bell.ca, d., and B. Decraene, "BGP Link 315 State Extensions for SRv6", draft-ietf-idr-bgpls- 316 srv6-ext-05 (work in progress), November 2020. 318 [I-D.ietf-lsr-isis-srv6-extensions] 319 Psenak, P., Filsfils, C., Bashandy, A., Decraene, B., and 320 Z. Hu, "IS-IS Extension to Support Segment Routing over 321 IPv6 Dataplane", draft-ietf-lsr-isis-srv6-extensions-11 322 (work in progress), October 2020. 324 [I-D.ietf-lsr-ospfv3-srv6-extensions] 325 Li, Z., Hu, Z., Cheng, D., Talaulikar, K., and P. Psenak, 326 "OSPFv3 Extensions for SRv6", draft-ietf-lsr- 327 ospfv3-srv6-extensions-01 (work in progress), August 2020. 329 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 330 Requirement Levels", BCP 14, RFC 2119, 331 DOI 10.17487/RFC2119, March 1997, 332 . 334 [RFC6554] Hui, J., Vasseur, JP., Culler, D., and V. Manral, "An IPv6 335 Routing Header for Source Routes with the Routing Protocol 336 for Low-Power and Lossy Networks (RPL)", RFC 6554, 337 DOI 10.17487/RFC6554, March 2012, 338 . 340 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 341 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 342 May 2017, . 344 [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., 345 Decraene, B., Litkowski, S., and R. Shakir, "Segment 346 Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, 347 July 2018, . 349 7.2. Informative References 351 [I-D.cl-spring-generalized-srv6-for-cmpr] 352 Cheng, W., Li, Z., Li, C., Clad, F., Aihua, L., Xie, C., 353 Liu, Y., and S. Zadok, "Generalized SRv6 Network 354 Programming for SRv6 Compression", draft-cl-spring- 355 generalized-srv6-for-cmpr-02 (work in progress), November 356 2020. 358 [I-D.ietf-spring-srv6-network-programming] 359 Filsfils, C., Camarillo, P., Leddy, J., Voyer, D., 360 Matsushima, S., and Z. Li, "SRv6 Network Programming", 361 draft-ietf-spring-srv6-network-programming-28 (work in 362 progress), December 2020. 364 [I-D.mirsky-6man-unified-id-sr] 365 Cheng, W., Mirsky, G., Peng, S., Aihua, L., and G. Mishra, 366 "Unified Identifier in IPv6 Segment Routing Networks", 367 draft-mirsky-6man-unified-id-sr-07 (work in progress), 368 July 2020. 370 Author's Address 372 Peng Shaofu 373 ZTE Corporation 375 Email: peng.shaofu@zte.com.cn