idnits 2.17.1 draft-bashandy-isis-srv6-extensions-05.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 (March 6, 2019) is 1872 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-16 == Outdated reference: A later version (-25) exists of draft-ietf-isis-segment-routing-extensions-22 -- 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: September 7, 2019 A. Bashandy 6 Individual 7 B. Decraene 8 Orange 9 Z. Hu 10 Huawei Technologies 11 March 6, 2019 13 IS-IS Extensions to Support Routing over IPv6 Dataplane 14 draft-bashandy-isis-srv6-extensions-05.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 September 7, 2019. 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 . . . . . . . . . . . . . . . . . . 3 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 Locators and End SIDs . . . . . . . . . . . . . . 7 78 6.1. SRv6 Locator TLV Format . . . . . . . . . . . . . . . . . 8 79 6.2. SRv6 End SID sub-TLV . . . . . . . . . . . . . . . . . . 9 80 7. Advertising SRv6 End.X SIDs . . . . . . . . . . . . . . . . . 11 81 7.1. SRv6 End.X SID sub-TLV . . . . . . . . . . . . . . . . . 11 82 7.2. SRv6 LAN End.X SID sub-TLV . . . . . . . . . . . . . . . 13 83 8. Advertising Endpoint Behaviors . . . . . . . . . . . . . . . 14 84 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 85 9.1. SRv6 Locator TLV . . . . . . . . . . . . . . . . . . . . 15 86 9.1.1. SRv6 End SID sub-TLV . . . . . . . . . . . . . . . . 15 87 9.1.2. Revised sub-TLV table . . . . . . . . . . . . . . . . 16 88 9.2. SRv6 Capabilities sub-TLV . . . . . . . . . . . . . . . . 16 89 9.3. SRv6 End.X SID and SRv6 LAN End.X SID sub-TLVs . . . . . 17 90 9.4. MSD Types . . . . . . . . . . . . . . . . . . . . . . . . 17 91 10. Security Considerations . . . . . . . . . . . . . . . . . . . 17 92 11. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 17 93 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 18 94 12.1. Normative References . . . . . . . . . . . . . . . . . . 18 95 12.2. Informative References . . . . . . . . . . . . . . . . . 20 96 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21 98 1. Introduction 100 With Segment Routing (SR) [I-D.ietf-spring-segment-routing], a node 101 steers a packet through an ordered list of instructions, called 102 segments. 104 Segments are identified through Segment Identifiers (SIDs). 106 Segment Routing can be directly instantiated on the IPv6 data plane 107 through the use of the Segment Routing Header defined in 108 [I-D.ietf-6man-segment-routing-header]. SRv6 refers to this SR 109 instantiation on the IPv6 dataplane. 111 The network programming paradigm 112 [I-D.filsfils-spring-srv6-network-programming] is central to SRv6. 113 It describes how any function can be bound to a SID and how any 114 network program can be expressed as a combination of SID's. 116 This document specifies IS-IS extensions that allow the IS-IS 117 protocol to encode some of these functions. 119 Familiarity with the network programming paradigm 120 [I-D.filsfils-spring-srv6-network-programming] is necessary to 121 understand the extensions specified in this document. 123 This document defines one new top level IS-IS TLV and several new IS- 124 IS sub-TLVs. 126 The SRv6 Capabilities sub-TLV announces the ability to support SRv6 127 and some Endpoint functions listed in Section 7 as well as 128 advertising limitations when applying such Endpoint functions. 130 The SRv6 Locator top level TLV announces SRv6 locators - a form of 131 summary address for the set of topology/algorithm specific SIDs 132 associated with a node. 134 The SRv6 End SID sub-TLV, the SRv6 End.X SID sub-TLV, and the SRv6 135 LAN End.X SID sub-TLV are used to advertise which SIDs are 136 instantiated at a node and what Endpoint function is bound to each 137 instantiated SID. 139 2. SRv6 Capabilities sub-TLV 141 A node indicates that it has support for SRv6 by advertising a new 142 SRv6- capabilities sub-TLV of the router capabilities TLV [RFC7981]. 144 The SRv6 Capabilities sub-TLV may contain optional sub-sub-TLVs. No 145 sub-sub-TLVs are currently defined. 147 The SRv6 Capabilities sub-TLV has the following format: 149 0 1 2 3 150 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 151 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 152 | Type | Length | Flags | 153 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 154 | optional sub-sub-TLVs... 156 Type: Suggested value 25, to be assigned by IANA 158 Length: 2 + length of sub-sub-TLVs 160 Flags: 2 octets The following flags are defined: 162 0 1 163 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 164 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 165 | |O| | 166 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 168 where: 170 O-flag: If set, the router supports use of the O-bit 171 in the Segment Routing Header(SRH) as defined in 172 [I-D.ali-spring-srv6-oam]. 174 3. Advertising Supported Algorithms 176 SRv6 capable router indicates supported algorithm(s) by advertising 177 the SR Algorithm TLV as defined in 178 [I-D.ietf-isis-segment-routing-extensions]. 180 4. Advertising Maximum SRv6 SID Depths 182 [I-D.ietf-isis-segment-routing-msd] defines the means to advertise 183 node/link specific values for Maximum SID Depths (MSD) of various 184 types. Node MSDs are advertised in a sub-TLV of the Router 185 Capabilities TLV [RFC7981]. Link MSDs are advertised in a sub-TLV of 186 TLVs 22, 23, 141, 222, and 223. 188 This document defines the relevant SRv6 MSDs and requests MSD type 189 assignments in the MSD Types registry created by 190 [I-D.ietf-isis-segment-routing-msd]. 192 4.1. Maximum Segments Left MSD Type 194 The Maximum Segments Left MSD Type specifies the maximum value of the 195 "SL" field [I-D.ietf-6man-segment-routing-header] in the SRH of a 196 received packet before applying the Endpoint function associated with 197 a SID. 199 SRH Max SL Type: 41 (Suggested value - to be assigned by IANA) 201 If no value is advertised the supported value is assumed to be 0. 203 4.2. Maximum End Pop MSD Type 205 The Maximum End Pop MSD Type specifies the maximum number of SIDs in 206 the top SRH in an SRH stack to which the router can apply "PSP" or 207 USP" as defined in [I-D.filsfils-spring-srv6-network-programming] 208 flavors. 210 SRH Max End Pop Type: 42 (Suggested value - to be assigned by IANA) 212 If the advertised value is zero or no value is advertised 213 then it is assumed that the router cannot apply PSP or USP flavors. 215 4.3. Maximum T.Insert MSD Type 217 The Maximum T.Insert MSD Type specifies the maximum number of SIDs 218 that can be inserted as part of the "T.insert" behavior as defined in 219 [I-D.filsfils-spring-srv6-network-programming]. 221 SRH Max T.insert Type: 43 (Suggested value - to be assigned by IANA) 223 If the advertised value is zero or no value is advertised 224 then the router is assumed not to support any variation 225 of the "T.insert" behavior. 227 4.4. Maximum T.Encaps MSD Type 229 The Maximum T.Encaps MSD Type specifies the maximum number of SIDs 230 that can be included as part of the "T.Encaps" behavior as defined in 231 [I-D.filsfils-spring-srv6-network-programming] . 233 SRH Max T.encaps Type: 44 (Suggested value - to be assigned by IANA) 235 If the advertised value is zero then the router can apply T.Encaps 236 only by encapsulating the incoming packet in another 237 IPv6 header without SRH the same way IPinIP encapsulation is 238 performed. 240 If the advertised value is non-zero then the router supports both 241 IPinIP and SRH encapsulation subject to the SID limitation 242 specified by the advertised value. 244 4.5. Maximum End D MSD Type 246 The Maximum End D MSD Type specifies the maximum number of SIDs in an 247 SRH when performing decapsulation associated with "End.Dx" functions 248 (e.g., "End.DX6" and "End.DT6") as defined in 249 [I-D.filsfils-spring-srv6-network-programming]. 251 SRH Max End D Type: 45 (Suggested value - to be assigned by IANA) 253 If the advertised value is zero or no value is advertised 254 then it is assumed that the router cannot apply 255 "End.DX6" or "End.DT6" functions if the extension 256 header right underneath the outer IPv6 header is an SRH. 258 5. SRv6 SIDs and Reachability 260 As discussed in [I-D.filsfils-spring-srv6-network-programming], an 261 SRv6 Segment Identifier (SID) is 128 bits and represented as 263 LOC:FUNCT 265 where LOC (the locator portion) is the L most significant bits and 266 FUNCT is the 128-L least significant bits. L is called the locator 267 length and is flexible. Each operator is free to use the locator 268 length it chooses. 270 A node is provisioned with topology/algorithm specific locators for 271 each of the topology/algorithm pairs supported by that node. Each 272 locator is a covering prefix for all SIDs provisioned on that node 273 which have the matching topology/algorithm. 275 Locators MUST be advertised in the SRv6 Locator TLV (see 276 Section 6.1). Forwarding entries for the locators advertised in the 277 SRv6 Locator TLV MUST be installed in the forwarding plane of 278 receiving SRv6 capable routers when the associated topology/algorithm 279 is supported by the receiving node. 281 Locators are routable and MAY also be advertised in Prefix 282 Reachability TLVs (236 or 237). 284 Locators associated with algorithm 0 (for all supported topologies) 285 SHOULD be advertised in a Prefix Reachability TLV (236 or 237) so 286 that legacy routers (i.e., routers which do NOT support SRv6) will 287 install a forwarding entry for algorithm 0 SRv6 traffic. 289 In cases where a locator advertisement is received in both in a 290 Prefix Reachability TLV and an SRv6 Locator TLV, the Prefix 291 Reachability advertisement MUST be preferred when installing entries 292 in the forwarding plane. This is to prevent inconsistent forwarding 293 entries on SRv6 capable/SRv6 incapable routers. 295 SRv6 SIDs are advertised as sub-TLVs in the SRv6 Locator TLV except 296 for SRv6 End.X SIDs/LAN End.X SIDs which are associated with a 297 specific Neighbor/Link and are therefore advertised as sub-TLVs in 298 TLVs 22, 23, 222, 223, and 141. 300 SRv6 SIDs are not directly routable and MUST NOT be installed in the 301 forwarding plane. Reachability to SRv6 SIDs depends upon the 302 existence of a covering locator. 304 Adherence to the rules defined in this section will assure that SRv6 305 SIDs associated with a supported topology/algorithm pair will be 306 forwarded correctly, while SRv6 SIDs associated with an unsupported 307 topology/algorithm pair will be dropped. NOTE: The drop behavior 308 depends on the absence of a default/summary route covering a given 309 locator. 311 In order for forwarding to work correctly, the locator associated 312 with SRv6 SID advertisements MUST be the longest match prefix 313 installed in the forwarding plane for those SIDs. There are a number 314 of ways in which this requirement could be compromised 316 o Another locator associated with a different topology/algorithm is 317 the longest match 319 o A prefix advertisement (i.e., from TLV 236 or 237) is the longest 320 match 322 6. Advertising Locators and End SIDs 324 The SRv6 Locator TLV is introduced to advertise SRv6 Locators and End 325 SIDs associated with each locator. 327 This new TLV shares the sub-TLV space defined for TLVs 135, 235, 236 328 and 237. 330 6.1. SRv6 Locator TLV Format 332 The SRv6 Locator TLV has the following format: 334 0 1 2 3 335 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 336 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 337 | Type | Length |R|R|R|R| MTID | 338 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 340 Followed by one or more locator entries of the form: 342 0 1 2 3 343 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 344 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 345 | Metric | 346 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 347 | Flags | Algorithm | 348 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 349 | Loc Size | Locator (variable)... 350 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 351 | Sub-tlv-len | Sub-TLVs (variable) . . . | 352 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 354 Type: 27 (Suggested value to be assigned by IANA) 356 Length: variable. 358 MTID: Multitopology Identifier as defined in [RFC5120]. 359 Note that the value 0 is legal. 361 Locator entry: 363 Metric: 4 octets. As described in [RFC5305]. 365 Flags: 1 octet. The following flags are defined 367 0 368 0 1 2 3 4 5 6 7 369 +-+-+-+-+-+-+-+-+ 370 |D|A| Reserved | 371 +-+-+-+-+-+-+-+-+ 373 where: 374 D bit: When the Locator is leaked from level-2 to level-1, the D 375 bit MUST be set. Otherwise, this bit MUST be clear. Locators 376 with the D bit set MUST NOT be leaked from level-1 to level-2. 378 This is to prevent looping. 380 A bit: When the Locator is configured as anycast, the A bit 381 SHOULD be set. Otherwise, this bit MUST be clear. 383 The remaining bits are reserved for future use. They SHOULD be 384 set to zero on transmission and MUST be ignored on receipt. 386 Algorithm: 1 octet. Associated algorithm. Algorithm values 387 are defined in the IGP Algorithm Type registry. 389 Loc-Size: 1 octet. Number of bits in the Locator field. 390 (1 - 128) 392 Locator: 1-16 octets. This field encodes the advertised SRv6 393 Locator. The Locator is encoded in the minimal number of 394 octets for the given number of bits. 396 Sub-TLV-length: 1 octet. Number of octets used by sub-TLVs 398 Optional sub-TLVs. 400 6.2. SRv6 End SID sub-TLV 402 The SRv6 End SID sub-TLV is introduced to advertise SRv6 Segment 403 Identifiers (SID) with Endpoint functions which do not require a 404 particular neighbor in order to be correctly applied 405 [I-D.filsfils-spring-srv6-network-programming]. SRv6 SIDs associated 406 with a neighbor are advertised using the sub-TLVs defined in 407 Section 6. 409 This new sub-TLV is advertised in the SRv6 Locator TLV defined in the 410 previous section. SRv6 End SIDs inherit the topology/algorithm from 411 the parent locator. 413 The SRv6 End SID sub-TLV has the following format: 415 0 1 2 3 416 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 417 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 418 | Type | Length | 419 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 420 | Flags | SRv6 Endpoint Function | 421 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 422 | SID (128 bits) . . . | 423 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 424 | SID (cont . . .) | 425 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 426 | SID (cont . . .) | 427 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 428 | SID (cont . . .) | 429 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 430 |Sub-sub-tlv-len| sub-sub-TLVs (variable) . . . | 431 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 433 Type: 5 (Suggested value to be assigned by IANA) 435 Length: variable. 437 Flags: 1 octet. No flags are currently defined. 439 SRv6 Endpoint Function: 2 octets. As defined in 440 [I-D.filsfils-spring-srv6-network-programming] 441 Legal function values for this sub-TLV are defined in Section 7. 443 SID: 16 octets. This field encodes the advertised SRv6 SID. 445 Sub-sub-TLV-length: 1 octet. Number of octets used by sub-sub-TLVs 447 Optional sub-sub-TLVs 449 The SRv6 End SID MUST be a subnet of the associated Locator. SRv6 450 End SIDs which are NOT a subnet of the associated locator MUST be 451 ignored. 453 Multiple SRv6 End SIDs MAY be associated with the same locator. In 454 cases where the number of SRv6 End SID sub-TLVs exceeds the capacity 455 of a single TLV, multiple Locator TLVs for the same locator MAY be 456 advertised. For a given MTID/Locator the algorithm MUST be the same 457 in all TLVs. If this restriction is not met all TLVs for that MTID/ 458 Locator MUST be ignored. 460 7. Advertising SRv6 End.X SIDs 462 Certain SRv6 Endpoint functions 463 [I-D.filsfils-spring-srv6-network-programming] must be associated 464 with a particular neighbor, and in case of multiple layer 3 links to 465 the same neighbor, with a particular link in order to be correctly 466 applied. 468 This document defines two new sub-TLVs of TLV 22, 23, 222, 223, and 469 141 - namely "SRv6 End.X SID" and "SRv6 LAN End.X SID". 471 IS-IS Neighbor advertisements are topology specific - but not 472 algorithm specific. End.X SIDs therefore inherit the topology from 473 the associated neighbor advertisement, but the algorithm is specified 474 in the individual SID. 476 All End.X SIDs MUST be a subnet of a Locator with matching topology 477 and algorithm which is advertised by the same node in an SRv6 Locator 478 TLV. End.X SIDs which do not meet this requirement MUST be ignored. 480 7.1. SRv6 End.X SID sub-TLV 482 This sub-TLV is used to advertise an SRv6 SID associated with a point 483 to point adjacency. Multiple SRv6 End.X SID sub-TLVs MAY be 484 associated with the same adjacency. 486 The SRv6 End.X SID sub-TLV has the following format: 488 0 1 2 3 489 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 490 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 491 | Type | Length | 492 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 493 | Flags | Algorithm | Weight | 494 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 495 | SRv6 Endpoint Function | 496 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 497 | SID (128 bits) . . . | 498 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 499 | SID (cont . . .) | 500 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 501 | SID (cont . . .) | 502 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 503 | SID (cont . . .) | 504 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 505 |Sub-sub-tlv-len| Sub-sub-TLVs (variable) . . . | 506 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 507 Type: 43 (Suggested value to be assigned by IANA) 509 Length: variable. 511 Flags: 1 octet. 513 0 1 2 3 4 5 6 7 514 +-+-+-+-+-+-+-+-+ 515 |B|S|P|Reserved | 516 +-+-+-+-+-+-+-+-+ 518 where: 520 B-Flag: Backup flag. If set, the End.X SID is eligible 521 for protection (e.g., using IPFRR) as described in [RFC8355]. 523 S-Flag. Set flag. When set, the S-Flag indicates that the 524 End.X SID refers to a set of adjacencies (and therefore 525 MAY be assigned to other adjacencies as well). 527 P-Flag. Persistent flag. When set, the P-Flag indicates that 528 the End.X SID is persistently allocated, i.e., the 529 End.X SID value remains consistent across router restart 530 and/or interface flap. 532 Other bits: MUST be zero when originated and ignored when 533 received. 535 Algorithm: 1 octet. Associated algorithm. Algorithm values 536 are defined in the IGP Algorithm Type registry. 538 Weight: 1 octet. The value represents the weight of the 539 End.X SID for the purpose of load balancing. The use 540 of the weight is defined in [I-D.ietf-spring-segment-routing]. 542 SRv6 Endpoint Function: 2 octets. As defined in 543 [I-D.filsfils-spring-srv6-network-programming] 544 Legal function values for this sub-TLV are defined in Section 7. 546 SID: 16 octets. This field encodes the advertised SRv6 SID. 548 Sub-sub-TLV-length: 1 octet. Number of octets used by sub-sub- 549 TLVs 551 Note that multiple TLVs for the same neighbor may be required in 552 order to advertise all of the SRv6 End.X SIDs associated with that 553 neighbor. 555 7.2. SRv6 LAN End.X SID sub-TLV 557 This sub-TLV is used to advertise an SRv6 SID associated with a LAN 558 adjacency. Since the parent TLV is advertising an adjacency to the 559 Designated Intermediate System(DIS) for the LAN, it is necessary to 560 include the System ID of the physical neighbor on the LAN with which 561 the SRv6 SID is associated. Given that a large number of neighbors 562 may exist on a given LAN a large number of SRv6 LAN END.X SID sub- 563 TLVs may be associated with the same LAN. Note that multiple TLVs 564 for the same DIS neighbor may be required in order to advertise all 565 of the SRv6 End.X SIDs associated with that neighbor. 567 The SRv6 LAN End.X SID sub-TLV has the following format: 569 0 1 2 3 570 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 571 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 572 | Type | Length | System ID (6 octets) | 573 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 574 | | 575 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 576 | Flags | Algorithm | Weight | 577 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 578 | SRv6 Endpoint Function | 579 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 580 | SID (128 bits) . . . | 581 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 582 | SID (cont . . .) | 583 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 584 | SID (cont . . .) | 585 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 586 | SID (cont . . .) | 587 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 588 |Sub-sub-tlv-len| sub-sub-TLVs (variable) . . . | 589 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 591 Type: 44 (Suggested value to be assigned by IANA) 592 Length: variable. 594 System-ID: 6 octets of IS-IS System-ID of length "ID Length" as 595 defined in [ISO10589]. 597 Flags: 1 octet. 599 0 1 2 3 4 5 6 7 600 +-+-+-+-+-+-+-+-+ 601 |B|S|P|Reserved | 602 +-+-+-+-+-+-+-+-+ 604 where B,S, and P flags are as described in Section 6.1. 605 Other bits: MUST be zero when originated and ignored when 606 received. 608 Algorithm: 1 octet. Associated algorithm. Algorithm values 609 are defined in the IGP Algorithm Type registry. 611 Weight: 1 octet. The value represents the weight of the 612 End.X SID for the purpose of load balancing. The use 613 of the weight is defined in [I-D.ietf-spring-segment-routing]. 615 SRv6 Endpoint Function: 2 octets. As defined in 616 [I-D.filsfils-spring-srv6-network-programming] 617 Legal function values for this sub-TLV are defined in Section 7. 619 SID: 16 octets. This field encodes the advertised SRv6 SID. 621 Sub-sub-TLV-length: 1 octet. Number of octets used by sub-sub- 622 TLVs. 624 8. Advertising Endpoint Behaviors 626 Endpoint behaviors are defined in 627 [I-D.filsfils-spring-srv6-network-programming] and 628 [I-D.ali-spring-srv6-oam]. The numerical identifiers for the 629 Endpoint behaviors are defined in the "SRv6 Endpoint Behaviors" 630 registry defined in [I-D.filsfils-spring-srv6-network-programming]. 631 This section lists the Endpoint behaviors and their identifiers, 632 which MAY be advertised by IS-IS and the SID sub-TLVs in which each 633 type MAY appear. 635 Endpoint |Endpoint | End | End.X | Lan End.X | 636 Behavior |Behavior Identifier | SID | SID | SID | 637 -----------------------|--------------------|-------|-------|-----------| 638 End (PSP, USP, USD) | 1-4, 28-31 | Y | N | N | 639 -----------------------|--------------------|-------|-------|-----------| 640 End.X (PSP, USP, USD) | 5-8, 32-35 | N | Y | Y | 641 -----------------------|--------------------|-------|-------|-----------| 642 End.T (PSP, USP, USD) | 9-12, 36-39 | Y | N | N | 643 -----------------------|--------------------|-------|-------|-----------| 644 End.DX6 | 16 | N | Y | Y | 645 -----------------------|--------------------|-------|-------|-----------| 646 End.DX4 | 17 | N | Y | Y | 647 -----------------------|--------------------|-------|-------|-----------| 648 End.DT6 | 18 | Y | N | N | 649 -----------------------|--------------------|-------|-------|-----------| 650 End.DT4 | 19 | Y | N | N | 651 -----------------------|--------------------|-------|-------|-----------| 652 End.DT64 | 20 | Y | N | N | 653 -----------------------|--------------------|-------|-------|-----------| 654 End.OP | 40 | Y | N | N | 655 -----------------------|--------------------|-------|-------|-----------| 656 End.OTP | 41 | Y | N | N | 658 9. IANA Considerations 660 This document requests allocation for the following TLVs, sub- TLVs, 661 and sub-sub-TLVs as well updating the ISIS TLV registry and defining 662 a new registry. 664 9.1. SRv6 Locator TLV 666 This document adds one new TLV to the IS-IS TLV Codepoints registry. 668 Value: 27 (suggested - to be assigned by IANA) 670 Name: SRv6 Locator 672 This TLV shares sub-TLV space with existing "Sub-TLVs for TLVs 135, 673 235, 236 and 237 registry". The name of this registry needs to be 674 changed to "Sub-TLVs for TLVs 27, 135, 235, 236 and 237 registry". 676 9.1.1. SRv6 End SID sub-TLV 678 This document adds the following new sub-TLV to the (renamed) "Sub- 679 TLVs for TLVs 27, 135, 235, 236 and 237 registry". 681 Value: 5 (suggested - to be assigned by IANA) 683 Name: SRv6 End SID 685 This document requests the creation of a new IANA managed registry 686 for sub-sub-TLVs of the SRv6 End SID sub-TLV. The registration 687 procedure is "Expert Review" as defined in [RFC7370]. Suggested 688 registry name is "sub-sub-TLVs for SRv6 End SID sub-TLV". No sub- 689 sub-TLVs are defined by this document except for the reserved value. 691 0: Reserved 693 1-255: Unassigned 695 9.1.2. Revised sub-TLV table 697 The revised table of sub-TLVs for the (renamed) "Sub-TLVs for TLVs 698 27, 135, 235, 236 and 237 registry" is shown below: 700 Type 27 135 235 236 237 702 1 n y y y y 703 2 n y y y y 704 3 n y y y y 705 4 y y y y y 706 5 y n n n n 707 11 y y y y y 708 12 y y y y y 710 9.2. SRv6 Capabilities sub-TLV 712 This document adds the definition of a new sub-TLV in the "Sub- TLVs 713 for TLV 242 registry". 715 Type: 25 (Suggested - to be assigned by IANA) 717 Description: SRv6 Capabilities 719 This document requests the creation of a new IANA managed registry 720 for sub-sub-TLVs of the SRv6 Capability sub-TLV. The registration 721 procedure is "Expert Review" as defined in [RFC7370]. Suggested 722 registry name is "sub-sub-TLVs for SRv6 Capability sub-TLV". No sub- 723 sub-TLVs are defined by this document except for the reserved value. 725 0: Reserved 727 1-255: Unassigned 729 9.3. SRv6 End.X SID and SRv6 LAN End.X SID sub-TLVs 731 This document adds the definition of two new sub-TLVs in the "sub- 732 TLVs for TLV 22, 23, 25, 141, 222 and 223 registry". 734 Type: 43 (suggested - to be assigned by IANA) 736 Description: SRv6 End.X SID 738 Type: 44 (suggested - to be assigned by IANA) 740 Description: SRv6 LAN End.X SID 742 Type 22 23 25 141 222 223 744 43 y y y y y y 745 44 y y y y y y 747 9.4. MSD Types 749 This document defines the following new MSD types. These types are 750 to be defined in the IGP MSD Types registry defined in 751 [I-D.ietf-isis-segment-routing-msd] . 753 All values are suggested values to be assigned by IANA. 755 Type Description 756 ------------------ 757 41 SRH Max SL 758 42 SRH Max End Pop 759 43 SRH Max T.insert 760 44 SRH Max T.encaps 761 45 SRH Max End D 763 10. Security Considerations 765 Security concerns for IS-IS are addressed in [ISO10589], [RFC5304], 766 and [RFC5310]. 768 11. Contributors 770 The following people gave a substantial contribution to the content 771 of this document and should be considered as co-authors: 773 Stefano Previdi 774 Huawei Technologies 775 Email: stefano@previdi.net 777 Paul Wells 778 Cisco Systems 779 Saint Paul, 780 Minnesota 781 United States 782 Email: pauwells@cisco.com 784 Daniel Voyer 785 Email: daniel.voyer@bell.ca 787 Satoru Matsushima 788 Email: satoru.matsushima@g.softbank.co.jp 790 Bart Peirens 791 Email: bart.peirens@proximus.com 793 Hani Elmalky 794 Email: hani.elmalky@ericsson.com 796 Prem Jonnalagadda 797 Email: prem@barefootnetworks.com 799 Milad Sharif 800 Email: msharif@barefootnetworks.com> 802 Robert Hanzl 803 Cisco Systems 804 Millenium Plaza Building, V Celnici 10, Prague 1, 805 Prague, Czech Republic 806 Email rhanzl@cisco.com 808 Ketan Talaulikar 809 Cisco Systems, Inc. 810 Email: ketant@cisco.com 812 12. References 814 12.1. Normative References 816 [I-D.ali-spring-srv6-oam] 817 Ali, Z., Filsfils, C., Kumar, N., Pignataro, C., 818 faiqbal@cisco.com, f., Gandhi, R., Leddy, J., Matsushima, 819 S., Raszuk, R., daniel.voyer@bell.ca, d., Dawra, G., 820 Peirens, B., Chen, M., and G. Naik, "Operations, 821 Administration, and Maintenance (OAM) in Segment Routing 822 Networks with IPv6 Data plane (SRv6)", draft-ali-spring- 823 srv6-oam-02 (work in progress), October 2018. 825 [I-D.filsfils-spring-srv6-network-programming] 826 Filsfils, C., Camarillo, P., Leddy, J., 827 daniel.voyer@bell.ca, d., Matsushima, S., and Z. Li, "SRv6 828 Network Programming", draft-filsfils-spring-srv6-network- 829 programming-07 (work in progress), February 2019. 831 [I-D.ietf-6man-segment-routing-header] 832 Filsfils, C., Previdi, S., Leddy, J., Matsushima, S., and 833 d. daniel.voyer@bell.ca, "IPv6 Segment Routing Header 834 (SRH)", draft-ietf-6man-segment-routing-header-16 (work in 835 progress), February 2019. 837 [I-D.ietf-isis-segment-routing-extensions] 838 Previdi, S., Ginsberg, L., Filsfils, C., Bashandy, A., 839 Gredler, H., and B. Decraene, "IS-IS Extensions for 840 Segment Routing", draft-ietf-isis-segment-routing- 841 extensions-22 (work in progress), December 2018. 843 [I-D.ietf-isis-segment-routing-msd] 844 Tantsura, J., Chunduri, U., Aldrin, S., and L. Ginsberg, 845 "Signaling MSD (Maximum SID Depth) using IS-IS", draft- 846 ietf-isis-segment-routing-msd-19 (work in progress), 847 October 2018. 849 [ISO10589] 850 Standardization", I. ". O. F., "Intermediate system to 851 Intermediate system intra-domain routeing information 852 exchange protocol for use in conjunction with the protocol 853 for providing the connectionless-mode Network Service (ISO 854 8473), ISO/IEC 10589:2002, Second Edition.", Nov 2002. 856 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 857 Requirement Levels", BCP 14, RFC 2119, 858 DOI 10.17487/RFC2119, March 1997, 859 . 861 [RFC5120] Przygienda, T., Shen, N., and N. Sheth, "M-ISIS: Multi 862 Topology (MT) Routing in Intermediate System to 863 Intermediate Systems (IS-ISs)", RFC 5120, 864 DOI 10.17487/RFC5120, February 2008, 865 . 867 [RFC5304] Li, T. and R. Atkinson, "IS-IS Cryptographic 868 Authentication", RFC 5304, DOI 10.17487/RFC5304, October 869 2008, . 871 [RFC5305] Li, T. and H. Smit, "IS-IS Extensions for Traffic 872 Engineering", RFC 5305, DOI 10.17487/RFC5305, October 873 2008, . 875 [RFC5310] Bhatia, M., Manral, V., Li, T., Atkinson, R., White, R., 876 and M. Fanto, "IS-IS Generic Cryptographic 877 Authentication", RFC 5310, DOI 10.17487/RFC5310, February 878 2009, . 880 [RFC7370] Ginsberg, L., "Updates to the IS-IS TLV Codepoints 881 Registry", RFC 7370, DOI 10.17487/RFC7370, September 2014, 882 . 884 [RFC7981] Ginsberg, L., Previdi, S., and M. Chen, "IS-IS Extensions 885 for Advertising Router Information", RFC 7981, 886 DOI 10.17487/RFC7981, October 2016, 887 . 889 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 890 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 891 May 2017, . 893 12.2. Informative References 895 [I-D.ietf-spring-segment-routing] 896 Filsfils, C., Previdi, S., Ginsberg, L., Decraene, B., 897 Litkowski, S., and R. Shakir, "Segment Routing 898 Architecture", draft-ietf-spring-segment-routing-15 (work 899 in progress), January 2018. 901 [RFC8355] Filsfils, C., Ed., Previdi, S., Ed., Decraene, B., and R. 902 Shakir, "Resiliency Use Cases in Source Packet Routing in 903 Networking (SPRING) Networks", RFC 8355, 904 DOI 10.17487/RFC8355, March 2018, 905 . 907 Authors' Addresses 909 Peter Psenak (editor) 910 Cisco Systems 911 Pribinova Street 10 912 Bratislava 81109 913 Slovakia 915 Email: ppsenak@cisco.com 917 Clarence Filsfils 918 Cisco Systems 919 Brussels 920 Belgium 922 Email: cfilsfil@cisco.com 924 Ahmed Bashandy 925 Individual 927 Email: abashandy.ietf@gmail.com 929 Bruno Decraene 930 Orange 931 Issy-les-Moulineaux 932 France 934 Email: bruno.decraene@orange.com 936 Zhibo Hu 937 Huawei Technologies 939 Email: huzhibo@huawei.com