idnits 2.17.1 draft-cl-spring-generalized-srv6-for-cmpr-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 15 instances of too long lines in the document, the longest one being 17 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 seems to have RFC 2119 boilerplate text. -- The document date (May 18, 2020) is 1410 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 (-28) exists of draft-ietf-spring-srv6-network-programming-15 == Outdated reference: A later version (-16) exists of draft-filsfils-spring-net-pgm-extension-srv6-usid-04 == Outdated reference: A later version (-02) exists of draft-cheng-spring-shorter-srv6-sid-requirement-01 Summary: 1 error (**), 0 flaws (~~), 5 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 SPRING Working Group W. Cheng 3 Internet-Draft China Mobile 4 Intended status: Standards Track Z. Li 5 Expires: November 19, 2020 C. Li 6 Huawei Technologies 7 F. Clad 8 Cisco Systems, Inc 9 A. Liu 10 ZTE Corporation 11 C. Xie 12 China Telecom 13 Y. Liu 14 China Mobile 15 S. Zadok 16 Broadcom 18 May 18, 2020 20 Generalized SRv6 Network Programming for SRv6 Compression 21 draft-cl-spring-generalized-srv6-for-cmpr-00 23 Abstract 25 This document proposes Generalized Segment Routing over IPv6 (G-SRv6) 26 Networking Programming for SRv6 compression. 28 G-SRv6 can reduce the overhead of SRv6 by encoding the Generalized 29 SIDs(G-SID) in SID list, and it also supports to program SRv6 SIDs 30 and G-SIDs in a single SRH to support incremental deployment and 31 smooth upgrade. 33 G-SRv6 is fully compatible with SRv6 with no modification of SRH, no 34 new address consumption, no new route creation, and even no 35 modification of control plane. 37 Status of This Memo 39 This Internet-Draft is submitted in full conformance with the 40 provisions of BCP 78 and BCP 79. 42 Internet-Drafts are working documents of the Internet Engineering 43 Task Force (IETF). Note that other groups may also distribute 44 working documents as Internet-Drafts. The list of current Internet- 45 Drafts is at https://datatracker.ietf.org/drafts/current/. 47 Internet-Drafts are draft documents valid for a maximum of six months 48 and may be updated, replaced, or obsoleted by other documents at any 49 time. It is inappropriate to use Internet-Drafts as reference 50 material or to cite them other than as "work in progress." 52 This Internet-Draft will expire on November 19, 2020. 54 Copyright Notice 56 Copyright (c) 2020 IETF Trust and the persons identified as the 57 document authors. All rights reserved. 59 This document is subject to BCP 78 and the IETF Trust's Legal 60 Provisions Relating to IETF Documents 61 (https://trustee.ietf.org/license-info) in effect on the date of 62 publication of this document. Please review these documents 63 carefully, as they describe your rights and restrictions with respect 64 to this document. Code Components extracted from this document must 65 include Simplified BSD License text as described in Section 4.e of 66 the Trust Legal Provisions and are provided without warranty as 67 described in the Simplified BSD License. 69 Table of Contents 71 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 72 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 73 2.1. Requirements Language . . . . . . . . . . . . . . . . . . 4 74 3. Concepts of G-SRv6 . . . . . . . . . . . . . . . . . . . . . 4 75 3.1. G-SID . . . . . . . . . . . . . . . . . . . . . . . . . . 4 76 3.2. G-SID Container . . . . . . . . . . . . . . . . . . . . . 4 77 3.3. G-SID Index . . . . . . . . . . . . . . . . . . . . . . . 5 78 3.4. COC Flavor . . . . . . . . . . . . . . . . . . . . . . . 6 79 4. G-SRH . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 80 5. Packet Processing . . . . . . . . . . . . . . . . . . . . . . 8 81 6. Illustration . . . . . . . . . . . . . . . . . . . . . . . . 9 82 7. Benefits . . . . . . . . . . . . . . . . . . . . . . . . . . 11 83 8. Protocol Extensions Requirements . . . . . . . . . . . . . . 12 84 8.1. Data Plane . . . . . . . . . . . . . . . . . . . . . . . 12 85 8.2. Control Plane . . . . . . . . . . . . . . . . . . . . . . 12 86 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 87 10. Security Considerations . . . . . . . . . . . . . . . . . . . 13 88 11. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 13 89 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 13 90 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 91 13.1. Normative References . . . . . . . . . . . . . . . . . . 13 92 13.2. Informative References . . . . . . . . . . . . . . . . . 14 93 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 95 1. Introduction 97 Segment routing (SR) [RFC8402] is a source routing paradigm that 98 explicitly indicates the forwarding path for packets at the ingress 99 node by inserting an ordered list of instructions, called segments. 101 When segment routing is deployed on the IPv6 data plane, it is called 102 SRv6 [RFC8754]. For support of SR, a new routing header called 103 Segment Routing Header (SRH), which contains a list of SIDs and other 104 information, has been defined in [RFC8754]. In use cases like 105 Traffic Engineering, an ordered SID List with multiple SIDs is 106 inserted into the SRH to steer packets along an explicit path. 108 However, the size of SIDs (16 bytes per SID) in SRH proposes 109 challenges for packet processing and payload efficiency 110 [I-D.cheng-spring-shorter-srv6-sid-requirement]. In order to solve 111 this problem, this document proposes Generalized Segment Routing over 112 IPv6 (G-SRv6) Networking Programming. 114 G-SRv6 supports to encode multiple types of Segments in an SRH, 115 called Generalized SRH (G-SRH). The G-SRH can carry multiple SRv6 116 SID and G-SID containers in the SID list. A G-SID container may 117 include an SRv6 SID or multiple G-SIDs and optional padding. 119 This document also defines the mechanisms of G-SRv6 Networking 120 Programming and the requirements of related protocol extensions of 121 control plane and data plane. 123 2. Terminology 125 This document makes use of the terms defined in [RFC8754], [RFC8402] 126 and [RFC8200], and the reader is assumed to be familiar with that 127 terminology. This document introduces the following terms: 129 Compressible SRv6 SID: It is the 128-bit SRv6 SID whose format can be 130 compressed. It is composed by Common Prefix and Generalized Segment 131 Identifier (G-SID) and optional arguments and padding. 133 Common Prefix: It is the same prefix shared by multiple SIDs. 135 G-SRv6: Generalized SRv6 Network Programming 137 G-SRH: Generalized Segment Routing Header. It keeps the same format 138 and code point with original SRH, which can carry multiple G-SIDs and 139 original SIDs. 141 G-SID: Generalized Segment Identifier. 143 G-SID Container: Generalized Segment Identifier Container. 145 2.1. Requirements Language 147 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 148 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 149 "OPTIONAL" in this document are to be interpreted as described in BCP 150 14 [RFC2119] [RFC8174] when, and only when, they appear in all 151 capitals, as shown here. 153 3. Concepts of G-SRv6 155 This section describes the concepts of G-SRv6. 157 3.1. G-SID 159 In an SRv6 domain, the SIDs are allocated from an address block, 160 called SID space. Therefore, the SIDs allocated from the same SID 161 space share the common prefix. Also, if the length of the SID is 162 less than 128 bits, then padding is required. In an SID List, the 163 common prefix and padding are redundant. Reducing the redundant 164 information can reduce the overhead of SRv6. 166 This document defines a Generalized SID (G-SID) to carry the 167 different part of the original SRv6 SID in the SRH to reduce the size 168 of the SRH. The G-SID can be a 32-bits value following the common 169 prefix in the original SRv6 SID. An SRv6 SID with this format is 170 called compressible SRv6 SID. The format of a compressible SRv6 SID 171 with 32-bits G-SID is shown in Figure 1. 173 0 Variable Length 32 bits 128 bits 174 +--------------------------------------------------------------+ 175 | Common Prefix | G-SID | Args/padding | 176 +--------------------------------------------------------------+ 177 |<-------- Locator ----------------->| 179 Figure 1. 32 bits G-SID in SRv6 SID 181 In order to indicate the format of the SRv6 SID is compressible, 182 control plane extension is required. This is out of scope of this 183 document, and will be described in other documents. 185 3.2. G-SID Container 187 In order to align with 128 bits, a 128 bit G-SID Container is 188 defined. A G-SID Container is a 128 bits value, and it may contain 189 different type of SIDs: 191 o an SRv6 SID: A G-SID Container contains a single SRv6 SID. 193 o A Micro SID Carrier: A G-SID Container contains a Micro SID 194 carrier [I-D.filsfils-spring-net-pgm-extension-srv6-usid]. 196 o Multiple G-SIDs: A G-SID Container contains multiple G-SIDs and 197 optional padding. When G-SID is a 32-bits value, a G-SID 198 Container can consist of 4 G-SIDs. If the length of G-SIDs in a 199 G-SID Container is less than 128 bits, then padding is required. 201 0 1 2 3 202 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 203 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 204 | G-SID 0 | 205 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 206 | G-SID 1 | 207 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 208 | G-SID 2 | 209 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 210 | G-SID 3 | 211 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 212 (a) 214 0 1 2 3 215 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 216 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 217 | Padding | 218 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 219 | Padding | 220 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 221 | G-SID 0 | 222 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 223 | G-SID 1 | 224 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 225 (b) 227 Figure 2. G-SID Container for Compression 229 3.3. G-SID Index 231 In order to locate the G-SID within the G-SID Container, this section 232 defines Generalized SID Index (SI) to indicate the location of the 233 G-SID within the current G-SID Container. 235 SI is a location argument of the G-SID, which is the least bits in 236 the argument part. When G-SID is a 32 bits value, the SI is the 237 least 2 bits in Argument. 239 0 Variable Length 32 bits 128 bits 240 +--------------------------------------------------------------+ 241 | Common Prefix | G-SID |SI| Padding | 242 +--------------------------------------------------------------+ 244 Figure 4. SI in the IPv6 DA 246 3.4. COC Flavor 248 In order to indicate the SRv6 compression processing, updating the 249 next 32-bits G-SID to the IPv6 DA, this section defines COC(Continue 250 of Compression) Flavor. 252 When a node receives an SID with COC Flavor, it indicates to update 253 the G-SID part in IPv6 DA with the next 32 bits G-SID. 255 When a node receives an SID without COC Flavor, the node processes 256 the packet as a normal SRv6 packet 257 [I-D.ietf-spring-srv6-network-programming], for example, update the 258 IPv6 DA with the next 128 bits SID if SL >0. 260 Therefore, if the behavior of the last G-SID in the G-SID list has no 261 COC Flavor, then the next 128 bits SID will be updated to the DA, so 262 it indicates the end of the compression sub-path. 264 4. G-SRH 266 G-SRH supports to encode different types of segment in a single SRH 267 without modifying the encapsulation format of SRH. 269 When an SRv6 path travels normal SRv6 nodes and compressed SRv6 270 nodes, the SRv6 SID and G-SIDs can be encoded in a single G-SRH. 272 For easier understanding, this document assumes that the Compressible 273 SRv6 SID consists of 64 bits common prefix and 32 bits G-SID. The 274 encoding can be shown as follows. 276 0 1 2 3 277 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 278 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 279 | Next Header | Hdr Ext Len | Routing Type | Segments Left| 280 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 281 | Last Entry | Flag | Tag | 282 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 283 | Other G-SID Container | 284 . ... . 285 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ --- 286 | Optional Padding | 287 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 288 | G-SID 0 | G-SID Container 0 289 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 290 . ... . ... 291 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 292 | G-SID 3 | 293 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ --- 294 | G-SID 0 | 295 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 296 | G-SID 1 | 297 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 298 | G-SID 2 | G-SID Container j 299 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 300 | G-SID 3 | 301 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ --- 302 | Common Prefix | 303 | | 304 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ G-SID Container k 305 | G-SID 0 | 306 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 307 | Padding | 308 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ --- 309 | ... | 310 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 311 | | 312 | Generalized Segment List[n] (128 bits SRv6 SID) | 313 | | 314 | | 315 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 316 // Optional Type Length Value objects (variable) // 317 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 319 Figure 3. G-SRH for SRv6 Compression 321 Where: 323 o Common Prefix: the common prefix shared by the Compressible SRv6 324 SIDs in the current compression sub-path. Usually, it is the 325 prefix of the SID space, called Locator Block in control plane 326 [I-D.ietf-spring-srv6-network-programming]. Operators are free to 327 configure the length and the value of the common prefix based on 328 the address planning of their networking. 330 o G-SID: 32-bits Generalized SID. 332 o Padding: Must be zero. When the length of G-SIDs within the G-SID 333 Container is less than 128 bits, then padding is needed. 335 5. Packet Processing 337 This section describes the pseudo code of COC Flavor, and it replaces 338 the S13 and S14 of End, End.X, and End.T's pseudo code 339 [I-D.ietf-spring-srv6-network-programming]. The pseudo code is shown 340 below. 342 When N receives a packet whose IPv6 DA is S and S is a local SID with 343 COC Flavor, N does: 345 1. If (DA.SI != 0) { //ref1 346 2. Decrement DA.SI by 1. 347 3. } Else { 348 4. Decrement Segments Left by 1. 349 5. Set DA.SI to 3 in the IPv6 Destination Address 350 6. } 351 7. Copy Segment List[Segments Left][DA.SI] into the bits //ref2 352 [B..B+31] of the IPv6 Destination Address. 354 o Ref1: an SID with COC flavor indicates the SRv6 compression 355 processing that the node needs to update the next 32 bits G-SID to 356 the IPv6 DA. 358 * When the SI is greater than 0, the next G-SID is the next G-SID 359 in the current G-SID Container. 361 * Otherwise, the next G-SID is the first G-SID in the next G-SID 362 Container. 364 o Ref2: B is the length of the Locator Block 365 [I-D.ietf-spring-srv6-network-programming]. 367 An SID without COC Flavor will be processed following the SRv6 368 processing. The node will update the next 128 bit SID to the IPv6 DA 369 if the SL > 0. 371 6. Illustration 373 This section describes a simple example of G-SRv6 for compression. 375 The reference topology is shown below. 377 *--------------------* 378 * SRv6 Domain * 379 * * 380 Tenant10 CE1--0-1-2-3-4-5-6-7-8-9-10--CE2 Tenant10 381 * * 382 *--------------------* 384 Figure 5. Reference topology 386 Nodes 0 - 10 are G-SRv6 enabled nodes within the SRv6 domain, and 387 node 0 is the ingress node of the G-SRv6 path while the node 10 is 388 the egress node. 390 Nodes CE1 and CE2 are tenants of VPN 10, and they are outside of the 391 SRv6 domain. 393 In order to ease the reading of the example, this section introduces 394 a simplified SID allocation schema. 396 o 2001:db8::/64 is dedicated to the internal SRv6 SID space, which 397 is the common prefix for the SIDs as well. 399 o Node k has 2001:db8:0:0:k::/80 for its local SID space. Its SIDs 400 will be explicitly allocated from that block. 402 o 2001:db8:0:0:k:1:: represents the End.X SID with COC allocated by 403 node K, and it is associated with interface N of node K. For 404 instance, 2001:db8:0:0:1:1:: represents the End.X with COC flavor 405 allocated by node 1. 407 o 2001:db8:0:0:k:2:: represents the End.X SID without COC allocated 408 by node K, and it is associated with interface N of node K. For 409 instance, 2001:db8:0:0:1:2:: represents the End.X without COC 410 flavor allocated by node 1. 412 o 2001:db8:0:0:10:10:: is an END.DT4 SID initiated by node 10, which 413 is associated with the VRF10. 415 Therefore, the SID 2001:db8:0:0:1:1::, 2001:db8:0:0:2:1::, 416 2001:db8:0:0:3:1::, 2001:db8:0:0:4:1::, 2001:db8:0:0:5:1::, 417 2001:db8:0:0:6:1::, 2001:db8:0:0:7:1::, 2001:db8:0:0:8:1:: are SRv6 418 End.X SIDs with COC Flavor, and 2001:db8:0:0:9:2:: is a Compressible 419 SRv6 End.X SID. 421 The SID list [2001:db8:0:0:1:1::, 2001:db8:0:0:2:1::, 422 2001:db8:0:0:3:1::, 2001:db8:0:0:4:1::, 2001:db8:0:0:5:1::, 423 2001:db8:0:0:6:1::, 2001:db8:0:0:7:1::, 2001:db8:0:0:8:1::, 424 2001:db8:0:0:9:2::, 2001:db8:0:0:10:10::] is calculated for a strict 425 TE path from Node 1 to Node 10 for the VPN traffic of tenant 10. 427 In G-SRv6, the SID list can be encoded as [2:1, 3:1, 4:1, 5:1, 6:1, 428 7:1, 8:1, 9:2, 2001:db8:0:0:10:10::] in reduced mode. The G-SID 429 Container encoding is shown below. 431 0 1 2 3 432 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 433 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ---- 434 | | 435 | 2001:db8:0:0:10:10:: | G-SID Container 0 436 | | 437 | | 438 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ---- 439 | 9:2 | 440 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 441 | 8:1 | 442 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ G-SID Container 1 443 | 7:1 | 444 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 445 | 6:1 | 446 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ---- 447 | 5:1 | 448 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 449 | 4:1 | 450 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ G-SID Container 2 451 | 3:1 | 452 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 453 | 2:1 | 454 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ---- 456 Figure 6. G-SID Container Encoding for G-SRv6 458 The packets forwarding procedures: 460 o Node 0 sends the SRv6 packet with G-SRH to the node 1.The SL is 3. 461 The Active SID in IPv6 DA is 2001:db8:0:0:1:1::. 463 o When node 1 receives the packet, the IPv6 DA is 464 2001:db8:0:0:1:1::, which is a Local End.X with COC Flavor SID. 466 The SRH.SL is 3, and DA.SI is 0. The node processes the packet: 467 SL = SL-1,DA.SI =3, pointing to the next G-SID 2:1, and updates 468 SRH[SL=2][DA.SI=3] to the IPv6 DA[CP:CP+31], where CP is the 469 length of the common prefix. The packet is forwarded with the new 470 IPv6 DA 2001:db8:0:0:2:1:C::, to the node 2. 472 o When node 2 receives the packet, the IPv6 DA is 473 2001:db8:0:0:2:1:C::, which is a Local End.X with COC Flavor SID. 474 The SRH.SL is 2, and DA.SI is 3. The node processes the packet: 475 DA.SI --, pointing to the next G-SID 3:1, and updates 476 SRH[SL=2][DA.SI=2] to the IPv6 DA[CP:CP+31]. The packet is 477 forwarded with the new IPv6 DA 2001:db8:0:0:3:1:8::, to the node 478 3. 480 o Similar to node 1 and 2, the node 3,4,5,6,7,8 process the packet 481 and forward with the new IPv6 DA. 483 o When node 9 receives the packet, the IPv6 DA is 484 2001:db8:0:0:9:2::, which is a Local End.X SID. The SRH.SL is 1. 485 The node updates the next SID 2001:db8:0:0:10:10:: to the IPv6 DA 486 and forwards the packet to the node 10. 488 o Node 10 receives the packet, and the IPv6 DA is an VPN SID 489 allocated by itself, the node processes the SRv6 VPN SID. 491 This illustration shows that 70 % overhead of SID list is removed in 492 G-SRv6(10 x 16 Bytes to 3 x 16 Bytes), also, it shows the 493 capabilities of encoding G-SIDs and SRv6 SIDs in a single G-SRH. 495 7. Benefits 497 o G-SRv6 is fully compatible with SRv6 499 * No SRH encapsulation modification. 501 * No new address consumption: Compressible SRv6 SIDs can be 502 allocated from the Locator allocated to the node. 504 * No new route advertisements: Compressible SRv6 SIDs can share 505 the same locator with the normal SRv6 SID. 507 * No control plane modification: Controller can install the SR 508 policy with 128-bits G-SID Containers, G-SRv6 capable nodes 509 understand the COC flavor behaviors, while Compression disable 510 SRv6 nodes are unaware of Compression. 512 * No security policy modification: can reuse the Locator with 513 SRv6 SIDs 515 o G-SRv6 reduces the SRv6 encapsulation size. 517 * 128 bits to 32 bits, up to 75 % overhead is reduced. More 518 overhead is reduced when the G-SID is 16-bits value. 520 o G-SRv6 has efficient address consumption and easy to deploy 522 * Operators are free to allocate an SID space from their address 523 space. 525 o G-SRv6 supports incremental deployments, which can be deployed on 526 demand. 528 8. Protocol Extensions Requirements 530 This section describes the protocol extension requirements. 532 8.1. Data Plane 534 REQ1-01: An SRv6 compression path can be represented as a G-SID 535 Container list consists of a compressible SRv6 SID and G-SID 536 Containers. 538 REQ1-02: A G-SID Container consists of at most 4 (32-bits) G-SIDs, if 539 the number of G-SID is less than 4, then padding is required to align 540 with 128 bits. 542 REQ1-03: If the first Compressible SRv6 SID is copied to the IPv6 DA, 543 then following G-SIDs should be updated to the IPv6 DA by the nodes 544 along the SRv6 compression sub-path accordingly. 546 REQ1-04: The last G-SID in the G-SID Container for the SRv6 547 compression sub-path is the a G-SID without COC flavor. 549 REQ1-05: When process the G-SID with COC flavor in the IPv6 DA, the 550 next G-SID is updated to the IPv6 DA. 552 8.2. Control Plane 554 REQ1-11: ISIS/OSPF/BGP-LS/PCEP extensions for advertising the 555 capabilities of supporting G-SRv6 for SRv6 compression. 557 REQ1-12: ISIS/OSPF/BGP-LS/BGP extensions for advertising Compressible 558 SRv6 SIDs. 560 REQ1-13: ISIS/OSPF/BGP-LS/BGP extensions for advertising the 561 Continue-of-compression(COC) flavor SID. 563 REQ1-21: BGP SR Policy extensions for programming a G-SRv6 path 564 combining with Compressible SRv6 SIDs and SRv6 SIDs. 566 REQ1-31: PCEP SR Policy extensions for programming a G-SRv6 path 567 combining with G-SIDs and SRv6 SIDs. 569 REQ1-32: PCEP extensions for programming a G-SRv6 path combining with 570 G-SIDs and SRv6 SIDs. 572 9. IANA Considerations 574 TBD 576 10. Security Considerations 578 TBD 580 11. Contributors 582 TBD 584 12. Acknowledgements 586 13. References 588 13.1. Normative References 590 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 591 Requirement Levels", BCP 14, RFC 2119, 592 DOI 10.17487/RFC2119, March 1997, 593 . 595 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 596 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 597 May 2017, . 599 [RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6 600 (IPv6) Specification", STD 86, RFC 8200, 601 DOI 10.17487/RFC8200, July 2017, 602 . 604 [RFC8754] Filsfils, C., Ed., Dukes, D., Ed., Previdi, S., Leddy, J., 605 Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header 606 (SRH)", RFC 8754, DOI 10.17487/RFC8754, March 2020, 607 . 609 [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., 610 Decraene, B., Litkowski, S., and R. Shakir, "Segment 611 Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, 612 July 2018, . 614 [I-D.ietf-spring-srv6-network-programming] 615 Filsfils, C., Camarillo, P., Leddy, J., Voyer, D., 616 Matsushima, S., and Z. Li, "SRv6 Network Programming", 617 draft-ietf-spring-srv6-network-programming-15 (work in 618 progress), March 2020. 620 13.2. Informative References 622 [I-D.filsfils-spring-net-pgm-extension-srv6-usid] 623 Filsfils, C., Camarillo, P., Cai, D., Voyer, D., Meilik, 624 I., Patel, K., Henderickx, W., Jonnalagadda, P., and D. 625 Melman, "Network Programming extension: SRv6 uSID 626 instruction", draft-filsfils-spring-net-pgm-extension- 627 srv6-usid-04 (work in progress), February 2020. 629 [I-D.cheng-spring-shorter-srv6-sid-requirement] 630 Cheng, W., Xie, C., Pang, R., Li, Z., Chen, R., Lijun, L., 631 Duan, X., and G. Mirsky, "Shorter SRv6 SID Requirements", 632 draft-cheng-spring-shorter-srv6-sid-requirement-01 (work 633 in progress), March 2020. 635 Authors' Addresses 637 Weiqiang Cheng 638 China Mobile 639 No.32 Xuanwumen west street 640 Beijing 100053 641 China 643 Email: chengweiqiang@chinamobile.com 645 Zhenbin Li 646 Huawei Technologies 647 Huawei Campus, No. 156 Beiqing Rd. 648 Beijing 100095 649 China 651 Email: lizhenbin@huawei.com 652 Cheng Li 653 Huawei Technologies 654 Huawei Campus, No. 156 Beiqing Rd. 655 Beijing 100095 656 China 658 Email: c.l@huawei.com 660 Francois Clad 661 Cisco Systems, Inc 662 France 664 Email: fclad@cisco.com 666 Aihua Liu 667 ZTE Corporation 668 Shenzhen 669 China 671 Email: liu.aihua@zte.com.cn 673 Chongfeng Xie 674 China Telecom 675 Technology Innovation park, Changping District 676 Beijing 677 China 679 Email: xiechf.bri@chinatelecom.cn 681 Yisong Liu 682 China Mobile 683 No.32 Xuanwumen west street 684 Beijing 686 Email: liuyisong@chinamobile.com 688 Shay Zadok 689 Broadcom 690 Israel 692 Email: shay.zadok@broadcom.com