idnits 2.17.00 (12 Aug 2021) /tmp/idnits64754/draft-ietf-idr-bgp-ls-segment-routing-ext-16.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 27, 2019) is 1059 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: draft-ietf-isis-l2bundles has been published as RFC 8668 == Outdated reference: draft-ietf-isis-segment-routing-extensions has been published as RFC 8667 == Outdated reference: draft-ietf-lsr-ospf-prefix-originator has been published as RFC 9084 == Outdated reference: draft-ietf-ospf-ospfv3-segment-routing-extensions has been published as RFC 8666 == Outdated reference: draft-ietf-ospf-segment-routing-extensions has been published as RFC 8665 == Outdated reference: A later version (-12) exists of draft-ietf-isis-sr-yang-05 == Outdated reference: A later version (-17) exists of draft-ietf-ospf-sr-yang-07 == Outdated reference: draft-ietf-spring-segment-routing-ldp-interop has been published as RFC 8661 == Outdated reference: draft-ietf-spring-sr-yang has been published as RFC 9020 Summary: 0 errors (**), 0 flaws (~~), 10 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Inter-Domain Routing S. Previdi 3 Internet-Draft Huawei Technologies 4 Intended status: Standards Track K. Talaulikar, Ed. 5 Expires: December 29, 2019 C. Filsfils 6 Cisco Systems, Inc. 7 H. Gredler 8 RtBrick Inc. 9 M. Chen 10 Huawei Technologies 11 June 27, 2019 13 BGP Link-State extensions for Segment Routing 14 draft-ietf-idr-bgp-ls-segment-routing-ext-16 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". These segments are advertised by routing protocols e.g. 21 by the link state routing protocols (IS-IS, OSPFv2 and OSPFv3) within 22 IGP topologies. 24 This document defines extensions to the BGP Link-state address-family 25 in order to carry segment routing information via BGP. 27 Requirements Language 29 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 30 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 31 "OPTIONAL" in this document are to be interpreted as described in BCP 32 14 [RFC2119] [RFC8174] when, and only when, they appear in all 33 capitals, as shown here. 35 Status of This Memo 37 This Internet-Draft is submitted in full conformance with the 38 provisions of BCP 78 and BCP 79. 40 Internet-Drafts are working documents of the Internet Engineering 41 Task Force (IETF). Note that other groups may also distribute 42 working documents as Internet-Drafts. The list of current Internet- 43 Drafts is at https://datatracker.ietf.org/drafts/current/. 45 Internet-Drafts are draft documents valid for a maximum of six months 46 and may be updated, replaced, or obsoleted by other documents at any 47 time. It is inappropriate to use Internet-Drafts as reference 48 material or to cite them other than as "work in progress." 49 This Internet-Draft will expire on December 29, 2019. 51 Copyright Notice 53 Copyright (c) 2019 IETF Trust and the persons identified as the 54 document authors. All rights reserved. 56 This document is subject to BCP 78 and the IETF Trust's Legal 57 Provisions Relating to IETF Documents 58 (https://trustee.ietf.org/license-info) in effect on the date of 59 publication of this document. Please review these documents 60 carefully, as they describe your rights and restrictions with respect 61 to this document. Code Components extracted from this document must 62 include Simplified BSD License text as described in Section 4.e of 63 the Trust Legal Provisions and are provided without warranty as 64 described in the Simplified BSD License. 66 Table of Contents 68 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 69 2. BGP-LS Extensions for Segment Routing . . . . . . . . . . . . 5 70 2.1. Node Attributes TLVs . . . . . . . . . . . . . . . . . . 5 71 2.1.1. SID/Label TLV . . . . . . . . . . . . . . . . . . . . 5 72 2.1.2. SR Capabilities TLV . . . . . . . . . . . . . . . . . 6 73 2.1.3. SR Algorithm TLV . . . . . . . . . . . . . . . . . . 8 74 2.1.4. SR Local Block TLV . . . . . . . . . . . . . . . . . 8 75 2.1.5. SRMS Preference TLV . . . . . . . . . . . . . . . . . 10 76 2.2. Link Attribute TLVs . . . . . . . . . . . . . . . . . . . 11 77 2.2.1. Adjacency SID TLV . . . . . . . . . . . . . . . . . . 11 78 2.2.2. LAN Adjacency SID TLV . . . . . . . . . . . . . . . . 12 79 2.2.3. L2 Bundle Member Attribute TLV . . . . . . . . . . . 14 80 2.3. Prefix Attribute TLVs . . . . . . . . . . . . . . . . . . 16 81 2.3.1. Prefix SID TLV . . . . . . . . . . . . . . . . . . . 17 82 2.3.2. Prefix Attribute Flags TLV . . . . . . . . . . . . . 18 83 2.3.3. Source Router Identifier (Source Router-ID) TLV . . . 19 84 2.3.4. Range TLV . . . . . . . . . . . . . . . . . . . . . . 19 85 2.4. Equivalent IS-IS Segment Routing TLVs/Sub-TLVs . . . . . 21 86 2.5. Equivalent OSPFv2/OSPFv3 Segment Routing TLVs/Sub-TLVs . 22 87 3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25 88 3.1. TLV/Sub-TLV Code Points Summary . . . . . . . . . . . . . 25 89 4. Manageability Considerations . . . . . . . . . . . . . . . . 25 90 5. Security Considerations . . . . . . . . . . . . . . . . . . . 26 91 6. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 27 92 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 28 93 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 28 94 8.1. Normative References . . . . . . . . . . . . . . . . . . 28 95 8.2. Informative References . . . . . . . . . . . . . . . . . 30 96 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 30 98 1. Introduction 100 Segment Routing (SR) allows for a flexible definition of end-to-end 101 paths by combining sub-paths called "segments". A segment can 102 represent any instruction: topological or service-based. A segment 103 can have a local semantic to an SR node or global semantic within a 104 domain. Within IGP topologies, an SR path is encoded as a sequence 105 of topological sub-paths, called "IGP segments". These segments are 106 advertised by the link-state routing protocols (IS-IS, OSPFv2 and 107 OSPFv3). 109 [RFC8402] defines the Link-State IGP segments - Prefix, Node, Anycast 110 and Adjacency segments. Prefix segments, by default, represent an 111 ECMP-aware shortest-path to a prefix, as per the state of the IGP 112 topology. Adjacency segments represent a hop over a specific 113 adjacency between two nodes in the IGP. A prefix segment is 114 typically a multi-hop path while an adjacency segment, in most of the 115 cases, is a one-hop path. Node and anycast segments are variations 116 of the prefix segment with their specific characteristics. 118 When Segment Routing is enabled in an IGP domain, segments are 119 advertised in the form of Segment Identifiers (SIDs). The IGP link- 120 state routing protocols have been extended to advertise SIDs and 121 other SR-related information. IGP extensions are described for: IS- 122 IS [I-D.ietf-isis-segment-routing-extensions], OSPFv2 123 [I-D.ietf-ospf-segment-routing-extensions] and OSPFv3 124 [I-D.ietf-ospf-ospfv3-segment-routing-extensions]. Using these 125 extensions, Segment Routing can be enabled within an IGP domain. 127 Segment Routing (SR) allows advertisement of single or multi-hop 128 paths. The flooding scope for the IGP extensions for Segment routing 129 is IGP area-wide. Consequently, the contents of a Link State 130 Database (LSDB) or a Traffic Engineering Database (TED) has the scope 131 of an IGP area and therefore, by using the IGP alone it is not enough 132 to construct segments across multiple IGP Area or AS boundaries. 134 In order to address the need for applications that require 135 topological visibility across IGP areas, or even across Autonomous 136 Systems (AS), the BGP-LS address-family/sub-address-family have been 137 defined to allow BGP to carry Link-State information. The BGP 138 Network Layer Reachability Information (NLRI) encoding format for 139 BGP-LS and a new BGP Path Attribute called the BGP-LS attribute are 140 defined in [RFC7752]. The identifying key of each Link-State object, 141 namely a node, link, or prefix, is encoded in the NLRI and the 142 properties of the object are encoded in the BGP-LS attribute. 144 +------------+ 145 | Consumer | 146 +------------+ 147 ^ 148 | 149 v 150 +-------------------+ 151 | BGP Speaker | +-----------+ 152 | (Route-Reflector) | | Consumer | 153 +-------------------+ +-----------+ 154 ^ ^ ^ ^ 155 | | | | 156 +---------------+ | +-------------------+ | 157 | | | | 158 v v v v 159 +-----------+ +-----------+ +-----------+ 160 | BGP | | BGP | | BGP | 161 | Speaker | | Speaker | . . . | Speaker | 162 +-----------+ +-----------+ +-----------+ 163 ^ ^ ^ 164 | | | 165 IGP IGP IGP 167 Figure 1: Link State info collection 169 Figure 1 denotes a typical deployment scenario. In each IGP area, 170 one or more nodes are configured with BGP-LS. These BGP speakers 171 form an IBGP mesh by connecting to one or more route-reflectors. 172 This way, all BGP speakers (specifically the route-reflectors) obtain 173 Link-State information from all IGP areas (and from other ASes from 174 EBGP peers). An external component connects to the route-reflector 175 to obtain this information (perhaps moderated by a policy regarding 176 what information is or isn't advertised to the external component) as 177 described in [RFC7752]. 179 This document describes extensions to BGP-LS to advertise the SR 180 information. An external component (e.g., a controller) can collect 181 SR information from across an SR domain (as described in [RFC8402]) 182 and construct the end-to-end path (with its associated SIDs) that 183 need to be applied to an incoming packet to achieve the desired end- 184 to-end forwarding. SR operates within a trusted domain consisting of 185 a single or multiple ASes managed by the same administrative entity 186 e.g. within a single provider network. 188 2. BGP-LS Extensions for Segment Routing 190 This document defines SR extensions to BGP-LS and specifies the TLVs 191 and sub-TLVs for advertising SR information within the BGP-LS 192 Attribute. Section 2.4 and Section 2.5 lists the equivalent TLVs and 193 sub-TLVs in IS-IS, OSPFv2 and OSPFv3 protocols. 195 BGP-LS [RFC7752] defines the BGP-LS NLRI that can be a Node NLRI, a 196 Link NLRI or a Prefix NLRI. BGP-LS [RFC7752] defines the TLVs that 197 map link-state information to BGP-LS NLRI within the BGP-LS 198 Attribute. This document adds additional BGP-LS Attribute TLVs in 199 order to encode SR information. It does not introduce any changes to 200 the encoding of the BGP-LS NLRIs. 202 2.1. Node Attributes TLVs 204 The following Node Attribute TLVs are defined: 206 +------+-----------------+---------------+ 207 | Type | Description | Section | 208 +------+-----------------+---------------+ 209 | 1161 | SID/Label | Section 2.1.1 | 210 | 1034 | SR Capabilities | Section 2.1.2 | 211 | 1035 | SR Algorithm | Section 2.1.3 | 212 | 1036 | SR Local Block | Section 2.1.4 | 213 | 1037 | SRMS Preference | Section 2.1.5 | 214 +------+-----------------+---------------+ 216 Table 1: Node Attribute TLVs 218 These TLVs should only be added to the BGP-LS Attribute associated 219 with the Node NLRI describing the IGP node that is originating the 220 corresponding IGP TLV/sub-TLV described below. 222 2.1.1. SID/Label TLV 224 The SID/Label TLV is used as a sub-TLV by the SR Capabilities 225 (Section 2.1.2) and Segment Routing Local Block (SRLB) 226 (Section 2.1.4) TLVs. This information is derived from the protocol 227 specific advertisements. 229 o IS-IS, as defined by the SID/Label sub-TLV in section 2.3 of 230 [I-D.ietf-isis-segment-routing-extensions]. 232 o OSPFv2/OSPFv3, as defined by the SID/Label sub-TLV in section 2.1 233 of [I-D.ietf-ospf-segment-routing-extensions] and section 3.1 of 234 [I-D.ietf-ospf-ospfv3-segment-routing-extensions]. 236 The TLV has the following format: 238 0 1 2 3 239 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 240 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 241 | Type | Length | 242 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 243 | SID/Label (variable) // 244 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 246 Figure 2: SID/Label TLV Format 248 Where: 250 Type: 1161 252 Length: Variable. Either 3 or 4 depending whether the value is 253 encoded as a label or as an index/SID. 255 SID/Label: If length is set to 3, then the 20 rightmost bits 256 represent a label (the total TLV size is 7) and the 4 leftmost 257 bits are set to 0. If length is set to 4, then the value 258 represents a 32 bit SID (the total TLV size is 8). 260 2.1.2. SR Capabilities TLV 262 The SR Capabilities TLV is used in order to advertise the node's SR 263 Capabilities including its Segment Routing Global Base (SRGB) 264 range(s). In the case of IS-IS, the capabilities also include the 265 IPv4 and IPv6 support for the SR-MPLS forwarding plane. This 266 information is derived from the protocol specific advertisements. 268 o IS-IS, as defined by the SR Capabilities sub-TLV in section 3.1 of 269 [I-D.ietf-isis-segment-routing-extensions]. 271 o OSPFv2/OSPFv3, as defined by the SID/Label Range TLV in section 272 3.2 of [I-D.ietf-ospf-segment-routing-extensions]. OSPFv3 273 leverages the same TLV as defined for OSPFv2. 275 The SR Capabilities TLV has the following format: 277 0 1 2 3 278 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 279 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 280 | Type | Length | 281 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 282 | Flags | Reserved | 283 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 285 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 286 | Range Size 1 | 287 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 288 | SID/Label sub-TLV 1 // 289 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 291 ... 293 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 294 | Range Size N | 295 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 296 | SID/Label sub-TLV N // 297 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 299 Figure 3: SR Capabilities TLV Format 301 Where: 303 Type: 1034 305 Length: Variable. Minimum length is 12. 307 Flags: 1 octet of flags as defined in section 3.1 of 308 [I-D.ietf-isis-segment-routing-extensions] for IS-IS. The flags 309 are not currently defined for OSPFv2 and OSPFv3 and MUST be set to 310 0 and ignored on receipt. 312 Reserved: 1 octet that MUST be set to 0 and ignored on receipt. 314 One or more entries, each of which have the following format: 316 Range Size: 3 octet with a non-zero value indicating the number 317 of labels in the range. 319 SID/Label TLV (as defined in Section 2.1.1) used as sub-TLV 320 which encodes the first label in the range. Since the SID/ 321 Label TLV is used to indicate the first label of the SRGB 322 range, only label encoding is valid under the SR Capabilities 323 TLV. 325 2.1.3. SR Algorithm TLV 327 The SR Algorithm TLV is used in order to advertise the SR Algorithms 328 supported by the node. This information is derived from the protocol 329 specific advertisements. 331 o IS-IS, as defined by the SR-Algorithm sub-TLV in section 3.2 of 332 [I-D.ietf-isis-segment-routing-extensions]. 334 o OSPFv2/OSPFv3, as defined by the SR-Algorithm TLV in section 3.1 335 of [I-D.ietf-ospf-segment-routing-extensions]. OSPFv3 leverages 336 the same TLV as defined for OSPFv2. 338 The SR Algorithm TLV has the following format: 340 0 1 2 3 341 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 342 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 343 | Type | Length | 344 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 345 | Algorithm 1 | Algorithm... | Algorithm N | 346 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 348 Figure 4: SR Algorithm TLV Format 350 Where: 352 Type: 1035 354 Length: Variable. Minimum length is 1 and maximum can be 256. 356 Algorithm: One or more fields of 1 octet each identifying the 357 algorithm. 359 2.1.4. SR Local Block TLV 361 The SR Local Block (SRLB) TLV contains the range(s) of labels the 362 node has reserved for local SIDs. Local SIDs are used, e.g., in IGP 363 (IS-IS, OSPF) for Adjacency-SIDs, and may also be allocated by 364 components other than IGP protocols. As an example, an application 365 or a controller may instruct a node to allocate a specific local SID. 366 Therefore, in order for such applications or controllers to know the 367 range of local SIDs available, it is required that the node 368 advertises its SRLB. 370 This information is derived from the protocol specific 371 advertisements. 373 o IS-IS, as defined by the SR Local Block sub-TLV in section 3.3 of 374 [I-D.ietf-isis-segment-routing-extensions]. 376 o OSPFv2/OSPFv3, as defined by the SR Local Block TLV in section 377 3.3. of [I-D.ietf-ospf-segment-routing-extensions]. OSPFv3 378 leverages the same TLV as defined for OSPFv2. 380 The SRLB TLV has the following format: 382 0 1 2 3 383 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 384 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 385 | Type | Length | 386 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 387 | Flags | Reserved | 388 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 390 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 391 | Sub-Range Size 1 | 392 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 393 | SID/Label sub-TLV 1 // 394 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 396 ... 398 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 399 | Sub-Range Size N | 400 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 401 | SID/Label sub-TLV N // 402 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 404 Figure 5: SRLB TLV Format 406 Where: 408 Type: 1036 410 Length: Variable. Minimum length is 12. 412 Flags: 1 octet of flags. The flags are as defined in section 3.3 413 of [I-D.ietf-isis-segment-routing-extensions] for IS-IS. The 414 flags are not currently defined for OSPFv2 and OSPFv3 and MUST be 415 set to 0 and ignored on receipt. 417 Reserved: 1 octet that MUST be set to 0 and ignored on receipt. 419 One or more entries corresponding to sub-range(s), each of which 420 have the following format: 422 Range Size: 3 octet value indicating the number of labels in 423 the range. 425 SID/Label TLV (as defined in Section 2.1.1) used as sub-TLV 426 which encodes the first label in the sub-range. Since the SID/ 427 Label TLV is used to indicate the first label of the SRLB sub- 428 range, only label encoding is valid under the SR Local Block 429 TLV. 431 2.1.5. SRMS Preference TLV 433 The Segment Routing Mapping Server (SRMS) Preference TLV is used in 434 order to associate a preference with SRMS advertisements from a 435 particular source. [I-D.ietf-spring-segment-routing-ldp-interop] 436 specifies the SRMS functionality along with SRMS preference of the 437 node advertising the SRMS Prefix-to-SID Mapping ranges. 439 This information is derived from the protocol specific 440 advertisements. 442 o IS-IS, as defined by the SRMS Preference sub-TLV in section 3.4 of 443 [I-D.ietf-isis-segment-routing-extensions]. 445 o OSPFv2/OSPFv3, as defined by the SRMS Preference TLV in section 446 3.4 of [I-D.ietf-ospf-segment-routing-extensions]. OSPFv3 447 leverages the same TLV as defined for OSPFv2. 449 The SRMS Preference TLV has the following format: 451 0 1 2 3 452 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 453 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 454 | Type | Length | 455 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 456 | Preference | 457 +-+-+-+-+-+-+-+-+ 459 Figure 6: SRMS Preference TLV Format 461 Where: 463 Type: 1037 465 Length: 1. 467 Preference: 1 octet carrying an unsigned 8 bit SRMS preference. 469 2.2. Link Attribute TLVs 471 The following Link Attribute TLVs are are defined: 473 +------+-----------------------+---------------+ 474 | Type | Description | Section | 475 +------+-----------------------+---------------+ 476 | 1099 | Adjacency SID TLV | Section 2.2.1 | 477 | 1100 | LAN Adjacency SID TLV | Section 2.2.2 | 478 | 1172 | L2 Bundle Member TLV | Section 2.2.3 | 479 +------+-----------------------+---------------+ 481 Table 2: Link Attribute TLVs 483 These TLVs should only be added to the BGP-LS Attribute associated 484 with the Link NLRI describing the link of the IGP node that is 485 originating the corresponding IGP TLV/sub-TLV described below. 487 2.2.1. Adjacency SID TLV 489 The Adjacency SID TLV is used in order to advertise information 490 related to an Adjacency SID. This information is derived from Adj- 491 SID sub-TLV of IS-IS (section 2.2.1 of 492 [I-D.ietf-isis-segment-routing-extensions]), OSPFv2 (section 6.1 of 493 [I-D.ietf-ospf-segment-routing-extensions]) and OSPFv3 (section 7.1 494 of [I-D.ietf-ospf-ospfv3-segment-routing-extensions]). 496 The Adjacency SID TLV has the following format: 498 0 1 2 3 499 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 500 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 501 | Type | Length | 502 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 503 | Flags | Weight | Reserved | 504 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 505 | SID/Label/Index (variable) // 506 +---------------------------------------------------------------+ 508 Figure 7: Adjacency SID TLV Format 510 Where: 512 Type: 1099 513 Length: Variable. Either 7 or 8 depending on Label or Index 514 encoding of the SID 516 Flags. 1 octet value which should be set as: 518 * IS-IS Adj-SID flags are defined in section 2.2.1 of 519 [I-D.ietf-isis-segment-routing-extensions]. 521 * OSPFv2 Adj-SID flags are defined in section 6.1 of 522 [I-D.ietf-ospf-segment-routing-extensions]. 524 * OSPFv3 Adj-SID flags are defined in section 7.1 of 525 [I-D.ietf-ospf-ospfv3-segment-routing-extensions]. 527 Weight: 1 octet carrying the weight used for load-balancing 528 purposes. The use of weight is described in section 3.4 of 529 [RFC8402]. 531 Reserved: 2 octets that MUST be set to 0 and ignored on receipt. 533 SID/Index/Label: 535 * IS-IS: Label or index value as defined in section 2.2.1 of 536 [I-D.ietf-isis-segment-routing-extensions]. 538 * OSPFv2: Label or index value as defined in section 6.1 of 539 [I-D.ietf-ospf-segment-routing-extensions]. 541 * OSPFv3: Label or index value as defined in section 7.1 of 542 [I-D.ietf-ospf-ospfv3-segment-routing-extensions]. 544 The Flags and, as an extension, the SID/Index/Label fields of this 545 TLV are interpreted according to the respective underlying IS-IS, 546 OSPFv2 or OSPFv3 protocol. The Protocol-ID of the BGP-LS Link NLRI 547 is used to determine the underlying protocol specification for 548 parsing these fields. 550 2.2.2. LAN Adjacency SID TLV 552 For a LAN, normally a node only announces its adjacency to the IS-IS 553 pseudo-node (or the equivalent OSPF Designated and Backup Designated 554 Routers). The LAN Adjacency Segment TLV allows a node to announce 555 adjacencies to all other nodes attached to the LAN in a single 556 instance of the BGP-LS Link NLRI. Without this TLV, the 557 corresponding BGP-LS link NLRI would need to be originated for each 558 additional adjacency in order to advertise the SR TLVs for these 559 neighbor adjacencies. 561 This information is derived from LAN-Adj-SID sub-TLV of IS-IS 562 (section 2.2.2 of [I-D.ietf-isis-segment-routing-extensions]) and LAN 563 Adj-SID sub-TLV of OSPFv2 (section 6.2 of 564 [I-D.ietf-ospf-segment-routing-extensions]) and OSPFv3 (section 7.2 565 of [I-D.ietf-ospf-ospfv3-segment-routing-extensions]). 567 The LAN Adjacency SID 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 | 573 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 574 | Flags | Weight | Reserved | 575 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 577 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 578 | OSPF Neighbor ID / IS-IS System-ID | 579 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 580 | | 581 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 583 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 584 | SID/Label/Index (variable) // 585 +---------------------------------------------------------------+ 587 Figure 8: LAN Adjacency SID TLV Format 589 Where: 591 Type: 1100 593 Length: Variable. For IS-IS it would be 13 or 14 depending on 594 Label or Index encoding of the SID. For OSPF it would be 11 or 12 595 depending on Label or Index encoding of the SID. 597 Flags. 1 octet value which should be set as: 599 * IS-IS LAN Adj-SID flags are defined in section 2.2.2 of 600 [I-D.ietf-isis-segment-routing-extensions]. 602 * OSPFv2 LAN Adj-SID flags are defined in section 6.2 of 603 [I-D.ietf-ospf-segment-routing-extensions]. 605 * OSPFv3 LAN Adj-SID flags are defined in section 7.2 of 606 [I-D.ietf-ospf-segment-routing-extensions]. 608 Weight: 1 octet carrying the weight used for load-balancing 609 purposes. The use of weight is described in section 3.4 of 610 [RFC8402]. 612 Reserved: 2 octets that MUST be set to 0 and ignored on receipt. 614 Neighbor ID: 6 octets for IS-IS for the System-ID and 4 octets for 615 OSPF for the OSPF Router-ID of the neighbor. 617 SID/Index/Label: 619 * IS-IS: Label or index value as defined in section 2.2.2 of 620 [I-D.ietf-isis-segment-routing-extensions]. 622 * OSPFv2: Label or index value as defined in section 6.2 of 623 [I-D.ietf-ospf-segment-routing-extensions]. 625 * OSPFv3: Label or index value as defined in section 7.2 of 626 [I-D.ietf-ospf-ospfv3-segment-routing-extensions]. 628 The Neighbor ID, Flags and, as an extension, the SID/Index/Label 629 fields of this TLV are interpreted according to the respective 630 underlying IS-IS, OSPFv2 or OSPFv3 protocol. The Protocol-ID of the 631 BGP-LS Link NLRI is used to determine the underlying protocol 632 specification for parsing these fields. 634 2.2.3. L2 Bundle Member Attribute TLV 636 The L2 Bundle Member Attribute TLV identifies an L2 Bundle Member 637 link which in turn is associated with a parent L3 link. The L3 link 638 is described by the Link NLRI defined in [RFC7752] and the L2 Bundle 639 Member Attribute TLV is associated with the Link NLRI. The TLV MAY 640 include sub-TLVs which describe attributes associated with the bundle 641 member. The identified bundle member represents a unidirectional 642 path from the originating router to the neighbor specified in the 643 parent L3 Link. Multiple L2 Bundle Member Attribute TLVs MAY be 644 associated with a Link NLRI. 646 This information is derived from L2 Bundle Member Attributes TLV of 647 IS-IS (section 2 of [I-D.ietf-isis-l2bundles]). The equivalent 648 functionality has not been specified as yet for OSPF. 650 The L2 Bundle Member Attribute TLV has the following format: 652 0 1 2 3 653 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 654 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 655 | Type | Length | 656 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 657 | L2 Bundle Member Descriptor | 658 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 659 | Link attribute sub-TLVs(variable) // 660 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 662 Figure 9: L2 Bundle Member Attributes TLV Format 664 Where: 666 Type: 1172 668 Length: Variable. 670 L2 Bundle Member Descriptor: 4 octets field that carries a Link 671 Local Identifier as defined in [RFC4202]. 673 Link attributes for L2 Bundle Member Links are advertised as sub-TLVs 674 of the L2 Bundle Member Attribute TLV. The sub-TLVs are identical to 675 existing BGP-LS TLVs as identified in the table below. 677 +-------------+------------------------------------+----------------+ 678 | TLV Code | Description | Reference | 679 | Point | | Document | 680 +-------------+------------------------------------+----------------+ 681 | 1088 | Administrative group (color) | [RFC7752] | 682 | 1089 | Maximum link bandwidth | [RFC7752] | 683 | 1090 | Max. reservable link bandwidth | [RFC7752] | 684 | 1091 | Unreserved bandwidth | [RFC7752] | 685 | 1092 | TE default metric | [RFC7752] | 686 | 1093 | Link protection type | [RFC7752] | 687 | 1099 | Adjacency Segment Identifier (Adj- | Section 2.2.1 | 688 | | SID) TLV | | 689 | 1100 | LAN Adjacency Segment Identifier | Section 2.2.2 | 690 | | (Adj-SID) TLV | | 691 | 1114 | Unidirectional link delay | [RFC8571] | 692 | 1115 | Min/Max Unidirectional link delay | [RFC8571] | 693 | 1116 | Unidirectional Delay Variation | [RFC8571] | 694 | 1117 | Unidirectional packet loss | [RFC8571] | 695 | 1118 | Unidirectional residual bandwidth | [RFC8571] | 696 | 1119 | Unidirectional available bandwidth | [RFC8571] | 697 | 1120 | Unidirectional bandwidth | [RFC8571] | 698 | | utilization | | 699 +-------------+------------------------------------+----------------+ 701 Table 3: BGP-LS Attribute TLVs also used as sub-TLVs of L2 Bundle 702 Member Attribute TLV 704 2.3. Prefix Attribute TLVs 706 The following Prefix Attribute TLVs are defined: 708 +------+------------------------+---------------+ 709 | Type | Description | Section | 710 +------+------------------------+---------------+ 711 | 1158 | Prefix SID | Section 2.3.1 | 712 | 1159 | Range | Section 2.3.4 | 713 | 1170 | Prefix Attribute Flags | Section 2.3.2 | 714 | 1171 | Source Router-ID | Section 2.3.3 | 715 +------+------------------------+---------------+ 717 Table 4: Prefix Attribute TLVs 719 These TLVs should only be added to the BGP-LS Attribute associated 720 with the Prefix NLRI describing the prefix of the IGP node that is 721 originating the corresponding IGP TLV/sub-TLV described below. 723 2.3.1. Prefix SID TLV 725 The Prefix SID TLV is used in order to advertise information related 726 to a Prefix SID. This information is derived from Prefix-SID sub-TLV 727 of IS-IS (section 2.1 of [I-D.ietf-isis-segment-routing-extensions]) 728 and the Prefix SID sub-TLV of OSPFv2 (section 5 of 729 [I-D.ietf-ospf-segment-routing-extensions]) and OSPFv3 (section 6 of 730 [I-D.ietf-ospf-ospfv3-segment-routing-extensions]). 732 The Prefix SID TLV has the following format: 734 0 1 2 3 735 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 736 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 737 | Type | Length | 738 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 739 | Flags | Algorithm | Reserved | 740 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 741 | SID/Index/Label (variable) // 742 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 744 Figure 10: Prefix SID TLV Format 746 Where: 748 Type: 1158 750 Length: Variable. 7 or 8 depending on Label or Index encoding of 751 the SID 753 Flags: 1 octet value which should be set as: 755 * IS-IS Prefix SID flags are defined in section 2.1.1 of 756 [I-D.ietf-isis-segment-routing-extensions]. 758 * OSPFv2 Prefix SID flags are defined in section 5 of 759 [I-D.ietf-ospf-segment-routing-extensions]. 761 * OSPFv3 Prefix SID flags are defined in section 6 of 762 [I-D.ietf-ospf-segment-routing-extensions]. 764 Algorithm: 1 octet value identify the algorithm. The semantics of 765 algorithm are described in section 3.1.1 of [RFC8402]. 767 Reserved: 2 octets that MUST be set to 0 and ignored on receipt. 769 SID/Index/Label: 771 * IS-IS: Label or index value as defined in section 2.1 of 772 [I-D.ietf-isis-segment-routing-extensions]. 774 * OSPFv2: Label or index value as defined in section 5 of 775 [I-D.ietf-ospf-segment-routing-extensions]. 777 * OSPFv3: Label or index value as defined in section 6 of 778 [I-D.ietf-ospf-ospfv3-segment-routing-extensions]. 780 The Flags and, as an extension, the SID/Index/Label fields of this 781 TLV are interpreted according to the respective underlying IS-IS, 782 OSPFv2 or OSPFv3 protocol. The Protocol-ID of the BGP-LS Prefix NLRI 783 is used to determine the underlying protocol specification for 784 parsing these fields. 786 2.3.2. Prefix Attribute Flags TLV 788 The Prefix Attribute Flags TLV carries IPv4/IPv6 prefix attribute 789 flags information. These flags are defined for OSPFv2 in section 2.1 790 of [RFC7684], for OSPFv3 in section A.4.1.1 of [RFC5340] and for IS- 791 IS in section 2.1 of [RFC7794]. 793 The Prefix Attribute Flags TLV has the following format: 795 0 1 2 3 796 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 797 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 798 | Type | Length | 799 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 800 | Flags (variable) // 801 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 803 Figure 11: Prefix Attribute Flags TLV Format 805 Where: 807 Type: 1170 809 Length: Variable. 811 Flags: a variable length flag field (according to the length 812 field). Flags are routing protocol specific and are to be set as 813 below: 815 * IS-IS flags correspond to the IPv4/IPv6 Extended Reachability 816 Attribute Flags defined in section 2.1 of [RFC7794] 818 * OSPFv2 flags correspond to the Flags field of the OSPFv2 819 Extended Prefix TLV defined in section 2.1 of [RFC7684] 821 * OSPFv3 flags map to the Prefix Options field defined in section 822 A.4.1.1 of [RFC5340] and extended in section 3.1 of [RFC8362] 824 The Flags field of this TLV is interpreted according to the 825 respective underlying IS-IS, OSPFv2 or OSPFv3 protocol. The 826 Protocol-ID of the BGP-LS Prefix NLRI is used to determine the 827 underlying protocol specification for parsing this field. 829 2.3.3. Source Router Identifier (Source Router-ID) TLV 831 The Source Router-ID TLV contains the IPv4 or IPv6 Router-ID of the 832 originator of the Prefix. For the IS-IS protocol this is derived 833 from the IPv4/IPv6 Source Router ID sub-TLV as defined in section 2.2 834 of [RFC7794]. For the OSPF protocol, this is derived from the Prefix 835 Source Router-ID sub-TLV as defined in section 4 of 836 [I-D.ietf-lsr-ospf-prefix-originator]. 838 The Source Router-ID TLV has the following format: 840 0 1 2 3 841 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 842 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 843 | Type | Length | 844 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 845 | 4 or 16 octet Router-ID // 846 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 848 Figure 12: Source Router-ID TLV Format 850 Where: 852 Type: 1171 854 Length: Variable. 4 or 16 in case of IS-IS and 4 in case of OSPF. 856 Router-ID: the IPv4 or IPv6 Router-ID in case of IS-IS and the 857 OSPF Router-ID in the case of OSPF. 859 2.3.4. Range TLV 861 The Range TLV is used in order to advertise a range of prefix-to-SID 862 mappings as part of the Segment Routing Mapping Server (SRMS) 863 functionality [I-D.ietf-spring-segment-routing-ldp-interop], as 864 defined in the respective underlying IGP SR extensions 866 [I-D.ietf-ospf-segment-routing-extensions] (section 4), 867 [I-D.ietf-ospf-ospfv3-segment-routing-extensions] (section 5) and 868 [I-D.ietf-isis-segment-routing-extensions] (section 2.4). The 869 information advertised in the Range TLV is derived from the SID/Label 870 Binding TLV in the case of IS-IS and the OSPFv2/OSPFv3 Extended 871 Prefix Range TLV in the case of OSPFv2/OSPFv3. 873 A Prefix NLRI, that been advertised with a Range TLV, is considered a 874 normal routing prefix (i.e. prefix reachability) only when there is 875 also an IGP metric TLV (TLV 1095) associated it. Otherwise, it is 876 considered only as the first prefix in the range for prefix-to-SID 877 mapping advertisement. 879 The format of the Range TLV is as follows: 881 0 1 2 3 882 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 883 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 884 | Type | Length | 885 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 886 | Flags | Reserved | Range Size | 887 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 888 | sub-TLVs // 889 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 891 Figure 13: Range TLV Format 893 Where: 895 Type: 1159 897 Length: Variable. 11 or 12 depending on Label or Index encoding of 898 the SID 900 Flags: 1 octet value which should be set as: 902 * IS-IS SID/Label Binding TLV flags are defined in section 2.4.1 903 of [I-D.ietf-isis-segment-routing-extensions]. 905 * OSPFv2 OSPF Extended Prefix Range TLV flags are defined in 906 section 4 of [I-D.ietf-ospf-segment-routing-extensions]. 908 * OSPFv3 Extended Prefix Range TLV flags are defined in section 5 909 of [I-D.ietf-ospf-ospfv3-segment-routing-extensions]. 911 Reserved: 1 octet that MUST be set to 0 and ignored on receipt. 913 Range Size: 2 octets that carry the number of prefixes that are 914 covered by the advertisement.. 916 The Flags field of this TLV is interpreted according to the 917 respective underlying IS-IS, OSPFv2 or OSPFv3 protocol. The 918 Protocol-ID of the BGP-LS Prefix NLRI is used to determine the 919 underlying protocol specification for parsing this field. 921 The prefix-to-SID mappings are advertised using sub-TLVs as below: 923 IS-IS: 924 SID/Label Range TLV 925 Prefix-SID sub-TLV 927 OSPFv2/OSPFv3: 928 OSPFv2/OSPFv3 Extended Prefix Range TLV 929 Prefix SID sub-TLV 931 BGP-LS: 932 Range TLV 933 Prefix-SID TLV (used as a sub-TLV in this context) 935 The prefix-to-SID mapping information for the BGP-LS Prefix-SID TLV 936 (used as sub-TLV in this context) is encoded as described in 937 Section 2.3.1. 939 2.4. Equivalent IS-IS Segment Routing TLVs/Sub-TLVs 941 This section illustrate the IS-IS Segment Routing Extensions TLVs and 942 sub-TLVs mapped to the ones defined in this document. 944 The following table, illustrates for each BGP-LS TLV, its equivalence 945 in IS-IS. 947 +------------+---------------+--------------------------------------+ 948 | Descriptio | IS-IS TLV | Reference | 949 | n | /sub-TLV | | 950 +------------+---------------+--------------------------------------+ 951 | SR Capabil | SR- | [I-D.ietf-isis-segment-routing-exten | 952 | ities | Capabilities | sions] | 953 | | sub-TLV (2) | | 954 | SR | SR-Algorithm | [I-D.ietf-isis-segment-routing-exten | 955 | Algorithm | sub-TLV (19) | sions] | 956 | SR Local | SR Local | [I-D.ietf-isis-segment-routing-exten | 957 | Block | Block sub-TLV | sions] | 958 | | (22) | | 959 | SRMS | SRMS | [I-D.ietf-isis-segment-routing-exten | 960 | Preference | Preference | sions] | 961 | | sub-TLV (19) | | 962 | Adjacency | Adj-SID sub- | [I-D.ietf-isis-segment-routing-exten | 963 | SID | TLV (31) | sions] | 964 | LAN | LAN-Adj-SID | [I-D.ietf-isis-segment-routing-exten | 965 | Adjacency | sub-TLV (32) | sions] | 966 | SID | | | 967 | Prefix SID | Prefix-SID | [I-D.ietf-isis-segment-routing-exten | 968 | | sub-TLV (3) | sions] | 969 | Range | SID/Label | [I-D.ietf-isis-segment-routing-exten | 970 | | Binding TLV | sions] | 971 | | (149) | | 972 | SID/Label | SID/Label | [I-D.ietf-isis-segment-routing-exten | 973 | | sub-TLV (1) | sions] | 974 | Prefix | Prefix | [RFC7794] | 975 | Attribute | Attributes | | 976 | Flags | Flags sub-TLV | | 977 | | (4) | | 978 | Source | IPv4/IPv6 | [RFC7794] | 979 | Router-ID | Source Router | | 980 | | ID sub-TLV | | 981 | | (11/12) | | 982 | L2 Bundle | L2 Bundle | [I-D.ietf-isis-l2bundles] | 983 | Member | Member | | 984 | Attributes | Attributes | | 985 | | TLV (25) | | 986 +------------+---------------+--------------------------------------+ 988 Table 5: IS-IS Segment Routing Extensions TLVs/Sub-TLVs 990 2.5. Equivalent OSPFv2/OSPFv3 Segment Routing TLVs/Sub-TLVs 992 This section illustrate the OSPFv2 and OSPFv3 Segment Routing 993 Extensions TLVs and sub-TLVs mapped to the ones defined in this 994 document. 996 The following table, illustrates for each BGP-LS TLV, its equivalence 997 in OSPFv2 and OSPFv3. 999 +------------+-------------+----------------------------------------+ 1000 | Descriptio | OSPFv2 TLV | Reference | 1001 | n | /sub-TLV | | 1002 +------------+-------------+----------------------------------------+ 1003 | SR Capabil | SID/Label | [I-D.ietf-ospf-segment-routing-extensi | 1004 | ities | Range TLV | ons] | 1005 | | (9) | | 1006 | SR | SR- | [I-D.ietf-ospf-segment-routing-extensi | 1007 | Algorithm | Algorithm | ons] | 1008 | | TLV (8) | | 1009 | SR Local | SR Local | [I-D.ietf-ospf-segment-routing-extensi | 1010 | Block | Block TLV | ons] | 1011 | | (14) | | 1012 | SRMS | SRMS | [I-D.ietf-ospf-segment-routing-extensi | 1013 | Preference | Preference | ons] | 1014 | | TLV (15) | | 1015 | Adjacency | Adj-SID | [I-D.ietf-ospf-segment-routing-extensi | 1016 | SID | sub-TLV (2) | ons] | 1017 | LAN | LAN Adj-SID | [I-D.ietf-ospf-segment-routing-extensi | 1018 | Adjacency | sub-TLV (3) | ons] | 1019 | SID | | | 1020 | Prefix SID | Prefix SID | [I-D.ietf-ospf-segment-routing-extensi | 1021 | | sub-TLV (2) | ons] | 1022 | Range | OSPF | [I-D.ietf-ospf-segment-routing-extensi | 1023 | | Extended | ons] | 1024 | | Prefix | | 1025 | | Range TLV | | 1026 | | (2) | | 1027 | SID/Label | SID/Label | [I-D.ietf-ospf-segment-routing-extensi | 1028 | | sub-TLV (1) | ons] | 1029 | Prefix | Flags of | [RFC7684] | 1030 | Attribute | OSPFv2 | | 1031 | Flags | Extended | | 1032 | | Prefix TLV | | 1033 | | (1) | | 1034 | Source | Prefix | [I-D.ietf-lsr-ospf-prefix-originator] | 1035 | Router-ID | Source | | 1036 | | Router-ID | | 1037 | | sub-TLV | | 1038 | | (TBD) | | 1039 +------------+-------------+----------------------------------------+ 1041 Table 6: OSPFv2 Segment Routing Extensions TLVs/Sub-TLVs 1043 +-----------+------------+------------------------------------------+ 1044 | Descripti | OSPFv3 TLV | Reference | 1045 | on | /sub-TLV | | 1046 +-----------+------------+------------------------------------------+ 1047 | SR Capabi | SID/Label | [I-D.ietf-ospf-segment-routing-extension | 1048 | lities | Range TLV | s] | 1049 | | (9) | | 1050 | SR | SR- | [I-D.ietf-ospf-segment-routing-extension | 1051 | Algorithm | Algorithm | s] | 1052 | | TLV (8) | | 1053 | SR Local | SR Local | [I-D.ietf-ospf-segment-routing-extension | 1054 | Block | Block TLV | s] | 1055 | | (14) | | 1056 | SRMS Pref | SRMS | [I-D.ietf-ospf-segment-routing-extension | 1057 | erence | Preference | s] | 1058 | | TLV (15) | | 1059 | Adjacency | Adj-SID | [I-D.ietf-ospf-ospfv3-segment-routing-ex | 1060 | SID | sub-TLV | tensions] | 1061 | | (5) | | 1062 | LAN | LAN Adj- | [I-D.ietf-ospf-ospfv3-segment-routing-ex | 1063 | Adjacency | SID sub- | tensions] | 1064 | SID | TLV (6) | | 1065 | Prefix | Prefix SID | [I-D.ietf-ospf-ospfv3-segment-routing-ex | 1066 | SID | sub-TLV | tensions] | 1067 | | (4) | | 1068 | Range | OSPFv3 | [I-D.ietf-ospf-ospfv3-segment-routing-ex | 1069 | | Extended | tensions] | 1070 | | Prefix | | 1071 | | Range TLV | | 1072 | | (9) | | 1073 | SID/Label | SID/Label | [I-D.ietf-ospf-ospfv3-segment-routing-ex | 1074 | | sub-TLV | tensions] | 1075 | | (7) | | 1076 | Prefix | Prefix | [RFC8362] | 1077 | Attribute | Option | | 1078 | Flags | Fields of | | 1079 | | Prefix TLV | | 1080 | | types | | 1081 | | 3,5,6 | | 1082 | Source | Prefix | [I-D.ietf-lsr-ospf-prefix-originator] | 1083 | Router-ID | Source | | 1084 | | Router-ID | | 1085 | | sub-TLV | | 1086 | | (TBD) | | 1087 +-----------+------------+------------------------------------------+ 1089 Table 7: OSPFv3 Segment Routing Extensions TLVs/Sub-TLVs 1091 3. IANA Considerations 1093 Early allocation of codepoints has been done by IANA for this 1094 document from the registry "BGP-LS Node Descriptor, Link Descriptor, 1095 Prefix Descriptor, and Attribute TLVs" under the "BGP-LS Parameters" 1096 registry based on Table 8. The column "IS-IS TLV/Sub-TLV" defined in 1097 the registry does not require any value and should be left empty. 1099 3.1. TLV/Sub-TLV Code Points Summary 1101 This section contains the global table of all TLVs/sub-TLVs defined 1102 in this document. 1104 +----------------+-----------------------------+---------------+ 1105 | TLV Code Point | Description | Reference | 1106 +----------------+-----------------------------+---------------+ 1107 | 1034 | SR Capabilities | Section 2.1.2 | 1108 | 1035 | SR Algorithm | Section 2.1.3 | 1109 | 1036 | SR Local Block | Section 2.1.4 | 1110 | 1037 | SRMS Preference | Section 2.1.5 | 1111 | 1099 | Adjacency SID | Section 2.2.1 | 1112 | 1100 | LAN Adjacency SID | Section 2.2.2 | 1113 | 1158 | Prefix SID | Section 2.3.1 | 1114 | 1159 | Range | Section 2.3.4 | 1115 | 1161 | SID/Label | Section 2.1.1 | 1116 | 1170 | Prefix Attribute Flags | Section 2.3.2 | 1117 | 1171 | Source Router-ID | Section 2.3.3 | 1118 | 1172 | L2 Bundle Member Attributes | Section 2.2.3 | 1119 +----------------+-----------------------------+---------------+ 1121 Table 8: Summary Table of TLV/Sub-TLV Codepoints 1123 4. Manageability Considerations 1125 This section is structured as recommended in [RFC5706]. 1127 The new protocol extensions introduced in this document augment the 1128 existing IGP topology information that is distributed via [RFC7752]. 1129 Procedures and protocol extensions defined in this document do not 1130 affect the BGP protocol operations and management other than as 1131 discussed in the Manageability Considerations section of [RFC7752]. 1132 Specifically, the malformed attribute tests for syntactic checks in 1133 the Fault Management section of [RFC7752] now encompass the new BGP- 1134 LS Attribute TLVs defined in this document. The semantic or content 1135 checking for the TLVs specified in this document and their 1136 association with the BGP-LS NLRI types or their BGP-LS Attribute is 1137 left to the consumer of the BGP-LS information (e.g. an application 1138 or a controller) and not the BGP protocol. 1140 A consumer of the BGP-LS information retrieves this information over 1141 a BGP-LS session (refer Section 1 and 2 of [RFC7752]). The handling 1142 of semantic or content errors by the consumer would be dictated by 1143 the nature of its application usage and hence is beyond the scope of 1144 this document. 1146 This document only introduces new Attribute TLVs and any syntactic 1147 error in them would result in only that specific attribute being 1148 discarded with an error log. The SR information introduced in BGP-LS 1149 by this specification, may be used by BGP-LS consumer applications 1150 like a SR path computation engine (PCE) to learn the SR capabilities 1151 of the nodes in the topology and the mapping of SR segments to those 1152 nodes. This can enable the SR PCE to perform path computations based 1153 on SR for traffic engineering use-cases and to steer traffic on paths 1154 different from the underlying IGP based distributed best path 1155 computation. Errors in the encoding or decoding of the SR 1156 information may result in the unavailability of such information to 1157 the SR PCE or incorrect information being made available to it. This 1158 may result in the SR PCE not being able to perform the desired SR 1159 based optimization functionality or to perform it in an unexpected or 1160 inconsistent manner. The handling of such errors by applications 1161 like SR PCE may be implementation specific and out of scope of this 1162 document. 1164 The extensions, specified in this document, do not introduce any new 1165 configuration or monitoring aspects in BGP or BGP-LS other than as 1166 discussed in [RFC7752]. The manageability aspects of the underlying 1167 SR features are covered by [I-D.ietf-spring-sr-yang], 1168 [I-D.ietf-isis-sr-yang] and [I-D.ietf-ospf-sr-yang]. 1170 5. Security Considerations 1172 The new protocol extensions introduced in this document augment the 1173 existing IGP topology information that is distributed via [RFC7752]. 1174 The advertisement of the SR link attribute information defined in 1175 this document presents similar risk as associated with the existing 1176 set of link attribute information as described in [RFC7752]. The 1177 Security Considerations section of [RFC7752] also applies to these 1178 extensions. The procedures and new TLVs defined in this document, by 1179 themselves, do not affect the BGP-LS security model discussed in 1180 [RFC7752]. 1182 The TLVs introduced in this document are used to propagate IGP 1183 defined information ([I-D.ietf-isis-segment-routing-extensions], 1184 [I-D.ietf-ospf-segment-routing-extensions] and 1185 [I-D.ietf-ospf-ospfv3-segment-routing-extensions]). These TLVs 1186 represent the SR information associated with the IGP node, link and 1187 prefix. The IGP instances originating these TLVs are assumed to 1188 support all the required security and authentication mechanisms (as 1189 described in [I-D.ietf-isis-segment-routing-extensions], 1190 [I-D.ietf-ospf-segment-routing-extensions] and 1191 [I-D.ietf-ospf-ospfv3-segment-routing-extensions]) in order to 1192 prevent any security issue when propagating the TLVs into BGP-LS. 1194 BGP-LS SR extensions enable traffic engineering use-cases within the 1195 Segment Routing domain. SR operates within a trusted domain 1196 [RFC8402] and its security considerations also apply to BGP-LS 1197 sessions when carrying SR information. The SR traffic engineering 1198 policies using the SIDs advertised via BGP-LS are expected to be used 1199 entirely within this trusted SR domain (e.g. between multiple AS/ 1200 domains within a single provider network). Therefore, precaution is 1201 necessary to ensure that the link-state information (including SR 1202 information) advertised via BGP-LS sessions is limited to consumers 1203 in a secure manner within this trusted SR domain. BGP peering 1204 sessions for address-families other than Link-State may be setup to 1205 routers outside the SR domain. The isolation of BGP-LS peering 1206 sessions is recommended to ensure that BGP-LS topology information 1207 (including the newly added SR information) is not advertised to an 1208 external BGP peering session outside the SR domain. 1210 6. Contributors 1212 The following people have substantially contributed to the editing of 1213 this document: 1215 Peter Psenak 1216 Cisco Systems 1217 Email: ppsenak@cisco.com 1219 Les Ginsberg 1220 Cisco Systems 1221 Email: ginsberg@cisco.com 1223 Acee Lindem 1224 Cisco Systems 1225 Email: acee@cisco.com 1227 Saikat Ray 1228 Individual 1229 Email: raysaikat@gmail.com 1231 Jeff Tantsura 1232 Apstra Inc. 1233 Email: jefftant.ietf@gmail.com 1235 7. Acknowledgements 1237 The authors would like to thank Jeffrey Haas, Aijun Wang, Robert 1238 Raszuk and Susan Hares for their review of this document and their 1239 comments. The authors would also like to thank Alvaro Retana for his 1240 extensive review and comments which helped correct issues and improve 1241 the document. 1243 8. References 1245 8.1. Normative References 1247 [I-D.ietf-isis-l2bundles] 1248 Ginsberg, L., Bashandy, A., Filsfils, C., Nanduri, M., and 1249 E. Aries, "Advertising L2 Bundle Member Link Attributes in 1250 IS-IS", draft-ietf-isis-l2bundles-07 (work in progress), 1251 May 2017. 1253 [I-D.ietf-isis-segment-routing-extensions] 1254 Previdi, S., Ginsberg, L., Filsfils, C., Bashandy, A., 1255 Gredler, H., and B. Decraene, "IS-IS Extensions for 1256 Segment Routing", draft-ietf-isis-segment-routing- 1257 extensions-25 (work in progress), May 2019. 1259 [I-D.ietf-lsr-ospf-prefix-originator] 1260 Wang, A., Lindem, A., Dong, J., Talaulikar, K., and P. 1261 Psenak, "OSPF Extension for Prefix Originator", draft- 1262 ietf-lsr-ospf-prefix-originator-00 (work in progress), 1263 February 2019. 1265 [I-D.ietf-ospf-ospfv3-segment-routing-extensions] 1266 Psenak, P. and S. Previdi, "OSPFv3 Extensions for Segment 1267 Routing", draft-ietf-ospf-ospfv3-segment-routing- 1268 extensions-23 (work in progress), January 2019. 1270 [I-D.ietf-ospf-segment-routing-extensions] 1271 Psenak, P., Previdi, S., Filsfils, C., Gredler, H., 1272 Shakir, R., Henderickx, W., and J. Tantsura, "OSPF 1273 Extensions for Segment Routing", draft-ietf-ospf-segment- 1274 routing-extensions-27 (work in progress), December 2018. 1276 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1277 Requirement Levels", BCP 14, RFC 2119, 1278 DOI 10.17487/RFC2119, March 1997, 1279 . 1281 [RFC4202] Kompella, K., Ed. and Y. Rekhter, Ed., "Routing Extensions 1282 in Support of Generalized Multi-Protocol Label Switching 1283 (GMPLS)", RFC 4202, DOI 10.17487/RFC4202, October 2005, 1284 . 1286 [RFC5340] Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF 1287 for IPv6", RFC 5340, DOI 10.17487/RFC5340, July 2008, 1288 . 1290 [RFC7684] Psenak, P., Gredler, H., Shakir, R., Henderickx, W., 1291 Tantsura, J., and A. Lindem, "OSPFv2 Prefix/Link Attribute 1292 Advertisement", RFC 7684, DOI 10.17487/RFC7684, November 1293 2015, . 1295 [RFC7752] Gredler, H., Ed., Medved, J., Previdi, S., Farrel, A., and 1296 S. Ray, "North-Bound Distribution of Link-State and 1297 Traffic Engineering (TE) Information Using BGP", RFC 7752, 1298 DOI 10.17487/RFC7752, March 2016, 1299 . 1301 [RFC7794] Ginsberg, L., Ed., Decraene, B., Previdi, S., Xu, X., and 1302 U. Chunduri, "IS-IS Prefix Attributes for Extended IPv4 1303 and IPv6 Reachability", RFC 7794, DOI 10.17487/RFC7794, 1304 March 2016, . 1306 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 1307 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 1308 May 2017, . 1310 [RFC8362] Lindem, A., Roy, A., Goethals, D., Reddy Vallem, V., and 1311 F. Baker, "OSPFv3 Link State Advertisement (LSA) 1312 Extensibility", RFC 8362, DOI 10.17487/RFC8362, April 1313 2018, . 1315 [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., 1316 Decraene, B., Litkowski, S., and R. Shakir, "Segment 1317 Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, 1318 July 2018, . 1320 [RFC8571] Ginsberg, L., Ed., Previdi, S., Wu, Q., Tantsura, J., and 1321 C. Filsfils, "BGP - Link State (BGP-LS) Advertisement of 1322 IGP Traffic Engineering Performance Metric Extensions", 1323 RFC 8571, DOI 10.17487/RFC8571, March 2019, 1324 . 1326 8.2. Informative References 1328 [I-D.ietf-isis-sr-yang] 1329 Litkowski, S., Qu, Y., Sarkar, P., Chen, I., and J. 1330 Tantsura, "YANG Data Model for IS-IS Segment Routing", 1331 draft-ietf-isis-sr-yang-05 (work in progress), March 2019. 1333 [I-D.ietf-ospf-sr-yang] 1334 Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, 1335 "YANG Data Model for OSPF SR (Segment Routing) Protocol", 1336 draft-ietf-ospf-sr-yang-07 (work in progress), March 2019. 1338 [I-D.ietf-spring-segment-routing-ldp-interop] 1339 Bashandy, A., Filsfils, C., Previdi, S., Decraene, B., and 1340 S. Litkowski, "Segment Routing interworking with LDP", 1341 draft-ietf-spring-segment-routing-ldp-interop-15 (work in 1342 progress), September 2018. 1344 [I-D.ietf-spring-sr-yang] 1345 Litkowski, S., Qu, Y., Lindem, A., Sarkar, P., and J. 1346 Tantsura, "YANG Data Model for Segment Routing", draft- 1347 ietf-spring-sr-yang-12 (work in progress), February 2019. 1349 [RFC5706] Harrington, D., "Guidelines for Considering Operations and 1350 Management of New Protocols and Protocol Extensions", 1351 RFC 5706, DOI 10.17487/RFC5706, November 2009, 1352 . 1354 Authors' Addresses 1356 Stefano Previdi 1357 Huawei Technologies 1358 Rome 1359 Italy 1361 Email: stefano@previdi.net 1363 Ketan Talaulikar (editor) 1364 Cisco Systems, Inc. 1365 India 1367 Email: ketant@cisco.com 1368 Clarence Filsfils 1369 Cisco Systems, Inc. 1370 Brussels 1371 Belgium 1373 Email: cfilsfil@cisco.com 1375 Hannes Gredler 1376 RtBrick Inc. 1378 Email: hannes@rtbrick.com 1380 Mach(Guoyi) Chen 1381 Huawei Technologies 1382 Huawei Building, No. 156 Beiqing Rd. 1383 Beijing 100095 1384 China 1386 Email: mach.chen@huawei.com