idnits 2.17.1 draft-gredler-idr-bgp-ls-segment-routing-ext-01.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 (December 14, 2015) is 3056 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 1142 -- Looks like a reference, but probably isn't: '2' on line 1145 -- Looks like a reference, but probably isn't: '3' on line 1148 -- Looks like a reference, but probably isn't: '4' on line 1151 -- Looks like a reference, but probably isn't: '5' on line 1154 -- Looks like a reference, but probably isn't: '6' on line 1157 -- Looks like a reference, but probably isn't: '7' on line 1160 -- Looks like a reference, but probably isn't: '8' on line 1163 -- Looks like a reference, but probably isn't: '9' on line 1166 -- Looks like a reference, but probably isn't: '10' on line 1169 -- Looks like a reference, but probably isn't: '11' on line 1172 -- Looks like a reference, but probably isn't: '12' on line 1175 -- Looks like a reference, but probably isn't: '13' on line 1178 -- Looks like a reference, but probably isn't: '14' on line 1181 -- Looks like a reference, but probably isn't: '15' on line 1184 -- Looks like a reference, but probably isn't: '16' on line 1187 -- Looks like a reference, but probably isn't: '17' on line 1190 -- Looks like a reference, but probably isn't: '18' on line 1193 -- Looks like a reference, but probably isn't: '19' on line 1196 -- Looks like a reference, but probably isn't: '20' on line 1199 -- Looks like a reference, but probably isn't: '21' on line 1202 -- Looks like a reference, but probably isn't: '22' on line 1205 -- Looks like a reference, but probably isn't: '23' on line 1208 -- Looks like a reference, but probably isn't: '24' on line 1211 -- Looks like a reference, but probably isn't: '25' on line 1214 -- Looks like a reference, but probably isn't: '26' on line 1217 -- Looks like a reference, but probably isn't: '27' on line 1220 -- Looks like a reference, but probably isn't: '28' on line 1223 -- Looks like a reference, but probably isn't: '29' on line 1226 -- Looks like a reference, but probably isn't: '30' on line 1229 -- Looks like a reference, but probably isn't: '31' on line 1232 -- Looks like a reference, but probably isn't: '32' on line 1235 -- Looks like a reference, but probably isn't: '33' on line 1238 -- Looks like a reference, but probably isn't: '34' on line 1241 -- Looks like a reference, but probably isn't: '35' on line 1244 -- Looks like a reference, but probably isn't: '36' on line 1247 -- Looks like a reference, but probably isn't: '37' on line 1250 -- Looks like a reference, but probably isn't: '38' on line 1253 -- Looks like a reference, but probably isn't: '39' on line 1256 -- Looks like a reference, but probably isn't: '40' on line 1259 -- Looks like a reference, but probably isn't: '41' on line 1262 -- Looks like a reference, but probably isn't: '42' on line 1265 -- Looks like a reference, but probably isn't: '43' on line 1268 -- Looks like a reference, but probably isn't: '44' on line 1271 -- Looks like a reference, but probably isn't: '45' on line 1274 == Outdated reference: A later version (-25) exists of draft-ietf-isis-segment-routing-extensions-05 == Outdated reference: A later version (-23) exists of draft-ietf-ospf-ospfv3-segment-routing-extensions-03 == Outdated reference: A later version (-27) exists of draft-ietf-ospf-segment-routing-extensions-05 == Outdated reference: A later version (-15) exists of draft-ietf-spring-segment-routing-06 Summary: 0 errors (**), 0 flaws (~~), 5 warnings (==), 46 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 P. Psenak 4 Intended status: Standards Track C. Filsfils 5 Expires: June 16, 2016 Cisco Systems, Inc. 6 H. Gredler 7 Individual 8 M. Chen 9 Huawei Technologies 10 J. Tantsura 11 Ericsson 12 December 14, 2015 14 BGP Link-State extensions for Segment Routing 15 draft-gredler-idr-bgp-ls-segment-routing-ext-01 17 Abstract 19 Segment Routing (SR) allows for a flexible definition of end-to-end 20 paths within IGP topologies by encoding paths as sequences of 21 topological sub-paths, called "segments". These segments are 22 advertised by the link-state routing protocols (IS-IS, OSPF and 23 OSPFv3). 25 This draft defines extensions to the BGP Link-state address-family in 26 order to carry segment information via BGP. 28 Requirements Language 30 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 31 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 32 document are to be interpreted as described in RFC 2119 [RFC2119]. 34 Status of This Memo 36 This Internet-Draft is submitted in full conformance with the 37 provisions of BCP 78 and BCP 79. 39 Internet-Drafts are working documents of the Internet Engineering 40 Task Force (IETF). Note that other groups may also distribute 41 working documents as Internet-Drafts. The list of current Internet- 42 Drafts is at http://datatracker.ietf.org/drafts/current/. 44 Internet-Drafts are draft documents valid for a maximum of six months 45 and may be updated, replaced, or obsoleted by other documents at any 46 time. It is inappropriate to use Internet-Drafts as reference 47 material or to cite them other than as "work in progress." 48 This Internet-Draft will expire on June 16, 2016. 50 Copyright Notice 52 Copyright (c) 2015 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 (http://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. SR-Capabilities TLV . . . . . . . . . . . . . . . . . 6 71 2.1.2. SR-Algorithm TLV . . . . . . . . . . . . . . . . . . 7 72 2.2. Link Attribute TLVs . . . . . . . . . . . . . . . . . . . 7 73 2.2.1. Adjacency SID TLV . . . . . . . . . . . . . . . . . . 8 74 2.2.2. LAN Adjacency SID TLV . . . . . . . . . . . . . . . . 8 75 2.3. Prefix Attribute TLVs . . . . . . . . . . . . . . . . . . 9 76 2.3.1. Prefix-SID TLV . . . . . . . . . . . . . . . . . . . 10 77 2.3.2. Range TLV . . . . . . . . . . . . . . . . . . . . . . 11 78 2.3.3. Binding SID TLV . . . . . . . . . . . . . . . . . . . 12 79 2.3.4. Binding SID SubTLVs . . . . . . . . . . . . . . . . . 13 80 2.4. Equivalent IS-IS Segment Routing TLVs/Sub-TLVs . . . . . 19 81 2.5. Equivalent OSPF/OSPFv3 Segment Routing TLVs/Sub-TLVs . . 20 82 3. Procedures . . . . . . . . . . . . . . . . . . . . . . . . . 22 83 3.1. Advertisement of a IS-IS Prefix SID TLV . . . . . . . . . 22 84 3.2. Advertisement of a OSPF/OSPFv3 Prefix-SID TLV . . . . . . 22 85 3.3. Advertisement of a range of prefix-to-SID mappings in 86 OSPF . . . . . . . . . . . . . . . . . . . . . . . . . . 23 87 3.4. Advertisement of a range of IS-IS SR bindings . . . . . . 23 88 3.5. Advertisement of a path and its attributes from IS-IS 89 protocol . . . . . . . . . . . . . . . . . . . . . . . . 23 90 3.6. Advertisement of a path and its attributes from 91 OSPFv2/OSPFv3 protocol . . . . . . . . . . . . . . . . . 24 92 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24 93 5. Manageability Considerations . . . . . . . . . . . . . . . . 24 94 5.1. Operational Considerations . . . . . . . . . . . . . . . 24 95 5.1.1. Operations . . . . . . . . . . . . . . . . . . . . . 24 97 6. TLV/Sub-TLV Code Points Summary . . . . . . . . . . . . . . . 24 98 7. Security Considerations . . . . . . . . . . . . . . . . . . . 25 99 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 25 100 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 26 101 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 26 102 10.1. Normative References . . . . . . . . . . . . . . . . . . 26 103 10.2. Informative References . . . . . . . . . . . . . . . . . 26 104 10.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 27 105 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 30 107 1. Introduction 109 Segment Routing (SR) allows for a flexible definition of end-to-end 110 paths by combining sub-paths called "segments". A segment can 111 represent any instruction, topological or service-based. A segment 112 can have a local semantic to an SR node or global within a domain. 113 Within IGP topologies an SR path is encoded as a sequence of 114 topological sub-paths, called "IGP segments". These segments are 115 advertised by the link-state routing protocols (IS-IS, OSPF and 116 OSPFv3). 118 Two types of IGP segments are defined, Prefix segments and Adjacency 119 segments. Prefix segments, by default, represent an ECMP-aware 120 shortest-path to a prefix, as per the state of the IGP topology. 121 Adjacency segments represent a hop over a specific adjacency between 122 two nodes in the IGP. A prefix segment is typically a multi-hop path 123 while an adjacency segment, in most of the cases, is a one-hop path. 124 [I-D.ietf-spring-segment-routing]. 126 When Segment Routing is enabled in a IGP domain, segments are 127 advertised in the form of Segment Identifiers (SIDs). The IGP link- 128 state routing protocols have been extended to advertise SIDs and 129 other SR-related information. IGP extensions are described in: IS-IS 130 [I-D.ietf-isis-segment-routing-extensions], OSPFv2 131 [I-D.ietf-ospf-segment-routing-extensions] and OSPFv3 132 [I-D.ietf-ospf-ospfv3-segment-routing-extensions]. Using these 133 extensions, Segment Routing can be enabled within an IGP domain. 135 +------------+ 136 | Consumer | 137 +------------+ 138 ^ 139 | 140 v 141 +-------------------+ 142 | BGP Speaker | +-----------+ 143 | (Route-Reflector) | | Consumer | 144 +-------------------+ +-----------+ 145 ^ ^ ^ ^ 146 | | | | 147 +---------------+ | +-------------------+ | 148 | | | | 149 v v v v 150 +-----------+ +-----------+ +-----------+ 151 | BGP | | BGP | | BGP | 152 | Speaker | | Speaker | . . . | Speaker | 153 +-----------+ +-----------+ +-----------+ 154 ^ ^ ^ 155 | | | 156 IGP IGP IGP 158 Figure 1: Link State info collection 160 Segment Routing (SR) allows advertisement of single or multi-hop 161 paths. The flooding scope for the IGP extensions for Segment routing 162 is IGP area-wide. Consequently, the contents of a Link State 163 Database (LSDB) or a Traffic Engineering Database (TED) has the scope 164 of an IGP area and therefore, by using the IGP alone it is not enough 165 to construct segments across multiple IGP Area or AS boundaries. 167 In order to address the need for applications that require 168 topological visibility across IGP areas, or even across Autonomous 169 Systems (AS), the BGP-LS address-family/sub-address-family have been 170 defined to allow BGP to carry Link-State information. The BGP 171 Network Layer Reachability Information (NLRI) encoding format for 172 BGP-LS and a new BGP Path Attribute called the BGP-LS attribute are 173 defined in [I-D.ietf-idr-ls-distribution]. The identifying key of 174 each Link-State object, namely a node, link, or prefix, is encoded in 175 the NLRI and the properties of the object are encoded in the BGP-LS 176 attribute. Figure Figure 1 describes a typical deployment scenario. 177 In each IGP area, one or more nodes are configured with BGP-LS. 178 These BGP speakers form an IBGP mesh by connecting to one or more 179 route-reflectors. This way, all BGP speakers (specifically the 180 route-reflectors) obtain Link-State information from all IGP areas 181 (and from other ASes from EBGP peers). An external component 182 connects to the route-reflector to obtain this information (perhaps 183 moderated by a policy regarding what information is or isn't 184 advertised to the external component). 186 This document describes extensions to BGP-LS to advertise the SR 187 information. An external component (e.g., a controller) then can 188 collect SR information in the "northbound" direction across IGP areas 189 or ASes and construct the end-to-end path (with its associated SIDs) 190 that need to be applied to an incoming packet to achieve the desired 191 end-to-end forwarding. 193 2. BGP-LS Extensions for Segment Routing 195 This document defines IGP SR extensions BGP-LS TLVs and Sub-TLVs. 196 Section 2.4 and Section 2.5 illustrates the equivalent TLVs and Sub- 197 TLVs in IS-IS, OSPF and OSPFv3 protocols. 199 BGP-LS [I-D.ietf-idr-ls-distribution] defines the BGP-LS NLRI that 200 can be a Node NLRI, a Link NLRI or a Prefix NLRI. The corresponding 201 BGP-LS attribute is a Node Attribute, a Link Attribute or a Prefix 202 Attribute. BGP-LS [I-D.ietf-idr-ls-distribution] defines the TLVs 203 that map link-state information to BGP-LS NLRI and the BGP-LS 204 attribute. This document adds additional BGP-LS attribute TLVs in 205 order to encode SR information. 207 The following new TLVs are defined for the encoding of SR 208 information: 210 o TLV for Prefix-SID. 212 o TLV for Adjacency-SID between two nodes as well as between nodes 213 in a LAN. 215 o TLV for SR Capabilities. 217 o TLV for SR Algorithm. 219 o TLV for advertising paths (IGP Binding TLV). 221 o TLV for advertising bindings between prefixes and SIDs (Mapping 222 Server). 224 2.1. Node Attributes TLVs 226 The following Node Attribute TLVs are defined: 228 +----------------+-----------------+----------+---------------+ 229 | TLV Code Point | Description | Length | Section | 230 +----------------+-----------------+----------+---------------+ 231 | 1034 | SR Capabilities | variable | Section 2.1.1 | 232 | 1035 | SR Algorithm | variable | Section 2.1.2 | 233 +----------------+-----------------+----------+---------------+ 235 Table 1: Node Attribute TLVs 237 These TLVs can ONLY be added to the Node Attribute associated with 238 the Node NLRI that originates the corresponding SR TLV. 240 2.1.1. SR-Capabilities TLV 242 The SR Capabilities sub-TLV has following format: 244 0 1 2 3 245 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 246 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 247 | Type | Length | 248 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 249 | Flags | RESERVED | 250 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 252 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 253 | Range Size | 254 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 255 // SID/Label Sub-TLV (variable) // 256 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 258 Type: TBD, suggested value 1034. 260 Length: Variable. 262 Flags: 1 octet of flags as defined in 263 [I-D.ietf-isis-segment-routing-extensions] and 264 [I-D.ietf-ospf-ospfv3-segment-routing-extensions]. 266 One or more entries, each of which have the following format: 268 Range Size: 3 octet value indicating the number of labels in 269 the range. 271 SID/Label sub-TLV (as defined in Section 2.3.4.2). 273 2.1.2. SR-Algorithm TLV 275 The SR-Algorithm 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 | Algorithm 1 | Algorithm... | Algorithm N | | 283 +- -+ 284 | | 285 + + 287 where: 289 Type: TBD, suggested value 1035. 291 Length: Variable. 293 Algorithm: 1 octet identifying the algorithm. 295 2.2. Link Attribute TLVs 297 The following Link Attribute TLVs are are defined: 299 +-----------+----------------------------+----------+---------------+ 300 | TLV Code | Description | Length | Section | 301 | Point | | | | 302 +-----------+----------------------------+----------+---------------+ 303 | 1099 | Adjacency Segment | variable | Section 2.2.1 | 304 | | Identifier (Adj-SID) TLV | | | 305 | 1100 | LAN Adjacency Segment | variable | Section 2.2.2 | 306 | | Identifier (Adj-SID) TLV | | | 307 +-----------+----------------------------+----------+---------------+ 309 Table 2: Link Attribute TLVs 311 These TLVs can ONLY be added to the Link Attribute associated with 312 the link whose local node originates the corresponding SR TLV. 314 For a LAN, normally a node only announces its adjacency to the IS-IS 315 pseudo-node (or the equivalent OSPF Designated and Backup Designated 316 Routers)[I-D.ietf-isis-segment-routing-extensions]. The LAN 317 Adjecency Segment TLV allows a node to announce adjacencies to all 318 other nodes attached to the LAN in a single instance of the BGP-LS 319 Link NLRI. Without this TLV, the corresponding BGP-LS link NLRI 320 would need to be originated for each additional adjacency in order to 321 advertise the SR TLVs for these neighbor adjacencies. 323 2.2.1. Adjacency SID TLV 325 The Adjacency SID (Adj-SID) TLV has the following format: 327 0 1 2 3 328 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 329 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 330 | Type | Length | 331 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 332 | Flags | Weight | Reserved | 333 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 334 | SID/Label/Index (variable) | 335 +---------------------------------------------------------------+ 337 where: 339 Type: TBD, suggested value 1099. 341 Length: Variable. 343 Flags. 1 octet field of following flags as defined in 344 [I-D.ietf-isis-segment-routing-extensions], 345 [I-D.ietf-ospf-segment-routing-extensions] and 346 [I-D.ietf-ospf-ospfv3-segment-routing-extensions]. 348 Weight: Weight used for load-balancing purposes. 350 SID/Index/Label: Label or index value depending on the flags 351 setting as defined in [I-D.ietf-isis-segment-routing-extensions], 352 [I-D.ietf-ospf-segment-routing-extensions] and 353 [I-D.ietf-ospf-ospfv3-segment-routing-extensions]. 355 2.2.2. LAN Adjacency SID TLV 357 The LAN Adjacency SID (LAN-Adj-SID-SID) has the following format: 359 0 1 2 3 360 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 361 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 362 | Type | Length | 363 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 364 | Flags | Weight | Reserved | 365 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 367 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 368 | OSPF Neighbor ID / IS-IS System-ID | 369 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 370 | | 371 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 373 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 374 | SID/Label/Index (variable) | 375 +---------------------------------------------------------------+ 377 where: 379 Type: TBD, suggested value 1100. 381 Length: Variable. 383 Flags. 1 octet field of following flags as defined in 384 [I-D.ietf-isis-segment-routing-extensions], 385 [I-D.ietf-ospf-segment-routing-extensions] and 386 [I-D.ietf-ospf-ospfv3-segment-routing-extensions]. 388 Weight: Weight used for load-balancing purposes. 390 SID/Index/Label: Label or index value depending on the flags 391 setting as defined in [I-D.ietf-isis-segment-routing-extensions], 392 [I-D.ietf-ospf-segment-routing-extensions] and 393 [I-D.ietf-ospf-ospfv3-segment-routing-extensions]. 395 2.3. Prefix Attribute TLVs 397 The following Prefix Attribute TLVs and Sub-TLVs are defined: 399 +----------------+-------------+----------+---------------+ 400 | TLV Code Point | Description | Length | Section | 401 +----------------+-------------+----------+---------------+ 402 | 1158 | Prefix SID | variable | Section 2.3.1 | 403 | 1159 | Range | variable | Section 2.3.2 | 404 | 1160 | Binding SID | variable | Section 2.3.3 | 405 +----------------+-------------+----------+---------------+ 407 Table 3: Prefix Attribute TLVs 409 +------------+-------------------------+----------+-----------------+ 410 | TLV Code | Description | Length | Section | 411 | Point | | | | 412 +------------+-------------------------+----------+-----------------+ 413 | 1161 | SID/Label TLV | variable | Section 2.3.4.2 | 414 | 1162 | ERO Metric TLV | 4 octets | Section 2.3.4.3 | 415 | 1163 | IPv4 ERO TLV | 8 octets | Section 2.3.4.4 | 416 | 1164 | IPv6 ERO TLV | 20 | Section 2.3.4.5 | 417 | | | octets | | 418 | 1165 | Unnumbered Interface ID | 12 | Section 2.3.4.6 | 419 | | ERO TLV | | | 420 | 1166 | IPv4 Backup ERO TLV | 8 octets | Section 2.3.4.7 | 421 | 1167 | IPv6 Backup ERO TLV | 10 | Section 2.3.4.8 | 422 | | | octets | | 423 | 1168 | Unnumbered Interface ID | 12 | Section 2.3.4.9 | 424 | | Backup ERO TLV | | | 425 +------------+-------------------------+----------+-----------------+ 427 Table 4: Prefix Attribute - Binding SID Sub-TLVs 429 2.3.1. Prefix-SID TLV 431 The Prefix-SID TLV can ONLY be added to the Prefix Attribute whose 432 local node in the corresponding Prefix NLRI is the node that 433 originates the corresponding SR TLV. 435 The Prefix-SID has the following format: 437 0 1 2 3 438 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 439 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 440 | Type | Length | 441 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 442 | Flags | Algorithm | Reserved | 443 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 444 | SID/Index/Label (variable) | 445 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 447 where: 449 Type: TBD, suggested value 1158. 451 Length: Variable 453 Algorithm: 1 octet value identify the algorithm. 455 SID/Index/Label: Label or index value depending on the flags 456 setting as defined in [I-D.ietf-isis-segment-routing-extensions], 457 [I-D.ietf-ospf-segment-routing-extensions] and 458 [I-D.ietf-ospf-ospfv3-segment-routing-extensions]. 460 The Prefix-SID TLV includes a Flags field. In the context of BGP-LS, 461 the Flags field format and the semantic of each individual flag MUST 462 be taken from the corresponding source protocol (i.e.: the protocol 463 of origin of the Prefix-SID being advertised in BGP-LS). 465 IS-IS Prefix-SID flags are defined in 466 [I-D.ietf-isis-segment-routing-extensions] section 2.1. 468 OSPF Prefix-SID flags are defined in 469 [I-D.ietf-ospf-segment-routing-extensions] section 5. 471 OSPFv3 Prefix-SID flags are defined in 472 [I-D.ietf-ospf-segment-routing-extensions] section 5. 474 2.3.2. Range TLV 476 The Range TLV can ONLY be added to the Prefix Attribute whose local 477 node in the corresponding Prefix NLRI is the node that originates the 478 corresponding SR TLV. 480 When the range TLV is used in order to advertise a path to a prefix 481 or a range of prefix-to-SID mappings, the Prefix-NLRI the Range TLV 482 is attached to MUST be advertised as a non-routing prefix where no 483 IGP metric TLV (TLV 1095) is attached. 485 The format of the Range TLV is as follows: 487 0 1 2 3 488 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 489 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 490 | Type | Length | 491 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 492 | Flags | RESERVED | Range Size | 493 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 494 // Sub-TLVs // 495 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 497 where: 499 Figure 2: Range TLV format 501 Type: 1159 503 Length is 4. 505 Flags: Only used when the source protocol is OSPF and defined in 506 [I-D.ietf-ospf-segment-routing-extensions] section 4 and 507 [I-D.ietf-ospf-ospfv3-segment-routing-extensions] section 4. 509 Range Size: 2 octets as defined in 510 [I-D.ietf-ospf-segment-routing-extensions] section 4. 512 Within the Range TLV, the following SubTLVs are may be present: 514 Binding SID TLV, defined in Section 2.3.3 516 Prefix-SID TLV, defined in Section 2.3.1 518 SID/Label TLV, defined in Section 2.3.4.2 520 2.3.3. Binding SID TLV 522 The Binding SID TLV can be used in two ways: 524 o as a sub-TLV of the Range TLV 526 o as a Prefix Attribute TLV 528 The format of the Binding SID TLV is as follows: 530 0 1 2 3 531 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 532 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 533 | Type | Length | 534 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 535 | Weight | Flags | RESERVED | 536 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 537 // SubTLVs (variable) // 538 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 540 where: 542 Figure 3: Binding SID Sub-TLV format 544 Type is 1160 546 Length is variable 548 Weight and Flags are mapped to Weight and Flags defined in 549 [I-D.ietf-isis-segment-routing-extensions] section 2.4, 550 [I-D.ietf-ospf-segment-routing-extensions] section 4 and 551 [I-D.ietf-ospf-ospfv3-segment-routing-extensions] section 4. 553 Sub-TLVs are defined in the following sections. 555 2.3.4. Binding SID SubTLVs 557 This section defines the Binding SID Sub-TLVs in BGP-LS to encode the 558 equivalent Sub-TLVs defined 559 in[I-D.ietf-isis-segment-routing-extensions], 560 [I-D.ietf-ospf-segment-routing-extensions] and 561 [I-D.ietf-ospf-ospfv3-segment-routing-extensions]. 563 All ERO (Explicit Route Object) Sub-TLVs must immediately follow the 564 (SID)/Label Sub-TLV. 566 All Backup ERO Sub-TLVs must immediately follow the last ERO Sub-TLV. 568 2.3.4.1. Binding SID Prefix-SID Sub-TLV 570 When encoding IS-IS Mapping Server entries as defined in 571 [I-D.ietf-isis-segment-routing-extensions] the Prefix-SID TLV defined 572 in Section 2.3.1 is used as Sub-TLV in the Binding TLV. 574 2.3.4.2. SID/Label Sub-TLV 576 The SID/Label TLV has following format: 578 0 1 2 3 579 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 580 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 581 | Type | Length | 582 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 583 | SID/Label (variable) | 584 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 586 where: 588 Type: TBD, suggested value 1161. 590 Length: Variable, 3 or 4 bytes 592 SID/Label: If length is set to 3, then the 20 rightmost bits 593 represent a label. If length is set to 4, then the value 594 represents a 32 bit SID. 596 The receiving router MUST ignore the SID/Label Sub-TLV if the 597 length is other then 3 or 4. 599 2.3.4.3. ERO Metric Sub-TLV 601 The ERO Metric Sub-TLV has following format: 603 0 1 2 3 604 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 605 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 606 | Type | Length | 607 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 608 | Metric (4 octets) | 609 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 611 ERO Metric Sub-TLV format 613 where: 615 Type: TBD, suggested value 1162. 617 Length: Always 4 619 Metric: A 4 octet metric representing the aggregate IGP or TE path 620 cost. 622 2.3.4.4. IPv4 ERO Sub-TLV 624 The ERO Metric Sub-TLV has following format: 626 0 1 2 3 627 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 628 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 629 | Type | Length | 630 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 631 | Flags | Reserved | 632 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 633 | IPv4 Address (4 octets) | 634 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 636 IPv4 ERO Sub-TLV format 638 where: 640 Type: TBD, suggested value 1163 642 Length: 8 octets 644 Flags: 1 octet of flags as defined in: 645 [I-D.ietf-isis-segment-routing-extensions], 646 [I-D.ietf-ospf-segment-routing-extensions] and 647 [I-D.ietf-ospf-ospfv3-segment-routing-extensions]. 649 IPv4 Address - the address of the explicit route hop. 651 2.3.4.5. IPv6 ERO Sub-TLV 653 The IPv6 ERO Sub-TLV has following format: 655 0 1 2 3 656 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 657 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 658 | Type | Length | 659 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 660 | Flags | Reserved | 661 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 662 | | 663 +- -+ 664 | | 665 +- IPv6 Address -+ 666 | | 667 +- -+ 668 | | 669 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 671 IPv6 ERO Sub-TLV format 673 where: 675 Type: TBD, suggested value 1164 677 Length: 20 octets 679 Flags: 1 octet of flags as defined in: 680 [I-D.ietf-isis-segment-routing-extensions], 681 [I-D.ietf-ospf-segment-routing-extensions] and 682 [I-D.ietf-ospf-ospfv3-segment-routing-extensions]. 684 IPv6 Address - the address of the explicit route hop. 686 2.3.4.6. Unnumbered Interface ID ERO Sub-TLV 688 The Unnumbered Interface-ID ERO Sub-TLV has following format: 690 0 1 2 3 691 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 692 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 693 | Type | Length | 694 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 695 | Flags | Reserved | 696 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 697 // Router ID (IPv4, 4 octet or IPv6, 16 octets) // 698 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 699 | Interface ID | 700 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 702 where: 704 Unnumbered Interface ID ERO Sub-TLV format 706 Type: TBD, suggested value 1165. 708 Length: Variable (12 for IPv4 Router-ID or 24 for IPv6 Router-ID). 710 Flags: 1 octet of flags as defined in: 711 [I-D.ietf-isis-segment-routing-extensions], 712 [I-D.ietf-ospf-segment-routing-extensions] and 713 [I-D.ietf-ospf-ospfv3-segment-routing-extensions]. 715 Router-ID: Router-ID of the next-hop. 717 Interface ID: is the identifier assigned to the link by the router 718 specified by the Router-ID. 720 2.3.4.7. IPv4 Backup ERO Sub-TLV 722 The IPv4 Backup ERO Sub-TLV has following format: 724 0 1 2 3 725 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 726 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 727 | Type | Length | 728 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 729 | Flags | Reserved | 730 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 731 | IPv4 Address (4 octets) | 732 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 734 IPv4 Backup ERO Sub-TLV format 736 where: 738 Type: TBD, suggested value 1166. 740 Length: 8 octets 742 Flags: 1 octet of flags as defined in: 743 [I-D.ietf-isis-segment-routing-extensions], 744 [I-D.ietf-ospf-segment-routing-extensions] and 745 [I-D.ietf-ospf-ospfv3-segment-routing-extensions]. 747 IPv4 Address: Address of the explicit route hop. 749 2.3.4.8. IPv6 Backup ERO Sub-TLV 751 The IPv6 Backup ERO Sub-TLV has following format: 753 0 1 2 3 754 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 755 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 756 | Type | Length | 757 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 758 | Flags | Reserved | 759 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 760 | | 761 +- -+ 762 | | 763 +- IPv6 Address -+ 764 | | 765 +- -+ 766 | | 767 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 769 IPv6 Backup ERO Sub-TLV format 771 where: 773 Type: TBD, suggested value 1167. 775 Length: 8 octets 777 Flags: 1 octet of flags as defined in: 778 [I-D.ietf-isis-segment-routing-extensions], 779 [I-D.ietf-ospf-segment-routing-extensions] and 780 [I-D.ietf-ospf-ospfv3-segment-routing-extensions]. 782 IPv6 Address: Address of the explicit route hop. 784 2.3.4.9. Unnumbered Interface ID Backup ERO Sub-TLV 786 The Unnumbered Interface-ID Backup ERO Sub-TLV has following format: 788 0 1 2 3 789 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 790 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 791 | Type | Length | 792 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 793 | Flags | Reserved | 794 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 795 // Router ID (IPv4, 4 octet or IPv6, 16 octets) // 796 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 797 | Interface ID | 798 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 800 Unnumbered Interface ID Backup ERO Sub-TLV format 802 where: 804 Type: TBD, suggested value 1168. 806 Length: Variable (12 for IPv4 Router-ID or 24 for IPv6 Router-ID). 808 Flags: 1 octet of flags as defined in: 809 [I-D.ietf-isis-segment-routing-extensions], 810 [I-D.ietf-ospf-segment-routing-extensions] and 811 [I-D.ietf-ospf-ospfv3-segment-routing-extensions]. 813 Router-ID: Router-ID of the next-hop. 815 Interface ID: Identifier assigned to the link by the router 816 specified by the Router-ID. 818 2.4. Equivalent IS-IS Segment Routing TLVs/Sub-TLVs 820 This section illustrate the IS-IS Segment Routing Extensions TLVs and 821 Sub-TLVs mapped to the ones defined in this document. 823 The following table, illustrates for each BGP-LS TLV, its equivalence 824 in IS-IS. 826 +-----------+------------------------------+----------+-------------+ 827 | TLV Code | Description | Length | IS-IS TLV | 828 | Point | | | /Sub-TLV | 829 +-----------+------------------------------+----------+-------------+ 830 | 1034 | SR Capabilities | variable | 2 [1] | 831 | 1035 | SR Algorithm | variable | 19 [2] | 832 | 1099 | Adjacency Segment Identifier | variable | 31 [3] | 833 | | (Adj-SID) TLV | | | 834 | 1100 | LAN Adjacency Segment | variable | 32 [4] | 835 | | Identifier (LAN-Adj-SID) TLV | | | 836 | 1158 | Prefix SID | variable | 3 [5] | 837 | 1160 | Binding SID | variable | 1 [6] | 838 | 1161 | SID/Label TLV | variable | 1 [7] | 839 | 1162 | ERO Metric TLV | 4 octets | 1 [8] | 840 | 1163 | IPv4 ERO TLV | 5 octets | 1 [9] | 841 | 1164 | IPv6 ERO TLV | 17 | 1 [10] | 842 | | | octets | | 843 | 1165 | Unnumbered Interface ID ERO | variable | 1 [11] | 844 | | TLV | | | 845 | 1166 | IPv4 Backup ERO TLV | 5 octets | 1 [12] | 846 | 1167 | IPv6 Backup ERO TLV | 17 | 1 [13] | 847 | | | octets | | 848 | 1168 | Unnumbered Interface ID | variable | 1 [14] | 849 | | Backup ERO TLV | | | 850 +-----------+------------------------------+----------+-------------+ 852 Table 5: IS-IS Segment Routing Extensions TLVs/Sub-TLVs 854 2.5. Equivalent OSPF/OSPFv3 Segment Routing TLVs/Sub-TLVs 856 This section illustrate the OSPF and OSPFv3 Segment Routing 857 Extensions TLVs and Sub-TLVs mapped to the ones defined in this 858 document. 860 The following table, illustrates for each BGP-LS TLV, its equivalence 861 in OSPF and OSPFv3. 863 +------------+-----------------------------+----------+-------------+ 864 | TLV Code | Description | Length | OSPF TLV | 865 | Point | | | /Sub-TLV | 866 +------------+-----------------------------+----------+-------------+ 867 | 1034 | SR Capabilities | variable | 9 [15] | 868 | 1035 | SR Algorithm | variable | 8 [16] | 869 | 1099 | Adjacency Segment | variable | 2 [17] | 870 | | Identifier (Adj-SID) TLV | | | 871 | 1100 | LAN Adjacency Segment | variable | 3 [18] | 872 | | Identifier (Adj-SID) TLV | | | 873 | 1158 | Prefix SID | variable | 2 [19] | 874 | 1161 | SID/Label TLV | variable | 1 [20] | 875 | 1162 | ERO Metric TLV | 4 octets | 8 [21] | 876 | 1163 | IPv4 ERO TLV | 8 octets | 4 [22] | 877 | 1165 | Unnumbered Interface ID ERO | 12 | 5 [23] | 878 | | TLV | octets | | 879 | 1166 | IPv4 Backup ERO TLV | 8 octets | 6 [24] | 880 | 1167 | Unnumbered Interface ID | 12 | 7 [25] | 881 | | Backup ERO TLV | octets | | 882 +------------+-----------------------------+----------+-------------+ 884 Table 6: OSPF Segment Routing Extensions TLVs/Sub-TLVs 886 +------------+----------------------------+----------+--------------+ 887 | TLV Code | Description | Length | OSPFv3 TLV | 888 | Point | | | /Sub-TLV | 889 +------------+----------------------------+----------+--------------+ 890 | 1034 | SR Capabilities | variable | 9 [26] | 891 | 1035 | SR Algorithm | variable | 8 [27] | 892 | 1099 | Adjacency Segment | variable | 5 [28] | 893 | | Identifier (Adj-SID) TLV | | | 894 | 1100 | LAN Adjacency Segment | variable | 6 [29] | 895 | | Identifier (Adj-SID) TLV | | | 896 | 1158 | Prefix SID | variable | 4 [30] | 897 | 1161 | SID/Label TLV | variable | 3 [31] | 898 | 1162 | ERO Metric TLV | 4 octets | 8 [32] | 899 | 1163 | IPv4 ERO TLV | 8 octets | 9 [33] | 900 | 1164 | IPv6 ERO TLV | 20 | 8 [34] | 901 | | | octets | | 902 | 1165 | Unnumbered Interface ID | 12 | 11 [35] | 903 | | ERO TLV | octets | | 904 | 1166 | IPv4 Backup ERO TLV | 8 octets | 12 [36] | 905 | 1167 | IPv6 Backup ERO TLV | 20 | 13 [37] | 906 | | | octets | | 907 | 1167 | Unnumbered Interface ID | 12 | 14 [38] | 908 | | Backup ERO TLV | octets | | 909 +------------+----------------------------+----------+--------------+ 911 Table 7: OSPFv3 Segment Routing Extensions TLVs/Sub-TLVs 913 3. Procedures 915 The following sections describe the different operations for the 916 propagation of SR TLVs into BGP-LS. 918 3.1. Advertisement of a IS-IS Prefix SID TLV 920 The advertisement of a IS-IS Prefix SID TLV has following rules: 922 The IS-IS Prefix-SID is encoded in the BGP-LS Prefix Attribute 923 Prefix-SID as defined in Section 2.3.1. The flags in the Prefix- 924 SID TLV have the semantic defined in 925 [I-D.ietf-isis-segment-routing-extensions] section 2.1. 927 3.2. Advertisement of a OSPF/OSPFv3 Prefix-SID TLV 929 The advertisement of a OSPF/OSPFv3 Prefix-SID TLV has following 930 rules: 932 The OSPF (or OSPFv3) Prefix-SID is encoded in the BGP-LS Prefix 933 Attribute Prefix-SID as defined in Section 2.3.1. The flags in 934 the Prefix-SID TLV have the semantic defined in 935 [I-D.ietf-ospf-segment-routing-extensions] section 5 or 936 [I-D.ietf-ospf-ospfv3-segment-routing-extensions] section 5. 938 3.3. Advertisement of a range of prefix-to-SID mappings in OSPF 940 The advertisement of a range of prefix-to-SID mappings in OSPF has 941 following rules: 943 The OSPF/OSPFv3 Extended Prefix Range TLV is encoded in the BGP-LS 944 Prefix Attribute Range TLV as defined in Section 2.3.2. The flags 945 of the Range TLV have the semantic mapped to the definition in 946 [I-D.ietf-ospf-segment-routing-extensions] section 4 or 947 [I-D.ietf-ospf-ospfv3-segment-routing-extensions] section 4. The 948 Prefix-SID from the original OSPF Prefix SID Sub-TLV is encoded 949 using the BGP-LS Prefix Attribute Prefix-SID as defined in 950 Section 2.3.1 with the flags set according to the definition in 951 [I-D.ietf-ospf-segment-routing-extensions] section 5 or 952 [I-D.ietf-ospf-ospfv3-segment-routing-extensions] section 5. 954 3.4. Advertisement of a range of IS-IS SR bindings 956 The advertisement of a range of IS-IS SR bindings has following 957 rules: 959 In IS-IS the Mapping Server binding ranges are advertised using 960 the Binding TLV. The IS-IS Binding TLV is encoded in the BGP-LS 961 Prefix Attribute Range TLV as defined in Section 2.3.2 using the 962 Binding Sub-TLV as defined in Section 2.3.3. The flags in the 963 Range TLV are all set to zero on transmit and ignored on 964 reception. The range value from the original IS-IS Binding TLV is 965 encoded in the Range TLV "Range" field. 967 3.5. Advertisement of a path and its attributes from IS-IS protocol 969 The advertisement of a Path and its attributes is described in 970 [I-D.ietf-isis-segment-routing-extensions] section 2.4 and has 971 following rules: 973 The original Binding SID TLV (from IS-IS) is encoded into the BGP- 974 LS Range TLV defined in Section 2.3.2 using the Binding Sub-TLV as 975 defined in Section 2.3.3. The set of Sub-TLVs from the original 976 IS-IS Binding TLV are encoded as Sub-TLVs of the BGP-LS Binding 977 TLV as defined in Section 2.3.3. This includes the SID/Label TLV 978 defined in Section 2.3. 980 3.6. Advertisement of a path and its attributes from OSPFv2/OSPFv3 981 protocol 983 The advertisement of a Path and its attributes is described in 984 [I-D.ietf-ospf-segment-routing-extensions] section 6 and 985 [I-D.ietf-ospf-ospfv3-segment-routing-extensions] section 6 and has 986 following rules: 988 Advertisement of a path for a single prefix: the original Binding 989 SID TLV (from OSPFv2/OSPFv3) is encoded into the BGP-LS Prefix 990 Attribute Binding TLV as defined in Section 2.3.3. The set of 991 Sub-TLVs from the original OSPFv2/OSPFv3 Binding TLV are encoded 992 as Sub-TLVs of the BGP-LS Binding TLV as defined in Section 2.3.3. 993 This includes the SID/Label TLV defined in Section 2.3. 995 Advertisement of an SR path for range of prefixes: the OSPF/OSPFv3 996 Extended Prefix Range TLV is encoded in the BGP-LS Prefix 997 Attribute Range TLV as defined in Section 2.3.2. The original 998 OSPFv2/OSPFv3 Binding SID TLV is encoded into the BGP-LS Binding 999 Sub-TLV as defined in Section 2.3.3. The set of Sub-TLVs from the 1000 original OSPFv2/OSPFv3 Binding TLV are encoded as Sub-TLVs of the 1001 BGP-LS Binding TLV as defined in Section 2.3.3. This includes the 1002 SID/Label TLV defined in Section 2.3. 1004 4. IANA Considerations 1006 This document requests assigning code-points from the registry for 1007 BGP-LS attribute TLVs based on table Table 8. 1009 5. Manageability Considerations 1011 This section is structured as recommended in [RFC5706]. 1013 5.1. Operational Considerations 1015 5.1.1. Operations 1017 Existing BGP and BGP-LS operational procedures apply. No additional 1018 operation procedures are defined in this document. 1020 6. TLV/Sub-TLV Code Points Summary 1022 This section contains the global table of all TLVs/Sub-TLVs defined 1023 in this document. 1025 +-----------+--------------------------+----------+-----------------+ 1026 | TLV Code | Description | Length | Section | 1027 | Point | | | | 1028 +-----------+--------------------------+----------+-----------------+ 1029 | 1034 | SR Capabilities | variable | Section 2.1.1 | 1030 | 1035 | SR Algorithm | variable | Section 2.1.2 | 1031 | 1099 | Adjacency Segment | variable | Section 2.2.1 | 1032 | | Identifier (Adj-SID) TLV | | | 1033 | 1100 | LAN Adjacency Segment | variable | Section 2.2.2 | 1034 | | Identifier (Adj-SID) TLV | | | 1035 | 1158 | Prefix SID | variable | Section 2.3.1 | 1036 | 1159 | Range | variable | Section 2.3.2 | 1037 | 1160 | Binding SID | variable | Section 2.3.3 | 1038 | 1161 | SID/Label TLV | variable | Section 2.3.4.2 | 1039 | 1162 | ERO Metric TLV | 4 octets | 1 [39] | 1040 | 1163 | IPv4 ERO TLV | 8 octets | 1 [40] | 1041 | 1164 | IPv6 ERO TLV | 20 | 1 [41] | 1042 | | | octets | | 1043 | 1165 | Unnumbered Interface ID | 12 | 1 [42] | 1044 | | ERO TLV | octets | | 1045 | 1166 | IPv4 Backup ERO TLV | 8 octets | 1 [43] | 1046 | 1167 | IPv6 Backup ERO TLV | 20 | 1 [44] | 1047 | | | octets | | 1048 | 1168 | Unnumbered Interface ID | 12 | 1 [45] | 1049 | | Backup ERO TLV | octets | | 1050 +-----------+--------------------------+----------+-----------------+ 1052 Table 8: Summary Table of TLV/Sub-TLV Codepoints 1054 7. Security Considerations 1056 Procedures and protocol extensions defined in this document do not 1057 affect the BGP security model. See the 'Security Considerations' 1058 section of [RFC4271] for a discussion of BGP security. Also refer to 1059 [RFC4272] and [RFC6952] for analysis of security issues for BGP. 1061 8. Contributors 1063 The following people have substantially contributed to the editing of 1064 this document: 1066 Acee Lindem 1067 Cisco Systems 1068 Email: acee@cisco.com 1070 Saikat Ray 1071 Individual 1072 Email: raysaikat@gmail.com 1074 9. Acknowledgements 1076 TBD. 1078 10. References 1080 10.1. Normative References 1082 [I-D.ietf-idr-ls-distribution] 1083 Gredler, H., Medved, J., Previdi, S., Farrel, A., and S. 1084 Ray, "North-Bound Distribution of Link-State and TE 1085 Information using BGP", draft-ietf-idr-ls-distribution-13 1086 (work in progress), October 2015. 1088 [I-D.ietf-isis-segment-routing-extensions] 1089 Previdi, S., Filsfils, C., Bashandy, A., Gredler, H., 1090 Litkowski, S., Decraene, B., and J. Tantsura, "IS-IS 1091 Extensions for Segment Routing", draft-ietf-isis-segment- 1092 routing-extensions-05 (work in progress), June 2015. 1094 [I-D.ietf-ospf-ospfv3-segment-routing-extensions] 1095 Psenak, P., Previdi, S., Filsfils, C., Gredler, H., 1096 Shakir, R., Henderickx, W., and J. Tantsura, "OSPFv3 1097 Extensions for Segment Routing", draft-ietf-ospf-ospfv3- 1098 segment-routing-extensions-03 (work in progress), June 1099 2015. 1101 [I-D.ietf-ospf-segment-routing-extensions] 1102 Psenak, P., Previdi, S., Filsfils, C., Gredler, H., 1103 Shakir, R., Henderickx, W., and J. Tantsura, "OSPF 1104 Extensions for Segment Routing", draft-ietf-ospf-segment- 1105 routing-extensions-05 (work in progress), June 2015. 1107 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1108 Requirement Levels", BCP 14, RFC 2119, 1109 DOI 10.17487/RFC2119, March 1997, 1110 . 1112 [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A 1113 Border Gateway Protocol 4 (BGP-4)", RFC 4271, 1114 DOI 10.17487/RFC4271, January 2006, 1115 . 1117 10.2. Informative References 1119 [I-D.ietf-spring-segment-routing] 1120 Filsfils, C., Previdi, S., Decraene, B., Litkowski, S., 1121 and r. rjs@rob.sh, "Segment Routing Architecture", draft- 1122 ietf-spring-segment-routing-06 (work in progress), October 1123 2015. 1125 [RFC4272] Murphy, S., "BGP Security Vulnerabilities Analysis", 1126 RFC 4272, DOI 10.17487/RFC4272, January 2006, 1127 . 1129 [RFC5706] Harrington, D., "Guidelines for Considering Operations and 1130 Management of New Protocols and Protocol Extensions", 1131 RFC 5706, DOI 10.17487/RFC5706, November 2009, 1132 . 1134 [RFC6952] Jethanandani, M., Patel, K., and L. Zheng, "Analysis of 1135 BGP, LDP, PCEP, and MSDP Issues According to the Keying 1136 and Authentication for Routing Protocols (KARP) Design 1137 Guide", RFC 6952, DOI 10.17487/RFC6952, May 2013, 1138 . 1140 10.3. URIs 1142 [1] http://tools.ietf.org/html/draft-ietf-isis-segment-routing- 1143 extensions-05#section-3.1 1145 [2] http://tools.ietf.org/html/draft-ietf-isis-segment-routing- 1146 extensions-05#section-3.2 1148 [3] http://tools.ietf.org/html/draft-ietf-isis-segment-routing- 1149 extensions-05#section-2.2.1 1151 [4] http://tools.ietf.org/html/draft-ietf-isis-segment-routing- 1152 extensions-05#section-2.2.2 1154 [5] http://tools.ietf.org/html/draft-ietf-isis-segment-routing- 1155 extensions-05#section-2.1 1157 [6] http://tools.ietf.org/html/draft-ietf-isis-segment-routing- 1158 extensions-05#section-2.4 1160 [7] http://tools.ietf.org/html/draft-ietf-isis-segment-routing- 1161 extensions-05#section-2.3 1163 [8] http://tools.ietf.org/html/draft-ietf-isis-segment-routing- 1164 extensions-05#section-2.4.7 1166 [9] http://tools.ietf.org/html/draft-ietf-isis-segment-routing- 1167 extensions-05#section-2.4.8 1169 [10] http://tools.ietf.org/html/draft-ietf-isis-segment-routing- 1170 extensions-05#section-2.4.9 1172 [11] http://tools.ietf.org/html/draft-ietf-isis-segment-routing- 1173 extensions-05#section-2.4.10 1175 [12] http://tools.ietf.org/html/draft-ietf-isis-segment-routing- 1176 extensions-05#section-2.4.11 1178 [13] http://tools.ietf.org/html/draft-ietf-isis-segment-routing- 1179 extensions-05#section-2.4.12 1181 [14] http://tools.ietf.org/html/draft-ietf-isis-segment-routing- 1182 extensions-05#section-2.4.13 1184 [15] http://tools.ietf.org/html/draft-ietf-ospf-segment-routing- 1185 extensions-05#section-3.2 1187 [16] http://tools.ietf.org/html/draft-ietf-ospf-segment-routing- 1188 extensions-05#section-3.1 1190 [17] http://tools.ietf.org/html/draft-ietf-ospf-segment-routing- 1191 extensions-05#section-7.1 1193 [18] http://tools.ietf.org/html/draft-ietf-ospf-segment-routing- 1194 extensions-05#section-7.2 1196 [19] http://tools.ietf.org/html/draft-ietf-ospf-segment-routing- 1197 extensions-05#section-5 1199 [20] http://tools.ietf.org/html/draft-ietf-ospf-segment-routing- 1200 extensions-05#section-2.1 1202 [21] http://tools.ietf.org/html/draft-ietf-ospf-segment-routing- 1203 extensions-05#section-6.1 1205 [22] http://tools.ietf.org/html/draft-ietf-ospf-segment-routing- 1206 extensions-05#section-6.2.1 1208 [23] http://tools.ietf.org/html/draft-ietf-ospf-segment-routing- 1209 extensions-05#section-6.2.2 1211 [24] http://tools.ietf.org/html/draft-ietf-ospf-segment-routing- 1212 extensions-05#section-6.2.3 1214 [25] http://tools.ietf.org/html/draft-ietf-ospf-segment-routing- 1215 extensions-05#section-6.2.4 1217 [26] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment- 1218 routing-extensions-05#section-3.2 1220 [27] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment- 1221 routing-extensions-05#section-3.1 1223 [28] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment- 1224 routing-extensions-05#section-7.1 1226 [29] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment- 1227 routing-extensions-05#section-7.2 1229 [30] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment- 1230 routing-extensions-05#section-5 1232 [31] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment- 1233 routing-extensions-05#section-2.1 1235 [32] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment- 1236 routing-extensions-05#section-6.1 1238 [33] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment- 1239 routing-extensions-05#section-6.2.1 1241 [34] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment- 1242 routing-extensions-05#section-6.2.2 1244 [35] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment- 1245 routing-extensions-05#section-6.2.3 1247 [36] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment- 1248 routing-extensions-05#section-6.2.4 1250 [37] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment- 1251 routing-extensions-05#section-6.2.5 1253 [38] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment- 1254 routing-extensions-05#section-6.2.6 1256 [39] http://tools.ietf.org/html/draft-ietf-isis-segment-routing- 1257 extensions-05#section-2.4.7 1259 [40] http://tools.ietf.org/html/draft-ietf-isis-segment-routing- 1260 extensions-05#section-2.4.8 1262 [41] http://tools.ietf.org/html/draft-ietf-isis-segment-routing- 1263 extensions-05#section-2.4.9 1265 [42] http://tools.ietf.org/html/draft-ietf-isis-segment-routing- 1266 extensions-05#section-2.4.10 1268 [43] http://tools.ietf.org/html/draft-ietf-isis-segment-routing- 1269 extensions-05#section-2.4.11 1271 [44] http://tools.ietf.org/html/draft-ietf-isis-segment-routing- 1272 extensions-05#section-2.4.12 1274 [45] http://tools.ietf.org/html/draft-ietf-isis-segment-routing- 1275 extensions-05#section-2.4.13 1277 Authors' Addresses 1279 Stefano Previdi (editor) 1280 Cisco Systems, Inc. 1281 Via Del Serafico, 200 1282 Rome 00142 1283 Italy 1285 Email: sprevidi@cisco.com 1287 Peter Psenak 1288 Cisco Systems, Inc. 1289 Apollo Business Center 1290 Mlynske nivy 43 1291 Bratislava 821 09 1292 Slovakia 1294 Email: ppsenak@cisco.com 1296 Clarence Filsfils 1297 Cisco Systems, Inc. 1298 Brussels 1299 Belgium 1301 Email: cfilsfil@cisco.com 1303 Hannes Gredler 1304 Individual 1306 Email: hannes@gredler.at 1307 Mach(Guoyi) Chen 1308 Huawei Technologies 1309 Huawei Building, No. 156 Beiqing Rd. 1310 Beijing 100095 1311 China 1313 Email: mach.chen@huawei.com 1315 Jeff Tantsura 1316 Ericsson 1317 300 Holger Way 1318 San Jose, CA 95134 1319 US 1321 Email: jeff.tantsura@ericsson.com