idnits 2.17.1 draft-ietf-lsr-isis-srv6-extensions-03.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 22 instances of too long lines in the document, the longest one being 3 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 date (October 3, 2019) is 1666 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 (-26) exists of draft-ietf-6man-segment-routing-header-23 == Outdated reference: A later version (-28) exists of draft-ietf-spring-srv6-network-programming-03 -- Possible downref: Non-RFC (?) normative reference: ref. 'ISO10589' Summary: 1 error (**), 0 flaws (~~), 3 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Networking Working Group P. Psenak, Ed. 3 Internet-Draft C. Filsfils 4 Intended status: Standards Track Cisco Systems 5 Expires: April 5, 2020 A. Bashandy 6 Arrcus 7 B. Decraene 8 Orange 9 Z. Hu 10 Huawei Technologies 11 October 3, 2019 13 IS-IS Extension to Support Segment Routing over IPv6 Dataplane 14 draft-ietf-lsr-isis-srv6-extensions-03.txt 16 Abstract 18 Segment Routing (SR) allows for a flexible definition of end-to-end 19 paths by encoding paths as sequences of topological sub-paths, called 20 "segments". Segment routing architecture can be implemented over an 21 MPLS data plane as well as an IPv6 data plane. This draft describes 22 the IS-IS extensions required to support Segment Routing over an IPv6 23 data plane. 25 Requirements Language 27 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 28 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 29 "OPTIONAL" in this document are to be interpreted as described in BCP 30 14 [RFC2119] [RFC8174] when, and only when, they appear in all 31 capitals, as shown here. 33 Status of This Memo 35 This Internet-Draft is submitted in full conformance with the 36 provisions of BCP 78 and BCP 79. 38 Internet-Drafts are working documents of the Internet Engineering 39 Task Force (IETF). Note that other groups may also distribute 40 working documents as Internet-Drafts. The list of current Internet- 41 Drafts is at https://datatracker.ietf.org/drafts/current/. 43 Internet-Drafts are draft documents valid for a maximum of six months 44 and may be updated, replaced, or obsoleted by other documents at any 45 time. It is inappropriate to use Internet-Drafts as reference 46 material or to cite them other than as "work in progress." 48 This Internet-Draft will expire on April 5, 2020. 50 Copyright Notice 52 Copyright (c) 2019 IETF Trust and the persons identified as the 53 document authors. All rights reserved. 55 This document is subject to BCP 78 and the IETF Trust's Legal 56 Provisions Relating to IETF Documents 57 (https://trustee.ietf.org/license-info) in effect on the date of 58 publication of this document. Please review these documents 59 carefully, as they describe your rights and restrictions with respect 60 to this document. Code Components extracted from this document must 61 include Simplified BSD License text as described in Section 4.e of 62 the Trust Legal Provisions and are provided without warranty as 63 described in the Simplified BSD License. 65 Table of Contents 67 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 68 2. SRv6 Capabilities sub-TLV . . . . . . . . . . . . . . . . . . 4 69 3. Advertising Supported Algorithms . . . . . . . . . . . . . . 4 70 4. Advertising Maximum SRv6 SID Depths . . . . . . . . . . . . . 4 71 4.1. Maximum Segments Left MSD Type . . . . . . . . . . . . . 5 72 4.2. Maximum End Pop MSD Type . . . . . . . . . . . . . . . . 5 73 4.3. Maximum T.Insert MSD Type . . . . . . . . . . . . . . . . 5 74 4.4. Maximum T.Encaps MSD Type . . . . . . . . . . . . . . . . 5 75 4.5. Maximum End D MSD Type . . . . . . . . . . . . . . . . . 6 76 5. SRv6 SIDs and Reachability . . . . . . . . . . . . . . . . . 6 77 6. Advertising Anycast Property . . . . . . . . . . . . . . . . 8 78 7. Advertising Locators and End SIDs . . . . . . . . . . . . . . 8 79 7.1. SRv6 Locator TLV Format . . . . . . . . . . . . . . . . . 8 80 7.2. SRv6 End SID sub-TLV . . . . . . . . . . . . . . . . . . 10 81 8. Advertising SRv6 Adjacency SIDs . . . . . . . . . . . . . . . 12 82 8.1. SRv6 End.X SID sub-TLV . . . . . . . . . . . . . . . . . 12 83 8.2. SRv6 LAN End.X SID sub-TLV . . . . . . . . . . . . . . . 14 84 9. SRv6 SID Structure Sub-Sub-TLV . . . . . . . . . . . . . . . 15 85 10. Advertising Endpoint Behaviors . . . . . . . . . . . . . . . 16 86 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 87 11.1. SRv6 Locator TLV . . . . . . . . . . . . . . . . . . . . 17 88 11.1.1. SRv6 End SID sub-TLV . . . . . . . . . . . . . . . . 17 89 11.1.2. Revised sub-TLV table . . . . . . . . . . . . . . . 18 90 11.2. SRv6 Capabilities sub-TLV . . . . . . . . . . . . . . . 18 91 11.3. SRv6 End.X SID and SRv6 LAN End.X SID sub-TLVs . . . . . 19 92 11.4. MSD Types . . . . . . . . . . . . . . . . . . . . . . . 19 93 11.5. Sub-Sub-TLVs for SID Sub-TLVs . . . . . . . . . . . . . 19 94 11.6. Prefix Attribute Flags Sub-TLV . . . . . . . . . . . . . 20 95 12. Security Considerations . . . . . . . . . . . . . . . . . . . 20 96 13. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 20 97 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 21 98 14.1. Normative References . . . . . . . . . . . . . . . . . . 21 99 14.2. Informative References . . . . . . . . . . . . . . . . . 23 100 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 24 102 1. Introduction 104 With Segment Routing (SR) [I-D.ietf-spring-segment-routing], a node 105 steers a packet through an ordered list of instructions, called 106 segments. 108 Segments are identified through Segment Identifiers (SIDs). 110 Segment Routing can be directly instantiated on the IPv6 data plane 111 through the use of the Segment Routing Header defined in 112 [I-D.ietf-6man-segment-routing-header]. SRv6 refers to this SR 113 instantiation on the IPv6 dataplane. 115 The network programming paradigm 116 [I-D.ietf-spring-srv6-network-programming] is central to SRv6. It 117 describes how any function can be bound to a SID and how any network 118 program can be expressed as a combination of SID's. 120 This document specifies IS-IS extensions that allow the IS-IS 121 protocol to encode some of these functions. 123 Familiarity with the network programming paradigm 124 [I-D.ietf-spring-srv6-network-programming] is necessary to understand 125 the extensions specified in this document. 127 This document defines one new top level IS-IS TLV and several new IS- 128 IS sub-TLVs. 130 The SRv6 Capabilities sub-TLV announces the ability to support SRv6. 132 Several new sub-TLVs are defined to advertise various SRv6 Maximum 133 SID Depths. 135 The new SRv6 Locator top level TLV announces SRv6 locators - a form 136 of summary address for the set of topology/algorithm specific SIDs 137 associated with a node. 139 The SRv6 End SID sub-TLV, the SRv6 End.X SID sub-TLV, and the SRv6 140 LAN End.X SID sub-TLV are used to advertise which SIDs are 141 instantiated at a node and what Endpoint function is bound to each 142 instantiated SID. 144 2. SRv6 Capabilities sub-TLV 146 A node indicates that it has support for SRv6 by advertising a new 147 SRv6- capabilities sub-TLV of the router capabilities TLV [RFC7981]. 149 The SRv6 Capabilities sub-TLV may contain optional sub-sub-TLVs. No 150 sub-sub-TLVs are currently defined. 152 The SRv6 Capabilities sub-TLV has the following format: 154 0 1 2 3 155 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 156 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 157 | Type | Length | Flags | 158 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 159 | optional sub-sub-TLVs... 161 Type: Suggested value 25, to be assigned by IANA 163 Length: 2 + length of sub-sub-TLVs 165 Flags: 2 octets The following flags are defined: 167 0 1 168 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 169 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 170 | |O| | 171 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 173 where: 175 O-flag: If set, the router supports use of the O-bit 176 in the Segment Routing Header(SRH) as defined in 177 [I-D.ali-spring-srv6-oam]. 179 3. Advertising Supported Algorithms 181 SRv6 capable router indicates supported algorithm(s) by advertising 182 the SR Algorithm TLV as defined in 183 [I-D.ietf-isis-segment-routing-extensions]. 185 4. Advertising Maximum SRv6 SID Depths 187 [RFC8491] defines the means to advertise node/link specific values 188 for Maximum SID Depths (MSD) of various types. Node MSDs are 189 advertised in a sub-TLV of the Router Capabilities TLV [RFC7981]. 191 Link MSDs are advertised in a sub-TLV of TLVs 22, 23, 141, 222, and 192 223. 194 This document defines the relevant SRv6 MSDs and requests MSD type 195 assignments in the MSD Types registry created by [RFC8491]. 197 4.1. Maximum Segments Left MSD Type 199 The Maximum Segments Left MSD Type specifies the maximum value of the 200 "SL" field [I-D.ietf-6man-segment-routing-header] in the SRH of a 201 received packet before applying the Endpoint function associated with 202 a SID. 204 SRH Max SL Type: 41 (Suggested value - to be assigned by IANA) 206 If no value is advertised the supported value is assumed to be 0. 208 4.2. Maximum End Pop MSD Type 210 The Maximum End Pop MSD Type specifies the maximum number of SIDs in 211 the top SRH in an SRH stack to which the router can apply "PSP" or 212 USP" as defined in [I-D.ietf-spring-srv6-network-programming] 213 flavors. 215 SRH Max End Pop Type: 42 (Suggested value - to be assigned by IANA) 217 If the advertised value is zero or no value is advertised 218 then it is assumed that the router cannot apply PSP or USP flavors. 220 4.3. Maximum T.Insert MSD Type 222 The Maximum T.Insert MSD Type specifies the maximum number of SIDs 223 that can be inserted as part of the "T.insert" behavior as defined in 224 [I-D.ietf-spring-srv6-network-programming]. 226 SRH Max T.insert Type: 43 (Suggested value - to be assigned by IANA) 228 If the advertised value is zero or no value is advertised 229 then the router is assumed not to support any variation 230 of the "T.insert" behavior. 232 4.4. Maximum T.Encaps MSD Type 234 The Maximum T.Encaps MSD Type specifies the maximum number of SIDs 235 that can be included as part of the "T.Encaps" behavior as defined in 236 [I-D.ietf-spring-srv6-network-programming] . 238 SRH Max T.encaps Type: 44 (Suggested value - to be assigned by IANA) 240 If the advertised value is zero then the router can apply T.Encaps 241 only by encapsulating the incoming packet in another 242 IPv6 header without SRH the same way IPinIP encapsulation is 243 performed. 245 If the advertised value is non-zero then the router supports both 246 IPinIP and SRH encapsulation subject to the SID limitation 247 specified by the advertised value. 249 4.5. Maximum End D MSD Type 251 The Maximum End D MSD Type specifies the maximum number of SIDs in an 252 SRH when performing decapsulation associated with "End.Dx" functions 253 (e.g., "End.DX6" and "End.DT6") as defined in 254 [I-D.ietf-spring-srv6-network-programming]. 256 SRH Max End D Type: 45 (Suggested value - to be assigned by IANA) 258 If the advertised value is zero or no value is advertised 259 then it is assumed that the router cannot apply 260 "End.DX6" or "End.DT6" functions if the extension 261 header right underneath the outer IPv6 header is an SRH. 263 5. SRv6 SIDs and Reachability 265 As discussed in [I-D.ietf-spring-srv6-network-programming], an SRv6 266 Segment Identifier (SID) is 128 bits and represented as 268 LOC:FUNCT 270 where LOC (the locator portion) is the L most significant bits and 271 FUNCT is the 128-L least significant bits. L is called the locator 272 length and is flexible. Each operator is free to use the locator 273 length it chooses. 275 A node is provisioned with topology/algorithm specific locators for 276 each of the topology/algorithm pairs supported by that node. Each 277 locator is a covering prefix for all SIDs provisioned on that node 278 which have the matching topology/algorithm. 280 Locators MUST be advertised in the SRv6 Locator TLV (see 281 Section 6.1). Forwarding entries for the locators advertised in the 282 SRv6 Locator TLV MUST be installed in the forwarding plane of 283 receiving SRv6 capable routers when the associated topology/algorithm 284 is supported by the receiving node. 286 Locators are routable and MAY also be advertised in Prefix 287 Reachability TLVs (236 or 237). 289 Locators associated with Flexible Algorithms SHOULD NOT be advertised 290 in Prefix Reachability TLVs (236 or 237). 292 Locators associated with algorithm 0 (for all supported topologies) 293 SHOULD be advertised in a Prefix Reachability TLV (236 or 237) so 294 that legacy routers (i.e., routers which do NOT support SRv6) will 295 install a forwarding entry for algorithm 0 SRv6 traffic. 297 In cases where a locator advertisement is received in both in a 298 Prefix Reachability TLV and an SRv6 Locator TLV, the Prefix 299 Reachability advertisement MUST be preferred when installing entries 300 in the forwarding plane. This is to prevent inconsistent forwarding 301 entries on SRv6 capable/SRv6 incapable routers. 303 SRv6 SIDs are advertised as sub-TLVs in the SRv6 Locator TLV except 304 for SRv6 End.X SIDs/LAN End.X SIDs which are associated with a 305 specific Neighbor/Link and are therefore advertised as sub-TLVs in 306 TLVs 22, 23, 222, 223, and 141. 308 SRv6 SIDs are not directly routable and MUST NOT be installed in the 309 forwarding plane. Reachability to SRv6 SIDs depends upon the 310 existence of a covering locator. 312 Adherence to the rules defined in this section will assure that SRv6 313 SIDs associated with a supported topology/algorithm pair will be 314 forwarded correctly, while SRv6 SIDs associated with an unsupported 315 topology/algorithm pair will be dropped. NOTE: The drop behavior 316 depends on the absence of a default/summary route covering a given 317 locator. 319 In order for forwarding to work correctly, the locator associated 320 with SRv6 SID advertisements MUST be the longest match prefix 321 installed in the forwarding plane for those SIDs. There are a number 322 of ways in which this requirement could be compromised 324 o Another locator associated with a different topology/algorithm is 325 the longest match 327 o A prefix advertisement (i.e., from TLV 236 or 237) is the longest 328 match 330 6. Advertising Anycast Property 332 Both prefixes and SRv6 Locators may be configured as anycast and as 333 such the same value can be advertised by multiple routers. It is 334 useful for other routers to know that the advertisement is for an 335 anycast identifier. 337 A new flag in "Bit Values for Prefix Attribute Flags Sub-TLV" 338 registry [RFC7794] is defined to advertise the anycast property: 340 Bit #: 4 (Suggested - to be assigned by IANA) 341 Name: Anycast Flag (A-flag) 343 When the prefix/SRv6 locator is configured as anycast, the A-flag 344 SHOULD be set. Otherwise, this flag MUST be clear. 346 The A-flag MUST be preserved when leaked between levels. 348 The A-flag and the N-flag MUST NOT both be set. 350 If both N-flag and A-flag are set in the prefix/SRv6 Locator 351 advertisement, the receiving routers MUST ignore the N-flag. 353 The same prefix/SRv6 Locator can be advertised by multiple routers. 354 If at least one of them sets the A-Flag in its advertisement, the 355 prefix/SRv6 Locator SHOULD be considered as anycast. 357 7. Advertising Locators and End SIDs 359 The SRv6 Locator TLV is introduced to advertise SRv6 Locators and End 360 SIDs associated with each locator. 362 This new TLV shares the sub-TLV space defined for TLVs 135, 235, 236 363 and 237. 365 7.1. SRv6 Locator TLV Format 367 The SRv6 Locator TLV has the following format: 369 0 1 2 3 370 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 371 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 372 | Type | Length |R|R|R|R| MTID | 373 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 375 Followed by one or more locator entries of the form: 377 0 1 2 3 378 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 379 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 380 | Metric | 381 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 382 | Flags | Algorithm | 383 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 384 | Loc Size | Locator (variable)... 385 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 386 | Sub-tlv-len | Sub-TLVs (variable) . . . | 387 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 389 Type: 27 (Suggested value to be assigned by IANA) 391 Length: variable. 393 MTID: Multitopology Identifier as defined in [RFC5120]. 394 Note that the value 0 is legal. 396 Locator entry: 398 Metric: 4 octets. As described in [RFC5305]. 400 Flags: 1 octet. The following flags are defined 402 0 403 0 1 2 3 4 5 6 7 404 +-+-+-+-+-+-+-+-+ 405 |D| Reserved | 406 +-+-+-+-+-+-+-+-+ 408 where: 409 D bit: When the Locator is leaked from level-2 to level-1, the D 410 bit MUST be set. Otherwise, this bit MUST be clear. Locators 411 with the D bit set MUST NOT be leaked from level-1 to level-2. 412 This is to prevent looping. 414 The remaining bits are reserved for future use. They SHOULD be 415 set to zero on transmission and MUST be ignored on receipt. 417 Algorithm: 1 octet. Associated algorithm. Algorithm values 418 are defined in the IGP Algorithm Type registry. 420 Loc-Size: 1 octet. Number of bits in the Locator field. 421 (1 - 128) 423 Locator: 1-16 octets. This field encodes the advertised SRv6 424 Locator. The Locator is encoded in the minimal number of 425 octets for the given number of bits. 427 Sub-TLV-length: 1 octet. Number of octets used by sub-TLVs 429 Optional sub-TLVs. 431 7.2. SRv6 End SID sub-TLV 433 The SRv6 End SID sub-TLV is introduced to advertise SRv6 Segment 434 Identifiers (SID) with Endpoint functions which do not require a 435 particular neighbor in order to be correctly applied 436 [I-D.ietf-spring-srv6-network-programming]. SRv6 SIDs associated 437 with a neighbor are advertised using the sub-TLVs defined in 438 Section 6. 440 This new sub-TLV is advertised in the SRv6 Locator TLV defined in the 441 previous section. SRv6 End SIDs inherit the topology/algorithm from 442 the parent locator. 444 The SRv6 End SID sub-TLV has the following format: 446 0 1 2 3 447 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 448 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 449 | Type | Length | 450 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 451 | Flags | SRv6 Endpoint Function | 452 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 453 | SID (128 bits) . . . | 454 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 455 | SID (cont . . .) | 456 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 457 | SID (cont . . .) | 458 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 459 | SID (cont . . .) | 460 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 461 |Sub-sub-tlv-len| sub-sub-TLVs (variable) . . . | 462 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 464 Type: 5 (Suggested value to be assigned by IANA) 466 Length: variable. 468 Flags: 1 octet. No flags are currently defined. 470 SRv6 Endpoint Function: 2 octets. As defined in 471 [I-D.ietf-spring-srv6-network-programming] 472 Legal function values for this sub-TLV are defined in Section 9. 474 SID: 16 octets. This field encodes the advertised SRv6 SID. 476 Sub-sub-TLV-length: 1 octet. Number of octets used by sub-sub-TLVs 478 Optional sub-sub-TLVs 480 The SRv6 End SID MUST be a subnet of the associated Locator. SRv6 481 End SIDs which are NOT a subnet of the associated locator MUST be 482 ignored. 484 Multiple SRv6 End SIDs MAY be associated with the same locator. In 485 cases where the number of SRv6 End SID sub-TLVs exceeds the capacity 486 of a single TLV, multiple Locator TLVs for the same locator MAY be 487 advertised. For a given MTID/Locator the algorithm MUST be the same 488 in all TLVs. If this restriction is not met all TLVs for that MTID/ 489 Locator MUST be ignored. 491 8. Advertising SRv6 Adjacency SIDs 493 Certain SRv6 Endpoint functions 494 [I-D.ietf-spring-srv6-network-programming] must be associated with a 495 particular neighbor, and in case of multiple layer 3 links to the 496 same neighbor, with a particular link in order to be correctly 497 applied. 499 This document defines two new sub-TLVs of TLV 22, 23, 222, 223, and 500 141 - namely "SRv6 End.X SID" and "SRv6 LAN End.X SID". 502 IS-IS Neighbor advertisements are topology specific - but not 503 algorithm specific. End.X SIDs therefore inherit the topology from 504 the associated neighbor advertisement, but the algorithm is specified 505 in the individual SID. 507 All End.X SIDs MUST be a subnet of a Locator with matching topology 508 and algorithm which is advertised by the same node in an SRv6 Locator 509 TLV. End.X SIDs which do not meet this requirement MUST be ignored. 511 8.1. SRv6 End.X SID sub-TLV 513 This sub-TLV is used to advertise an SRv6 SID associated with a point 514 to point adjacency. Multiple SRv6 End.X SID sub-TLVs MAY be 515 associated with the same adjacency. 517 The SRv6 End.X SID sub-TLV has the following format: 519 0 1 2 3 520 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 521 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 522 | Type | Length | 523 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 524 | Flags | Algorithm | Weight | 525 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 526 | SRv6 Endpoint Function | 527 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 528 | SID (128 bits) . . . | 529 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 530 | SID (cont . . .) | 531 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 532 | SID (cont . . .) | 533 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 534 | SID (cont . . .) | 535 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 536 |Sub-sub-tlv-len| Sub-sub-TLVs (variable) . . . | 537 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 538 Type: 43 (Suggested value to be assigned by IANA) 540 Length: variable. 542 Flags: 1 octet. 544 0 1 2 3 4 5 6 7 545 +-+-+-+-+-+-+-+-+ 546 |B|S|P|Reserved | 547 +-+-+-+-+-+-+-+-+ 549 where: 551 B-Flag: Backup flag. If set, the End.X SID is eligible 552 for protection (e.g., using IPFRR) as described in [RFC8355]. 554 S-Flag. Set flag. When set, the S-Flag indicates that the 555 End.X SID refers to a set of adjacencies (and therefore 556 MAY be assigned to other adjacencies as well). 558 P-Flag. Persistent flag. When set, the P-Flag indicates that 559 the End.X SID is persistently allocated, i.e., the 560 End.X SID value remains consistent across router restart 561 and/or interface flap. 563 Other bits: MUST be zero when originated and ignored when 564 received. 566 Algorithm: 1 octet. Associated algorithm. Algorithm values 567 are defined in the IGP Algorithm Type registry. 569 Weight: 1 octet. The value represents the weight of the 570 End.X SID for the purpose of load balancing. The use 571 of the weight is defined in [I-D.ietf-spring-segment-routing]. 573 SRv6 Endpoint Function: 2 octets. As defined in 574 [I-D.ietf-spring-srv6-network-programming] 575 Legal function values for this sub-TLV are defined in Section 9. 577 SID: 16 octets. This field encodes the advertised SRv6 SID. 579 Sub-sub-TLV-length: 1 octet. Number of octets used by sub-sub- 580 TLVs 582 Note that multiple TLVs for the same neighbor may be required in 583 order to advertise all of the SRv6 End.X SIDs associated with that 584 neighbor. 586 8.2. SRv6 LAN End.X SID sub-TLV 588 This sub-TLV is used to advertise an SRv6 SID associated with a LAN 589 adjacency. Since the parent TLV is advertising an adjacency to the 590 Designated Intermediate System(DIS) for the LAN, it is necessary to 591 include the System ID of the physical neighbor on the LAN with which 592 the SRv6 SID is associated. Given that a large number of neighbors 593 may exist on a given LAN a large number of SRv6 LAN END.X SID sub- 594 TLVs may be associated with the same LAN. Note that multiple TLVs 595 for the same DIS neighbor may be required in order to advertise all 596 of the SRv6 End.X SIDs associated with that neighbor. 598 The SRv6 LAN End.X SID sub-TLV has the following format: 600 0 1 2 3 601 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 602 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 603 | Type | Length | System ID (6 octets) | 604 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 605 | | 606 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 607 | Flags | Algorithm | Weight | 608 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 609 | SRv6 Endpoint Function | 610 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 611 | SID (128 bits) . . . | 612 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 613 | SID (cont . . .) | 614 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 615 | SID (cont . . .) | 616 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 617 | SID (cont . . .) | 618 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 619 |Sub-sub-tlv-len| sub-sub-TLVs (variable) . . . | 620 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 622 Type: 44 (Suggested value to be assigned by IANA) 623 Length: variable. 625 System-ID: 6 octets of IS-IS System-ID of length "ID Length" as 626 defined in [ISO10589]. 628 Flags: 1 octet. 630 0 1 2 3 4 5 6 7 631 +-+-+-+-+-+-+-+-+ 632 |B|S|P|Reserved | 633 +-+-+-+-+-+-+-+-+ 635 where B,S, and P flags are as described in Section 6.1. 636 Other bits: MUST be zero when originated and ignored when 637 received. 639 Algorithm: 1 octet. Associated algorithm. Algorithm values 640 are defined in the IGP Algorithm Type registry. 642 Weight: 1 octet. The value represents the weight of the 643 End.X SID for the purpose of load balancing. The use 644 of the weight is defined in [I-D.ietf-spring-segment-routing]. 646 SRv6 Endpoint Function: 2 octets. As defined in 647 [I-D.ietf-spring-srv6-network-programming] 648 Legal function values for this sub-TLV are defined in Section 9. 650 SID: 16 octets. This field encodes the advertised SRv6 SID. 652 Sub-sub-TLV-length: 1 octet. Number of octets used by sub-sub- 653 TLVs. 655 9. SRv6 SID Structure Sub-Sub-TLV 657 SRv6 SID Structure Sub-Sub-TLV is an optional Sub-Sub-TLV of: 659 SRv6 End SID Sub-TLV (Section 7.2) 661 SRv6 End.X SID Sub-TLV (Section 8.1) 663 SRv6 LAN End.X SID Sub-TLV (Section 8.2) 665 SRv6 SID Structure Sub-Sub-TLV is used to advertise the length of 666 each individual part of the SRv6 SID as defined in 667 [I-D.ietf-spring-srv6-network-programming]. It has the following 668 format: 670 0 1 2 3 671 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 672 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 673 | Type | Length | 674 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 675 | LB Length | LN Length | Fun. Length | Arg. Length | 676 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 678 where: 680 Type: 1 681 Length: 4 octets. 683 LB Length: 1 octet. SRv6 SID Locator Block length in bits. 685 LN Length: 1 octet. SRv6 SID Locator Node length in bits. 687 Fun. Length: 1 octet. SRv6 SID Function length in bits. 689 Arg. Length: 1 octet. SRv6 SID Arguments length in bits. 691 ISIS SRv6 SID Structure Sub-Sub-TLV MUST NOT appear more than once in 692 its parent sub-TLV. If it appears more than once in its parent TLV, 693 the parent TLV MUST be ignored by the receiver. 695 10. Advertising Endpoint Behaviors 697 Endpoint behaviors are defined in 698 [I-D.ietf-spring-srv6-network-programming] and 699 [I-D.ali-spring-srv6-oam]. The numerical identifiers for the 700 Endpoint behaviors are defined in the "SRv6 Endpoint Behaviors" 701 registry defined in [I-D.ietf-spring-srv6-network-programming]. This 702 section lists the Endpoint behaviors and their identifiers, which MAY 703 be advertised by IS-IS and the SID sub-TLVs in which each type MAY 704 appear. 706 Endpoint |Endpoint | End | End.X | Lan End.X | 707 Behavior |Behavior Identifier | SID | SID | SID | 708 -----------------------|--------------------|-------|-------|-----------| 709 End (PSP, USP, USD) | 1-4, 28-31 | Y | N | N | 710 -----------------------|--------------------|-------|-------|-----------| 711 End.X (PSP, USP, USD) | 5-8, 32-35 | N | Y | Y | 712 -----------------------|--------------------|-------|-------|-----------| 713 End.T (PSP, USP, USD) | 9-12, 36-39 | Y | N | N | 714 -----------------------|--------------------|-------|-------|-----------| 715 End.DX6 | 16 | N | Y | Y | 716 -----------------------|--------------------|-------|-------|-----------| 717 End.DX4 | 17 | N | Y | Y | 718 -----------------------|--------------------|-------|-------|-----------| 719 End.DT6 | 18 | Y | N | N | 720 -----------------------|--------------------|-------|-------|-----------| 721 End.DT4 | 19 | Y | N | N | 722 -----------------------|--------------------|-------|-------|-----------| 723 End.DT64 | 20 | Y | N | N | 724 -----------------------|--------------------|-------|-------|-----------| 725 End.OP | 40 | Y | N | N | 726 -----------------------|--------------------|-------|-------|-----------| 727 End.OTP | 41 | Y | N | N | 729 11. IANA Considerations 731 This document requests allocation for the following TLVs, sub- TLVs, 732 and sub-sub-TLVs as well updating the ISIS TLV registry and defining 733 a new registry. 735 11.1. SRv6 Locator TLV 737 This document adds one new TLV to the IS-IS TLV Codepoints registry. 739 Value: 27 (suggested - to be assigned by IANA) 741 Name: SRv6 Locator 743 This TLV shares sub-TLV space with existing "Sub-TLVs for TLVs 135, 744 235, 236 and 237 registry". The name of this registry needs to be 745 changed to "Sub-TLVs for TLVs 27, 135, 235, 236 and 237 registry". 747 11.1.1. SRv6 End SID sub-TLV 749 This document adds the following new sub-TLV to the (renamed) "Sub- 750 TLVs for TLVs 27, 135, 235, 236 and 237 registry". 752 Value: 5 (suggested - to be assigned by IANA) 754 Name: SRv6 End SID 756 This document requests the creation of a new IANA managed registry 757 for sub-sub-TLVs of the SRv6 End SID sub-TLV. The registration 758 procedure is "Expert Review" as defined in [RFC7370]. Suggested 759 registry name is "sub-sub-TLVs for SRv6 End SID sub-TLV". No sub- 760 sub-TLVs are defined by this document except for the reserved value. 762 0: Reserved 764 1-255: Unassigned 766 11.1.2. Revised sub-TLV table 768 The revised table of sub-TLVs for the (renamed) "Sub-TLVs for TLVs 769 27, 135, 235, 236 and 237 registry" is shown below: 771 Type 27 135 235 236 237 773 1 n y y y y 774 2 n y y y y 775 3 n y y y y 776 4 y y y y y 777 5 y n n n n 778 11 y y y y y 779 12 y y y y y 781 11.2. SRv6 Capabilities sub-TLV 783 This document adds the definition of a new sub-TLV in the "Sub- TLVs 784 for TLV 242 registry". 786 Type: 25 (Suggested - to be assigned by IANA) 788 Description: SRv6 Capabilities 790 This document requests the creation of a new IANA managed registry 791 for sub-sub-TLVs of the SRv6 Capability sub-TLV. The registration 792 procedure is "Expert Review" as defined in [RFC7370]. Suggested 793 registry name is "sub-sub-TLVs for SRv6 Capability sub-TLV". No sub- 794 sub-TLVs are defined by this document except for the reserved value. 796 0: Reserved 798 1-255: Unassigned 800 11.3. SRv6 End.X SID and SRv6 LAN End.X SID sub-TLVs 802 This document adds the definition of two new sub-TLVs in the "sub- 803 TLVs for TLV 22, 23, 25, 141, 222 and 223 registry". 805 Type: 43 (suggested - to be assigned by IANA) 807 Description: SRv6 End.X SID 809 Type: 44 (suggested - to be assigned by IANA) 811 Description: SRv6 LAN End.X SID 813 Type 22 23 25 141 222 223 815 43 y y y y y y 816 44 y y y y y y 818 11.4. MSD Types 820 This document defines the following new MSD types. These types are 821 to be defined in the IGP MSD Types registry defined in [RFC8491] . 823 All values are suggested values to be assigned by IANA. 825 Type Description 826 ------------------ 827 41 SRH Max SL 828 42 SRH Max End Pop 829 43 SRH Max T.insert 830 44 SRH Max T.encaps 831 45 SRH Max End D 833 11.5. Sub-Sub-TLVs for SID Sub-TLVs 835 This document creates the following Sub-Sub-TLV Registry within the 836 "IS-IS TLV Codepoints" registry: 838 Registry: Sub-Sub-TLVs for SID Sub-TLVs 840 Registration Procedure: Expert review 842 Reference: This document (Section 7.2, Section 8.1, Section 8.2). 844 This document defines the following Sub-Sub-TLV in the "Sub-Sub-TLVs 845 for SID Sub-TLVs" registry: 847 Type: 1 849 Description: SRv6 SID Structure Sub-Sub-TLV. 851 Reference: This document (Section 9). 853 11.6. Prefix Attribute Flags Sub-TLV 855 This document adds a new bit in the "Bit Values for Prefix Attribute 856 Flags Sub-TLV" registry: 858 Bit #: 4 860 Description: A bit 862 Reference: This document (Section 6). 864 12. Security Considerations 866 Security concerns for IS-IS are addressed in [ISO10589], [RFC5304], 867 and [RFC5310]. 869 13. Contributors 871 The following people gave a substantial contribution to the content 872 of this document and should be considered as co-authors: 874 Stefano Previdi 875 Huawei Technologies 876 Email: stefano@previdi.net 878 Paul Wells 879 Cisco Systems 880 Saint Paul, 881 Minnesota 882 United States 883 Email: pauwells@cisco.com 885 Daniel Voyer 886 Email: daniel.voyer@bell.ca 888 Satoru Matsushima 889 Email: satoru.matsushima@g.softbank.co.jp 891 Bart Peirens 892 Email: bart.peirens@proximus.com 894 Hani Elmalky 895 Email: hani.elmalky@ericsson.com 897 Prem Jonnalagadda 898 Email: prem@barefootnetworks.com 900 Milad Sharif 901 Email: msharif@barefootnetworks.com> 903 Robert Hanzl 904 Cisco Systems 905 Millenium Plaza Building, V Celnici 10, Prague 1, 906 Prague, Czech Republic 907 Email rhanzl@cisco.com 909 Ketan Talaulikar 910 Cisco Systems, Inc. 911 Email: ketant@cisco.com 913 14. References 915 14.1. Normative References 917 [I-D.ali-spring-srv6-oam] 918 Ali, Z., Filsfils, C., Kumar, N., Pignataro, C., 919 faiqbal@cisco.com, f., Gandhi, R., Leddy, J., Matsushima, 920 S., Raszuk, R., daniel.voyer@bell.ca, d., Dawra, G., 921 Peirens, B., Chen, M., and G. Naik, "Operations, 922 Administration, and Maintenance (OAM) in Segment Routing 923 Networks with IPv6 Data plane (SRv6)", draft-ali-spring- 924 srv6-oam-02 (work in progress), October 2018. 926 [I-D.ietf-6man-segment-routing-header] 927 Filsfils, C., Dukes, D., Previdi, S., Leddy, J., 928 Matsushima, S., and d. daniel.voyer@bell.ca, "IPv6 Segment 929 Routing Header (SRH)", draft-ietf-6man-segment-routing- 930 header-23 (work in progress), September 2019. 932 [I-D.ietf-isis-segment-routing-extensions] 933 Previdi, S., Ginsberg, L., Filsfils, C., Bashandy, A., 934 Gredler, H., and B. Decraene, "IS-IS Extensions for 935 Segment Routing", draft-ietf-isis-segment-routing- 936 extensions-25 (work in progress), May 2019. 938 [I-D.ietf-spring-srv6-network-programming] 939 Filsfils, C., Camarillo, P., Leddy, J., 940 daniel.voyer@bell.ca, d., Matsushima, S., and Z. Li, "SRv6 941 Network Programming", draft-ietf-spring-srv6-network- 942 programming-03 (work in progress), September 2019. 944 [ISO10589] 945 Standardization", I. ". O. F., "Intermediate system to 946 Intermediate system intra-domain routeing information 947 exchange protocol for use in conjunction with the protocol 948 for providing the connectionless-mode Network Service (ISO 949 8473), ISO/IEC 10589:2002, Second Edition.", Nov 2002. 951 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 952 Requirement Levels", BCP 14, RFC 2119, 953 DOI 10.17487/RFC2119, March 1997, 954 . 956 [RFC5120] Przygienda, T., Shen, N., and N. Sheth, "M-ISIS: Multi 957 Topology (MT) Routing in Intermediate System to 958 Intermediate Systems (IS-ISs)", RFC 5120, 959 DOI 10.17487/RFC5120, February 2008, 960 . 962 [RFC5304] Li, T. and R. Atkinson, "IS-IS Cryptographic 963 Authentication", RFC 5304, DOI 10.17487/RFC5304, October 964 2008, . 966 [RFC5305] Li, T. and H. Smit, "IS-IS Extensions for Traffic 967 Engineering", RFC 5305, DOI 10.17487/RFC5305, October 968 2008, . 970 [RFC5310] Bhatia, M., Manral, V., Li, T., Atkinson, R., White, R., 971 and M. Fanto, "IS-IS Generic Cryptographic 972 Authentication", RFC 5310, DOI 10.17487/RFC5310, February 973 2009, . 975 [RFC7370] Ginsberg, L., "Updates to the IS-IS TLV Codepoints 976 Registry", RFC 7370, DOI 10.17487/RFC7370, September 2014, 977 . 979 [RFC7794] Ginsberg, L., Ed., Decraene, B., Previdi, S., Xu, X., and 980 U. Chunduri, "IS-IS Prefix Attributes for Extended IPv4 981 and IPv6 Reachability", RFC 7794, DOI 10.17487/RFC7794, 982 March 2016, . 984 [RFC7981] Ginsberg, L., Previdi, S., and M. Chen, "IS-IS Extensions 985 for Advertising Router Information", RFC 7981, 986 DOI 10.17487/RFC7981, October 2016, 987 . 989 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 990 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 991 May 2017, . 993 [RFC8491] Tantsura, J., Chunduri, U., Aldrin, S., and L. Ginsberg, 994 "Signaling Maximum SID Depth (MSD) Using IS-IS", RFC 8491, 995 DOI 10.17487/RFC8491, November 2018, 996 . 998 14.2. Informative References 1000 [I-D.ietf-spring-segment-routing] 1001 Filsfils, C., Previdi, S., Ginsberg, L., Decraene, B., 1002 Litkowski, S., and R. Shakir, "Segment Routing 1003 Architecture", draft-ietf-spring-segment-routing-15 (work 1004 in progress), January 2018. 1006 [RFC8355] Filsfils, C., Ed., Previdi, S., Ed., Decraene, B., and R. 1007 Shakir, "Resiliency Use Cases in Source Packet Routing in 1008 Networking (SPRING) Networks", RFC 8355, 1009 DOI 10.17487/RFC8355, March 2018, 1010 . 1012 Authors' Addresses 1014 Peter Psenak (editor) 1015 Cisco Systems 1016 Pribinova Street 10 1017 Bratislava 81109 1018 Slovakia 1020 Email: ppsenak@cisco.com 1022 Clarence Filsfils 1023 Cisco Systems 1024 Brussels 1025 Belgium 1027 Email: cfilsfil@cisco.com 1029 Ahmed Bashandy 1030 Arrcus 1032 Email: abashandy.ietf@gmail.com 1034 Bruno Decraene 1035 Orange 1036 Issy-les-Moulineaux 1037 France 1039 Email: bruno.decraene@orange.com 1041 Zhibo Hu 1042 Huawei Technologies 1044 Email: huzhibo@huawei.com