idnits 2.17.1 draft-cl-spring-generalized-srv6-for-cmpr-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 15 instances of too long lines in the document, the longest one being 17 characters in excess of 72. ** The abstract seems to contain references ([I-D.filsfilscheng-spring-srv6-srh-comp-sl-enc]), which it shouldn't. Please replace those with straight textual mentions of the documents in question. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (May 20, 2020) is 1436 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 (-03) exists of draft-filsfilscheng-spring-srv6-srh-comp-sl-enc-01 == Outdated reference: A later version (-16) exists of draft-filsfils-spring-net-pgm-extension-srv6-usid-07 == Outdated reference: A later version (-02) exists of draft-cheng-spring-shorter-srv6-sid-requirement-01 == Outdated reference: A later version (-19) exists of draft-ietf-lsr-isis-srv6-extensions-08 Summary: 2 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 W. Cheng 3 Internet-Draft China Mobile 4 Intended status: Standards Track Z. Li 5 Expires: November 21, 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 17 May 20, 2020 19 Generalized SRv6 Network Programming for SRv6 Compression 20 draft-cl-spring-generalized-srv6-for-cmpr-01 22 Abstract 24 This document proposes Generalized Segment Routing over IPv6 (G-SRv6) 25 Networking Programming for SRv6 compression. 27 G-SRv6 can reduce the overhead of SRv6 by encoding the Generalized 28 SIDs(G-SID) in SID list, and it also supports to program SRv6 SIDs 29 and G-SIDs in a single SRH to support incremental deployment and 30 smooth upgrade. 32 G-SRv6 is fully compatible with SRv6 with no modification of SRH, no 33 new address consumption, no new route creation, and even no 34 modification of control plane. 36 G-SRv6 for Compression is designed based on the Compressed SRv6 37 Segment List Encoding in SRH 38 [I-D.filsfilscheng-spring-srv6-srh-comp-sl-enc] framework. 40 Status of This Memo 42 This Internet-Draft is submitted in full conformance with the 43 provisions of BCP 78 and BCP 79. 45 Internet-Drafts are working documents of the Internet Engineering 46 Task Force (IETF). Note that other groups may also distribute 47 working documents as Internet-Drafts. The list of current Internet- 48 Drafts is at https://datatracker.ietf.org/drafts/current/. 50 Internet-Drafts are draft documents valid for a maximum of six months 51 and may be updated, replaced, or obsoleted by other documents at any 52 time. It is inappropriate to use Internet-Drafts as reference 53 material or to cite them other than as "work in progress." 55 This Internet-Draft will expire on November 21, 2020. 57 Copyright Notice 59 Copyright (c) 2020 IETF Trust and the persons identified as the 60 document authors. All rights reserved. 62 This document is subject to BCP 78 and the IETF Trust's Legal 63 Provisions Relating to IETF Documents 64 (https://trustee.ietf.org/license-info) in effect on the date of 65 publication of this document. Please review these documents 66 carefully, as they describe your rights and restrictions with respect 67 to this document. Code Components extracted from this document must 68 include Simplified BSD License text as described in Section 4.e of 69 the Trust Legal Provisions and are provided without warranty as 70 described in the Simplified BSD License. 72 Table of Contents 74 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 75 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 76 2.1. Requirements Language . . . . . . . . . . . . . . . . . . 4 77 3. Concepts of G-SRv6 . . . . . . . . . . . . . . . . . . . . . 4 78 3.1. G-SID . . . . . . . . . . . . . . . . . . . . . . . . . . 4 79 3.2. G-SID Container . . . . . . . . . . . . . . . . . . . . . 5 80 3.3. G-SID Index . . . . . . . . . . . . . . . . . . . . . . . 6 81 3.4. COC Flavor . . . . . . . . . . . . . . . . . . . . . . . 6 82 4. G-SRH . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 83 5. Packet Processing . . . . . . . . . . . . . . . . . . . . . . 9 84 6. Illustration . . . . . . . . . . . . . . . . . . . . . . . . 10 85 7. Benefits . . . . . . . . . . . . . . . . . . . . . . . . . . 12 86 8. Protocol Extensions Requirements . . . . . . . . . . . . . . 13 87 8.1. Data Plane . . . . . . . . . . . . . . . . . . . . . . . 13 88 8.2. Control Plane . . . . . . . . . . . . . . . . . . . . . . 14 89 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 90 10. Security Considerations . . . . . . . . . . . . . . . . . . . 15 91 11. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 15 92 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 15 93 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 15 94 13.1. Normative References . . . . . . . . . . . . . . . . . . 15 95 13.2. Informative References . . . . . . . . . . . . . . . . . 16 96 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17 98 1. Introduction 100 Segment routing (SR) [RFC8402] is a source routing paradigm that 101 explicitly indicates the forwarding path for packets at the ingress 102 node by inserting an ordered list of instructions, called segments. 104 When segment routing is deployed on the IPv6 data plane, it is called 105 SRv6 [RFC8754]. For support of SR, a new routing header called 106 Segment Routing Header (SRH), which contains a list of SIDs and other 107 information, has been defined in [RFC8754]. In use cases like 108 Traffic Engineering, an ordered SID List with multiple SIDs is 109 inserted into the SRH to steer packets along an explicit path. 111 However, the size of SIDs (16 bytes per SID) in SRH proposes 112 challenges for packet processing and payload efficiency 113 [I-D.cheng-spring-shorter-srv6-sid-requirement]. In order to solve 114 this problem, this document proposes Generalized Segment Routing over 115 IPv6 (G-SRv6) Networking Programming for SRv6 compression. 117 G-SRv6 supports to encode multiple types of Segments in an SRH, 118 called Generalized SRH (G-SRH). In SRv6 Compression, the G-SRH can 119 carry multiple SRv6 SID and G-SID(Generalized Segment Identifier) 120 containers in the SID list. A G-SID container may include an SRv6 121 SID or multiple G-SIDs and optional padding. A G-SID can be a 122 32-bits value of the original SRv6 SID, which contains the node ID 123 and function ID. By carrying G-SIDs instead of 128 bits SRv6 SID, 124 the problem of SRv6 header size can be solved, and the solution is 125 compatible with SRv6. 127 2. Terminology 129 This document makes use of the terms defined in [RFC8754], [RFC8402] 130 and [RFC8200], and the reader is assumed to be familiar with that 131 terminology. This document introduces the following terms: 133 Compressible SRv6 SID: It is the 128-bit SRv6 SID whose format can be 134 compressed. It is composed by Common Prefix and Generalized Segment 135 Identifier (G-SID) and optional arguments and padding. 137 Common Prefix: It is the same prefix shared by multiple SIDs. 139 G-SRv6: Generalized SRv6 Network Programming 141 G-SRH: Generalized Segment Routing Header. It keeps the same format 142 and code point with original SRH, which can carry multiple G-SIDs and 143 original SIDs. 145 G-SID: Generalized Segment Identifier.It is a Compressed SID(C-SID) 146 [I-D.filsfilscheng-spring-srv6-srh-comp-sl-enc]. 148 G-SID Container: Generalized Segment Identifier Container.It is a 149 C-SID container [I-D.filsfilscheng-spring-srv6-srh-comp-sl-enc]. 151 2.1. Requirements Language 153 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 154 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 155 "OPTIONAL" in this document are to be interpreted as described in BCP 156 14 [RFC2119] [RFC8174] when, and only when, they appear in all 157 capitals, as shown here. 159 3. Concepts of G-SRv6 161 This section describes the concepts of G-SRv6. 163 3.1. G-SID 165 In an SRv6 domain, the SIDs are allocated from an address block, 166 called SID space. Therefore, the SIDs allocated from the same SID 167 space share the common prefix. Also, if the length of the SID is 168 less than 128 bits, then padding is required. In an SID List, the 169 common prefix and padding are redundant. Reducing the redundant 170 information can reduce the overhead of SRv6. 172 This document defines a Generalized SID (G-SID) to carry the 173 different part of the original SRv6 SID in the SRH to reduce the size 174 of the SRH. The G-SID can be a 32-bits value following the common 175 prefix in the original SRv6 SID. An SRv6 SID with this format is 176 called compressible SRv6 SID. The format of a compressible SRv6 SID 177 with 32-bits G-SID is shown in Figure 1. 179 0 Variable Length 32 bits 128 bits 180 +--------------------------------------------------------------+ 181 | Common Prefix | G-SID | Args/padding | 182 +--------------------------------------------------------------+ 183 |<-------- Locator ----------------->| 185 Figure 1. 32 bits G-SID in SRv6 SID 187 In order to indicate the format of the SRv6 SID is compressible, 188 control plane extension may be considered. This is out of scope of 189 this document, and can be described in other documents. 191 3.2. G-SID Container 193 In order to align with 128 bits, a 128 bit G-SID Container is 194 defined. A G-SID Container is a 128 bits value, and it may contain 195 different type of SIDs: 197 o an SRv6 SID: A G-SID Container contains a single SRv6 SID. 199 o A Micro SID Carrier: A G-SID Container contains a Micro SID 200 carrier [I-D.filsfils-spring-net-pgm-extension-srv6-usid]. 202 o Multiple G-SIDs: A G-SID Container contains multiple G-SIDs and 203 optional padding. When G-SID is a 32-bits value, a G-SID 204 Container can consist of 4 G-SIDs. If the length of G-SIDs in a 205 G-SID Container is less than 128 bits, then padding is required. 207 0 1 2 3 208 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 209 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 210 | G-SID 0 | 211 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 212 | G-SID 1 | 213 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 214 | G-SID 2 | 215 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 216 | G-SID 3 | 217 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 218 (a) 220 0 1 2 3 221 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 222 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 223 | Padding | 224 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 225 | Padding | 226 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 227 | G-SID 0 | 228 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 229 | G-SID 1 | 230 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 231 (b) 233 Figure 2. G-SID Container for Compression 235 3.3. G-SID Index 237 In order to locate the G-SID within the G-SID Container, this section 238 defines Generalized SID Index (SI) to indicate the location of the 239 G-SID within the current G-SID Container. 241 SI is a location argument of the G-SID, which is the least bits in 242 the argument part. When G-SID is a 32 bits value, the SI is the 243 least 2 bits in Argument. 245 0 Variable Length 32 bits 128 bits 246 +--------------------------------------------------------------+ 247 | Common Prefix | G-SID |SI| Padding | 248 +--------------------------------------------------------------+ 250 Figure 4. SI in the IPv6 DA 252 3.4. COC Flavor 254 In order to indicate the SRv6 compression processing, updating the 255 next 32-bits G-SID to the IPv6 DA, this section defines COC(Continue 256 of Compression) Flavor. 258 When a node receives an SID with COC Flavor, it indicates to update 259 the G-SID part in IPv6 DA with the next 32 bits G-SID. 261 When a node receives an SID without COC Flavor, the node processes 262 the packet as a normal SRv6 packet 263 [I-D.ietf-spring-srv6-network-programming], for example, update the 264 IPv6 DA with the next 128 bits SID if SL >0. 266 Therefore, if the behavior of the last G-SID in the G-SID list has no 267 COC Flavor, then the next 128 bits SID will be updated to the DA, so 268 it indicates the end of the compression sub-path. 270 When COC Flavor applies to END, END.X and END.T, the SIDs can be 271 advertised via the IS-IS [I-D.ietf-lsr-isis-srv6-extensions], and the 272 SRv6 SID Structure Sub-Sub-TLV MUST be carried to indicate the format 273 of the SRv6 SID. The Locator.Block length indicates the length of 274 the common prefix, and the G-SID is the following 32-bits value after 275 the Block, which contains the Node ID and Function ID. 277 4. G-SRH 279 G-SRH supports to encode different types of segment in a single SRH 280 without modifying the encapsulation format of SRH. 282 When an SRv6 path travels normal SRv6 nodes and compressed SRv6 283 nodes, the SRv6 SID and G-SIDs can be encoded in a single G-SRH. 285 For easier understanding, this document assumes that the Compressible 286 SRv6 SID consists of 64 bits common prefix and 32 bits G-SID. The 287 encoding can be shown as follows. 289 0 1 2 3 290 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 291 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 292 | Next Header | Hdr Ext Len | Routing Type | Segments Left| 293 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 294 | Last Entry | Flag | Tag | 295 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 296 | Other G-SID Container | 297 . ... . 298 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ --- 299 | Optional Padding | 300 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 301 | G-SID 0 | G-SID Container 0 302 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 303 . ... . ... 304 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 305 | G-SID 3 | 306 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ --- 307 | G-SID 0 | 308 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 309 | G-SID 1 | 310 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 311 | G-SID 2 | G-SID Container j 312 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 313 | G-SID 3 | 314 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ --- 315 | Common Prefix | 316 | | 317 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ G-SID Container k 318 | G-SID 0 | 319 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 320 | Padding | 321 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ --- 322 | ... | 323 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 324 | | 325 | Generalized Segment List[n] (128 bits SRv6 SID) | 326 | | 327 | | 328 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 329 // Optional Type Length Value objects (variable) // 330 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 332 Figure 3. G-SRH for SRv6 Compression 334 Where: 336 o Common Prefix: the common prefix shared by the Compressible SRv6 337 SIDs in the current compression sub-path. Usually, it is the 338 prefix of the SID space, called Locator Block in control plane 339 [I-D.ietf-spring-srv6-network-programming]. Operators are free to 340 configure the length and the value of the common prefix based on 341 the address planning of their networking. 343 o G-SID: 32-bits Generalized SID. 345 o Padding: Must be zero. When the length of G-SIDs within the G-SID 346 Container is less than 128 bits, then padding is needed. 348 5. Packet Processing 350 This section describes the pseudo code of COC Flavor, and it replaces 351 the S13 and S14 of End, End.X, and End.T's pseudo code 352 [I-D.ietf-spring-srv6-network-programming]. The pseudo code is shown 353 below. 355 When N receives a packet whose IPv6 DA is S and S is a local SID with 356 COC Flavor, N does: 358 1. If (DA.SI != 0) { //ref1 359 2. Decrement DA.SI by 1. 360 3. } Else { 361 4. Decrement Segments Left by 1. 362 5. Set DA.SI to 3 in the IPv6 Destination Address 363 6. } 364 7. Copy Segment List[Segments Left][DA.SI] into the bits //ref2 365 [B..B+31] of the IPv6 Destination Address. 367 o Ref1: an SID with COC flavor indicates the SRv6 compression 368 processing that the node needs to update the next 32 bits G-SID to 369 the IPv6 DA. 371 * When the SI is greater than 0, the next G-SID is the next G-SID 372 in the current G-SID Container. 374 * Otherwise, the next G-SID is the first G-SID in the next G-SID 375 Container. 377 o Ref2: B is the length of the Locator Block 378 [I-D.ietf-spring-srv6-network-programming]. 380 An SID without COC Flavor will be processed following the SRv6 381 processing. The node will update the next 128 bit SID to the IPv6 DA 382 if the SL > 0. 384 6. Illustration 386 This section describes a simple example of G-SRv6 for compression. 388 The reference topology is shown below. 390 *--------------------* 391 * SRv6 Domain * 392 * * 393 Tenant10 CE1--0-1-2-3-4-5-6-7-8-9-10--CE2 Tenant10 394 * * 395 *--------------------* 397 Figure 5. Reference topology 399 Nodes 0 - 10 are G-SRv6 enabled nodes within the SRv6 domain, and 400 node 0 is the ingress node of the G-SRv6 path while the node 10 is 401 the egress node. 403 Nodes CE1 and CE2 are tenants of VPN 10, and they are outside of the 404 SRv6 domain. 406 In order to ease the reading of the example, this section introduces 407 a simplified SID allocation schema. 409 o 2001:db8::/64 is dedicated to the internal SRv6 SID space, which 410 is the common prefix for the SIDs as well. 412 o Node k has 2001:db8:0:0:k::/80 for its local SID space. Its SIDs 413 will be explicitly allocated from that block. 415 o 2001:db8:0:0:k:1:: represents the End.X SID with COC allocated by 416 node K, and it is associated with interface N of node K. For 417 instance, 2001:db8:0:0:1:1:: represents the End.X with COC flavor 418 allocated by node 1. 420 o 2001:db8:0:0:k:2:: represents the End.X SID without COC allocated 421 by node K, and it is associated with interface N of node K. For 422 instance, 2001:db8:0:0:1:2:: represents the End.X without COC 423 flavor allocated by node 1. 425 o 2001:db8:0:0:10:10:: is an END.DT4 SID initiated by node 10, which 426 is associated with the VRF10. 428 Therefore, the SID 2001:db8:0:0:1:1::, 2001:db8:0:0:2:1::, 429 2001:db8:0:0:3:1::, 2001:db8:0:0:4:1::, 2001:db8:0:0:5:1::, 430 2001:db8:0:0:6:1::, 2001:db8:0:0:7:1::, 2001:db8:0:0:8:1:: are SRv6 431 End.X SIDs with COC Flavor, and 2001:db8:0:0:9:2:: is a Compressible 432 SRv6 End.X SID. 434 The SID list [2001:db8:0:0:1:1::, 2001:db8:0:0:2:1::, 435 2001:db8:0:0:3:1::, 2001:db8:0:0:4:1::, 2001:db8:0:0:5:1::, 436 2001:db8:0:0:6:1::, 2001:db8:0:0:7:1::, 2001:db8:0:0:8:1::, 437 2001:db8:0:0:9:2::, 2001:db8:0:0:10:10::] is calculated for a strict 438 TE path from Node 1 to Node 10 for the VPN traffic of tenant 10. 440 In G-SRv6, the SID list can be encoded as [2:1, 3:1, 4:1, 5:1, 6:1, 441 7:1, 8:1, 9:2, 2001:db8:0:0:10:10::] in reduced mode. The G-SID 442 Container encoding is shown below. 444 0 1 2 3 445 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 446 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ---- 447 | | 448 | 2001:db8:0:0:10:10:: | G-SID Container 0 449 | | 450 | | 451 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ---- 452 | 9:2 | 453 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 454 | 8:1 | 455 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ G-SID Container 1 456 | 7:1 | 457 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 458 | 6:1 | 459 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ---- 460 | 5:1 | 461 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 462 | 4:1 | 463 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ G-SID Container 2 464 | 3:1 | 465 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 466 | 2:1 | 467 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ---- 469 Figure 6. G-SID Container Encoding for G-SRv6 471 The packets forwarding procedures: 473 o Node 0 sends the SRv6 packet with G-SRH to the node 1.The SL is 3. 474 The Active SID in IPv6 DA is 2001:db8:0:0:1:1::. 476 o When node 1 receives the packet, the IPv6 DA is 477 2001:db8:0:0:1:1::, which is a Local End.X with COC Flavor SID. 479 The SRH.SL is 3, and DA.SI is 0. The node processes the packet: 480 SL = SL-1,DA.SI =3, pointing to the next G-SID 2:1, and updates 481 SRH[SL=2][DA.SI=3] to the IPv6 DA[CP:CP+31], where CP is the 482 length of the common prefix. The packet is forwarded with the new 483 IPv6 DA 2001:db8:0:0:2:1:C::, to the node 2. 485 o When node 2 receives the packet, the IPv6 DA is 486 2001:db8:0:0:2:1:C::, which is a Local End.X with COC Flavor SID. 487 The SRH.SL is 2, and DA.SI is 3. The node processes the packet: 488 DA.SI --, pointing to the next G-SID 3:1, and updates 489 SRH[SL=2][DA.SI=2] to the IPv6 DA[CP:CP+31]. The packet is 490 forwarded with the new IPv6 DA 2001:db8:0:0:3:1:8::, to the node 491 3. 493 o Similar to node 1 and 2, the node 3,4,5,6,7,8 process the packet 494 and forward with the new IPv6 DA. 496 o When node 9 receives the packet, the IPv6 DA is 497 2001:db8:0:0:9:2::, which is a Local End.X SID. The SRH.SL is 1. 498 The node updates the next SID 2001:db8:0:0:10:10:: to the IPv6 DA 499 and forwards the packet to the node 10. 501 o Node 10 receives the packet, and the IPv6 DA is an VPN SID 502 allocated by itself, the node processes the SRv6 VPN SID. 504 This illustration shows that 70 % overhead of SID list is removed in 505 G-SRv6(10 x 16 Bytes to 3 x 16 Bytes), also, it shows the 506 capabilities of encoding G-SIDs and SRv6 SIDs in a single G-SRH. 508 7. Benefits 510 o G-SRv6 is fully compatible with SRv6 512 * No SRH encapsulation modification. 514 * No new address consumption: Compressible SRv6 SIDs can be 515 allocated from the Locator allocated to the node. 517 * No new route advertisements: Compressible SRv6 SIDs can share 518 the same locator with the normal SRv6 SID. 520 * No security policy modification: when reusing the Locator with 521 SRv6 SIDs, no security policy need to be updated. 523 * No control plane modification: Controller can install the SR 524 policy with 128-bits G-SID Containers, and the ingress treats 525 the G-SID Container as an opaque 128-bits SID without 526 understanding the structure of it. G-SRv6 capable nodes 527 understand the COC flavor behaviors, while Compression disable 528 SRv6 nodes are unaware of Compression. 530 o G-SRv6 reduces the SRv6 encapsulation size. 532 * 128 bits to 32 bits, up to 75 % overhead is reduced. More 533 overhead is reduced when the G-SID is a 16-bits value. 535 o G-SRv6 has efficient address consumption and easy to deploy 537 * Operators are free to allocate an SID space from their address 538 space. 540 * No affect of networking(i.e. routes and ACL security policies) 541 by using the existing Locator to allocate compressible SRv6 542 SIDs. 544 o G-SRv6 is hardware friendly 546 * Same SRv6 processing flow with a new IPv6 DA update method 548 * Leverages the mature hardware capabilities (DA update, DA 549 longest match) 551 * Avoids extra lookup in indexed mapping table 553 o G-SRv6 supports incremental deployments, which can be deployed on 554 demand. 556 8. Protocol Extensions Requirements 558 This section describes the protocol extension requirements. 560 8.1. Data Plane 562 REQ1-01: An SRv6 compression path can be represented as a G-SID 563 Container list consists of a compressible SRv6 SID and G-SID 564 Containers. 566 REQ1-02: A G-SID Container consists of at most 4 (32-bits) G-SIDs, if 567 the number of G-SID is less than 4, then padding is required to align 568 with 128 bits. 570 REQ1-03: If the first Compressible SRv6 SID is copied to the IPv6 DA, 571 then following G-SIDs should be updated to the IPv6 DA by the nodes 572 along the SRv6 compression sub-path accordingly. 574 REQ1-04: The last G-SID in the G-SID Container for the SRv6 575 compression sub-path is the a G-SID without COC flavor. 577 REQ1-05: When process the G-SID with COC flavor in the IPv6 DA, the 578 next G-SID is updated to the IPv6 DA. 580 8.2. Control Plane 582 REQ1-11: ISIS/OSPF/BGP-LS/PCEP extensions for advertising the 583 capabilities of supporting G-SRv6 for SRv6 compression. 585 REQ1-12: ISIS/OSPF/BGP-LS/BGP extensions for advertising Compressible 586 SRv6 SIDs. 588 REQ1-13: ISIS/OSPF/BGP-LS/BGP extensions for advertising the 589 Continue-of-compression(COC) flavor SID. 591 REQ1-21: BGP SR Policy extensions for programming a G-SRv6 path 592 combining with Compressible SRv6 SIDs and SRv6 SIDs. 594 REQ1-31: PCEP SR Policy extensions for programming a G-SRv6 path 595 combining with G-SIDs and SRv6 SIDs. 597 REQ1-32: PCEP extensions for programming a G-SRv6 path combining with 598 G-SIDs and SRv6 SIDs. 600 9. IANA Considerations 602 This document requests IANA to allocate the following codepoints for 603 COC flavor behaviors within the "SRv6 Endpoint Behaviors" sub- 604 registry under the top-level "Segment Routing Parameters" registry. 606 +-------+--------+----------------------------+-----------+ 607 | Value | Hex | Endpoint behavior | Reference | 608 +-------+--------+----------------------------+-----------+ 609 | 101 | 0x0065 | End with COC | [This.ID] | 610 | 102 | 0x0066 | End with PSP&COC | [This.ID] | 611 | 104 | 0x0068 | End with PSP&USP&COC | [This.ID] | 612 | 105 | 0x0069 | End.X with COC | [This.ID] | 613 | 106 | 0x006A | End.X with PSP&COC | [This.ID] | 614 | 108 | 0x006C | End.X with PSP&USP&COC | [This.ID] | 615 | 109 | 0x006D | End.T with COC | [This.ID] | 616 | 110 | 0x006E | End.T with PSP&COC | [This.ID] | 617 | 112 | 0x0070 | End.T with PSP&USP&COC | [This.ID] | 618 | 130 | 0x0082 | End with PSP&USD&COC | [This.ID] | 619 | 131 | 0x0083 | End with PSP&USP&USD&COC | [This.ID] | 620 | 133 | 0x0085 | End.X with PSP&USD&COC | [This.ID] | 621 | 135 | 0x0087 | End.X with PSP&USP&USD&COC | [This.ID] | 622 | 137 | 0x0089 | End.T with PSP&USD&COC | [This.ID] | 623 | 139 | 0x008B | End.T with PSP&USP&USD&COC | [This.ID] | 624 +-------+--------+----------------------------+-----------+ 625 Table 1: IETF - SRv6 Endpoint Behaviors 627 10. Security Considerations 629 The security considerations described in [RFC8754], and [RFC8402] are 630 applicable to this specification. No additional security measure is 631 required. 633 11. Contributors 635 TBD 637 12. Acknowledgements 639 TBD 641 13. References 643 13.1. Normative References 645 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 646 Requirement Levels", BCP 14, RFC 2119, 647 DOI 10.17487/RFC2119, March 1997, 648 . 650 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 651 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 652 May 2017, . 654 [RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6 655 (IPv6) Specification", STD 86, RFC 8200, 656 DOI 10.17487/RFC8200, July 2017, 657 . 659 [RFC8754] Filsfils, C., Ed., Dukes, D., Ed., Previdi, S., Leddy, J., 660 Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header 661 (SRH)", RFC 8754, DOI 10.17487/RFC8754, March 2020, 662 . 664 [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., 665 Decraene, B., Litkowski, S., and R. Shakir, "Segment 666 Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, 667 July 2018, . 669 [I-D.ietf-spring-srv6-network-programming] 670 Filsfils, C., Camarillo, P., Leddy, J., Voyer, D., 671 Matsushima, S., and Z. Li, "SRv6 Network Programming", 672 draft-ietf-spring-srv6-network-programming-15 (work in 673 progress), March 2020. 675 [I-D.filsfilscheng-spring-srv6-srh-comp-sl-enc] 676 Cheng, W., Filsfils, C., Li, Z., Cai, D., Voyer, D., Clad, 677 F., Shay, S., Guichard, J., and L. Aihua, "Compressed SRv6 678 Segment List Encoding in SRH", draft-filsfilscheng-spring- 679 srv6-srh-comp-sl-enc-01 (work in progress), May 2020. 681 13.2. Informative References 683 [I-D.filsfils-spring-net-pgm-extension-srv6-usid] 684 Filsfils, C., Camarillo, P., Cai, D., Voyer, D., Meilik, 685 I., Patel, K., Henderickx, W., Jonnalagadda, P., Melman, 686 D., Liu, Y., and J. Guichard, "Network Programming 687 extension: SRv6 uSID instruction", draft-filsfils-spring- 688 net-pgm-extension-srv6-usid-07 (work in progress), May 689 2020. 691 [I-D.cheng-spring-shorter-srv6-sid-requirement] 692 Cheng, W., Xie, C., Pang, R., Li, Z., Chen, R., Lijun, L., 693 Duan, X., and G. Mirsky, "Shorter SRv6 SID Requirements", 694 draft-cheng-spring-shorter-srv6-sid-requirement-01 (work 695 in progress), March 2020. 697 [I-D.ietf-lsr-isis-srv6-extensions] 698 Psenak, P., Filsfils, C., Bashandy, A., Decraene, B., and 699 Z. Hu, "IS-IS Extension to Support Segment Routing over 700 IPv6 Dataplane", draft-ietf-lsr-isis-srv6-extensions-08 701 (work in progress), April 2020. 703 Authors' Addresses 705 Weiqiang Cheng(editor) 706 China Mobile 707 No.32 Xuanwumen west street 708 Beijing 100053 709 China 711 Email: chengweiqiang@chinamobile.com 713 Zhenbin Li 714 Huawei Technologies 715 Huawei Campus, No. 156 Beiqing Rd. 716 Beijing 100095 717 China 719 Email: lizhenbin@huawei.com 721 Cheng Li(editor) 722 Huawei Technologies 723 Huawei Campus, No. 156 Beiqing Rd. 724 Beijing 100095 725 China 727 Email: c.l@huawei.com 729 Francois Clad 730 Cisco Systems, Inc 731 France 733 Email: fclad@cisco.com 735 Aihua Liu 736 ZTE Corporation 737 Shenzhen 738 China 740 Email: liu.aihua@zte.com.cn 741 Chongfeng Xie 742 China Telecom 743 Technology Innovation park, Changping District 744 Beijing 745 China 747 Email: xiechf.bri@chinatelecom.cn 749 Yisong Liu 750 China Mobile 751 No.32 Xuanwumen west street 752 Beijing 754 Email: liuyisong@chinamobile.com 756 Shay Zadok 757 Broadcom 758 Israel 760 Email: shay.zadok@broadcom.com