idnits 2.17.1 draft-bashandy-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 : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (June 29, 2018) is 2120 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 (-02) exists of draft-ali-spring-srv6-oam-00 == Outdated reference: A later version (-07) exists of draft-filsfils-spring-srv6-network-programming-04 == Outdated reference: A later version (-26) exists of draft-ietf-6man-segment-routing-header-13 == Outdated reference: A later version (-19) exists of draft-ietf-isis-segment-routing-msd-12 -- Possible downref: Non-RFC (?) normative reference: ref. 'ISO10589' Summary: 0 errors (**), 0 flaws (~~), 5 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Networking Working Group L. Ginsberg, Ed. 3 Internet-Draft P. Psenak, Ed. 4 Intended status: Standards Track C. Filsfils 5 Expires: December 31, 2018 Cisco Systems 6 A. Bashandy 7 Individual 8 B. Decraene 9 Orange 10 Z. Hu 11 Huawei Technologies 12 June 29, 2018 14 IS-IS Extensions to Support Routing over IPv6 Dataplane 15 draft-bashandy-isis-srv6-extensions-03.txt 17 Abstract 19 Segment Routing (SR) allows for a flexible definition of end-to-end 20 paths by encoding paths as sequences of topological sub-paths, called 21 "segments". Segment routing architecture can be implemented over an 22 MPLS data plane as well as an IPv6 data plane. This draft describes 23 the IS-IS extensions required to support Segment Routing over an IPv6 24 data plane. 26 Requirements Language 28 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 29 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 30 "OPTIONAL" in this document are to be interpreted as described in BCP 31 14 [RFC2119] [RFC8174] when, and only when, they appear in all 32 capitals, as shown here. 34 Status of This Memo 36 This Internet-Draft is submitted in full conformance with the 37 provisions of BCP 78 and BCP 79. 39 Internet-Drafts are working documents of the Internet Engineering 40 Task Force (IETF). Note that other groups may also distribute 41 working documents as Internet-Drafts. The list of current Internet- 42 Drafts is at https://datatracker.ietf.org/drafts/current/. 44 Internet-Drafts are draft documents valid for a maximum of six months 45 and may be updated, replaced, or obsoleted by other documents at any 46 time. It is inappropriate to use Internet-Drafts as reference 47 material or to cite them other than as "work in progress." 48 This Internet-Draft will expire on December 31, 2018. 50 Copyright Notice 52 Copyright (c) 2018 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 Maximum SRv6 SID Depths . . . . . . . . . . . . . 4 70 3.1. Maximum Segments Left MSD Type . . . . . . . . . . . . . 4 71 3.2. Maximum End Pop MSD Type . . . . . . . . . . . . . . . . 5 72 3.3. Maximum T.Insert MSD Type . . . . . . . . . . . . . . . . 5 73 3.4. Maximum T.Encaps MSD Type . . . . . . . . . . . . . . . . 5 74 3.5. Maximum End D MSD Type . . . . . . . . . . . . . . . . . 6 75 4. SRv6 SIDs and Reachability . . . . . . . . . . . . . . . . . 6 76 5. Advertising Locators and End SIDs . . . . . . . . . . . . . . 7 77 5.1. SRv6 Locator TLV Format . . . . . . . . . . . . . . . . . 7 78 5.2. SRv6 End SID sub-TLV . . . . . . . . . . . . . . . . . . 9 79 6. Advertising SRv6 End.X SIDs . . . . . . . . . . . . . . . . . 11 80 6.1. SRv6 End.X SID sub-TLV . . . . . . . . . . . . . . . . . 11 81 6.2. SRv6 LAN End.X SID sub-TLV . . . . . . . . . . . . . . . 13 82 7. Advertising Endpoint Function Types . . . . . . . . . . . . . 14 83 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 84 8.1. SRv6 Locator TLV . . . . . . . . . . . . . . . . . . . . 15 85 8.1.1. SRv6 End SID sub-TLV . . . . . . . . . . . . . . . . 16 86 8.1.2. Revised sub-TLV table . . . . . . . . . . . . . . . . 16 87 8.2. SRv6 Capabilities sub-TLV . . . . . . . . . . . . . . . . 16 88 8.3. SRv6 End.X SID and SRv6 LAN End.X SID sub-TLVs . . . . . 17 89 8.4. MSD Types . . . . . . . . . . . . . . . . . . . . . . . . 17 90 9. Security Considerations . . . . . . . . . . . . . . . . . . . 18 91 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 18 92 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 93 11.1. Normative References . . . . . . . . . . . . . . . . . . 19 94 11.2. Informative References . . . . . . . . . . . . . . . . . 21 95 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21 97 1. Introduction 99 With Segment Routing (SR) [I-D.ietf-spring-segment-routing], a node 100 steers a packet through an ordered list of instructions, called 101 segments. 103 Segments are identified through Segment Identifiers (SIDs). 105 Segment Routing can be directly instantiated on the IPv6 data plane 106 through the use of the Segment Routing Header defined in 107 [I-D.ietf-6man-segment-routing-header]. SRv6 refers to this SR 108 instantiation on the IPv6 dataplane. 110 The network programming paradigm 111 [I-D.filsfils-spring-srv6-network-programming] is central to SRv6. 112 It describes how any function can be bound to a SID and how any 113 network program can be expressed as a combination of SID's. 115 This document specifies IS-IS extensions that allow the IS-IS 116 protocol to encode some of these functions. 118 Familiarity with the network programming paradigm 119 [I-D.filsfils-spring-srv6-network-programming] is necessary to 120 understand the extensions specified in this document. 122 This document defines one new top level IS-IS TLV and several new IS- 123 IS sub-TLVs. 125 The SRv6 Capabilities sub-TLV announces the ability to support SRv6 126 and some Endpoint functions listed in Section 7 as well as 127 advertising limitations when applying such Endpoint functions. 129 The SRv6 Locator top level TLV announces SRv6 locators - a form of 130 summary address for the set of topology/algorithm specific SIDs 131 associated with a node. 133 The SRv6 End SID sub-TLV, the SRv6 End.X SID sub-TLV, and the SRv6 134 LAN End.X SID sub-TLV are used to advertise which SIDs are 135 instantiated at a node and what Endpoint function is bound to each 136 instantiated SID. 138 2. SRv6 Capabilities sub-TLV 140 A node indicates that it has support for SRv6 by advertising a new 141 SRv6- capabilities sub-TLV of the router capabilities TLV [RFC7981]. 143 The SRv6 Capabilities sub-TLV may contain optional sub-sub-TLVs. No 144 sub-sub-TLVs are currently defined. 146 The SRv6 Capabilities sub-TLV has the following format: 148 0 1 2 3 149 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 150 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 151 | Type | Length | Flags | 152 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 153 | optional sub-sub-TLVs... 155 Type: Suggested value 25, to be assigned by IANA 157 Length: 2 + length of sub-sub-TLVs 159 Flags: 2 octets The following flags are defined: 161 0 1 162 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 163 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 164 | |O| | 165 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 167 where: 169 O-flag: If set, the router supports use of the O-bit 170 in the Segment Routing Header(SRH) as defined in 171 [I-D.ali-spring-srv6-oam]. 173 3. Advertising Maximum SRv6 SID Depths 175 [I-D.ietf-isis-segment-routing-msd] defines the means to advertise 176 node/link specific values for Maximum SID Depths (MSD) of various 177 types. Node MSDs are advertised in a sub-TLV of the Router 178 Capabilities TLV [RFC7981]. Link MSDs are advertised in a sub-TLV of 179 TLVs 22, 23, 141, 222, and 223. 181 This document defines the relevant SRv6 MSDs and requests MSD type 182 assignments in the MSD Types registry created by 183 [I-D.ietf-isis-segment-routing-msd]. 185 3.1. Maximum Segments Left MSD Type 187 The Maximum Segments Left MSD Type specifies the maximum value of the 188 "SL" field [I-D.ietf-6man-segment-routing-header] in the SRH of a 189 received packet before applying the Endpoint function associated with 190 a SID. 192 SRH Max SL Type: 41 (Suggested value - to be assigned by IANA) 194 If no value is advertised the supported value is assumed to be 0. 196 3.2. Maximum End Pop MSD Type 198 The Maximum End Pop MSD Type specifies the maximum number of SIDs in 199 the top SRH in an SRH stack to which the router can apply "PSP" or 200 USP" as defined in [I-D.filsfils-spring-srv6-network-programming] 201 flavors. 203 SRH Max End Pop Type: 42 (Suggested value - to be assigned by IANA) 205 If the advertised value is zero or no value is advertised 206 then it is assumed that the router cannot apply PSP or USP flavors. 208 3.3. Maximum T.Insert MSD Type 210 The Maximum T.Insert MSD Type specifies the maximum number of SIDs 211 that can be inserted as part of the "T.insert" behavior as defined in 212 [I-D.filsfils-spring-srv6-network-programming]. 214 SRH Max T.insert Type: 43 (Suggested value - to be assigned by IANA) 216 If the advertised value is zero or no value is advertised 217 then the router is assumed not to support any variation 218 of the "T.insert" behavior. 220 3.4. Maximum T.Encaps MSD Type 222 The Maximum T.Encaps MSD Type specifies the maximum number of SIDs 223 that can be included as part of the "T.Encaps" behavior as defined in 224 [I-D.filsfils-spring-srv6-network-programming] . 226 SRH Max T.encaps Type: 44 (Suggested value - to be assigned by IANA) 228 If the advertised value is zero then the router can apply T.Encaps 229 only by encapsulating the incoming packet in another 230 IPv6 header without SRH the same way IPinIP encapsulation is 231 performed. 233 If the advertised value is non-zero then the router supports both 234 IPinIP and SRH encapsulation subject to the SID limitation 235 specified by the advertised value. 237 3.5. Maximum End D MSD Type 239 The Maximum End D MSD Type specifies the maximum number of SIDs in an 240 SRH when performing decapsulation associated with "End.Dx" functions 241 (e.g., "End.DX6" and "End.DT6") as defined in 242 [I-D.filsfils-spring-srv6-network-programming]. 244 SRH Max End D Type: 45 (Suggested value - to be assigned by IANA) 246 If the advertised value is zero or no value is advertised 247 then it is assumed that the router cannot apply 248 "End.DX6" or "End.DT6" functions if the extension 249 header right underneath the outer IPv6 header is an SRH. 251 4. SRv6 SIDs and Reachability 253 As discussed in [I-D.filsfils-spring-srv6-network-programming], an 254 SRv6 Segment Identifier (SID) is 128 bits and represented as 256 LOC:FUNCT 258 where LOC (the locator portion) is the L most significant bits and 259 FUNCT is the 128-L least significant bits. L is called the locator 260 length and is flexible. Each operator is free to use the locator 261 length it chooses. 263 A node is provisioned with topology/algorithm specific locators for 264 each of the topology/algorithm pairs supported by that node. Each 265 locator is a covering prefix for all SIDs provisioned on that node 266 which have the matching topology/algorithm. 268 Locators MUST be advertised in the SRv6 Locator TLV (see 269 Section 6.1). Forwarding entries for the locators advertised in the 270 SRv6 Locator TLV MUST be installed in the forwarding plane of 271 receiving SRv6 capable routers when the associated topology/algorithm 272 is supported by the receiving node. 274 Locators are routable and MAY also be advertised in Prefix 275 Reachability TLVs (236 or 237). 277 Locators associated with algorithm 0 (for all supported topologies) 278 SHOULD be advertised in a Prefix Reachability TLV (236 or 237) so 279 that legacy routers (i.e., routers which do NOT support SRv6) will 280 install a forwarding entry for algorithm 0 SRv6 traffic. 282 In cases where a locator advertisement is received in both in a 283 Prefix Reachability TLV and an SRv6 Locator TLV, the Prefix 284 Reachability advertisement MUST be preferred when installing entries 285 in the forwarding plane. This is to prevent inconsistent forwarding 286 entries on SRv6 capable/SRv6 incapable routers. 288 SRv6 SIDs are advertised as sub-TLVs in the SRv6 Locator TLV except 289 for SRv6 End.X SIDs/LAN End.X SIDs which are associated with a 290 specific Neighbor/Link and are therefore advertised as sub-TLVs in 291 TLVs 22, 23, 222, 223, and 141. 293 SRv6 SIDs are not directly routable and MUST NOT be installed in the 294 forwarding plane. Reachability to SRv6 SIDs depends upon the 295 existence of a covering locator. 297 Adherence to the rules defined in this section will assure that SRv6 298 SIDs associated with a supported topology/algorithm pair will be 299 forwarded correctly, while SRv6 SIDs associated with an unsupported 300 topology/algorithm pair will be dropped. NOTE: The drop behavior 301 depends on the absence of a default/summary route covering a given 302 locator. 304 In order for forwarding to work correctly, the locator associated 305 with SRv6 SID advertisements MUST be the longest match prefix 306 installed in the forwarding plane for those SIDs. There are a number 307 of ways in which this requirement could be compromised 309 o Another locator associated with a different topology/algorithm is 310 the longest match 312 o A prefix advertisement (i.e., from TLV 236 or 237) is the longest 313 match 315 5. Advertising Locators and End SIDs 317 The SRv6 Locator TLV is introduced to advertise SRv6 Locators and End 318 SIDs associated with each locator. 320 This new TLV shares the sub-TLV space defined for TLVs 135, 235, 236 321 and 237. 323 5.1. SRv6 Locator TLV Format 325 The SRv6 Locator TLV has the following format: 327 0 1 2 3 328 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 329 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 330 | Type | Length |R|R|R|R| MTID | 331 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 333 Followed by one or more locator entries of the form: 335 0 1 2 3 336 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 337 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 338 | Metric | 339 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 340 | Flags | Algorithm | 341 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 342 | Loc Size | Locator (variable)... 343 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 344 | Sub-tlv-len | Sub-TLVs (variable) . . . | 345 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 347 Type: 27 (Suggested value to be assigned by IANA) 349 Length: variable. 351 MTID: Multitopology Identifier as defined in [RFC5120]. 352 Note that the value 0 is legal. 354 Locator entry: 356 Metric: 4 octets. As described in [RFC5305]. 358 Flags: 1 octet. The following flags are defined 360 0 361 0 1 2 3 4 5 6 7 362 +-+-+-+-+-+-+-+-+ 363 |D| Reserved | 364 +-+-+-+-+-+-+-+-+ 366 where: 367 D bit: When the Locator is leaked from level-2 to level-1, the D 368 bit MUST be set. Otherwise, this bit MUST be clear. Locators 369 with the D bit set MUST NOT be leaked from level-1 to level-2. 370 This is to prevent looping. 372 The remaining bits are reserved for future use. They SHOULD be 373 set to zero on transmission and MUST be ignored on receipt. 375 Algorithm: 1 octet. Associated algorithm. Algorithm values 376 are defined in the IGP Algorithm Type registry. 378 Loc-Size: 1 octet. Number of bits in the Locator field. 379 (1 - 128) 380 Locator: 1-16 octets. This field encodes the advertised SRv6 381 Locator. The Locator is encoded in the minimal number of 382 octets for the given number of bits. 384 Sub-TLV-length: 1 octet. Number of octets used by sub-TLVs 386 Optional sub-TLVs. 388 5.2. SRv6 End SID sub-TLV 390 The SRv6 End SID sub-TLV is introduced to advertise SRv6 Segment 391 Identifiers (SID) with Endpoint functions which do not require a 392 particular neighbor in order to be correctly applied 393 [I-D.filsfils-spring-srv6-network-programming]. SRv6 SIDs associated 394 with a neighbor are advertised using the sub-TLVs defined in 395 Section 6. 397 This new sub-TLV is advertised in the SRv6 Locator TLV defined in the 398 previous section. SRv6 End SIDs inherit the topology/algorithm from 399 the parent locator. 401 The SRv6 End SID sub-TLV has the following format: 403 0 1 2 3 404 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 405 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 406 | Type | Length | 407 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 408 | Flags | SRv6 Endpoint Function | 409 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 410 | SID (128 bits) . . . | 411 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 412 | SID (cont . . .) | 413 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 414 | SID (cont . . .) | 415 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 416 | SID (cont . . .) | 417 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 418 |Sub-sub-tlv-len| sub-sub-TLVs (variable) . . . | 419 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 421 Type: 5 (Suggested value to be assigned by IANA) 423 Length: variable. 425 Flags: 1 octet. No flags are currently defined. 427 SRv6 Endpoint Function: 2 octets. As defined in 428 [I-D.filsfils-spring-srv6-network-programming] 429 Legal function values for this sub-TLV are defined in Section 7. 431 SID: 16 octets. This field encodes the advertised SRv6 SID. 433 Sub-sub-TLV-length: 1 octet. Number of octets used by sub-sub-TLVs 435 Optional sub-sub-TLVs 437 The SRv6 End SID MUST be a subnet of the associated Locator. SRv6 438 End SIDs which are NOT a subnet of the associated locator MUST be 439 ignored. 441 Multiple SRv6 End SIDs MAY be associated with the same locator. In 442 cases where the number of SRv6 End SID sub-TLVs exceeds the capacity 443 of a single TLV, multiple Locator TLVs for the same locator MAY be 444 advertised. For a given MTID/Locator the algorithm MUST be the same 445 in all TLVs. If this restriction is not met all TLVs for that MTID/ 446 Locator MUST be ignored. 448 6. Advertising SRv6 End.X SIDs 450 Certain SRv6 Endpoint functions 451 [I-D.filsfils-spring-srv6-network-programming] must be associated 452 with a particular neighbor, and in case of multiple layer 3 links to 453 the same neighbor, with a particular link in order to be correctly 454 applied. 456 This document defines two new sub-TLVs of TLV 22, 23, 222, 223, and 457 141 - namely "SRv6 End.X SID" and "SRv6 LAN End.X SID". 459 IS-IS Neighbor advertisements are topology specific - but not 460 algorithm specific. End.X SIDs therefore inherit the topology from 461 the associated neighbor advertisement, but the algorithm is specified 462 in the individual SID. 464 All End.X SIDs MUST be a subnet of a Locator with matching topology 465 and algorithm which is advertised by the same node in an SRv6 Locator 466 TLV. End.X SIDs which do not meet this requirement MUST be ignored. 468 6.1. SRv6 End.X SID sub-TLV 470 This sub-TLV is used to advertise an SRv6 SID associated with a point 471 to point adjacency. Multiple SRv6 End.X SID sub-TLVs MAY be 472 associated with the same adjacency. 474 The SRv6 End.X SID sub-TLV has the following format: 476 0 1 2 3 477 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 478 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 479 | Type | Length | 480 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 481 | Flags | Algorithm | Weight | 482 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 483 | SRv6 Endpoint Function | 484 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 485 | SID (128 bits) . . . | 486 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 487 | SID (cont . . .) | 488 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 489 | SID (cont . . .) | 490 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 491 | SID (cont . . .) | 492 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 493 |Sub-sub-tlv-len| Sub-sub-TLVs (variable) . . . | 494 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 495 Type: 43 (Suggested value to be assigned by IANA) 497 Length: variable. 499 Flags: 1 octet. 501 0 1 2 3 4 5 6 7 502 +-+-+-+-+-+-+-+-+ 503 |B|S|P|Reserved | 504 +-+-+-+-+-+-+-+-+ 506 where: 508 B-Flag: Backup flag. If set, the End.X SID is eligible 509 for protection (e.g., using IPFRR) as described in [RFC8355]. 511 S-Flag. Set flag. When set, the S-Flag indicates that the 512 End.X SID refers to a set of adjacencies (and therefore 513 MAY be assigned to other adjacencies as well). 515 P-Flag. Persistent flag. When set, the P-Flag indicates that 516 the End.X SID is persistently allocated, i.e., the 517 End.X SID value remains consistent across router restart 518 and/or interface flap. 520 Other bits: MUST be zero when originated and ignored when 521 received. 523 Algorithm: 1 octet. Associated algorithm. Algorithm values 524 are defined in the IGP Algorithm Type registry. 526 Weight: 1 octet. The value represents the weight of the 527 End.X SID for the purpose of load balancing. The use 528 of the weight is defined in [I-D.ietf-spring-segment-routing]. 530 SRv6 Endpoint Function: 2 octets. As defined in 531 [I-D.filsfils-spring-srv6-network-programming] 532 Legal function values for this sub-TLV are defined in Section 7. 534 SID: 16 octets. This field encodes the advertised SRv6 SID. 536 Sub-sub-TLV-length: 1 octet. Number of octets used by sub-sub- 537 TLVs 539 Note that multiple TLVs for the same neighbor may be required in 540 order to advertise all of the SRv6 End.X SIDs associated with that 541 neighbor. 543 6.2. SRv6 LAN End.X SID sub-TLV 545 This sub-TLV is used to advertise an SRv6 SID associated with a LAN 546 adjacency. Since the parent TLV is advertising an adjacency to the 547 Designated Intermediate System(DIS) for the LAN, it is necessary to 548 include the System ID of the physical neighbor on the LAN with which 549 the SRv6 SID is associated. Given that a large number of neighbors 550 may exist on a given LAN a large number of SRv6 LAN END.X SID sub- 551 TLVs may be associated with the same LAN. Note that multiple TLVs 552 for the same DIS neighbor may be required in order to advertise all 553 of the SRv6 End.X SIDs associated with that neighbor. 555 The SRv6 LAN End.X SID sub-TLV has the following format: 557 0 1 2 3 558 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 559 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 560 | Type | Length | System ID (6 octets) | 561 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 562 | | 563 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 564 | Flags | Algorithm | Weight | 565 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 566 | SRv6 Endpoint Function | 567 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 568 | SID (128 bits) . . . | 569 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 570 | SID (cont . . .) | 571 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 572 | SID (cont . . .) | 573 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 574 | SID (cont . . .) | 575 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 576 |Sub-sub-tlv-len| sub-sub-TLVs (variable) . . . | 577 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 579 Type: 44 (Suggested value to be assigned by IANA) 580 Length: variable. 582 System-ID: 6 octets of IS-IS System-ID of length "ID Length" as 583 defined in [ISO10589]. 585 Flags: 1 octet. 587 0 1 2 3 4 5 6 7 588 +-+-+-+-+-+-+-+-+ 589 |B|S|P|Reserved | 590 +-+-+-+-+-+-+-+-+ 592 where B,S, and P flags are as described in Section 6.1. 593 Other bits: MUST be zero when originated and ignored when 594 received. 596 Algorithm: 1 octet. Associated algorithm. Algorithm values 597 are defined in the IGP Algorithm Type registry. 599 Weight: 1 octet. The value represents the weight of the 600 End.X SID for the purpose of load balancing. The use 601 of the weight is defined in [I-D.ietf-spring-segment-routing]. 603 SRv6 Endpoint Function: 2 octets. As defined in 604 [I-D.filsfils-spring-srv6-network-programming] 605 Legal function values for this sub-TLV are defined in Section 7. 607 SID: 16 octets. This field encodes the advertised SRv6 SID. 609 Sub-sub-TLV-length: 1 octet. Number of octets used by sub-sub- 610 TLVs. 612 7. Advertising Endpoint Function Types 614 Endpoint function types are defined in 615 [I-D.filsfils-spring-srv6-network-programming]. The numerical values 616 are defined in the "SRv6 Endpoint Types" registry defined in 617 [I-D.filsfils-spring-srv6-network-programming]. This section lists 618 the Endpoint function types which MAY be advertised by IS-IS and the 619 SID sub-TLVs in which each type MAY appear. 621 Endpoint | End | End.X | Lan End.X | 622 Function Type | SID | SID | SID | 623 ----------------------|-------|-------|-----------| 624 End(no PSP, no USP) | Y | N | N | 625 ----------------------|-------|-------|-----------| 626 End(with PSP) | Y | N | N | 627 ----------------------|-------|-------|-----------| 628 End(with USP) | Y | N | N | 629 ----------------------|-------|-------|-----------| 630 End(with PSP & USP) | Y | N | N | 631 ----------------------|-------|-------|-----------| 632 End.T(no PSP, no USP) | Y | N | N | 633 ----------------------|-------|-------|-----------| 634 End.T(with PSP) | Y | N | N | 635 ----------------------|-------|-------|-----------| 636 End.T(with USP) | Y | N | N | 637 ----------------------|-------|-------|-----------| 638 End.T(with PSP & USP) | Y | N | N | 639 ----------------------|-------|-------|-----------| 640 End.X(no PSP, no USP) | N | Y | Y | 641 ----------------------|-------|-------|-----------| 642 End.X(with PSP) | N | Y | Y | 643 ----------------------|-------|-------|-----------| 644 End.X(with USP) | N | Y | Y | 645 ----------------------|-------|-------|-----------| 646 End.X(with PSP & USP) | N | Y | Y | 647 ----------------------|-------|-------|-----------| 648 End.DX6 | N | Y | Y | 649 ----------------------|-------|-------|-----------| 650 End.DT6 | Y | N | N | 651 ----------------------|-------|-------|-----------| 652 End.OTP | Y | N | N | 654 8. IANA Considerations 656 This document requests allocation for the following TLVs, sub- TLVs, 657 and sub-sub-TLVs as well updating the ISIS TLV registry and defining 658 a new registry. 660 8.1. SRv6 Locator TLV 662 This document adds one new TLV to the IS-IS TLV Codepoints registry. 664 Value: 27 (suggested - to be assigned by IANA) 666 Name: SRv6 Locator 667 This TLV shares sub-TLV space with existing "Sub-TLVs for TLVs 135, 668 235, 236 and 237 registry". The name of this registry needs to be 669 changed to "Sub-TLVs for TLVs 27, 135, 235, 236 and 237 registry". 671 8.1.1. SRv6 End SID sub-TLV 673 This document adds the following new sub-TLV to the (renamed) "Sub- 674 TLVs for TLVs 27, 135, 235, 236 and 237 registry". 676 Value: 5 (suggested - to be assigned by IANA) 678 Name: SRv6 End SID 680 This document requests the creation of a new IANA managed registry 681 for sub-sub-TLVs of the SRv6 End SID sub-TLV. The registration 682 procedure is "Expert Review" as defined in [RFC7370]. Suggested 683 registry name is "sub-sub-TLVs for SRv6 End SID sub-TLV". No sub- 684 sub-TLVs are defined by this document except for the reserved value. 686 0: Reserved 688 1-255: Unassigned 690 8.1.2. Revised sub-TLV table 692 The revised table of sub-TLVs for the (renamed) "Sub-TLVs for TLVs 693 27, 135, 235, 236 and 237 registry" is shown below: 695 Type 27 135 235 236 237 697 1 n y y y y 698 2 n y y y y 699 3 n y y y y 700 4 y y y y y 701 5 y n n n n 702 11 y y y y y 703 12 y y y y y 705 8.2. SRv6 Capabilities sub-TLV 707 This document adds the definition of a new sub-TLV in the "Sub- TLVs 708 for TLV 242 registry". 710 Type: 25 (Suggested - to be assigned by IANA) 712 Description: SRv6 Capabilities 713 This document requests the creation of a new IANA managed registry 714 for sub-sub-TLVs of the SRv6 Capability sub-TLV. The registration 715 procedure is "Expert Review" as defined in [RFC7370]. Suggested 716 registry name is "sub-sub-TLVs for SRv6 Capability sub-TLV". No sub- 717 sub-TLVs are defined by this document except for the reserved value. 719 0: Reserved 721 1-255: Unassigned 723 8.3. SRv6 End.X SID and SRv6 LAN End.X SID sub-TLVs 725 This document adds the definition of two new sub-TLVs in the "sub- 726 TLVs for TLV 22, 23, 25, 141, 222 and 223 registry". 728 Type: 43 (suggested - to be assigned by IANA) 730 Description: SRv6 End.X SID 732 Type: 44 (suggested - to be assigned by IANA) 734 Description: SRv6 LAN End.X SID 736 Type 22 23 25 141 222 223 738 43 y y y y y y 739 44 y y y y y y 741 8.4. MSD Types 743 This document defines the following new MSD types. These types are 744 to be defined in the IGP MSD Types registry defined in 745 [I-D.ietf-isis-segment-routing-msd] . 747 All values are suggested values to be assigned by IANA. 749 Type Description 750 ------------------ 751 41 SRH Max SL 752 42 SRH Max End Pop 753 43 SRH Max T.insert 754 44 SRH Max T.encaps 755 45 SRH Max End D 757 9. Security Considerations 759 Security concerns for IS-IS are addressed in [ISO10589], [RFC5304], 760 and [RFC5310]. 762 10. Contributors 764 The following people gave a substantial contribution to the content 765 of this document and should be considered as co-authors: 767 Stefano Previdi 768 Huawei Technologies 769 Email: stefano@previdi.net 771 Paul Wells 772 Cisco Systems 773 Saint Paul, 774 Minnesota 775 United States 776 Email: pauwells@cisco.com 778 Daniel Voyer 779 Email: daniel.voyer@bell.ca 781 Satoru Matsushima 782 Email: satoru.matsushima@g.softbank.co.jp 784 Bart Peirens 785 Email: bart.peirens@proximus.com 787 Hani Elmalky 788 Email: hani.elmalky@ericsson.com 790 Prem Jonnalagadda 791 Email: prem@barefootnetworks.com 793 Milad Sharif 794 Email: msharif@barefootnetworks.com> 796 Robert Hanzl 797 Cisco Systems 798 Millenium Plaza Building, V Celnici 10, Prague 1, 799 Prague, Czech Republic 800 Email rhanzl@cisco.com 802 Ketan Talaulikar 803 Cisco Systems, Inc. 804 Email: ketant@cisco.com 806 11. References 808 11.1. Normative References 810 [I-D.ali-spring-srv6-oam] 811 Ali, Z., Filsfils, C., Kumar, N., Pignataro, C., 812 faiqbal@cisco.com, f., Gandhi, R., Leddy, J., Matsushima, 813 S., Raszuk, R., Peirens, B., and G. Naik, "Operations, 814 Administration, and Maintenance (OAM) in Segment Routing 815 Networks with IPv6 Data plane (SRv6)", draft-ali-spring- 816 srv6-oam-00 (work in progress), February 2018. 818 [I-D.filsfils-spring-srv6-network-programming] 819 Filsfils, C., Li, Z., Leddy, J., daniel.voyer@bell.ca, d., 820 daniel.bernier@bell.ca, d., Steinberg, D., Raszuk, R., 821 Matsushima, S., Lebrun, D., Decraene, B., Peirens, B., 822 Salsano, S., Naik, G., Elmalky, H., Jonnalagadda, P., and 823 M. Sharif, "SRv6 Network Programming", draft-filsfils- 824 spring-srv6-network-programming-04 (work in progress), 825 March 2018. 827 [I-D.ietf-6man-segment-routing-header] 828 Previdi, S., Filsfils, C., Leddy, J., Matsushima, S., and 829 d. daniel.voyer@bell.ca, "IPv6 Segment Routing Header 830 (SRH)", draft-ietf-6man-segment-routing-header-13 (work in 831 progress), May 2018. 833 [I-D.ietf-isis-segment-routing-msd] 834 Tantsura, J., Chunduri, U., Aldrin, S., and L. Ginsberg, 835 "Signaling MSD (Maximum SID Depth) using IS-IS", draft- 836 ietf-isis-segment-routing-msd-12 (work in progress), May 837 2018. 839 [ISO10589] 840 "Intermediate system to Intermediate system intra-domain 841 routeing information exchange protocol for use in 842 conjunction with the protocol for providing the 843 connectionless-mode Network Service (ISO 8473), ISO/IEC 844 10589:2002, Second Edition.", Nov 2002. 846 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 847 Requirement Levels", BCP 14, RFC 2119, 848 DOI 10.17487/RFC2119, March 1997, 849 . 851 [RFC5120] Przygienda, T., Shen, N., and N. Sheth, "M-ISIS: Multi 852 Topology (MT) Routing in Intermediate System to 853 Intermediate Systems (IS-ISs)", RFC 5120, 854 DOI 10.17487/RFC5120, February 2008, 855 . 857 [RFC5304] Li, T. and R. Atkinson, "IS-IS Cryptographic 858 Authentication", RFC 5304, DOI 10.17487/RFC5304, October 859 2008, . 861 [RFC5305] Li, T. and H. Smit, "IS-IS Extensions for Traffic 862 Engineering", RFC 5305, DOI 10.17487/RFC5305, October 863 2008, . 865 [RFC5310] Bhatia, M., Manral, V., Li, T., Atkinson, R., White, R., 866 and M. Fanto, "IS-IS Generic Cryptographic 867 Authentication", RFC 5310, DOI 10.17487/RFC5310, February 868 2009, . 870 [RFC7370] Ginsberg, L., "Updates to the IS-IS TLV Codepoints 871 Registry", RFC 7370, DOI 10.17487/RFC7370, September 2014, 872 . 874 [RFC7981] Ginsberg, L., Previdi, S., and M. Chen, "IS-IS Extensions 875 for Advertising Router Information", RFC 7981, 876 DOI 10.17487/RFC7981, October 2016, 877 . 879 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 880 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 881 May 2017, . 883 11.2. Informative References 885 [I-D.ietf-spring-segment-routing] 886 Filsfils, C., Previdi, S., Ginsberg, L., Decraene, B., 887 Litkowski, S., and R. Shakir, "Segment Routing 888 Architecture", draft-ietf-spring-segment-routing-15 (work 889 in progress), January 2018. 891 [RFC8355] Filsfils, C., Ed., Previdi, S., Ed., Decraene, B., and R. 892 Shakir, "Resiliency Use Cases in Source Packet Routing in 893 Networking (SPRING) Networks", RFC 8355, 894 DOI 10.17487/RFC8355, March 2018, 895 . 897 Authors' Addresses 898 Les Ginsberg (editor) 899 Cisco Systems 900 821 Alder Drive 901 Milpitas, CA 95035 902 USA 904 Email: ginsberg@cisco.com 906 Peter Psenak (editor) 907 Cisco Systems 908 Pribinova Street 10 909 Bratislava 81109 910 Slovakia 912 Email: ppsenak@cisco.com 914 Clarence Filsfils 915 Cisco Systems 916 Brussels 917 Belgium 919 Email: cfilsfil@cisco.com 921 Ahmed Bashandy 922 Individual 924 Email: abashandy.ietf@gmail.com 926 Bruno Decraene 927 Orange 928 Issy-les-Moulineaux 929 France 931 Email: bruno.decraene@orange.com 933 Zhibo Hu 934 Huawei Technologies 936 Email: huzhibo@huawei.com