idnits 2.17.1 draft-ietf-idr-bgp-ls-segment-routing-ext-10.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 19, 2018) is 2015 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) -- Looks like a reference, but probably isn't: '1' on line 1168 -- Looks like a reference, but probably isn't: '2' on line 1171 -- Looks like a reference, but probably isn't: '3' on line 1174 -- Looks like a reference, but probably isn't: '4' on line 1177 -- Looks like a reference, but probably isn't: '5' on line 1180 -- Looks like a reference, but probably isn't: '6' on line 1183 -- Looks like a reference, but probably isn't: '7' on line 1186 -- Looks like a reference, but probably isn't: '8' on line 1189 -- Looks like a reference, but probably isn't: '9' on line 1192 -- Looks like a reference, but probably isn't: '10' on line 1195 -- Looks like a reference, but probably isn't: '11' on line 1197 -- Looks like a reference, but probably isn't: '12' on line 1199 -- Looks like a reference, but probably isn't: '13' on line 1201 -- Looks like a reference, but probably isn't: '14' on line 1204 -- Looks like a reference, but probably isn't: '15' on line 1207 -- Looks like a reference, but probably isn't: '16' on line 1210 -- Looks like a reference, but probably isn't: '17' on line 1213 -- Looks like a reference, but probably isn't: '18' on line 1216 -- Looks like a reference, but probably isn't: '19' on line 1219 -- Looks like a reference, but probably isn't: '20' on line 1222 -- Looks like a reference, but probably isn't: '21' on line 1225 -- Looks like a reference, but probably isn't: '22' on line 1228 -- Looks like a reference, but probably isn't: '23' on line 1230 -- Looks like a reference, but probably isn't: '24' on line 1233 -- Looks like a reference, but probably isn't: '25' on line 1236 -- Looks like a reference, but probably isn't: '26' on line 1239 -- Looks like a reference, but probably isn't: '27' on line 1242 -- Looks like a reference, but probably isn't: '28' on line 1245 -- Looks like a reference, but probably isn't: '29' on line 1248 -- Looks like a reference, but probably isn't: '30' on line 1251 -- Looks like a reference, but probably isn't: '31' on line 1254 -- Looks like a reference, but probably isn't: '32' on line 1257 == Outdated reference: A later version (-18) exists of draft-ietf-idr-te-pm-bgp-13 == Outdated reference: A later version (-25) exists of draft-ietf-isis-segment-routing-extensions-19 == Outdated reference: A later version (-23) exists of draft-ietf-ospf-ospfv3-segment-routing-extensions-15 == Outdated reference: A later version (-27) exists of draft-ietf-ospf-segment-routing-extensions-25 ** Obsolete normative reference: RFC 7752 (Obsoleted by RFC 9552) == Outdated reference: A later version (-21) exists of draft-ietf-isis-sr-yang-04 == Outdated reference: A later version (-30) exists of draft-ietf-ospf-sr-yang-05 == Outdated reference: A later version (-30) exists of draft-ietf-spring-sr-yang-09 Summary: 1 error (**), 0 flaws (~~), 8 warnings (==), 33 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Inter-Domain Routing S. Previdi, Ed. 3 Internet-Draft 4 Intended status: Standards Track K. Talaulikar 5 Expires: April 22, 2019 C. Filsfils 6 Cisco Systems, Inc. 7 H. Gredler 8 RtBrick Inc. 9 M. Chen 10 Huawei Technologies 11 October 19, 2018 13 BGP Link-State extensions for Segment Routing 14 draft-ietf-idr-bgp-ls-segment-routing-ext-10 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 draft defines extensions to the BGP Link-state address-family in 25 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", "MAY", and "OPTIONAL" in this 31 document are to be interpreted as described in RFC 2119 [RFC2119]. 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 22, 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. BGP-LS Extensions for Segment Routing . . . . . . . . . . . . 5 69 2.1. Node Attributes TLVs . . . . . . . . . . . . . . . . . . 5 70 2.1.1. SID/Label Sub-TLV . . . . . . . . . . . . . . . . . . 6 71 2.1.2. SR-Capabilities TLV . . . . . . . . . . . . . . . . . 7 72 2.1.3. SR-Algorithm TLV . . . . . . . . . . . . . . . . . . 8 73 2.1.4. SR Local Block TLV . . . . . . . . . . . . . . . . . 8 74 2.1.5. SRMS Preference TLV . . . . . . . . . . . . . . . . . 9 75 2.2. Link Attribute TLVs . . . . . . . . . . . . . . . . . . . 10 76 2.2.1. Adjacency SID TLV . . . . . . . . . . . . . . . . . . 11 77 2.2.2. LAN Adjacency SID TLV . . . . . . . . . . . . . . . . 12 78 2.2.3. L2 Bundle Member . . . . . . . . . . . . . . . . . . 13 79 2.3. Prefix Attribute TLVs . . . . . . . . . . . . . . . . . . 14 80 2.3.1. Prefix-SID TLV . . . . . . . . . . . . . . . . . . . 15 81 2.3.2. Prefix Attribute Flags TLV . . . . . . . . . . . . . 16 82 2.3.3. Source Router Identifier (Source Router-ID) TLV . . . 17 83 2.3.4. Range TLV . . . . . . . . . . . . . . . . . . . . . . 17 84 2.4. Equivalent IS-IS Segment Routing TLVs/Sub-TLVs . . . . . 19 85 2.5. Equivalent OSPFv2/OSPFv3 Segment Routing TLVs/Sub-TLVs . 20 86 3. Implementation Status . . . . . . . . . . . . . . . . . . . . 21 87 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 21 88 4.1. TLV/Sub-TLV Code Points Summary . . . . . . . . . . . . . 21 89 5. Manageability Considerations . . . . . . . . . . . . . . . . 22 90 6. Security Considerations . . . . . . . . . . . . . . . . . . . 23 91 7. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 23 92 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 24 93 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 24 94 9.1. Normative References . . . . . . . . . . . . . . . . . . 24 95 9.2. Informative References . . . . . . . . . . . . . . . . . 25 96 9.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 26 97 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 28 99 1. Introduction 101 Segment Routing (SR) allows for a flexible definition of end-to-end 102 paths by combining sub-paths called "segments". A segment can 103 represent any instruction, topological or service-based. A segment 104 can have a local semantic to an SR node or global within a domain. 105 Within IGP topologies an SR path is encoded as a sequence of 106 topological sub-paths, called "IGP segments". These segments are 107 advertised by the link-state routing protocols (IS-IS, OSPFv2 and 108 OSPFv3). 110 Two types of IGP segments are defined, Prefix segments and Adjacency 111 segments. Prefix segments, by default, represent an ECMP-aware 112 shortest-path to a prefix, as per the state of the IGP topology. 113 Adjacency segments represent a hop over a specific adjacency between 114 two nodes in the IGP. A prefix segment is typically a multi-hop path 115 while an adjacency segment, in most of the cases, is a one-hop path. 116 [RFC8402]. 118 When Segment Routing is enabled in a 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 in: IS-IS 122 [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 +------------+ 128 | Consumer | 129 +------------+ 130 ^ 131 | 132 v 133 +-------------------+ 134 | BGP Speaker | +-----------+ 135 | (Route-Reflector) | | Consumer | 136 +-------------------+ +-----------+ 137 ^ ^ ^ ^ 138 | | | | 139 +---------------+ | +-------------------+ | 140 | | | | 141 v v v v 142 +-----------+ +-----------+ +-----------+ 143 | BGP | | BGP | | BGP | 144 | Speaker | | Speaker | . . . | Speaker | 145 +-----------+ +-----------+ +-----------+ 146 ^ ^ ^ 147 | | | 148 IGP IGP IGP 150 Figure 1: Link State info collection 152 Segment Routing (SR) allows advertisement of single or multi-hop 153 paths. The flooding scope for the IGP extensions for Segment routing 154 is IGP area-wide. Consequently, the contents of a Link State 155 Database (LSDB) or a Traffic Engineering Database (TED) has the scope 156 of an IGP area and therefore, by using the IGP alone it is not enough 157 to construct segments across multiple IGP Area or AS boundaries. 159 In order to address the need for applications that require 160 topological visibility across IGP areas, or even across Autonomous 161 Systems (AS), the BGP-LS address-family/sub-address-family have been 162 defined to allow BGP to carry Link-State information. The BGP 163 Network Layer Reachability Information (NLRI) encoding format for 164 BGP-LS and a new BGP Path Attribute called the BGP-LS attribute are 165 defined in [RFC7752]. The identifying key of each Link-State object, 166 namely a node, link, or prefix, is encoded in the NLRI and the 167 properties of the object are encoded in the BGP-LS attribute. 168 Figure 1 describes a typical deployment scenario. In each IGP area, 169 one or more nodes are configured with BGP-LS. These BGP speakers 170 form an IBGP mesh by connecting to one or more route-reflectors. 171 This way, all BGP speakers (specifically the route-reflectors) obtain 172 Link-State information from all IGP areas (and from other ASes from 173 EBGP peers). An external component connects to the route-reflector 174 to obtain this information (perhaps moderated by a policy regarding 175 what information is or isn't advertised to the external component). 177 This document describes extensions to BGP-LS to advertise the SR 178 information. An external component (e.g., a controller) then can 179 collect SR information from across an SR domain and construct the 180 end-to-end path (with its associated SIDs) that need to be applied to 181 an incoming packet to achieve the desired end-to-end forwarding. 182 Here the SR domain is defined as a single administrative domain that 183 may be comprised of a single AS or multiple ASes under consolidated 184 global SID administration. 186 2. BGP-LS Extensions for Segment Routing 188 This document defines SR extensions to BGP-LS and specifies the TLVs 189 and sub-TLVs for advertising SR information within the BGP-LS 190 Attribute. Section 2.4 and Section 2.5 illustrates the equivalent 191 TLVs and sub-TLVs in IS-IS, OSPFv2 and OSPFv3 protocols. 193 BGP-LS [RFC7752] defines the BGP-LS NLRI that can be a Node NLRI, a 194 Link NLRI or a Prefix NLRI. The corresponding BGP-LS attribute is a 195 Node Attribute, a Link Attribute or a Prefix Attribute. BGP-LS 196 [RFC7752] defines the TLVs that map link-state information to BGP-LS 197 NLRI and the BGP-LS attribute. This document adds additional BGP-LS 198 attribute TLVs in order to encode SR information. It does not 199 introduce any changes to the encoding of the BGP-LS NLRIs. 201 Some of the TLVs defined in this document contain fields (e.g. flags) 202 whose semantics need to be interpreted accordingly to the respective 203 underlying IS-IS, OSPFv2 or OSPFv3 protocol. The receiver of the 204 BGP-LS update for any of the NLRIs MUST check the Protocol-ID of the 205 NLRI and refer to the underlying protocol specification in order to 206 parse such fields. The individual field descriptions in the sub- 207 sections below point to the relevant underlying protocol 208 specifications for such fields. 210 2.1. Node Attributes TLVs 212 The following Node Attribute TLVs are defined: 214 +-----------------+----------+---------------+ 215 | Description | Length | Section | 216 +-----------------+----------+---------------+ 217 | SID/Label | variable | Section 2.1.1 | 218 | SR Capabilities | variable | Section 2.1.2 | 219 | SR Algorithm | variable | Section 2.1.3 | 220 | SR Local Block | variable | Section 2.1.4 | 221 | SRMS Preference | variable | Section 2.1.5 | 222 +-----------------+----------+---------------+ 224 Table 1: Node Attribute TLVs 226 These TLVs can ONLY be added to the Node Attribute associated with 227 the Node NLRI that originates the corresponding underlying IGP TLV/ 228 sub-TLV described below. 230 2.1.1. SID/Label Sub-TLV 232 The SID/Label TLV is used as sub-TLV by the SR-Capabilities 233 (Section 2.1.2) and SRLB (Section 2.1.4) TLVs and has the following 234 format: 236 0 1 2 3 237 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 238 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 239 | Type | Length | 240 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 241 | SID/Label (variable) | 242 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 244 where: 246 Type: TBD, see Section 4. 248 Length: Variable, 3 or 4. 250 SID/Label: If length is set to 3, then the 20 rightmost bits 251 represent a label (the total TLV size is 7). If length is set to 252 4, then the value represents a 32 bit SID (the total TLV size is 253 8). 255 The receiving router MUST ignore the SID/Label sub-TLV if the 256 length is other then 3 or 4. 258 2.1.2. SR-Capabilities TLV 260 The SR-Capabilities TLV is used in order to advertise the node's SR 261 Capabilities including its Segment Routing Global Base (SRGB) 262 range(s). In the case of IS-IS, the capabilities also include the 263 IPv4 and IPv6 support for SR-MPLS forwarding plane. This information 264 is derived from the protocol specific advertisements. 266 o IS-IS, as defined by the SR-Capabilities sub-TLV in 267 [I-D.ietf-isis-segment-routing-extensions]. 269 o OSPFv2/OSPFv3, as defined by the SID/Label Range TLV in 270 [I-D.ietf-ospf-segment-routing-extensions] and 271 [I-D.ietf-ospf-ospfv3-segment-routing-extensions]. 273 The SR Capabilities TLV has following format: 275 0 1 2 3 276 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 277 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 278 | Type | Length | 279 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 280 | Flags | Reserved | 281 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 283 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 284 | Range Size | 285 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 286 // SID/Label sub-TLV (variable) // 287 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 289 Type: TBD, see Section 4. 291 Length: Variable. 293 Flags: 1 octet of flags as defined in 294 [I-D.ietf-isis-segment-routing-extensions]. 296 Reserved: 1 octet that SHOULD be set to 0 and MUST be ignored on 297 receipt. 299 One or more entries, each of which have the following format: 301 Range Size: 3 octet value indicating the number of labels in 302 the range. 304 SID/Label sub-TLV (as defined in Section 2.1.1) which encodes 305 the first label in the range. 307 2.1.3. SR-Algorithm TLV 309 The SR-Algorithm TLV is used in order to advertise the SR Algorithms 310 supported by the node. This information is derived from the protocol 311 specific advertisements. 313 o IS-IS, as defined by the SR-Algorithm sub-TLV in 314 [I-D.ietf-isis-segment-routing-extensions]. 316 o OSPFv2/OSPFv3, as defined by the SR-Algorithm TLV in 317 [I-D.ietf-ospf-segment-routing-extensions] and 318 [I-D.ietf-ospf-ospfv3-segment-routing-extensions]. 320 The SR-Algorithm TLV has the following format: 322 0 1 2 3 323 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 324 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 325 | Type | Length | 326 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 327 | Algorithm 1 | Algorithm... | Algorithm N | | 328 +- -+ 329 | | 330 + + 332 where: 334 Type: TBD, see Section 4. 336 Length: Variable. 338 Algorithm: 1 octet identifying the algorithm. 340 2.1.4. SR Local Block TLV 342 The SR Local Block (SRLB) TLV contains the range(s) of labels the 343 node has reserved for local SIDs. Local SIDs are used, e.g., in IGP 344 (IS-IS, OSPF) for Adjacency-SIDs, and may also be allocated by 345 components other than IGP protocols. As an example, an application 346 or a controller may instruct a node to allocate a specific local SID. 347 Therefore, in order for such applications or controllers to know the 348 range of local SIDs available, it is required that the node 349 advertises its SRLB. 351 This information is derived from the protocol specific 352 advertisements. 354 o IS-IS, as defined by the SR Local Block sub-TLV in 355 [I-D.ietf-isis-segment-routing-extensions]. 357 o OSPFv2/OSPFv3, as defined by the SR Local Block TLV in 358 [I-D.ietf-ospf-segment-routing-extensions] and 359 [I-D.ietf-ospf-ospfv3-segment-routing-extensions]. 361 The SRLB TLV has the following format: 363 0 1 2 3 364 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 365 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 366 | Type | Length | 367 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 368 | Flags | Reserved | 369 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 371 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 372 | Range Size | 373 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 374 // SID/Label sub-TLV (variable) // 375 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 377 Type: TBD, see Section 4. 379 Length: Variable. 381 Flags: 1 octet of flags. None are defined at this stage. 383 Reserved: 1 octet that SHOULD be set to 0 and MUST be ignored on 384 receipt. 386 One or more entries, each of which have the following format: 388 Range Size: 3 octet value indicating the number of labels in 389 the range. 391 SID/Label sub-TLV (as defined in Section 2.1.1) which encodes 392 the first label in the range. 394 2.1.5. SRMS Preference TLV 396 The Segment Routing Mapping Server (SRMS) Preference TLV is used in 397 order to associate a preference with SRMS advertisements from a 398 particular source. [I-D.ietf-spring-segment-routing-ldp-interop] 399 specifies the SRMS functionality along with SRMS preference of the 400 node advertising the SRMS Prefix-to-SID Mapping ranges. 402 This information is derived from the protocol specific 403 advertisements. 405 o IS-IS, as defined by the SRMS Preference sub-TLV in 406 [I-D.ietf-isis-segment-routing-extensions]. 408 o OSPFv2/OSPFv3, as defined by the SRMS Preference TLV in 409 [I-D.ietf-ospf-segment-routing-extensions] and 410 [I-D.ietf-ospf-ospfv3-segment-routing-extensions]. 412 The SRMS Preference TLV has following format: 414 0 1 2 3 415 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 416 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 417 | Type | Length | 418 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 419 | Preference | 420 +-+-+-+-+-+-+-+-+ 422 Type: TBD, see Section 4. 424 Length: 1. 426 Preference: 1 octet. Unsigned 8 bit SRMS preference. 428 The use of the SRMS Preference TLV is defined in 429 [I-D.ietf-isis-segment-routing-extensions], 430 [I-D.ietf-ospf-segment-routing-extensions] and 431 [I-D.ietf-ospf-ospfv3-segment-routing-extensions]. 433 2.2. Link Attribute TLVs 435 The following Link Attribute TLVs are are defined: 437 +----------------------------------------+----------+---------------+ 438 | Description | Length | Section | 439 +----------------------------------------+----------+---------------+ 440 | Adjacency Segment Identifier (Adj-SID) | variable | Section 2.2.1 | 441 | TLV | | | 442 | LAN Adjacency Segment Identifier (Adj- | variable | Section 2.2.2 | 443 | SID) TLV | | | 444 | L2 Bundle Member TLV | variable | Section 2.2.3 | 445 +----------------------------------------+----------+---------------+ 447 Table 2: Link Attribute TLVs 449 These TLVs can ONLY be added to the Link Attribute associated with 450 the link whose local node originates the corresponding underlying IGP 451 TLV/sub-TLV described below. 453 For a LAN, normally a node only announces its adjacency to the IS-IS 454 pseudo-node (or the equivalent OSPF Designated and Backup Designated 455 Routers)[I-D.ietf-isis-segment-routing-extensions]. The LAN 456 Adjacency Segment TLV allows a node to announce adjacencies to all 457 other nodes attached to the LAN in a single instance of the BGP-LS 458 Link NLRI. Without this TLV, the corresponding BGP-LS link NLRI 459 would need to be originated for each additional adjacency in order to 460 advertise the SR TLVs for these neighbor adjacencies. 462 2.2.1. Adjacency SID TLV 464 The Adjacency SID (Adj-SID) TLV has the following format: 466 0 1 2 3 467 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 468 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 469 | Type | Length | 470 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 471 | Flags | Weight | Reserved | 472 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 473 | SID/Label/Index (variable) | 474 +---------------------------------------------------------------+ 476 where: 478 Type: TBD, see Section 4. 480 Length: Variable, 7 or 8 depending on Label or Index encoding of 481 the SID 483 Flags. 1 octet field of following flags as defined in 484 [I-D.ietf-isis-segment-routing-extensions], 485 [I-D.ietf-ospf-segment-routing-extensions] and 486 [I-D.ietf-ospf-ospfv3-segment-routing-extensions]. 488 Weight: Weight used for load-balancing purposes. 490 Reserved: 2 octets that SHOULD be set to 0 and MUST be ignored on 491 receipt. 493 SID/Index/Label: Label or index value depending on the flags 494 setting as defined in [I-D.ietf-isis-segment-routing-extensions], 495 [I-D.ietf-ospf-segment-routing-extensions] and 496 [I-D.ietf-ospf-ospfv3-segment-routing-extensions]. 498 2.2.2. LAN Adjacency SID TLV 500 The LAN Adjacency SID (LAN-Adj-SID-SID) TLV has the following format: 502 0 1 2 3 503 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 504 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 505 | Type | Length | 506 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 507 | Flags | Weight | Reserved | 508 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 510 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 511 | OSPF Neighbor ID / IS-IS System-ID | 512 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 513 | | 514 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 516 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 517 | SID/Label/Index (variable) | 518 +---------------------------------------------------------------+ 520 where: 522 Type: TBD, see Section 4. 524 Length: Variable. For IS-IS it would be 13 or 14 depending on 525 Label or Index encoding of the SID. For OSPF it would be 11 or 12 526 depending on Label or Index encoding of the SID. 528 Flags. 1 octet field of following flags as defined in 529 [I-D.ietf-isis-segment-routing-extensions], 530 [I-D.ietf-ospf-segment-routing-extensions] and 531 [I-D.ietf-ospf-ospfv3-segment-routing-extensions]. 533 Weight: Weight used for load-balancing purposes. 535 Reserved: 2 octets that SHOULD be set to 0 and MUST be ignored on 536 receipt. 538 SID/Index/Label: Label or index value depending on the flags 539 setting as defined in [I-D.ietf-isis-segment-routing-extensions], 540 [I-D.ietf-ospf-segment-routing-extensions] and 541 [I-D.ietf-ospf-ospfv3-segment-routing-extensions]. 543 2.2.3. L2 Bundle Member 545 The L2 Bundle Member Attribute TLV identifies an L2 Bundle Member 546 link which in turn is associated with a parent L3 link. The L3 link 547 is described by the Link NLRI defined in [RFC7752] and the L2 Bundle 548 Member Attribute TLV is associated with the Link NLRI. The TLV MAY 549 include sub-TLVs which describe attributes associated with the bundle 550 member. The identified bundle member represents a unidirectional 551 path from the originating router to the neighbor specified in the 552 parent L3 Link. Multiple L2 Bundle Member Attribute TLVs MAY be 553 associated with a Link NLRI. 555 The L2 Bundle Member Attribute TLV has the following format: 557 0 1 2 3 558 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 559 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 560 | Type | Length | 561 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 563 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 564 | L2 Bundle Member Descriptor | 565 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 566 // Link attribute sub-TLVs(variable) // 567 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 569 where: 571 Type: TBD, see Section 4. 573 Length: Variable. 575 L2 Bundle Member Descriptor: A Link Local Identifier as defined in 576 [RFC4202]. 578 Link attributes for L2 Bundle Member Links are advertised as sub-TLVs 579 of the L2Bundle Member Attribute TLV. The sub-TLVs are identical to 580 existing BGP-LS TLVs as identified in the table below. 582 +-----------+----------------------------+--------------------------+ 583 | TLV Code | Description | Reference Document | 584 | Point | | | 585 +-----------+----------------------------+--------------------------+ 586 | 1088 | Administrative group | [RFC7752] | 587 | | (color) | | 588 | 1089 | Maximum link bandwidth | [RFC7752] | 589 | 1090 | Max. reservable link | [RFC7752] | 590 | | bandwidth | | 591 | 1091 | Unreserved bandwidth | [RFC7752] | 592 | 1092 | TE default metric | [RFC7752] | 593 | 1093 | Link protection type | [RFC7752] | 594 | 1099 | Adjacency Segment | Section 2.2.1 | 595 | | Identifier (Adj-SID) TLV | | 596 | 1100 | LAN Adjacency Segment | Section 2.2.2 | 597 | | Identifier (Adj-SID) TLV | | 598 | 1104 | Unidirectional link delay | [I-D.ietf-idr-te-pm-bgp] | 599 | 1105 | Min/Max Unidirectional | [I-D.ietf-idr-te-pm-bgp] | 600 | | link delay | | 601 | 1106 | Min/Max Unidirectional | [I-D.ietf-idr-te-pm-bgp] | 602 | | link delay | | 603 | 1107 | Unidirectional packet loss | [I-D.ietf-idr-te-pm-bgp] | 604 | 1108 | Unidirectional residual | [I-D.ietf-idr-te-pm-bgp] | 605 | | bandwidth | | 606 | 1109 | Unidirectional available | [I-D.ietf-idr-te-pm-bgp] | 607 | | bandwidth | | 608 | 1110 | Unidirectional bandwidth | [I-D.ietf-idr-te-pm-bgp] | 609 | | utilization | | 610 +-----------+----------------------------+--------------------------+ 612 Table 3: L2 Bundle Member Link Attribute TLVs 614 2.3. Prefix Attribute TLVs 616 The following Prefix Attribute TLVs are defined: 618 +------------------------+----------+---------------+ 619 | Description | Length | Section | 620 +------------------------+----------+---------------+ 621 | Prefix SID | variable | Section 2.3.1 | 622 | Range | variable | Section 2.3.4 | 623 | Prefix Attribute Flags | variable | Section 2.3.2 | 624 | Source Router-ID | variable | Section 2.3.3 | 625 +------------------------+----------+---------------+ 627 Table 4: Prefix Attribute TLVs 629 These TLVs can ONLY be added to the Prefix Attribute associated with 630 the prefix whose local node originates the corresponding underlying 631 IGP TLV/sub-TLV described below. 633 2.3.1. Prefix-SID TLV 635 The Prefix-SID TLV is used in order to advertise information related 636 to a Prefix-SID. This information is originated in: 638 o IS-IS, as defined by the Prefix-SID TLV in 639 [I-D.ietf-isis-segment-routing-extensions]. 641 o OSPFv2 and OSPFv3, as defined by the Prefix-SID TLV in 642 [I-D.ietf-ospf-segment-routing-extensions] and 643 [I-D.ietf-ospf-ospfv3-segment-routing-extensions] respectively. 645 The Prefix-SID has the following format: 647 0 1 2 3 648 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 649 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 650 | Type | Length | 651 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 652 | Flags | Algorithm | Reserved | 653 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 654 | SID/Index/Label (variable) | 655 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 657 where: 659 Type: TBD, see Section 4. 661 Length: Variable, 7 or 8 depending on Label or Index encoding of 662 the SID 664 Flags: 1 octet value which sould be parsed as: 666 * IS-IS Prefix-SID flags are defined in 667 [I-D.ietf-isis-segment-routing-extensions] section 2.1. 669 * OSPFv2 Prefix-SID flags are defined in 670 [I-D.ietf-ospf-segment-routing-extensions] section 5. 672 * OSPFv3 Prefix-SID flags are defined in 673 [I-D.ietf-ospf-segment-routing-extensions] section 5. 675 Algorithm: 1 octet value identify the algorithm. 677 Reserved: 2 octets that SHOULD be set to 0 and MUST be ignored on 678 receipt. 680 SID/Index/Label: 682 * IS-IS: Label or index value as defined in 683 [I-D.ietf-isis-segment-routing-extensions], 685 * OSPFv2: Label or index value as defined in 686 [I-D.ietf-ospf-segment-routing-extensions], 688 * OSPFv3: Label or index value as defined in 689 [I-D.ietf-ospf-ospfv3-segment-routing-extensions], 691 2.3.2. Prefix Attribute Flags TLV 693 The Prefix Attribute Flags TLV carries IPv4/IPv6 prefix attribute 694 flags information. These flags are defined for OSPFv2 in [RFC7684], 695 for OSPFv3 in [RFC5340] and for IS-IS in [RFC7794]. 697 The Prefix Attribute Flags TLV has the following format: 699 0 1 2 3 700 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 701 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 702 | Type | Length | 703 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 704 // Flags (variable) // 705 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 707 where: 709 Type: TBD, see Section 4. 711 Length: variable. 713 Flags: a variable length flag field (according to the length 714 field). Flags are routing protocol specific and are to be parsed 715 as below: 717 * IS-IS flags are defined in [RFC7794] 719 * OSPFv2 flags are defined in [RFC7684] 721 * OSPFv3 flags map to the Prefix Options field defined in 722 [RFC7794] and extended via [RFC8362] 724 2.3.3. Source Router Identifier (Source Router-ID) TLV 726 The Source Router-ID TLV contains the IPv4 or IPv6 Router-ID of the 727 originator of the Prefix. For IS-IS protocol this is as defined in 728 [RFC7794]. The Source Router-ID TLV may be used to carry the OSPF 729 Router-ID of the prefix originator. 731 The Source Router-ID TLV has the following format: 733 0 1 2 3 734 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 735 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 736 | Type | Length | 737 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 738 // 4 or 6 octet Router-ID // 739 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 741 where: 743 Type: TBD, see Section 4. 745 Length: 4 or 16. 747 IPv4/IPv6 Address: 4 octet IPv4 address or 16 octet IPv6 address. 749 2.3.4. Range TLV 751 The range TLV is used in order to advertise a range of prefix-to-SID 752 mappings as part of the Segment Routing Mapping Server functionality 753 [I-D.ietf-spring-segment-routing-ldp-interop], as defined in the 754 respective underlying IGP SR extensions 755 [I-D.ietf-ospf-segment-routing-extensions], 756 [I-D.ietf-ospf-ospfv3-segment-routing-extensions] and 757 [I-D.ietf-isis-segment-routing-extensions]. The Prefix-NLRI to which 758 the Range TLV is attached MUST be advertised as a non-routing prefix 759 where no IGP metric TLV (TLV 1095) is attached. 761 The format of the Range TLV is as follows: 763 0 1 2 3 764 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 765 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 766 | Type | Length | 767 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 768 | Flags | Reserved | Range Size | 769 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 770 // sub-TLVs // 771 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 773 where: 775 Figure 2: Range TLV format 777 Type: TBD, see Section 4. 779 Length: variable 781 Flags: as defined in [I-D.ietf-ospf-segment-routing-extensions], 782 [I-D.ietf-ospf-ospfv3-segment-routing-extensions] and 783 [I-D.ietf-isis-segment-routing-extensions]. 785 Reserved: 1 octet that SHOULD be set to 0 and MUST be ignored on 786 receipt. 788 Range Size: 2 octets as defined in 789 [I-D.ietf-ospf-segment-routing-extensions]. 791 Within the Range TLV, the prefix-to-SID mappings are advertised using 792 sub-TLVs as below: 794 Range TLV 795 Prefix-SID TLV (used as a sub-TLV in this context) 797 where: 799 o The Range TLV is defined in Section 2.3.4. 801 o The Prefix-SID TLV (used as sub-TLV in this context) is defined in 802 Section 2.3.1. 804 2.3.4.1. Advertisement Procedure for OSPF 806 The OSPFv2/OSPFv3 Extended Prefix Range TLV is encoded in the Range 807 TLV. The flags of the Range TLV have the semantic mapped to the 808 definition in [I-D.ietf-ospf-segment-routing-extensions] section 4 or 809 [I-D.ietf-ospf-ospfv3-segment-routing-extensions] section 4. 811 Then the prefix-to-SID mapping from the OSPF Prefix SID sub-TLV is 812 encoded using the BGP-LS Prefix-SID TLV as defined in Section 2.3.1 813 with the flags set according to the definition in 814 [I-D.ietf-ospf-segment-routing-extensions] section 5 or 815 [I-D.ietf-ospf-ospfv3-segment-routing-extensions] section 5. 817 2.3.4.2. Advertisement Procedure for IS-IS 819 The IS-IS SID/Label Binding TLV, when used to signal mapping server 820 label bindings, is encoded in the Range TLV. The flags of the Range 821 TLV have the sematic mapped to the definition in 822 [I-D.ietf-isis-segment-routing-extensions] section 2.4.1. 824 Then the prefix-to-SID mappings from the IS-IS Prefix SID sub-TLV is 825 encoded using the BGP-LS Prefix-SID TLV as defined in Section 2.3.1 826 with the flags set according to the definition in 827 [I-D.ietf-isis-segment-routing-extensions] section 2.4.4.1. 829 2.4. Equivalent IS-IS Segment Routing TLVs/Sub-TLVs 831 This section illustrate the IS-IS Segment Routing Extensions TLVs and 832 sub-TLVs mapped to the ones defined in this document. 834 The following table, illustrates for each BGP-LS TLV, its equivalence 835 in IS-IS. 837 +---------------------------------------+----------+----------------+ 838 | Description | Length | IS-IS TLV/sub- | 839 | | | TLV | 840 +---------------------------------------+----------+----------------+ 841 | SR Capabilities | variable | 2 [1] | 842 | SR Algorithm | variable | 19 [2] | 843 | SR Local Block | variable | 22 [3] | 844 | SRMS Preference | 1 | 19 [4] | 845 | Adjacency Segment Identifier (Adj- | variable | 31 [5] | 846 | SID) | | | 847 | LAN Adjacency Segment Identifier | variable | 32 [6] | 848 | (LAN-Adj-SID) | | | 849 | Prefix SID | variable | 3 [7] | 850 | Range | variable | 149 [8] | 851 | SID/Label TLV | variable | 1 [9] | 852 | Prefix Attribute Flags | variable | 4 [10] | 853 | Source Router ID | variable | 11/12 [11] | 854 | L2 Bundle Member TLV | variable | 25 [12] | 855 +---------------------------------------+----------+----------------+ 857 Table 5: IS-IS Segment Routing Extensions TLVs/Sub-TLVs 859 2.5. Equivalent OSPFv2/OSPFv3 Segment Routing TLVs/Sub-TLVs 861 This section illustrate the OSPFv2 and OSPFv3 Segment Routing 862 Extensions TLVs and sub-TLVs mapped to the ones defined in this 863 document. 865 The following table, illustrates for each BGP-LS TLV, its equivalence 866 in OSPFv2 and OSPFv3. 868 +-------------------------------------+----------+------------------+ 869 | Description | Length | OSPFv2 TLV/sub- | 870 | | | TLV | 871 +-------------------------------------+----------+------------------+ 872 | SR Capabilities | variable | 9 [13] | 873 | SR Algorithm | variable | 8 [14] | 874 | SR Local Block | variable | 14 [15] | 875 | SRMS Preference | 1 | 15 [16] | 876 | Adjacency Segment Identifier (Adj- | variable | 2 [17] | 877 | SID) | | | 878 | LAN Adjacency Segment Identifier | variable | 3 [18] | 879 | (Adj-SID) | | | 880 | Prefix SID | variable | 2 [19] | 881 | Range | variable | 2 [20] | 882 | SID/Label TLV | variable | 1 [21] | 883 | Prefix Attribute Flags | variable | 4 [22] | 884 +-------------------------------------+----------+------------------+ 886 Table 6: OSPF Segment Routing Extensions TLVs/Sub-TLVs 888 +-------------------------------------+----------+------------------+ 889 | Description | Length | OSPFv3 TLV/sub- | 890 | | | TLV | 891 +-------------------------------------+----------+------------------+ 892 | SR Capabilities | variable | 9 [23] | 893 | SR Algorithm | variable | 8 [24] | 894 | SR Local Block | variable | 14 [25] | 895 | SRMS Preference | 1 | 15 [26] | 896 | Adjacency Segment Identifier (Adj- | variable | 5 [27] | 897 | SID) | | | 898 | LAN Adjacency Segment Identifier | variable | 6 [28] | 899 | (Adj-SID) | | | 900 | Prefix SID | variable | 4 [29] | 901 | Range | variable | 9 [30] | 902 | SID/Label TLV | variable | 7 [31] | 903 | Prefix Attribute Flags | variable | 4 [32] | 904 +-------------------------------------+----------+------------------+ 906 Table 7: OSPFv3 Segment Routing Extensions TLVs/Sub-TLVs 908 3. Implementation Status 910 Note to RFC Editor: Please remove this section prior to publication, 911 as well as the reference to RFC 7942. 913 This section records the status of known implementations of the 914 protocol defined by this specification at the time of posting of this 915 Internet-Draft, and is based on a proposal described in [RFC7942]. 916 The description of implementations in this section is intended to 917 assist the IETF in its decision processes in progressing drafts to 918 RFCs. Please note that the listing of any individual implementation 919 here does not imply endorsement by the IETF. Furthermore, no effort 920 has been spent to verify the information presented here that was 921 supplied by IETF contributors. This is not intended as, and must not 922 be construed to be, a catalog of available implementations or their 923 features. Readers are advised to note that other implementations may 924 exist. 926 According to [RFC7942], "this will allow reviewers and working groups 927 to assign due consideration to documents that have the benefit of 928 running code, which may serve as evidence of valuable experimentation 929 and feedback that have made the implemented protocols more mature. 930 It is up to the individual working groups to use this information as 931 they see fit". 933 Several early implementations exist and will be reported in detail in 934 a forthcoming version of this document. For purposes of early 935 interoperability testing, when no FCFS code point was available, 936 implementations have made use of the values described in Table 8. 938 It will ease implementation interoperability and deployment if the 939 value could be preserved also due to the large amount of codepoints 940 this draft requires. However, when IANA-assigned values are 941 available, implementations will be updated to use them. 943 4. IANA Considerations 945 This document requests assigning code-points from the registry "BGP- 946 LS Node Descriptor, Link Descriptor, Prefix Descriptor, and Attribute 947 TLVs" based on table Table 8. The column "IS-IS TLV/Sub-TLV" defined 948 in the registry does not require any value and should be left empty. 950 4.1. TLV/Sub-TLV Code Points Summary 952 This section contains the global table of all TLVs/sub-TLVs defined 953 in this document. 955 +-------------+-------------------------------------+---------------+ 956 | TLV Code | Description | Reference | 957 | Point | | | 958 +-------------+-------------------------------------+---------------+ 959 | 1034 | SR Capabilities | Section 2.1.2 | 960 | 1035 | SR Algorithm | Section 2.1.3 | 961 | 1036 | SR Local Block | Section 2.1.4 | 962 | 1037 | SRMS Preference | Section 2.1.5 | 963 | 1099 | Adjacency Segment Identifier (Adj- | Section 2.2.1 | 964 | | SID) TLV | | 965 | 1100 | LAN Adjacency Segment Identifier | Section 2.2.2 | 966 | | (Adj-SID) TLV | | 967 | 1158 | Prefix SID | Section 2.3.1 | 968 | 1159 | Range | Section 2.3.4 | 969 | 1161 | SID/Label TLV | Section 2.1.1 | 970 | 1170 | Prefix Attribute Flags | Section 2.3.2 | 971 | 1171 | Source Router-ID | Section 2.3.3 | 972 | 1172 | L2 Bundle Member TLV | Section 2.2.3 | 973 +-------------+-------------------------------------+---------------+ 975 Table 8: Summary Table of TLV/Sub-TLV Codepoints 977 5. Manageability Considerations 979 This section is structured as recommended in [RFC5706]. 981 The new protocol extensions introduced in this document augment the 982 existing IGP topology information that was distributed via [RFC7752]. 983 Procedures and protocol extensions defined in this document do not 984 affect the BGP protocol operations and management other than as 985 discussed in the Manageability Considerations section of [RFC7752]. 986 Specifically, the malformed attribute tests for syntactic checks in 987 the Fault Management section of [RFC7752] now encompass the new BGP- 988 LS Attribute TLVs defined in this document. The semantic or content 989 checking for the TLVs specified in this document and their 990 association with the BGP-LS NLRI types or their BGP-LS Attribute is 991 left to the consumer of the BGP-LS information (e.g. an application 992 or a controller) and not the BGP protocol. 994 A consumer of the BGP-LS information is retrieving this information 995 from a BGP protocol component that is doing the signaling over a BGP- 996 LS session, via some APIs or a data model (refer Section 1 and 2 of 997 [RFC7752]). The handling of semantic or content errors by the 998 consumer would be dictated by the nature of its application usage and 999 hence is beyond the scope of this document. This document only 1000 introduces new Attribute TLVs and an error in them would result in 1001 only that specific attribute being discarded with an error log. 1003 The extensions, specified in this document, do not introduce any new 1004 configuration or monitoring aspects in BGP or BGP-LS other than as 1005 discussed in [RFC7752]. The manageability aspects of the underlying 1006 SR features are covered by [I-D.ietf-spring-sr-yang], 1007 [I-D.ietf-isis-sr-yang] and [I-D.ietf-ospf-sr-yang]. 1009 6. Security Considerations 1011 The new protocol extensions introduced in this document augment the 1012 existing IGP topology information that was distributed via [RFC7752]. 1013 The Security Considerations section of [RFC7752] also applies to 1014 these extensions. The procedures and new TLVs defined in this 1015 document, by themselves, do not affect the BGP-LS security model 1016 discussed in [RFC7752]. 1018 BGP-LS SR extensions enable traffic engineering use-cases within the 1019 Segment Routing domain. SR operates within a trusted domain (refer 1020 Security Considerations section in [RFC8402] for more detail) and its 1021 security considerations also apply to BGP-LS sessions when carrying 1022 SR information.The SR traffic engineering policies using the SIDs 1023 advertised via BGP-LS are expected to be used entirely within this 1024 trusted SR domain (e.g. between multiple AS/domains within a single 1025 provider network). Therefore, precaution is necessary to ensure that 1026 the SR information collected via BGP-LS is limited to specific 1027 controllers or applications in a secure manner within this SR domain. 1029 The isolation of BGP-LS peering sessions is also required to ensure 1030 that BGP-LS topology information (including the newly added SR 1031 information) is not advertised to an external BGP peering session 1032 outside an administrative domain. 1034 7. Contributors 1036 The following people have substantially contributed to the editing of 1037 this document: 1039 Peter Psenak 1040 Cisco Systems 1041 Email: ppsenak@cisco.com 1043 Les Ginsberg 1044 Cisco Systems 1045 Email: ginsberg@cisco.com 1047 Acee Lindem 1048 Cisco Systems 1049 Email: acee@cisco.com 1050 Saikat Ray 1051 Individual 1052 Email: raysaikat@gmail.com 1054 Jeff Tantsura 1055 Nuage Networks 1056 Email: jefftant.ietf@gmail.com 1058 8. Acknowledgements 1060 The authors would like to thank Jeffrey Haas and Aijun Wang for their 1061 review of this document and their comments. 1063 9. References 1065 9.1. Normative References 1067 [I-D.ietf-idr-te-pm-bgp] 1068 Ginsberg, L., Previdi, S., Wu, Q., Tantsura, J., and C. 1069 Filsfils, "BGP-LS Advertisement of IGP Traffic Engineering 1070 Performance Metric Extensions", draft-ietf-idr-te-pm- 1071 bgp-13 (work in progress), October 2018. 1073 [I-D.ietf-isis-segment-routing-extensions] 1074 Previdi, S., Ginsberg, L., Filsfils, C., Bashandy, A., 1075 Gredler, H., Litkowski, S., Decraene, B., and J. Tantsura, 1076 "IS-IS Extensions for Segment Routing", draft-ietf-isis- 1077 segment-routing-extensions-19 (work in progress), July 1078 2018. 1080 [I-D.ietf-ospf-ospfv3-segment-routing-extensions] 1081 Psenak, P., Filsfils, C., Previdi, S., Gredler, H., 1082 Shakir, R., Henderickx, W., and J. Tantsura, "OSPFv3 1083 Extensions for Segment Routing", draft-ietf-ospf-ospfv3- 1084 segment-routing-extensions-15 (work in progress), August 1085 2018. 1087 [I-D.ietf-ospf-segment-routing-extensions] 1088 Psenak, P., Previdi, S., Filsfils, C., Gredler, H., 1089 Shakir, R., Henderickx, W., and J. Tantsura, "OSPF 1090 Extensions for Segment Routing", draft-ietf-ospf-segment- 1091 routing-extensions-25 (work in progress), April 2018. 1093 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1094 Requirement Levels", BCP 14, RFC 2119, 1095 DOI 10.17487/RFC2119, March 1997, 1096 . 1098 [RFC4202] Kompella, K., Ed. and Y. Rekhter, Ed., "Routing Extensions 1099 in Support of Generalized Multi-Protocol Label Switching 1100 (GMPLS)", RFC 4202, DOI 10.17487/RFC4202, October 2005, 1101 . 1103 [RFC5340] Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF 1104 for IPv6", RFC 5340, DOI 10.17487/RFC5340, July 2008, 1105 . 1107 [RFC7684] Psenak, P., Gredler, H., Shakir, R., Henderickx, W., 1108 Tantsura, J., and A. Lindem, "OSPFv2 Prefix/Link Attribute 1109 Advertisement", RFC 7684, DOI 10.17487/RFC7684, November 1110 2015, . 1112 [RFC7752] Gredler, H., Ed., Medved, J., Previdi, S., Farrel, A., and 1113 S. Ray, "North-Bound Distribution of Link-State and 1114 Traffic Engineering (TE) Information Using BGP", RFC 7752, 1115 DOI 10.17487/RFC7752, March 2016, 1116 . 1118 [RFC7794] Ginsberg, L., Ed., Decraene, B., Previdi, S., Xu, X., and 1119 U. Chunduri, "IS-IS Prefix Attributes for Extended IPv4 1120 and IPv6 Reachability", RFC 7794, DOI 10.17487/RFC7794, 1121 March 2016, . 1123 [RFC8362] Lindem, A., Roy, A., Goethals, D., Reddy Vallem, V., and 1124 F. Baker, "OSPFv3 Link State Advertisement (LSA) 1125 Extensibility", RFC 8362, DOI 10.17487/RFC8362, April 1126 2018, . 1128 9.2. Informative References 1130 [I-D.ietf-isis-sr-yang] 1131 Litkowski, S., Qu, Y., Sarkar, P., Chen, I., and J. 1132 Tantsura, "YANG Data Model for IS-IS Segment Routing", 1133 draft-ietf-isis-sr-yang-04 (work in progress), June 2018. 1135 [I-D.ietf-ospf-sr-yang] 1136 Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, 1137 "Yang Data Model for OSPF SR (Segment Routing) Protocol", 1138 draft-ietf-ospf-sr-yang-05 (work in progress), July 2018. 1140 [I-D.ietf-spring-segment-routing-ldp-interop] 1141 Bashandy, A., Filsfils, C., Previdi, S., Decraene, B., and 1142 S. Litkowski, "Segment Routing interworking with LDP", 1143 draft-ietf-spring-segment-routing-ldp-interop-15 (work in 1144 progress), September 2018. 1146 [I-D.ietf-spring-sr-yang] 1147 Litkowski, S., Qu, Y., Sarkar, P., and J. Tantsura, "YANG 1148 Data Model for Segment Routing", draft-ietf-spring-sr- 1149 yang-09 (work in progress), June 2018. 1151 [RFC5706] Harrington, D., "Guidelines for Considering Operations and 1152 Management of New Protocols and Protocol Extensions", 1153 RFC 5706, DOI 10.17487/RFC5706, November 2009, 1154 . 1156 [RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running 1157 Code: The Implementation Status Section", BCP 205, 1158 RFC 7942, DOI 10.17487/RFC7942, July 2016, 1159 . 1161 [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., 1162 Decraene, B., Litkowski, S., and R. Shakir, "Segment 1163 Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, 1164 July 2018, . 1166 9.3. URIs 1168 [1] http://tools.ietf.org/html/draft-ietf-isis-segment-routing- 1169 extensions-16#section-3.1 1171 [2] http://tools.ietf.org/html/draft-ietf-isis-segment-routing- 1172 extensions-16#section-3.2 1174 [3] http://tools.ietf.org/html/draft-ietf-isis-segment-routing- 1175 extensions-16#section-3.3 1177 [4] http://tools.ietf.org/html/draft-ietf-isis-segment-routing- 1178 extensions-05#section-3.2 1180 [5] http://tools.ietf.org/html/draft-ietf-isis-segment-routing- 1181 extensions-16#section-2.2.1 1183 [6] http://tools.ietf.org/html/draft-ietf-isis-segment-routing- 1184 extensions-16#section-2.2.2 1186 [7] http://tools.ietf.org/html/draft-ietf-isis-segment-routing- 1187 extensions-16#section-2.1 1189 [8] http://tools.ietf.org/html/draft-ietf-isis-segment-routing- 1190 extensions-16#section-2.4 1192 [9] http://tools.ietf.org/html/draft-ietf-isis-segment-routing- 1193 extensions-16#section-2.3 1195 [10] http://tools.ietf.org/html/RFC7794 1197 [11] http://tools.ietf.org/html/RFC7794 1199 [12] http://tools.ietf.org/html/draft-ietf-isis-l2bundles-07 1201 [13] http://tools.ietf.org/html/draft-ietf-ospf-segment-routing- 1202 extensions-25#section-3.2 1204 [14] http://tools.ietf.org/html/draft-ietf-ospf-segment-routing- 1205 extensions-25#section-3.1 1207 [15] http://tools.ietf.org/html/draft-ietf-ospf-segment-routing- 1208 extensions-25#section-3.3 1210 [16] http://tools.ietf.org/html/draft-ietf-ospf-segment-routing- 1211 extensions-25#section-3.4 1213 [17] http://tools.ietf.org/html/draft-ietf-ospf-segment-routing- 1214 extensions-25#section-6.1 1216 [18] http://tools.ietf.org/html/draft-ietf-ospf-segment-routing- 1217 extensions-25#section-6.2 1219 [19] http://tools.ietf.org/html/draft-ietf-ospf-segment-routing- 1220 extensions-25#section-5 1222 [20] http://tools.ietf.org/html/draft-ietf-ospf-segment-routing- 1223 extensions-25#section-4 1225 [21] http://tools.ietf.org/html/draft-ietf-ospf-segment-routing- 1226 extensions-25#section-2.1 1228 [22] http://tools.ietf.org/html/RFC7684#section-2.1 1230 [23] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment- 1231 routing-extensions-12#section-3.2 1233 [24] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment- 1234 routing-extensions-12#section-3.1 1236 [25] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment- 1237 routing-extensions-12#section-3.3 1239 [26] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment- 1240 routing-extensions-12#section-3.4 1242 [27] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment- 1243 routing-extensions-12#section-6.1 1245 [28] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment- 1246 routing-extensions-12#section-6.2 1248 [29] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment- 1249 routing-extensions-12#section-5 1251 [30] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment- 1252 routing-extensions-12#section-4 1254 [31] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment- 1255 routing-extensions-12#section-2.1 1257 [32] http://tools.ietf.org/html/RFC8362#section-3.1 1259 Authors' Addresses 1261 Stefano Previdi (editor) 1262 Via Del Serafico, 200 1263 Rome 00142 1264 Italy 1266 Email: stefano@previdi.net 1268 Ketan Talaulikar 1269 Cisco Systems, Inc. 1270 S.No. 154/6, Phase I, Hinjawadi 1271 Pune 411 057 1272 India 1274 Email: ketant@cisco.com 1276 Clarence Filsfils 1277 Cisco Systems, Inc. 1278 Brussels 1279 Belgium 1281 Email: cfilsfil@cisco.com 1283 Hannes Gredler 1284 RtBrick Inc. 1286 Email: hannes@rtbrick.com 1287 Mach(Guoyi) Chen 1288 Huawei Technologies 1289 Huawei Building, No. 156 Beiqing Rd. 1290 Beijing 100095 1291 China 1293 Email: mach.chen@huawei.com