idnits 2.17.1 draft-bashandy-isis-srv6-extensions-04.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 (October 15, 2018) is 1992 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-01 == Outdated reference: A later version (-07) exists of draft-filsfils-spring-srv6-network-programming-05 == Outdated reference: A later version (-26) exists of draft-ietf-6man-segment-routing-header-14 == Outdated reference: A later version (-25) exists of draft-ietf-isis-segment-routing-extensions-19 -- 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 P. Psenak, Ed. 3 Internet-Draft C. Filsfils 4 Intended status: Standards Track Cisco Systems 5 Expires: April 18, 2019 A. Bashandy 6 Individual 7 B. Decraene 8 Orange 9 Z. Hu 10 Huawei Technologies 11 October 15, 2018 13 IS-IS Extensions to Support Routing over IPv6 Dataplane 14 draft-bashandy-isis-srv6-extensions-04.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 18, 2019. 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 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 Function Types . . . . . . . . . . . . . 14 84 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 85 9.1. SRv6 Locator TLV . . . . . . . . . . . . . . . . . . . . 15 86 9.1.1. SRv6 End SID sub-TLV . . . . . . . . . . . . . . . . 16 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 . . . . . . . . . . . . . . . . . . . . . . . . 18 93 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 94 12.1. Normative References . . . . . . . . . . . . . . . . . . 19 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| 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 The remaining bits are reserved for future use. They SHOULD be 381 set to zero on transmission and MUST be ignored on receipt. 383 Algorithm: 1 octet. Associated algorithm. Algorithm values 384 are defined in the IGP Algorithm Type registry. 386 Loc-Size: 1 octet. Number of bits in the Locator field. 387 (1 - 128) 389 Locator: 1-16 octets. This field encodes the advertised SRv6 390 Locator. The Locator is encoded in the minimal number of 391 octets for the given number of bits. 393 Sub-TLV-length: 1 octet. Number of octets used by sub-TLVs 395 Optional sub-TLVs. 397 6.2. SRv6 End SID sub-TLV 399 The SRv6 End SID sub-TLV is introduced to advertise SRv6 Segment 400 Identifiers (SID) with Endpoint functions which do not require a 401 particular neighbor in order to be correctly applied 402 [I-D.filsfils-spring-srv6-network-programming]. SRv6 SIDs associated 403 with a neighbor are advertised using the sub-TLVs defined in 404 Section 6. 406 This new sub-TLV is advertised in the SRv6 Locator TLV defined in the 407 previous section. SRv6 End SIDs inherit the topology/algorithm from 408 the parent locator. 410 The SRv6 End SID sub-TLV has the following format: 412 0 1 2 3 413 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 414 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 415 | Type | Length | 416 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 417 | Flags | SRv6 Endpoint Function | 418 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 419 | SID (128 bits) . . . | 420 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 421 | SID (cont . . .) | 422 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 423 | SID (cont . . .) | 424 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 425 | SID (cont . . .) | 426 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 427 |Sub-sub-tlv-len| sub-sub-TLVs (variable) . . . | 428 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 430 Type: 5 (Suggested value to be assigned by IANA) 432 Length: variable. 434 Flags: 1 octet. No flags are currently defined. 436 SRv6 Endpoint Function: 2 octets. As defined in 437 [I-D.filsfils-spring-srv6-network-programming] 438 Legal function values for this sub-TLV are defined in Section 7. 440 SID: 16 octets. This field encodes the advertised SRv6 SID. 442 Sub-sub-TLV-length: 1 octet. Number of octets used by sub-sub-TLVs 444 Optional sub-sub-TLVs 446 The SRv6 End SID MUST be a subnet of the associated Locator. SRv6 447 End SIDs which are NOT a subnet of the associated locator MUST be 448 ignored. 450 Multiple SRv6 End SIDs MAY be associated with the same locator. In 451 cases where the number of SRv6 End SID sub-TLVs exceeds the capacity 452 of a single TLV, multiple Locator TLVs for the same locator MAY be 453 advertised. For a given MTID/Locator the algorithm MUST be the same 454 in all TLVs. If this restriction is not met all TLVs for that MTID/ 455 Locator MUST be ignored. 457 7. Advertising SRv6 End.X SIDs 459 Certain SRv6 Endpoint functions 460 [I-D.filsfils-spring-srv6-network-programming] must be associated 461 with a particular neighbor, and in case of multiple layer 3 links to 462 the same neighbor, with a particular link in order to be correctly 463 applied. 465 This document defines two new sub-TLVs of TLV 22, 23, 222, 223, and 466 141 - namely "SRv6 End.X SID" and "SRv6 LAN End.X SID". 468 IS-IS Neighbor advertisements are topology specific - but not 469 algorithm specific. End.X SIDs therefore inherit the topology from 470 the associated neighbor advertisement, but the algorithm is specified 471 in the individual SID. 473 All End.X SIDs MUST be a subnet of a Locator with matching topology 474 and algorithm which is advertised by the same node in an SRv6 Locator 475 TLV. End.X SIDs which do not meet this requirement MUST be ignored. 477 7.1. SRv6 End.X SID sub-TLV 479 This sub-TLV is used to advertise an SRv6 SID associated with a point 480 to point adjacency. Multiple SRv6 End.X SID sub-TLVs MAY be 481 associated with the same adjacency. 483 The SRv6 End.X SID sub-TLV has the following format: 485 0 1 2 3 486 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 487 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 488 | Type | Length | 489 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 490 | Flags | Algorithm | Weight | 491 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 492 | SRv6 Endpoint Function | 493 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 494 | SID (128 bits) . . . | 495 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 496 | SID (cont . . .) | 497 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 498 | SID (cont . . .) | 499 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 500 | SID (cont . . .) | 501 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 502 |Sub-sub-tlv-len| Sub-sub-TLVs (variable) . . . | 503 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 504 Type: 43 (Suggested value to be assigned by IANA) 506 Length: variable. 508 Flags: 1 octet. 510 0 1 2 3 4 5 6 7 511 +-+-+-+-+-+-+-+-+ 512 |B|S|P|Reserved | 513 +-+-+-+-+-+-+-+-+ 515 where: 517 B-Flag: Backup flag. If set, the End.X SID is eligible 518 for protection (e.g., using IPFRR) as described in [RFC8355]. 520 S-Flag. Set flag. When set, the S-Flag indicates that the 521 End.X SID refers to a set of adjacencies (and therefore 522 MAY be assigned to other adjacencies as well). 524 P-Flag. Persistent flag. When set, the P-Flag indicates that 525 the End.X SID is persistently allocated, i.e., the 526 End.X SID value remains consistent across router restart 527 and/or interface flap. 529 Other bits: MUST be zero when originated and ignored when 530 received. 532 Algorithm: 1 octet. Associated algorithm. Algorithm values 533 are defined in the IGP Algorithm Type registry. 535 Weight: 1 octet. The value represents the weight of the 536 End.X SID for the purpose of load balancing. The use 537 of the weight is defined in [I-D.ietf-spring-segment-routing]. 539 SRv6 Endpoint Function: 2 octets. As defined in 540 [I-D.filsfils-spring-srv6-network-programming] 541 Legal function values for this sub-TLV are defined in Section 7. 543 SID: 16 octets. This field encodes the advertised SRv6 SID. 545 Sub-sub-TLV-length: 1 octet. Number of octets used by sub-sub- 546 TLVs 548 Note that multiple TLVs for the same neighbor may be required in 549 order to advertise all of the SRv6 End.X SIDs associated with that 550 neighbor. 552 7.2. SRv6 LAN End.X SID sub-TLV 554 This sub-TLV is used to advertise an SRv6 SID associated with a LAN 555 adjacency. Since the parent TLV is advertising an adjacency to the 556 Designated Intermediate System(DIS) for the LAN, it is necessary to 557 include the System ID of the physical neighbor on the LAN with which 558 the SRv6 SID is associated. Given that a large number of neighbors 559 may exist on a given LAN a large number of SRv6 LAN END.X SID sub- 560 TLVs may be associated with the same LAN. Note that multiple TLVs 561 for the same DIS neighbor may be required in order to advertise all 562 of the SRv6 End.X SIDs associated with that neighbor. 564 The SRv6 LAN End.X SID sub-TLV has the following format: 566 0 1 2 3 567 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 568 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 569 | Type | Length | System ID (6 octets) | 570 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 571 | | 572 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 573 | Flags | Algorithm | Weight | 574 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 575 | SRv6 Endpoint Function | 576 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 577 | SID (128 bits) . . . | 578 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 579 | SID (cont . . .) | 580 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 581 | SID (cont . . .) | 582 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 583 | SID (cont . . .) | 584 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 585 |Sub-sub-tlv-len| sub-sub-TLVs (variable) . . . | 586 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 588 Type: 44 (Suggested value to be assigned by IANA) 589 Length: variable. 591 System-ID: 6 octets of IS-IS System-ID of length "ID Length" as 592 defined in [ISO10589]. 594 Flags: 1 octet. 596 0 1 2 3 4 5 6 7 597 +-+-+-+-+-+-+-+-+ 598 |B|S|P|Reserved | 599 +-+-+-+-+-+-+-+-+ 601 where B,S, and P flags are as described in Section 6.1. 602 Other bits: MUST be zero when originated and ignored when 603 received. 605 Algorithm: 1 octet. Associated algorithm. Algorithm values 606 are defined in the IGP Algorithm Type registry. 608 Weight: 1 octet. The value represents the weight of the 609 End.X SID for the purpose of load balancing. The use 610 of the weight is defined in [I-D.ietf-spring-segment-routing]. 612 SRv6 Endpoint Function: 2 octets. As defined in 613 [I-D.filsfils-spring-srv6-network-programming] 614 Legal function values for this sub-TLV are defined in Section 7. 616 SID: 16 octets. This field encodes the advertised SRv6 SID. 618 Sub-sub-TLV-length: 1 octet. Number of octets used by sub-sub- 619 TLVs. 621 8. Advertising Endpoint Function Types 623 Endpoint function types are defined in 624 [I-D.filsfils-spring-srv6-network-programming]. The numerical values 625 are defined in the "SRv6 Endpoint Types" registry defined in 626 [I-D.filsfils-spring-srv6-network-programming]. This section lists 627 the Endpoint function types which MAY be advertised by IS-IS and the 628 SID sub-TLVs in which each type MAY appear. 630 Endpoint | End | End.X | Lan End.X | 631 Function Type | SID | SID | SID | 632 ----------------------|-------|-------|-----------| 633 End(no PSP, no USP) | Y | N | N | 634 ----------------------|-------|-------|-----------| 635 End(with PSP) | Y | N | N | 636 ----------------------|-------|-------|-----------| 637 End(with USP) | Y | N | N | 638 ----------------------|-------|-------|-----------| 639 End(with PSP & USP) | Y | N | N | 640 ----------------------|-------|-------|-----------| 641 End.T(no PSP, no USP) | Y | N | N | 642 ----------------------|-------|-------|-----------| 643 End.T(with PSP) | Y | N | N | 644 ----------------------|-------|-------|-----------| 645 End.T(with USP) | Y | N | N | 646 ----------------------|-------|-------|-----------| 647 End.T(with PSP & USP) | Y | N | N | 648 ----------------------|-------|-------|-----------| 649 End.X(no PSP, no USP) | N | Y | Y | 650 ----------------------|-------|-------|-----------| 651 End.X(with PSP) | N | Y | Y | 652 ----------------------|-------|-------|-----------| 653 End.X(with USP) | N | Y | Y | 654 ----------------------|-------|-------|-----------| 655 End.X(with PSP & USP) | N | Y | Y | 656 ----------------------|-------|-------|-----------| 657 End.OTP | Y | N | N | 659 9. IANA Considerations 661 This document requests allocation for the following TLVs, sub- TLVs, 662 and sub-sub-TLVs as well updating the ISIS TLV registry and defining 663 a new registry. 665 9.1. SRv6 Locator TLV 667 This document adds one new TLV to the IS-IS TLV Codepoints registry. 669 Value: 27 (suggested - to be assigned by IANA) 671 Name: SRv6 Locator 673 This TLV shares sub-TLV space with existing "Sub-TLVs for TLVs 135, 674 235, 236 and 237 registry". The name of this registry needs to be 675 changed to "Sub-TLVs for TLVs 27, 135, 235, 236 and 237 registry". 677 9.1.1. SRv6 End SID sub-TLV 679 This document adds the following new sub-TLV to the (renamed) "Sub- 680 TLVs for TLVs 27, 135, 235, 236 and 237 registry". 682 Value: 5 (suggested - to be assigned by IANA) 684 Name: SRv6 End SID 686 This document requests the creation of a new IANA managed registry 687 for sub-sub-TLVs of the SRv6 End SID sub-TLV. The registration 688 procedure is "Expert Review" as defined in [RFC7370]. Suggested 689 registry name is "sub-sub-TLVs for SRv6 End SID sub-TLV". No sub- 690 sub-TLVs are defined by this document except for the reserved value. 692 0: Reserved 694 1-255: Unassigned 696 9.1.2. Revised sub-TLV table 698 The revised table of sub-TLVs for the (renamed) "Sub-TLVs for TLVs 699 27, 135, 235, 236 and 237 registry" is shown below: 701 Type 27 135 235 236 237 703 1 n y y y y 704 2 n y y y y 705 3 n y y y y 706 4 y y y y y 707 5 y n n n n 708 11 y y y y y 709 12 y y y y y 711 9.2. SRv6 Capabilities sub-TLV 713 This document adds the definition of a new sub-TLV in the "Sub- TLVs 714 for TLV 242 registry". 716 Type: 25 (Suggested - to be assigned by IANA) 718 Description: SRv6 Capabilities 720 This document requests the creation of a new IANA managed registry 721 for sub-sub-TLVs of the SRv6 Capability sub-TLV. The registration 722 procedure is "Expert Review" as defined in [RFC7370]. Suggested 723 registry name is "sub-sub-TLVs for SRv6 Capability sub-TLV". No sub- 724 sub-TLVs are defined by this document except for the reserved value. 726 0: Reserved 728 1-255: Unassigned 730 9.3. SRv6 End.X SID and SRv6 LAN End.X SID sub-TLVs 732 This document adds the definition of two new sub-TLVs in the "sub- 733 TLVs for TLV 22, 23, 25, 141, 222 and 223 registry". 735 Type: 43 (suggested - to be assigned by IANA) 737 Description: SRv6 End.X SID 739 Type: 44 (suggested - to be assigned by IANA) 741 Description: SRv6 LAN End.X SID 743 Type 22 23 25 141 222 223 745 43 y y y y y y 746 44 y y y y y y 748 9.4. MSD Types 750 This document defines the following new MSD types. These types are 751 to be defined in the IGP MSD Types registry defined in 752 [I-D.ietf-isis-segment-routing-msd] . 754 All values are suggested values to be assigned by IANA. 756 Type Description 757 ------------------ 758 41 SRH Max SL 759 42 SRH Max End Pop 760 43 SRH Max T.insert 761 44 SRH Max T.encaps 762 45 SRH Max End D 764 10. Security Considerations 766 Security concerns for IS-IS are addressed in [ISO10589], [RFC5304], 767 and [RFC5310]. 769 11. Contributors 771 The following people gave a substantial contribution to the content 772 of this document and should be considered as co-authors: 774 Stefano Previdi 775 Huawei Technologies 776 Email: stefano@previdi.net 778 Paul Wells 779 Cisco Systems 780 Saint Paul, 781 Minnesota 782 United States 783 Email: pauwells@cisco.com 785 Daniel Voyer 786 Email: daniel.voyer@bell.ca 788 Satoru Matsushima 789 Email: satoru.matsushima@g.softbank.co.jp 791 Bart Peirens 792 Email: bart.peirens@proximus.com 794 Hani Elmalky 795 Email: hani.elmalky@ericsson.com 797 Prem Jonnalagadda 798 Email: prem@barefootnetworks.com 800 Milad Sharif 801 Email: msharif@barefootnetworks.com> 803 Robert Hanzl 804 Cisco Systems 805 Millenium Plaza Building, V Celnici 10, Prague 1, 806 Prague, Czech Republic 807 Email rhanzl@cisco.com 809 Ketan Talaulikar 810 Cisco Systems, Inc. 811 Email: ketant@cisco.com 813 12. References 815 12.1. Normative References 817 [I-D.ali-spring-srv6-oam] 818 Ali, Z., Filsfils, C., Kumar, N., Pignataro, C., 819 faiqbal@cisco.com, f., Gandhi, R., Leddy, J., Matsushima, 820 S., Raszuk, R., daniel.voyer@bell.ca, d., Dawra, G., 821 Peirens, B., Chen, M., and G. Naik, "Operations, 822 Administration, and Maintenance (OAM) in Segment Routing 823 Networks with IPv6 Data plane (SRv6)", draft-ali-spring- 824 srv6-oam-01 (work in progress), July 2018. 826 [I-D.filsfils-spring-srv6-network-programming] 827 Filsfils, C., Camarillo, P., Leddy, J., 828 daniel.voyer@bell.ca, d., Matsushima, S., and Z. Li, "SRv6 829 Network Programming", draft-filsfils-spring-srv6-network- 830 programming-05 (work in progress), July 2018. 832 [I-D.ietf-6man-segment-routing-header] 833 Filsfils, C., Previdi, S., Leddy, J., Matsushima, S., and 834 d. daniel.voyer@bell.ca, "IPv6 Segment Routing Header 835 (SRH)", draft-ietf-6man-segment-routing-header-14 (work in 836 progress), June 2018. 838 [I-D.ietf-isis-segment-routing-extensions] 839 Previdi, S., Ginsberg, L., Filsfils, C., Bashandy, A., 840 Gredler, H., Litkowski, S., Decraene, B., and J. Tantsura, 841 "IS-IS Extensions for Segment Routing", draft-ietf-isis- 842 segment-routing-extensions-19 (work in progress), July 843 2018. 845 [I-D.ietf-isis-segment-routing-msd] 846 Tantsura, J., Chunduri, U., Aldrin, S., and L. Ginsberg, 847 "Signaling MSD (Maximum SID Depth) using IS-IS", draft- 848 ietf-isis-segment-routing-msd-19 (work in progress), 849 October 2018. 851 [ISO10589] 852 "Intermediate system to Intermediate system intra-domain 853 routeing information exchange protocol for use in 854 conjunction with the protocol for providing the 855 connectionless-mode Network Service (ISO 8473), ISO/IEC 856 10589:2002, Second Edition.", Nov 2002. 858 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 859 Requirement Levels", BCP 14, RFC 2119, 860 DOI 10.17487/RFC2119, March 1997, 861 . 863 [RFC5120] Przygienda, T., Shen, N., and N. Sheth, "M-ISIS: Multi 864 Topology (MT) Routing in Intermediate System to 865 Intermediate Systems (IS-ISs)", RFC 5120, 866 DOI 10.17487/RFC5120, February 2008, 867 . 869 [RFC5304] Li, T. and R. Atkinson, "IS-IS Cryptographic 870 Authentication", RFC 5304, DOI 10.17487/RFC5304, October 871 2008, . 873 [RFC5305] Li, T. and H. Smit, "IS-IS Extensions for Traffic 874 Engineering", RFC 5305, DOI 10.17487/RFC5305, October 875 2008, . 877 [RFC5310] Bhatia, M., Manral, V., Li, T., Atkinson, R., White, R., 878 and M. Fanto, "IS-IS Generic Cryptographic 879 Authentication", RFC 5310, DOI 10.17487/RFC5310, February 880 2009, . 882 [RFC7370] Ginsberg, L., "Updates to the IS-IS TLV Codepoints 883 Registry", RFC 7370, DOI 10.17487/RFC7370, September 2014, 884 . 886 [RFC7981] Ginsberg, L., Previdi, S., and M. Chen, "IS-IS Extensions 887 for Advertising Router Information", RFC 7981, 888 DOI 10.17487/RFC7981, October 2016, 889 . 891 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 892 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 893 May 2017, . 895 12.2. Informative References 897 [I-D.ietf-spring-segment-routing] 898 Filsfils, C., Previdi, S., Ginsberg, L., Decraene, B., 899 Litkowski, S., and R. Shakir, "Segment Routing 900 Architecture", draft-ietf-spring-segment-routing-15 (work 901 in progress), January 2018. 903 [RFC8355] Filsfils, C., Ed., Previdi, S., Ed., Decraene, B., and R. 904 Shakir, "Resiliency Use Cases in Source Packet Routing in 905 Networking (SPRING) Networks", RFC 8355, 906 DOI 10.17487/RFC8355, March 2018, 907 . 909 Authors' Addresses 911 Peter Psenak (editor) 912 Cisco Systems 913 Pribinova Street 10 914 Bratislava 81109 915 Slovakia 917 Email: ppsenak@cisco.com 919 Clarence Filsfils 920 Cisco Systems 921 Brussels 922 Belgium 924 Email: cfilsfil@cisco.com 926 Ahmed Bashandy 927 Individual 929 Email: abashandy.ietf@gmail.com 931 Bruno Decraene 932 Orange 933 Issy-les-Moulineaux 934 France 936 Email: bruno.decraene@orange.com 938 Zhibo Hu 939 Huawei Technologies 941 Email: huzhibo@huawei.com