idnits 2.17.1 draft-cheng-lsr-isis-srv6-sid-block-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 2 instances of lines with control characters in the document. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (April 8, 2022) is 742 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 (-19) exists of draft-ietf-lsr-isis-srv6-extensions-18 -- Possible downref: Non-RFC (?) normative reference: ref. 'ISO10589' == Outdated reference: A later version (-26) exists of draft-ietf-lsr-flex-algo-18 Summary: 1 error (**), 0 flaws (~~), 3 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 Network Working Group W. Cheng 2 Internet Draft W. Jiang 3 Intended status: Standards Track China Mobile 4 Expires: October 8, 2022 C. Lin 5 M. Chen 6 New H3C Technologies 7 L. Gong 8 China Mobile 9 Y.Liu 10 ZTE Corporation 11 April 8, 2022 13 IS-IS Extension to Advertise SRv6 SIDs using SID Block 14 draft-cheng-lsr-isis-srv6-sid-block-00 16 Abstract 18 This document proposes a simplified method to advertise SRv6 SIDs in 19 IS-IS. The SRv6 SID Block is composed of a number of continuous SIDs 20 within the address range of a Locator. When a SID is assigned from 21 the SID Block, it is described by an index based on the SID Block, 22 instead of the whole 128-bit IPv6 address. 24 Status of this Memo 26 This Internet-Draft is submitted in full conformance with the 27 provisions of BCP 78 and BCP 79. 29 Internet-Drafts are working documents of the Internet Engineering 30 Task Force (IETF), its areas, and its working groups. Note that 31 other groups may also distribute working documents as Internet- 32 Drafts. 34 Internet-Drafts are draft documents valid for a maximum of six 35 months and may be updated, replaced, or obsoleted by other documents 36 at any time. It is inappropriate to use Internet-Drafts as 37 reference material or to cite them other than as "work in progress." 39 The list of current Internet-Drafts can be accessed at 40 http://www.ietf.org/ietf/1id-abstracts.txt 42 The list of Internet-Draft Shadow Directories can be accessed at 43 http://www.ietf.org/shadow.html 45 This Internet-Draft will expire on October 8, 2022. 47 Copyright Notice 49 Copyright (c) 2022 IETF Trust and the persons identified as the 50 document authors. All rights reserved. 52 This document is subject to BCP 78 and the IETF Trust's Legal 53 Provisions Relating to IETF Documents 54 (http://trustee.ietf.org/license-info) in effect on the date of 55 publication of this document. Please review these documents 56 carefully, as they describe your rights and restrictions with 57 respect to this document. Code Components extracted from this 58 document must include Simplified BSD License text as described in 59 Section 4.e of the Trust Legal Provisions and are provided without 60 warranty as described in the Simplified BSD License. 62 Table of Contents 64 1. Introduction ................................................ 2 65 1.1. Requirements Language .................................. 3 66 2. SRv6 SID Block sub-TLV ...................................... 4 67 3. SRv6 End.X SID Index sub-TLV ................................ 5 68 4. SRv6 LAN End.X SID Index sub-TLV ............................ 6 69 5. SRv6 End SID Index sub-TLV .................................. 7 70 6. Computations of SID Index ................................... 8 71 7. Rule-based SID Block for Large-Scale End.X SID Advertisement. 9 72 8. Security Considerations .................................... 12 73 9. IANA Considerations ........................................ 13 74 10. References ................................................ 13 75 10.1. Normative References ................................. 13 76 10.2. Informative References ............................... 13 77 11. Acknowledgments ........................................... 14 78 Authors' Addresses ............................................ 15 80 1. Introduction 82 The Segment Routing (SR) allows for a flexible definition of end-to- 83 end paths by encoding paths as sequences of topological sub-paths, 84 called "segments". As defined in [RFC8402] and [RFC8986], an SRv6 85 Segment Identifier (SID) is an IPv6 address explicitly associated 86 with the segment and consists of Locator, Function and Argument 87 parts. 89 [I-D.ietf-lsr-isis-srv6-extensions] defines the SRv6 End SID sub- 90 TLV, the SRv6 End.X SID sub-TLV, and the SRv6 LAN End.X SID sub-TLV 91 in IS-IS. 93 The SRv6 End SID sub-TLV is used to advertise an SRv6 SID with 94 Endpoint behaviors which do not require a particular neighbor. The 95 SRv6 End SID sub-TLV is used to advertise an SRv6 SID associated 96 with a point to point adjacency. The SRv6 LAN End.X SID sub-TLV sub- 97 TLV is used to advertise an SRv6 SID associated with a LAN 98 adjacency. Each of these sub-TLVs contains a complete 128-bit SID 99 and the sub-TLV length is quite long. 101 Multiple SRv6 End.X SIDs can be associated with the same point to 102 point adjacency or the same physical LAN neighbor. Each SID is 103 advertised in a single SRv6 End.X SID sub-TLV or SRv6 LAN End.X SID 104 sub-TLV. These SIDs are possibly associated to the same Locator, 105 therefore the main differences among the sub-TLVs may be a few bits 106 in the Function part of SID and the Endpoint Behavior value 107 indicating different flavors. 109 The number of End.X SIDs has a positive correlation with the number 110 of neighbors. Assume that, each neighbor is assigned with End.X 111 SIDs, and each End.X behavior has several different flavors, such as 112 PSP, USP, USD, no PSP/USP/USD, etc. Then, the number of End.X SIDs 113 will be at least the number of neighbors multiplied by the number of 114 flavors. 116 If Flexible-Algorithm is applied on SRv6 forwarding plane as defined 117 in [I-D.ietf-lsr-flex-algo], a node generally advertises a Flex- 118 Algorithm specific locator for each Flex-Algorithm it participates 119 in and also advertises associated SRv6 END.X SIDs for every link 120 that has not been pruned from the Flex-Algorithm computation. 122 There may be other scenarios in which the number of End.X SIDs is 123 quite large. Under these circumstances, advertising SRv6 SIDs needs 124 considerable amounts of IS-IS LSPs and may be a burden of IS-IS 125 nodes. 127 This document proposes a simplified method to advertise SRv6 SIDs in 128 IS-IS. A number of continuous SIDs are assigned within the address 129 range of a Locator, which is defined as the SRv6 SID Block. When a 130 SID is assigned from the block, it is described by an index based on 131 the block, instead of the whole 128-bit IPv6 address. 133 1.1. Requirements Language 135 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 136 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 137 "OPTIONAL" in this document are to be interpreted as described in 138 BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all 139 capitals, as shown here. 141 2. SRv6 SID Block sub-TLV 143 An SRv6 SID Block is composed of a number of continuous SIDs within 144 the address range of a Locator. When any SID assigned in an SRv6 SID 145 Block is advertised in IS-IS, the new sub-TLVs defined in this 146 document SHOULD be used, instead of the SRv6 End SID sub-TLV, the 147 SRv6 End.X SID sub-TLV, and the SRv6 LAN End.X SID sub-TLV defined 148 in [I-D.ietf-lsr-isis-srv6-extensions]. 150 The SRv6 SID Block sub-TLV is defined in this document to advertise 151 an SRv6 SID Block. This new sub-TLV is carried in the SRv6 Locator 152 TLV defined in [I-D.ietf-lsr-isis-srv6-extensions]. 154 The SRv6 SID Block sub-TLV has the following format: 156 0 1 2 3 157 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 158 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 159 | Type | Length | 160 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 161 | Block-ID | Offset | 162 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 163 | Start SID (128 bits) . . . | 164 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 165 | Start SID (cont . . .) | 166 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 167 | Start SID (cont . . .) | 168 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 169 | Start SID (cont . . .) | 170 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 171 | End SID (128 bits) . . . | 172 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 173 | End SID (cont . . .) | 174 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 175 | End SID (cont . . .) | 176 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 177 | End SID (cont . . .) | 178 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 179 |Sub-sub-tlv-len| Sub-sub-TLVs (variable) . . . | 180 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 182 o Type: TBD. 184 o Length: variable. 186 o Block-ID: 1 octet. Identity of the advertised SRv6 SID Block. It 187 MUST be unique in a node. 189 o Offset: 1 octet. Number of shifting bits for the index of SIDs in 190 this block. 192 o Start SID: 16 octets. The smallest SID in this block. 194 o End SID: 16 octets. The largest SID in this block. 196 o Sub-sub-tlv-len: 1 octet. Number of octets used by sub-sub-TLVs. 198 o Optional Sub-sub-TLVs. 200 The address range of an SRv6 SID Block, indicated by the Start SID 201 and the End SID, must be covered by the associated Locator. Multiple 202 SRv6 SID Blocks can be associated to the same Locator, and their 203 address ranges should not overlap. 205 3. SRv6 End.X SID Index sub-TLV 207 [I-D.ietf-lsr-isis-srv6-extensions] defines SRv6 End.X SID sub-TLV 208 to advertise an SRv6 SID associated with a point to point adjacency. 209 If such SID is assigned in an SRv6 SID Block, it must be advertised 210 by SRv6 End.X SID Index sub-TLV instead. 212 The SRv6 End.X SID Index sub-TLV has the following format: 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 | Type | Length | 218 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 219 | Flags | Algorithm | Weight | 220 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 221 | Block-ID | Index Num | Index Length | 222 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 223 | Index 0 (variable) | Endpoint Behavior 0 | 224 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 225 | Index 1 (variable) | Endpoint Behavior 1 | 226 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 227 ~ ... ~ 228 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 229 | Index Num-1 (variable) | Endpoint Behavior Num-1 | 230 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 232 o Type: TBD. 234 o Length: variable. 236 o Flags: 1 octet. Same as the Flags field in SRv6 End.X SID sub- 237 TLV. 239 o Algorithm: 1 octet. Same as the Algorithm field in SRv6 End.X SID 240 sub-TLV. 242 o Weight: 1 octet. Same as the Weight field in SRv6 End.X SID sub- 243 TLV. 245 o Block-ID: 1 octet. Indicating the associated SRv6 SID Block in 246 which the SIDs are assigned. 248 o Index Num: 1 octet. Number of the following indexes. 250 o Index Length: 1 octet. Number of octets used by a single index. 252 o Index N: variable. Index of a SID in the SRv6 SID Block. 254 o Endpoint Behavior N: 2 octets. Behavior of the SID indicated by 255 the preceding Index N field. Same as the Endpoint Behavior field 256 in SRv6 End.X SID sub-TLV. 258 The SRv6 End.X SID Index sub-TLV can carry multiple SIDs which are 259 assigned in an SRv6 SID Block identified by the Block-ID. These SIDs 260 are indicated by the indexes in the SRv6 SID Block, instead of the 261 whole 128-bit IPv6 addresses. They share the same Flags, Algorithm 262 and Weight, but their Endpoint Behavior can be different. 264 The conversion from 128-bit SID into index, or vice versa, is 265 described in Section 6. 267 4. SRv6 LAN End.X SID Index sub-TLV 269 The SRv6 LAN End.X SID Index sub-TLV is used to advertise SRv6 SIDs 270 associated with a LAN adjacency, as substitution of the SRv6 LAN 271 End.X SID sub-TLV for SID Block. The main difference from the SRv6 272 End.X SID Index sub-TLV is that the SRv6 LAN End.X SID Index sub-TLV 273 has to include the System ID of the physical neighbor on the LAN 274 with which the SRv6 SIDs are associated. 276 The SRv6 LAN End.X SID Index sub-TLV has the following format: 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 | Neighbor System-ID (ID length octets) | 284 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 285 | Flags | Algorithm | Weight | 286 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 287 | Block-ID | Index Num | Index Length | 288 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 289 | Index 0 (variable) | Endpoint Behavior 0 | 290 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 291 | Index 1 (variable) | Endpoint Behavior 1 | 292 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 293 ~ ... ~ 294 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 295 | Index Num-1 (variable) | Endpoint Behavior Num-1 | 296 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 298 o Type: TBD. 300 o Length: variable. 302 o Neighbor System-ID: IS-IS System-ID of length "ID Length" as 303 defined in [ISO10589]. Same as the Neighbor System-ID field in 304 SRv6 LAN End.X SID sub-TLV. 306 o Flags, Algorithm, Weight, Block-ID, Index Num, Index Length, 307 Index N, Endpoint Behavior N: Same with the corresponding fields 308 in SRv6 End.X SID Index sub-TLV. 310 5. SRv6 End SID Index sub-TLV 312 [I-D.ietf-lsr-isis-srv6-extensions] defines SRv6 End SID sub-TLV to 313 advertise SRv6 End SID. If such SID is assigned in an SRv6 SID 314 Block, it must be advertised by SRv6 End SID Index sub-TLV instead. 316 0 1 2 3 317 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 318 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 319 | Type | Length | Flags | 320 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 321 | Block-ID | Index Num | Index Length | 322 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 323 | Index 0 (variable) | Endpoint Behavior 0 | 324 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 325 | Index 1 (variable) | Endpoint Behavior 1 | 326 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 327 ~ ... ~ 328 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 329 | Index Num-1 (variable) | Endpoint Behavior Num-1 | 330 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 332 o Type: TBD. 334 o Length: variable. 336 o Flags: 1 octet. Same as the Flags field in SRv6 End SID sub-TLV. 338 o Block-ID: 1 octet. Indicating the associated SRv6 SID Block in 339 which the SIDs are assigned. 341 o Index Num: 1 octet. Number of the following indexes. 343 o Index Length: 1 octet. Number of octets used by a single index. 345 o Index N: variable. Index of a SID in the SRv6 SID Block. 347 o Endpoint Behavior N: 2 octets. Behavior of the SID indicating by 348 the preceding Index N field. Used as the same as the Endpoint 349 Behavior field in SRv6 End SID sub-TLV. 351 6. Computations of SID Index 353 When a SID is assigned from a SRv6 SID Block, its index can be 354 computed in the following way: 356 Index = (SID - Start SID) right shift Offset bits 358 When a node receives any of the above-mentioned SID Index sub-TLVs, 359 along with the SRv6 SID Block sub-TLV, it can convert the index to 360 SID in the following way: 362 SID = (Index left shift Offset bits) + Start SID 364 7. Rule-based SID Block for Large-Scale End.X SID Advertisement 366 In this section, the rule-based SID Block is proposed to achieve 367 greater compressibility for End.X SID advertisements in massive 368 End.X SIDs scenarios. 370 Three new sub-TLVs are defined: the Rule-based End.X SID Block sub- 371 TLV, the Rule-based End.X SID Index sub-TLV or the Rule-based LAN 372 End.X SID Index sub-TLV. 374 The Rule-based End.X SID Block sub-TLV advertises a SID Block, along 375 with the rule for assigning a series of End.X SIDs with different 376 flavors in the SID Block. The Rule-based End.X SID Index sub-TLV or 377 the Rule-based LAN End.X SID Index sub-TLV advertises a start index 378 in the SID Block, indicating that End.X SIDs with different flavors 379 are assigned following the start index: , , ..., . N is 382 equal to (Behavior Num - 1). 384 The Rule-based End.X SID Block sub-TLV has the following format: 386 0 1 2 3 387 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 388 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 389 | Type | Length | 390 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 391 | Block-ID | Offset | 392 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 393 | Start SID (128 bits) . . . | 394 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 395 | Start SID (cont . . .) | 396 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 397 | Start SID (cont . . .) | 398 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 399 | Start SID (cont . . .) | 400 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 401 | End SID (128 bits) . . . | 402 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 403 | End SID (cont . . .) | 404 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 405 | End SID (cont . . .) | 406 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 407 | End SID (cont . . .) | 408 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 409 | Flags | Algorithm | Weight | Behavior Num | 410 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 411 | Endpoint Behavior 0 | Endpoint Behavior 1 | 412 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 413 ~ ... ~ 414 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 415 ~ ... | Endpoint Behavior (Num-1) | 416 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 417 |Sub-sub-tlv-len| Sub-sub-TLVs (variable) . . . | 418 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 420 o Type: TBD. 422 o Length: variable. 424 o Block-ID: 1 octet. Identity of the advertised SRv6 SID Block. It 425 MUST be unique in a node. 427 o Offset: 1 octet. Number of shifting bits for the index of SIDs in 428 this block. 430 o Start SID: 16 octets. The smallest SID in this block. 432 o End SID: 16 octets. The largest SID in this block. 434 o Flags: 1 octet. Same as the Flags field in SRv6 End.X SID sub-TLV 435 or SRv6 LAN End.X SID sub-TLV. SIDs assigned in the same rule- 436 based SID Block share the same Flags. 438 o Algorithm: 1 octet. Same as the Algorithm field in SRv6 End.X SID 439 sub-TLV or SRv6 LAN End.X SID sub-TLV. SIDs assigned in the same 440 rule-based SID Block share the same Algorithm. 442 o Weight: 1 octet. Same as the Weight field in SRv6 End.X SID sub- 443 TLV or SRv6 LAN End.X SID sub-TLV. SIDs assigned in the same 444 rule-based SID Block share the same Weight. 446 o Behavior Num: 1 octet. Number of End.X SIDs with different 447 flavors for the same neighbor. 449 o Endpoint Behavior N: 2 octets. Behavior of the Nth End.X SID. 450 Endpoint Behavior 0 to (Num-1) specify a series of End.X SIDs 451 with different flavors. 453 o Sub-sub-tlv-len: 1 octet. Number of octets used by sub-sub-TLVs. 455 o Optional Sub-sub-TLVs. 457 The Rule-based End.X SID Index sub-TLV has the following format: 459 0 1 2 3 460 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 461 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 462 | Type | Length | 463 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 464 | Block-ID | Index Length | Start Index (variable) ~ 465 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 467 o Type: TBD. 469 o Length: variable. 471 o Block-ID: 1 octet. Indicating the associated Rule-based SID Block 472 in which the SIDs are assigned. 474 o Index Length: 1 octet. Number of octets used by the following 475 Start Index filed. 477 o Start Index: variable. Index of the first SID in the Rule-based 478 SID Block. 480 The Rule-based LAN End.X SID Index sub-TLV has the following format: 482 0 1 2 3 483 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 484 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 485 | Type | Length | | 486 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 487 | Neighbor System-ID (ID length octets) | 488 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 489 | Block-ID | Index Length | Start Index (variable) ~ 490 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 492 o Type: TBD. 494 o Length: variable. 496 o Neighbor System-ID: IS-IS System-ID of length "ID Length" as 497 defined in [ISO10589]. Same as the Neighbor System-ID field in 498 SRv6 LAN End.X SID sub-TLV. 500 o Block-ID: 1 octet. Indicating the associated Rule-based SID Block 501 in which the SIDs are assigned. 503 o Index Length: 1 octet. Number of octets used by the following 504 Start Index filed. 506 o Start Index: variable. Index of the first SID in the Rule-based 507 SID Block. 509 8. Security Considerations 511 TBD 513 9. IANA Considerations 515 Type Description 516 ---- --------------------------------- 517 TBD SRv6 SID Block sub-TLV 518 TBD SRv6 End.X SID Index sub-TLV 519 TBD SRv6 LAN End.X SID Index sub-TLV 520 TBD SRv6 End SID Index sub-TLV 521 TBD Rule-based End.X SID Block sub-TLV 522 TBD Rule-based End.X SID Index sub-TLV 523 TBD Rule-based LAN End.X SID Index sub-TLV 525 10. References 527 10.1. Normative References 529 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 530 Requirement Levels", BCP 14, RFC 2119, March 1997. 532 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 533 2119 Key Words", BCP 14, RFC 8174, May 2017 535 [I-D.ietf-lsr-isis-srv6-extensions] Psenak, P., Filsfils, C., 536 Bashandy, A., Decraene, B., and Z. Hu, "IS-IS Extensions 537 to Support Segment Routing over IPv6 Dataplane", draft- 538 ietf-lsr-isis-srv6-extensions-18 (work in progress), 539 October 2021. 541 [ISO10589] International Organization for Standardization, 542 "Intermediate system to Intermediate system intra-domain 543 routeing information exchange protocol for use in 544 conjunction with the protocol for providing the 545 connectionless-mode Network Service (ISO 8473)", Nov 2002. 547 10.2. Informative References 549 [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., 550 Decraene, B., Litkowski, S., and R. Shakir, "Segment 551 Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, 552 July 2018, . 554 [RFC8986] Filsfils, C., Ed., Camarillo, P., Ed., Leddy, J., Voyer, 555 D., Matsushima, S., and Z. Li, "Segment Routing over IPv6 556 (SRv6) Network Programming", RFC 8986, DOI 557 10.17487/RFC8986, February 2021, . 560 [I-D.ietf-lsr-flex-algo] Psenak, P., Hegde, S., Filsfils, C., 561 Talaulikar, K., and A. Gulko, "IGP Flexible Algorithm", 562 draft-ietf-lsr-flex-algo-18 (work in progress), October 563 2021. 565 11. Acknowledgments 567 The authors would like to thank the following for their valuable 568 contributions of this document: 570 TBD 572 Authors' Addresses 574 Weiqiang Cheng 575 China Mobile 577 Email: chengweiqiang@chinamobile.com 579 Wenying Jiang 580 China Mobile 582 Email: jiangwenying@chinamobile.com 584 Changwang Lin 585 New H3C Technologies 587 Email: linchangwang.04414@h3c.com 589 Mengxiao Chen 590 New H3C Technologies 592 Email: chen.mengxiao@h3c.com 594 Liyan Gong 595 China Mobile 597 Email: gongliyan@chinamobile.com 599 Yao Liu 600 ZTE Corporation 602 Email: liu.yao71@zte.com.cn