idnits 2.17.1 draft-dawra-idr-bgpls-srv6-ext-04.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (September 3, 2018) is 2061 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Outdated reference: A later version (-05) exists of draft-bashandy-isis-srv6-extensions-03 == Outdated reference: A later version (-05) exists of draft-dawra-idr-srv6-vpn-04 == Outdated reference: A later version (-07) exists of draft-filsfils-spring-srv6-network-programming-05 == Outdated reference: A later version (-26) exists of draft-ietf-6man-segment-routing-header-14 == Outdated reference: A later version (-18) exists of draft-ietf-idr-bgp-ls-segment-routing-ext-08 == Outdated reference: A later version (-19) exists of draft-ietf-idr-bgpls-segment-routing-epe-15 == Outdated reference: A later version (-07) exists of draft-li-ospf-ospfv3-srv6-extensions-01 ** Obsolete normative reference: RFC 7752 (Obsoleted by RFC 9552) Summary: 1 error (**), 0 flaws (~~), 8 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Inter-Domain Routing G. Dawra, Ed. 3 Internet-Draft LinkedIn 4 Intended status: Standards Track C. Filsfils 5 Expires: March 7, 2019 K. Talaulikar, Ed. 6 Cisco Systems 7 M. Chen 8 Huawei 9 D. Bernier 10 Bell Canada 11 J. Uttaro 12 AT&T 13 B. Decraene 14 Orange 15 H. Elmalky 16 Ericsson 17 September 3, 2018 19 BGP Link State extensions for IPv6 Segment Routing(SRv6) 20 draft-dawra-idr-bgpls-srv6-ext-04 22 Abstract 24 Segment Routing IPv6 (SRv6) allows for a flexible definition of end- 25 to-end paths within various topologies by encoding paths as sequences 26 of topological or functional sub-paths, called "segments". These 27 segments are advertised by the various protocols such as BGP, ISIS 28 and OSPFv3. 30 BGP Link-state (BGP-LS) address-family solution for SRv6 is similar 31 to BGP-LS for SR for MPLS dataplane. This draft defines extensions 32 to the BGP-LS to advertise SRv6 Segments along with there functions 33 and other attributes via BGP. 35 Requirements Language 37 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 38 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 39 document are to be interpreted as described in RFC 2119 [RFC2119]. 41 Status of This Memo 43 This Internet-Draft is submitted in full conformance with the 44 provisions of BCP 78 and BCP 79. 46 Internet-Drafts are working documents of the Internet Engineering 47 Task Force (IETF). Note that other groups may also distribute 48 working documents as Internet-Drafts. The list of current Internet- 49 Drafts is at https://datatracker.ietf.org/drafts/current/. 51 Internet-Drafts are draft documents valid for a maximum of six months 52 and may be updated, replaced, or obsoleted by other documents at any 53 time. It is inappropriate to use Internet-Drafts as reference 54 material or to cite them other than as "work in progress." 56 This Internet-Draft will expire on March 7, 2019. 58 Copyright Notice 60 Copyright (c) 2018 IETF Trust and the persons identified as the 61 document authors. All rights reserved. 63 This document is subject to BCP 78 and the IETF Trust's Legal 64 Provisions Relating to IETF Documents 65 (https://trustee.ietf.org/license-info) in effect on the date of 66 publication of this document. Please review these documents 67 carefully, as they describe your rights and restrictions with respect 68 to this document. Code Components extracted from this document must 69 include Simplified BSD License text as described in Section 4.e of 70 the Trust Legal Provisions and are provided without warranty as 71 described in the Simplified BSD License. 73 Table of Contents 75 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 76 2. BGP-LS extensions for SRv6 . . . . . . . . . . . . . . . . . 3 77 2.1. SRv6 Node Attributes . . . . . . . . . . . . . . . . . . 4 78 2.1.1. SRv6 Capability Attribute TLV . . . . . . . . . . . . 4 79 2.1.2. SRv6 SID Node Attribute TLV . . . . . . . . . . . . . 8 80 2.2. SRv6 Link Attributes . . . . . . . . . . . . . . . . . . 10 81 2.2.1. SRv6 SID Link Attribute TLV . . . . . . . . . . . . . 11 82 2.2.2. SRv6 SID LAN Link Attribute TLV . . . . . . . . . . . 12 83 2.2.3. SRv6 Peer Node END.X SID TLV . . . . . . . . . . . . 14 84 2.2.4. SRv6 Peer Set END.X SID TLV . . . . . . . . . . . . . 15 85 3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 86 3.1. TLV/Sub-TLV Code Points Summary . . . . . . . . . . . . . 16 87 4. Manageability Considerations . . . . . . . . . . . . . . . . 17 88 5. Operational Considerations . . . . . . . . . . . . . . . . . 17 89 5.1. Operations . . . . . . . . . . . . . . . . . . . . . . . 17 90 6. Security Considerations . . . . . . . . . . . . . . . . . . . 17 91 7. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 17 92 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 18 93 8.1. Normative References . . . . . . . . . . . . . . . . . . 18 94 8.2. Informative References . . . . . . . . . . . . . . . . . 19 95 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20 97 1. Introduction 99 SRv6 refers to Segment Routing instantiated on the IPv6 dataplane 100 [I-D.ietf-spring-segment-routing]. Segment Identifier (SID) is often 101 used as a shorter reference for "SRv6 Segment". 103 The network programming paradigm 104 [I-D.filsfils-spring-srv6-network-programming] is central to SRv6. 105 It describes how different functions can be bound to their SIDs and 106 how a network program can be expressed as a combination of SIDs. 108 An SRv6-capable node N maintains a "My Local SID Table" (refer 109 [I-D.filsfils-spring-srv6-network-programming]). This table contains 110 all the local segments explicitly instantiated at node N. 112 The ISIS ([I-D.bashandy-isis-srv6-extensions]) and OSPFv3 113 ([I-D.li-ospf-ospfv3-srv6-extensions]) link-state routing protocols 114 have been extended to advertise some of these SRv6 SIDs and 115 SRv6-related information. BGP ([I-D.dawra-idr-srv6-vpn]) has been 116 extended to advertise some of these SRv6 SIDs for VPN services. 117 Certain other SRv6 SIDs may be instantiated on a node via other 118 mechanisms for topological or service functionalities. 120 The advertisement of SR related information along with the topology 121 for the MPLS dataplane instantiation is specified in 122 [I-D.ietf-idr-bgp-ls-segment-routing-ext] and 123 [I-D.ietf-idr-bgpls-segment-routing-epe]. On the similar lines, 124 introducing the SRv6 related information in BGP-LS allows it's 125 consumer applications that require topological visibility to also 126 receive the "My Local SID Table" from nodes across a domain or even 127 across Autonomous Systems (AS), as required. This allows 128 applications to leverage the SRv6 capabilities for network 129 programming. 131 The identifying key of each Link-State object, namely a node, link, 132 or prefix, is encoded in the NLRI and the properties of the object 133 are encoded in the BGP-LS attribute [RFC7752]. 135 This document describes extensions to BGP-LS attribute to advertise 136 the SRv6 "My Local SID Table" and other SRv6 information from a node 137 in the network and when sourced from link-state routing protocols 138 from all the SRv6 capable nodes in the domain. 140 2. BGP-LS extensions for SRv6 142 BGP-LS[RFC7752] defines the BGP Node and Link attributes. All non- 143 VPN link, node, and prefix information SHALL be encoded using AFI 144 16388 / SAFI 71. VPN link, node, and prefix information SHALL be 145 encoded using AFI 16388 / SAFI 72. This draft does not introduce any 146 new descriptor TLVs for any BGP-LS NLRI types and the usage of the 147 descriptor TLVs and other attributes SHALL follow [RFC7752] for ISIS 148 and OSPFv3 protocols and [I-D.ietf-idr-bgpls-segment-routing-epe] for 149 BGP protocol. 151 This document defines SRv6 extensions to BGP-LS Node attribute TLVs 152 in Section 2.1 and Link attribute TLVs in Section 2.2. 154 2.1. SRv6 Node Attributes 156 Node Attribute TLVs are used for the SRv6 capabilities of the node 157 and for all SRv6 SIDs instantiated on the node which are not specific 158 to any link. Examples of such node level functions that are 159 signalled as Node Attributes are END and END.T. The list of these 160 functions at the time of publishing this document are described in 161 [I-D.filsfils-spring-srv6-network-programming]. 163 The following Node Attribute TLVs are defined for SRv6: 165 +----------+-------------------------+----------+----------------+ 166 | TLV Code | Description | Length | Section | 167 | Point | | | | 168 +----------+-------------------------+----------+----------------+ 169 | TBD | SRv6 Capabilities | variable | Section 2.1.1 | 170 | | | | | 171 | TBD | SRv6 SID Node Attribute | variable | Section 2.1.2 | 172 | | | | | 173 +----------+-------------------------+----------+----------------+ 175 These TLVs can ONLY be added to the Node Attribute associated with 176 the local node that is SRv6 capable and for SRv6 SIDs that are in 177 that local node's "My Local SID Table". 179 2.1.1. SRv6 Capability Attribute TLV 181 This TLV is used to announce the SRv6 capability of the node and to 182 indicate the nature of its support for the SRH operations. A single 183 instance of this TLV MUST be included in the BGP-LS attribute for 184 each SRv6 capable node. 186 0 1 2 3 187 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 188 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 189 | Type | Length | 190 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 191 | Flags | Sub-TLVs... 192 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 194 Where: 196 o Type: 16 bit field. TBD 198 o Length: 16 bit field. Length of Capability TLV + length of Sub- 199 TLVs 201 o Flags: 16 bit field. The following flags are defined: 203 0 1 204 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 205 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 206 |E|O| | 207 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 209 where: 211 * E-flag: If set, then router is able to apply "T.Encap" 212 operation as specified in 213 [I-D.filsfils-spring-srv6-network-programming] 215 * O-flag: If set, then router is capable of supporting SRH O-bit 216 Flags, as specified in [I-D.ietf-6man-segment-routing-header]. 218 The following sections define the supported sub-TLVs. 220 2.1.1.1. Maximum SL sub-TLV 222 The Maximum Segments Left sub-TLV specifies the maximum value of the 223 "SL" field in the Segment Routing IPv6 Header (SRH) 224 [I-D.ietf-6man-segment-routing-header] of a received packet before 225 applying the function associated with a SID. 227 0 1 2 3 228 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 229 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 230 | Type | Length | 231 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 232 | Max SL | 233 +-+-+-+-+-+-+-+-+ 235 o Type: 1 237 o Length: 1 239 o SL Value: 1 octet 241 o An 8 bit unsigned integer. 243 If the sub-TLV is not advertised by an SRv6 capable router, then the 244 value MUST be considered to be 0. 246 2.1.1.2. Maximum End Pop SRH sub-TLV 248 The Maximum End Pop SRH sub-TLV specifies the maximum number of SIDs 249 in the top SRH in an SRH stack to which the router can apply "PSP" or 250 USP" flavors as specified in [I-D.ietf-6man-segment-routing-header]. 252 0 1 2 3 253 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 254 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 255 | Type | Length | 256 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 257 |Max-End-Pop-SRH| 258 +-+-+-+-+-+-+-+-+ 260 o Type: 2 262 o Length: 1 264 o Max-End-Pop-SRH Value: 1 octet 266 o An 8 bit unsigned integer. 268 If the value is 0 or the sub-TLV is not advertised by an SRv6 capable 269 router, then it MUST be considered that the router cannot apply PSP 270 or USP flavors. 272 2.1.1.3. Maximum T.Insert SRH sub-TLV 274 The Maximum T.Insert SRH sub-sub-TLV specifies the maximum number of 275 SIDs that can be inserted as part of the "T.insert" behavior as 276 specified in [I-D.filsfils-spring-srv6-network-programming]. 278 0 1 2 3 279 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 280 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 281 | Type | Length | 282 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 283 | Max-T.Insert | 284 +-+-+-+-+-+-+-+-+ 286 o Type: 3 288 o Length: 1 290 o Max-T.Insert Value: 1 octet 292 o An 8 bit unsigned integer. 294 If the value is 0 or the sub-TLV is not advertised by an SRv6 capable 295 router, then it MUST be considered that the router does not support 296 any variation of the "T.insert" behavior. 298 2.1.1.4. Maximum T.Encap SRH sub-TLV 300 The Maximum T.Encap SRH sub-sub-TLV specifies the maximum number of 301 SIDs that can be included as part of the "T.Encap" behavior as 302 specified in [I-D.filsfils-spring-srv6-network-programming]. 304 0 1 2 3 305 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 306 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 307 | Type | Length | 308 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 309 | Max-T.Encap | 310 +-+-+-+-+-+-+-+-+ 312 o Type: 4 314 o Length: 1 316 o Max-T.Encap Value: 1 octet 317 o An 8 bit unsigned integer. 319 If this value is 0 or the sub-TLV is not advertised by an SRv6 320 capable router and the "E" flag is set in the associated SRv6 321 Capabilities sub-TLV, then it MUST be considered that the router can 322 apply T.Encap by encapsulating the incoming packet in another IPv6 323 header without SRH the same way as IP-in-IP encapsulation is 324 performed. If the "E" flag is clear, then this sub-TLV SHOULD NOT be 325 advertised and MUST be ignored on receipt. 327 2.1.1.5. Maximum End D SRH sub-TLV 329 The Maximum End D SRH sub-sub-TLV specifies the maximum number of 330 SIDs in an SRH when applying "End.DX6" and "End.DT6" functions. 332 0 1 2 3 333 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 334 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 335 | Type | Length | 336 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 337 | Max-End-D | 338 +-+-+-+-+-+-+-+-+ 340 o Type: 5 342 o Length: 1 344 o Max End D Value: 1 octet 346 o An 8 bit unsigned integer. 348 If this value is zero or the sub-TLV is not advertised by an SRv6 349 capable router, then it MUST be considered that the router cannot 350 apply "End.DX6" or "End.DT6" functions if the extension header right 351 underneath the outer IPv6 header is an SRH. 353 2.1.2. SRv6 SID Node Attribute TLV 355 This TLV is used for advertising the SRv6 SIDs associated with the 356 node and its function (e.g. END, END.T, etc). Multiple instances of 357 this TLV, one for each SRv6 SID, MAY be advertised in the BGP-LS 358 Attribute for a given Node NLRI. 360 0 1 2 3 361 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 362 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 363 | Type | Length | 364 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 365 | SID-Flags | Function-Flags| Function Code | 366 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 367 | SID-size | SID (variable) ... 368 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 369 | Sub-TLVs (variable) . . . 370 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 372 Figure 1: SRv6 SID Node TLV 374 Where: 376 Type: 16 bit field. TBD 378 Length: 16 bit field. The total length of the value portion of 379 the TLV. 381 SID Flags: 8 bit field which define the flags associated with the 382 SID 384 * When the originating protocol is ISIS, the flags correspond to 385 the flags in the SRv6 SID TLV as defined in 386 [I-D.bashandy-isis-srv6-extensions] 388 * When the originating protocol is OSPFv3, the flags correspond 389 to the flags in the SRv6 SID TLV as defined in 390 [I-D.li-ospf-ospfv3-srv6-extensions] 392 * When the originating protocol is BGP, the flags are not defined 393 and SHOULD be set to 0 and MUST be ignored on receipt. 395 Function Flags: 8 bit field which define the flags associated with 396 the function. 398 * When the originating protocol is ISIS, the flags correspond to 399 the function flags in the SRv6 SID TLV as defined in 400 [I-D.bashandy-isis-srv6-extensions] 402 * When the originating protocol is OSPFv3, the flags correspond 403 to the function flags in the SRv6 SID TLV as defined in 404 [I-D.li-ospf-ospfv3-srv6-extensions] 406 * When the originating protocol is BGP, the flags are not defined 407 and SHOULD be set to 0 and MUST be ignored on receipt. 409 Function Code: 16 bit field. The function code point for this 410 SRv6 SID as defined in 411 [I-D.filsfils-spring-srv6-network-programming]. 413 SID Size : 8 bit field. Number of bits in the SID field. 415 SID : 1-16 octets. This field encodes the advertised SRv6 SID. 416 The "SID-size" field can have the values 1-128 and indicates the 417 number of bits in the SID. The SRv6 SID is encoded in the minimal 418 number of octets for the given number of bits. 420 Sub-TLVs : currently none defined. Used to advertise sub-TLVs 421 that provide additional attributes for the given SRv6 SID. 423 2.2. SRv6 Link Attributes 425 Link Attribute TLVs are used for all SRv6 SIDs instantiated 426 corresponding to a specific link on the node. Examples of such link 427 level functions that are signalled as Link Attributes is END.X that 428 are signaled via ISIS and OSPFv3 and Egress Peer Engineering 429 [I-D.ietf-spring-segment-routing-central-epe] related SIDs that are 430 advertised for BGP Peering SIDs for SRv6 equivalent to their SR/MPLS 431 SIDs as defined in [I-D.ietf-idr-bgpls-segment-routing-epe]. These 432 SIDs are instantiated in the "My Local SID Table" on the node and are 433 used to associate the function to one or more specific links on that 434 node. The list of these functions at the time of publishing this 435 document are described in 436 [I-D.filsfils-spring-srv6-network-programming]. 438 The following Link Attribute TLVs are defined for SRv6: 440 +----------+------------------------------+----------+---------------+ 441 | TLV Code | Description | Length | Section | 442 | Point | | | | 443 +----------+------------------------------+----------+---------------+ 444 | TBD | SRv6 SID Link Attribute | variable | Section 2.2.1 | 445 | | | | | 446 | TBD | SRv6 SID LAN Link Attribute | variable | Section 2.2.2 | 447 | | | | | 448 | TBD | SRv6 Peer Node END.X SID | variable | Section 2.2.3 | 449 | | | | | 450 | TBD | SRv6 Peer Set END.X SID | variable | Section 2.2.4 | 451 | | | | | 452 +----------+------------------------------+----------+---------------+ 453 These TLVs can ONLY be added to the Link Attribute associated with 454 the link for the local node that is SRv6 capable and for that link's 455 SRv6 SIDs that are in that local node's "My Local SID Table". 457 2.2.1. SRv6 SID Link Attribute TLV 459 The SRv6 SID Link Attribute TLV is used to advertise the SRv6 SIDs 460 like the END.X functions that correspond to a point-to-point or 461 point-to-multipoint link or adjacency of the local node for ISIS and 462 OSPFv3 protocols. This TLV can also be used to advertise the END.X 463 function SRv6 SID corresponding to the underlying layer-2 member 464 links for a layer-3 bundle interface using L2 Bundle Member Attribute 465 TLV as specified in . 467 For BGP protocol, this TLV is used to advertise the BGP Peer 468 Adjacency SID for SRv6 on the same lines as specified for SR/MPLS in 469 [I-D.ietf-idr-bgpls-segment-routing-epe]. The END.X SRv6 SID for the 470 Peer Adjacency indicates the cross-connect to a specific layer-3 link 471 to the specific BGP session peer (neighbor). 473 The TLV has the following format: 475 0 1 2 3 476 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 477 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 478 | Type | Length | 479 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 480 | SID-Flags | Function-Flags| Function Code | 481 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 482 | SID-size | SID (variable) ... 483 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 484 | Sub-TLVs (variable) . . . 485 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 487 Where: 489 Type is TBD 491 Length: 16 bit field. The total length of the value portion of 492 the TLV. 494 SID Flags: 8 bit field which define the flags associated with the 495 SID 497 * When the originating protocol is ISIS, the flags correspond to 498 the flags in the SRv6 SID TLV as defined in 499 [I-D.bashandy-isis-srv6-extensions] 501 * When the originating protocol is OSPFv3, the flags correspond 502 to the flags in the SRv6 SID TLV as defined in 503 [I-D.li-ospf-ospfv3-srv6-extensions] 505 * When the originating protocol is BGP, the flags are not defined 506 and SHOULD be set to 0 and MUST be ignored on receipt. 508 Function Flags: 8 bit field which define the flags associated with 509 the function. 511 * When the originating protocol is ISIS, the flags correspond to 512 the function flags in the SRv6 SID TLV as defined in 513 [I-D.bashandy-isis-srv6-extensions] 515 * When the originating protocol is OSPFv3, the flags correspond 516 to the function flags in the SRv6 SID TLV as defined in 517 [I-D.li-ospf-ospfv3-srv6-extensions] 519 * When the originating protocol is BGP, the flags are not defined 520 and SHOULD be set to 0 and MUST be ignored on receipt. 522 Function Code: 16 bit field. The function code point for this 523 SRv6 SID as defined in 524 [I-D.filsfils-spring-srv6-network-programming]. 526 SID-size: Number of bits in the SID field. 528 SID: 1-16 octets. This field encodes the advertised SRv6 SID. 529 The "SID-size" field can have the values 1-128 and indicates the 530 number of bits in the SID. The SRv6 SID is encoded in the minimal 531 number of octets for the given number of bits. 533 Sub-TLVs : currently none defined. Used to advertise sub-TLVs 534 that provide additional attributes for the given SRv6 END.X SID. 536 2.2.2. SRv6 SID LAN Link Attribute TLV 538 For a LAN interface, normally a node only announces its adjacency to 539 the IS-IS pseudo-node (or the equivalent OSPF Designated Router). 540 The SRv6 SID LAN Link Attribute TLV allows a node to announce SRv6 541 SID corresponding to functions like END.X for its adjacencies to all 542 other (i.e. non-DIS or non-DR) nodes attached to the LAN in a single 543 instance of the BGP-LS Link NLRI. Without this TLV, the 544 corresponding BGP-LS link NLRI would need to be originated for each 545 additional adjacency in order to advertise the SRv6 SID Link 546 Attribute TLVs for these neighbor adjacencies. 548 The SRv6 SID LAN Link Attribute TLV has the following format: 550 0 1 2 3 551 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 552 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 553 | Type | Length | 554 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 555 | SID-Flags | Function-Flags| Function Code | 556 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 557 | SID-size | SID (variable) ... 558 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 559 | OSPFv3 Router-ID or ISIS System-ID (4 or 6 octets) | 560 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 561 | of neighbor ID | Sub-TLVs (variable) . . . 562 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 564 o Type: TBD 566 o Length: 16 bit value. Variable 568 o SID Flags: 8 bit field which define the flags associated with the 569 SID 571 * When the originating protocol is ISIS, the flags correspond to 572 the flags in the SRv6 SID TLV as defined in 573 [I-D.bashandy-isis-srv6-extensions] 575 * When the originating protocol is OSPFv3, the flags correspond 576 to the flags in the SRv6 SID TLV as defined in 577 [I-D.li-ospf-ospfv3-srv6-extensions] 579 o Function Flags: 8 bit field which define the flags associated with 580 the function. 582 * When the originating protocol is ISIS, the flags correspond to 583 the function flags in the SRv6 SID TLV as defined in 584 [I-D.bashandy-isis-srv6-extensions] 586 * When the originating protocol is OSPFv3, the flags correspond 587 to the function flags in the SRv6 SID TLV as defined in 588 [I-D.li-ospf-ospfv3-srv6-extensions] 590 * When the originating protocol is BGP, the flags are not defined 591 and SHOULD be set to 0 and MUST be ignored on receipt. 593 o Function Code: 16 bit field. The function code point for this 594 SRv6 SID as defined in 595 [I-D.filsfils-spring-srv6-network-programming]. 597 o SID Size : 8 bit field. Number of bits in the SID field. 599 o SID : 1-16 octets. This field encodes the advertised SRv6 SID. 600 The "SID-size" field can have the values 1-128 and indicates the 601 number of bits in the SID. The SRv6 SID is encoded in the minimal 602 number of octets for the given number of bits. 604 o Neighbor ID : 6 octets of ISIS System ID of the neighbor when 605 protocol is ISIS or 4 octets of OSPFv3 Router-id of the neighbor 606 when protocol is OSPFv3 608 o Sub-TLVs : currently none defined. Used to advertise sub-TLVs 609 that provide additional attributes for the given SRv6 SID. 611 2.2.3. SRv6 Peer Node END.X SID TLV 613 The SRv6 Peer Node END.X SID TLV is used to advertise the BGP Peer 614 Node SID for SRv6 on the same lines as specified for SR/MPLS in 615 [I-D.ietf-idr-bgpls-segment-routing-epe]. The END.X SRv6 SID for the 616 Peer Node indicates the cross-connect to the layer-3 paths to the 617 specific BGP session peer (neighbor). 619 The TLV has the following format: 621 0 1 2 3 622 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 623 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 624 | Type | Length | 625 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 626 | SID-Flags | Function-Flags| Function Code | 627 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 628 | SID-size | SID (variable) ... 629 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 630 | Sub-TLVs (variable) . . . 631 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 633 Where: 635 Type is TBD 637 Length: 16 bit field. The total length of the value portion of 638 the TLV. 640 SID Flags: 8 bit field which define the flags associated with the 641 SID. No flags are currently defined and SHOULD be set to 0 and 642 MUST be ignored on receipt. 644 Function Flags: 8 bit field which define the flags associated with 645 the function. No flags are currently defined and SHOULD be set to 646 0 and MUST be ignored on receipt. 648 Function Code: 16 bit field. The function code point for this 649 SRv6 SID as defined in 650 [I-D.filsfils-spring-srv6-network-programming]. 652 SID-size: Number of bits in the SID field. 654 SID: 1-16 octets. This field encodes the advertised SRv6 SID. 655 The "SID-size" field can have the values 1-128 and indicates the 656 number of bits in the SID. The SRv6 SID is encoded in the minimal 657 number of octets for the given number of bits. 659 Sub-TLVs : currently none defined. Used to advertise sub-TLVs 660 that provide additional attributes for the given SRv6 END.X SID. 662 2.2.4. SRv6 Peer Set END.X SID TLV 664 The SRv6 Peer Node END.X SID TLV is used to advertise the BGP Peer 665 Node SID for SRv6 on the same lines as specified for SR/MPLS in 666 [I-D.ietf-idr-bgpls-segment-routing-epe]. The END.X SRv6 SID for the 667 Peer Set indicates forwarding towards the group of BGP session peers 668 (neighbor) to which the SRv6 Peer Set END.X SID is associated with. 670 The TLV has the following format: 672 0 1 2 3 673 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 674 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 675 | Type | Length | 676 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 677 | SID-Flags | Function-Flags| Function Code | 678 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 679 | SID-size | SID (variable) ... 680 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 681 | Sub-TLVs (variable) . . . 682 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 684 Where: 686 Type is TBD 688 Length: 16 bit field. The total length of the value portion of 689 the TLV. 691 SID Flags: 8 bit field which define the flags associated with the 692 SID. No flags are currently defined and SHOULD be set to 0 and 693 MUST be ignored on receipt. 695 Function Flags: 8 bit field which define the flags associated with 696 the function. No flags are currently defined and SHOULD be set to 697 0 and MUST be ignored on receipt. 699 Function Code: 16 bit field. The function code point for this 700 SRv6 SID as defined in 701 [I-D.filsfils-spring-srv6-network-programming]. 703 SID-size: Number of bits in the SID field. 705 SID: 1-16 octets. This field encodes the advertised SRv6 SID. 706 The "SID-size" field can have the values 1-128 and indicates the 707 number of bits in the SID. The SRv6 SID is encoded in the minimal 708 number of octets for the given number of bits. 710 Sub-TLVs : currently none defined. Used to advertise sub-TLVs 711 that provide additional attributes for the given SRv6 END.X SID. 713 3. IANA Considerations 715 This document requests assigning code-points from the registry "BGP- 716 LS Node Descriptor, Link Descriptor, Prefix Descriptor, and Attribute 717 TLVs". 719 3.1. TLV/Sub-TLV Code Points Summary 721 This section contains the global table of all TLVs defined in this 722 document. 724 +------------+---------------------------------+----------------+ 725 | TLV Code | Description | Section | 726 | Point | | | 727 +------------+---------------------------------+----------------+ 728 | TBD | SRv6 Capabilities TLV | Section 2.1.1 | 729 | | | | 730 | TBD | SRv6 SID Node Attribute TLV | Section 2.1.2 | 731 | | | | 732 | TBD | SRv6 SID Link Attribute TLV | Section 2.2.1 | 733 | | | | 734 | TBD | SRv6 SID LAN Link Attribute TLV | Section 2.2.2 | 735 | | | | 736 | TBD | SRv6 Peer Node END.X SID TLV | Section 2.2.3 | 737 | | | | 738 | TBD | SRv6 Peer Set END.X SID TLV | Section 2.2.4 | 739 +------------+---------------------------------+----------------+ 741 4. Manageability Considerations 743 This section is structured as recommended in[RFC5706] 745 5. Operational Considerations 747 5.1. Operations 749 Existing BGP and BGP-LS operational procedures apply. No additional 750 operation procedures are defined in this document. 752 6. Security Considerations 754 Procedures and protocol extensions defined in this document do not 755 affect the BGP security model. See the 'Security Considerations' 756 section of [RFC4271] for a discussion of BGP security. Also refer 757 to[RFC4272] and [RFC6952] for analysis of security issues for BGP. 759 7. Contributors 761 Arjun Sreekantiah 762 Individual 763 US 765 Les Ginsberg 766 Cisco Systems 767 US 768 Email: ginsberg@cisco.com 769 Shunwan Zhuang 770 Huawei 771 China 772 Email: zhuangshunwan@huawei.com 774 8. References 776 8.1. Normative References 778 [I-D.bashandy-isis-srv6-extensions] 779 Ginsberg, L., Psenak, P., Filsfils, C., Bashandy, A., 780 Decraene, B., and Z. Hu, "IS-IS Extensions to Support 781 Routing over IPv6 Dataplane", draft-bashandy-isis- 782 srv6-extensions-03 (work in progress), June 2018. 784 [I-D.dawra-idr-srv6-vpn] 785 Dawra, G., Filsfils, C., Dukes, D., Brissette, P., 786 Camarillo, P., Leddy, J., daniel.voyer@bell.ca, d., 787 daniel.bernier@bell.ca, d., Steinberg, D., Raszuk, R., 788 Decraene, B., Matsushima, S., and S. Zhuang, "BGP 789 Signaling of IPv6-Segment-Routing-based VPN Networks", 790 draft-dawra-idr-srv6-vpn-04 (work in progress), June 2018. 792 [I-D.filsfils-spring-srv6-network-programming] 793 Filsfils, C., Camarillo, P., Leddy, J., 794 daniel.voyer@bell.ca, d., Matsushima, S., and Z. Li, "SRv6 795 Network Programming", draft-filsfils-spring-srv6-network- 796 programming-05 (work in progress), July 2018. 798 [I-D.ietf-6man-segment-routing-header] 799 Filsfils, C., Previdi, S., Leddy, J., Matsushima, S., and 800 d. daniel.voyer@bell.ca, "IPv6 Segment Routing Header 801 (SRH)", draft-ietf-6man-segment-routing-header-14 (work in 802 progress), June 2018. 804 [I-D.ietf-idr-bgp-ls-segment-routing-ext] 805 Previdi, S., Talaulikar, K., Filsfils, C., Gredler, H., 806 and M. Chen, "BGP Link-State extensions for Segment 807 Routing", draft-ietf-idr-bgp-ls-segment-routing-ext-08 808 (work in progress), May 2018. 810 [I-D.ietf-idr-bgpls-segment-routing-epe] 811 Previdi, S., Filsfils, C., Patel, K., Ray, S., and J. 812 Dong, "BGP-LS extensions for Segment Routing BGP Egress 813 Peer Engineering", draft-ietf-idr-bgpls-segment-routing- 814 epe-15 (work in progress), March 2018. 816 [I-D.li-ospf-ospfv3-srv6-extensions] 817 Li, Z., Hu, Z., Cheng, D., Talaulikar, K., and P. Psenak, 818 "OSPFv3 Extensions for SRv6", draft-li-ospf- 819 ospfv3-srv6-extensions-01 (work in progress), March 2018. 821 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 822 Requirement Levels", BCP 14, RFC 2119, 823 DOI 10.17487/RFC2119, March 1997, 824 . 826 [RFC7752] Gredler, H., Ed., Medved, J., Previdi, S., Farrel, A., and 827 S. Ray, "North-Bound Distribution of Link-State and 828 Traffic Engineering (TE) Information Using BGP", RFC 7752, 829 DOI 10.17487/RFC7752, March 2016, 830 . 832 8.2. Informative References 834 [I-D.ietf-spring-segment-routing] 835 Filsfils, C., Previdi, S., Ginsberg, L., Decraene, B., 836 Litkowski, S., and R. Shakir, "Segment Routing 837 Architecture", draft-ietf-spring-segment-routing-15 (work 838 in progress), January 2018. 840 [I-D.ietf-spring-segment-routing-central-epe] 841 Filsfils, C., Previdi, S., Dawra, G., Aries, E., and D. 842 Afanasiev, "Segment Routing Centralized BGP Egress Peer 843 Engineering", draft-ietf-spring-segment-routing-central- 844 epe-10 (work in progress), December 2017. 846 [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A 847 Border Gateway Protocol 4 (BGP-4)", RFC 4271, 848 DOI 10.17487/RFC4271, January 2006, 849 . 851 [RFC4272] Murphy, S., "BGP Security Vulnerabilities Analysis", 852 RFC 4272, DOI 10.17487/RFC4272, January 2006, 853 . 855 [RFC5706] Harrington, D., "Guidelines for Considering Operations and 856 Management of New Protocols and Protocol Extensions", 857 RFC 5706, DOI 10.17487/RFC5706, November 2009, 858 . 860 [RFC6952] Jethanandani, M., Patel, K., and L. Zheng, "Analysis of 861 BGP, LDP, PCEP, and MSDP Issues According to the Keying 862 and Authentication for Routing Protocols (KARP) Design 863 Guide", RFC 6952, DOI 10.17487/RFC6952, May 2013, 864 . 866 Authors' Addresses 868 Gaurav Dawra (editor) 869 LinkedIn 870 USA 872 Email: gdawra.ietf@gmail.com 874 Clarence Filsfils 875 Cisco Systems 876 Belgium 878 Email: cfilsfil@cisco.com 880 Ketan Talaulikar (editor) 881 Cisco Systems 882 India 884 Email: ketant@cisco.com 886 Mach Chen 887 Huawei 888 China 890 Email: mach.chen@huawei.com 892 Daniel Bernier 893 Bell Canada 894 Canada 896 Email: daniel.bernier@bell.ca 898 Jim Uttaro 899 AT&T 900 USA 902 Email: ju1738@att.com 903 Bruno Decraene 904 Orange 905 France 907 Email: bruno.decraene@orange.com 909 Hani Elmalky 910 Ericsson 911 USA 913 Email: hani.elmalky@gmail.com