idnits 2.17.1 draft-ietf-idr-bgp-prefix-sid-12.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 (February 4, 2018) is 2271 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: '100' on line 376 -- Looks like a reference, but probably isn't: '199' on line 376 -- Looks like a reference, but probably isn't: '1000' on line 377 -- Looks like a reference, but probably isn't: '1099' on line 377 -- Looks like a reference, but probably isn't: '500' on line 378 -- Looks like a reference, but probably isn't: '599' on line 378 == Outdated reference: A later version (-22) exists of draft-ietf-spring-segment-routing-mpls-11 == Outdated reference: A later version (-18) exists of draft-ietf-idr-bgp-ls-segment-routing-ext-04 == Outdated reference: A later version (-19) exists of draft-ietf-idr-bgpls-segment-routing-epe-14 == Outdated reference: A later version (-11) exists of draft-ietf-spring-segment-routing-msdc-08 -- Obsolete informational reference (is this intentional?): RFC 7752 (Obsoleted by RFC 9552) Summary: 0 errors (**), 0 flaws (~~), 5 warnings (==), 8 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 IDR S. Previdi, Ed. 3 Internet-Draft C. Filsfils 4 Intended status: Standards Track A. Lindem 5 Expires: August 8, 2018 Cisco Systems 6 A. Sreekantiah 8 H. Gredler 9 RtBrick Inc. 10 February 4, 2018 12 Segment Routing Prefix SID extensions for BGP 13 draft-ietf-idr-bgp-prefix-sid-12 15 Abstract 17 Segment Routing (SR) architecture allows a node to steer a packet 18 flow through any topological path and service chain by leveraging 19 source routing. The ingress node prepends an SR header to a packet 20 containing a set of segment identifiers (SID). Each SID represents a 21 topological or a service-based instruction. Per-flow state is 22 maintained only on the ingress node of the SR domain. 24 This document defines an optional, transitive BGP attribute for 25 announcing BGP Prefix Segment Identifiers (BGP Prefix-SID) 26 information. 28 Requirements Language 30 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 31 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 32 "OPTIONAL" in this document are to be interpreted as described in BCP 33 14 [RFC2119] [RFC8174] when, and only when, they appear in all 34 capitals, as shown here. 36 Status of This Memo 38 This Internet-Draft is submitted in full conformance with the 39 provisions of BCP 78 and BCP 79. 41 Internet-Drafts are working documents of the Internet Engineering 42 Task Force (IETF). Note that other groups may also distribute 43 working documents as Internet-Drafts. The list of current Internet- 44 Drafts is at http://datatracker.ietf.org/drafts/current/. 46 Internet-Drafts are draft documents valid for a maximum of six months 47 and may be updated, replaced, or obsoleted by other documents at any 48 time. It is inappropriate to use Internet-Drafts as reference 49 material or to cite them other than as "work in progress." 51 This Internet-Draft will expire on August 8, 2018. 53 Copyright Notice 55 Copyright (c) 2018 IETF Trust and the persons identified as the 56 document authors. All rights reserved. 58 This document is subject to BCP 78 and the IETF Trust's Legal 59 Provisions Relating to IETF Documents 60 (http://trustee.ietf.org/license-info) in effect on the date of 61 publication of this document. Please review these documents 62 carefully, as they describe your rights and restrictions with respect 63 to this document. Code Components extracted from this document must 64 include Simplified BSD License text as described in Section 4.e of 65 the Trust Legal Provisions and are provided without warranty as 66 described in the Simplified BSD License. 68 Table of Contents 70 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 71 2. BGP-Prefix-SID . . . . . . . . . . . . . . . . . . . . . . . 4 72 2.1. MPLS BGP Prefix SID . . . . . . . . . . . . . . . . . . . 4 73 2.2. IPv6 Prefix Segment . . . . . . . . . . . . . . . . . . . 5 74 3. BGP Prefix-SID Attribute . . . . . . . . . . . . . . . . . . 5 75 3.1. Label-Index TLV . . . . . . . . . . . . . . . . . . . . . 6 76 3.2. IPv6 SID . . . . . . . . . . . . . . . . . . . . . . . . 7 77 3.3. Originator SRGB TLV . . . . . . . . . . . . . . . . . . . 7 78 4. Receiving BGP Prefix-SID Attribute . . . . . . . . . . . . . 9 79 4.1. MPLS Dataplane: Labeled Unicast . . . . . . . . . . . . . 9 80 4.2. IPv6 Dataplane . . . . . . . . . . . . . . . . . . . . . 10 81 5. Advertising BGP Prefix-SID Attribute . . . . . . . . . . . . 11 82 5.1. MPLS Dataplane: Labeled Unicast . . . . . . . . . . . . . 11 83 5.2. IPv6 Dataplane . . . . . . . . . . . . . . . . . . . . . 12 84 6. Error Handling of BGP Prefix-SID Attribute . . . . . . . . . 12 85 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 86 8. Manageability Considerations . . . . . . . . . . . . . . . . 13 87 9. Security Considerations . . . . . . . . . . . . . . . . . . . 14 88 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 14 89 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 14 90 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 15 91 12.1. Normative References . . . . . . . . . . . . . . . . . . 15 92 12.2. Informative References . . . . . . . . . . . . . . . . . 16 93 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16 95 1. Introduction 97 Segment Routing (SR) architecture leverages the source routing 98 paradigm. A group of inter-connected nodes that use SR forms an SR 99 domain. A segment represents either a topological instruction such 100 as "go to prefix P following shortest path" or a service instruction 101 (e.g., "pass through deep packet inspection"). Other types of 102 segments may be defined in the future. 104 A segment is identified through a Segment Identifier (SID). 105 Typically, the ingress node of the SR domain prepends an SR header 106 containing segments identifiers (SIDs) to an incoming packet. 108 As described in [I-D.ietf-spring-segment-routing], when SR is applied 109 to the MPLS dataplane ([I-D.ietf-spring-segment-routing-mpls]), the 110 SID consists of a label while when SR is applied to the IPv6 111 dataplane the SID consists of an IPv6 address. 113 A BGP-Prefix Segment (and its BGP Prefix-SID) is a BGP segment 114 attached to a BGP prefix. A BGP Prefix-SID is always a global SID 115 ([I-D.ietf-spring-segment-routing]) within the SR/BGP domain (i.e., 116 the set of Autonomous Systems under a common administration and 117 control and where SR is used) and identifies an instruction to 118 forward the packet over the ECMP-aware best-path computed by BGP to 119 the related prefix. The BGP Prefix-SID is the identifier of the BGP 120 prefix segment. In this document, we always refer to the BGP segment 121 by the BGP Prefix-SID. 123 This document describes the BGP extension to signal the BGP Prefix- 124 SID. Specifically, this document defines a BGP attribute known as 125 the BGP Prefix-SID attribute and specifies the rules to originate, 126 receive, and handle error conditions for the attribute. 128 The BGP Prefix-SID attribute defined in this document can be attached 129 to prefixes from AFI/SAFI combinations: 131 Multiprotocol BGP labeled IPv4/IPv6 Unicast ([RFC8277]). 133 Multiprotocol BGP ([RFC4760]) unlabeled IPv6 Unicast. 135 Usage of the BGP Prefix-SID attribute for other AFI/SAFI combinations 136 is not defined herein but may be specified in future specifications. 138 [I-D.ietf-spring-segment-routing-msdc] describes example use cases 139 where the BGP Prefix-SID is used for the above AFI/SAFI combinations. 141 It should be noted that: 143 o A BGP Prefix-SID MAY be global between domains when the 144 interconnected domains agree on the SID allocation scheme. 145 Alternatively, when interconnecting domains, the ASBRs of each 146 domain will have to handle the advertisement of unique SIDs. The 147 mechanisms for such interconnection are outside the scope of the 148 protocol extensions defined in this document. 150 o A BGP Prefix-SID MAY be attached to a prefix. In addition, each 151 prefix will likely have a different AS_PATH attribute. This 152 implies that each prefix is advertised individually, reducing the 153 ability to pack BGP advertisements (when sharing common 154 attributes). 156 2. BGP-Prefix-SID 158 The BGP Prefix-SID advertised for BGP prefix P indicates that the 159 segment routed path should be used (as described below) if the BGP 160 best path selects the corresponding NLRI. 162 2.1. MPLS BGP Prefix SID 164 The BGP Prefix-SID is realized on the MPLS dataplane 165 ([I-D.ietf-spring-segment-routing-mpls]) in the following way: 167 The operator assigns a globally unique label index, L_I, to a 168 locally sourced prefix of a BGP speaker N which is advertised to 169 all other BGP speakers in the SR domain. 171 According to [I-D.ietf-spring-segment-routing], each BGP speaker 172 is configured with a label block called the Segment Routing Global 173 Block (SRGB). While [I-D.ietf-spring-segment-routing] recommends 174 using the same SRGB across all the nodes within the SR domain, the 175 SRGB of a node is a local property and could be different on 176 different speakers. The drawbacks of the use case where BGP 177 speakers have different SRGBs are documented in 178 [I-D.ietf-spring-segment-routing] and 179 [I-D.ietf-spring-segment-routing-msdc]. 181 If traffic-engineering within the SR domain is required, each node 182 may also be required to advertise topological information and 183 Peering SIDs for each of its links and peers. This information is 184 required to perform the explicit path computation and to express 185 an explicit path as a list of SIDs. The advertisement of 186 topological information and peer segments (Peer SIDs) is done 187 through [I-D.ietf-idr-bgpls-segment-routing-epe]. 189 If the BGP speakers are not all configured with the same SRGB, and 190 if traffic-engineering within the SR domain is required, each node 191 may be required to advertise its local SRGB in addition to the 192 topological information. 194 This documents assumes that BGP-LS is the preferred method for 195 collecting both peer segments (Peer SIDs) and SRGB information 196 through [RFC7752], [I-D.ietf-idr-bgpls-segment-routing-epe], and 197 [I-D.ietf-idr-bgp-ls-segment-routing-ext]. However, as an 198 optional alternative for the advertisement of the local SRGB 199 without the topology nor the peer SIDs, hence without 200 applicability for TE, the Originator SRGB TLV of the prefix-SID 201 attribute is specified in Section 3.3 of this document. 203 As defined in [I-D.ietf-spring-segment-routing], the label index 204 L_I is an offset into the SRGB. Each BGP speaker derives its 205 local MPLS label, L, by adding L_I to the start value of its own 206 SRGB, and programs L in its MPLS dataplane as its incoming/local 207 label for the prefix. It should be noted that while SRGBs and 208 SIDs are advertised using 32-bit values, the derived label is 209 advertised in the 20 right-most bits. See Section 4.1 for more 210 details. 212 The outgoing label for the prefix is found in the NLRI of the 213 Multiprotocol BGP labeled IPv4/IPv6 Unicast prefix advertisement 214 as defined in [RFC8277]. The label index L_I is only used as a 215 hint to derive the local/incoming label. 217 Section 3.1 of this document specifies the Label-Index TLV of the 218 BGP Prefix-SID attribute; this TLV can be used to advertise the 219 label index for a given prefix. 221 In order to advertise the label index of a given prefix P and, 222 optionally, the SRGB, an extension to BGP is needed: the BGP Prefix- 223 SID attribute. This extension is described in subsequent sections. 225 2.2. IPv6 Prefix Segment 227 When SR is used over an IPv6 dataplane, the BGP Prefix-SID consists 228 of an IPv6 address assigned to the BGP speaker. 230 3. BGP Prefix-SID Attribute 232 The BGP Prefix-SID attribute is an optional, transitive BGP path 233 attribute. The attribute type code 40 has been assigned by IANA (see 234 Section 7). 236 The BGP Prefix-SID attribute is defined here to be a set of elements 237 encoded as "Type/Length/Value" tuples (i.e., a set of TLVs). All BGP 238 Prefix-SID attribute TLVs will start with a 1-octet type and a 239 2-octet length. The following TLVs are defined in this document: 241 o Label-Index TLV 243 o IPv6 SID TLV 245 o Originator SRGB TLV 247 The Label-Index and Originator SRGB TLVs are used only when SR is 248 applied to the MPLS dataplane. 250 The IPv6 SID TLV is used only when SR is applied to the IPv6 251 dataplane. 253 For future extendibility, unknown TLVs MUST be ignored and propagated 254 unmodified. 256 3.1. Label-Index TLV 258 The Label-Index TLV MUST be present in the BGP Prefix-SID attribute 259 attached to Labeled IPv4/IPv6 unicast prefixes ([RFC8277]). It MUST 260 be ignored when received for other BGP AFI/SAFI combinations. The 261 Label-Index TLV has the following format: 263 0 1 2 3 264 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 265 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 266 | Type | Length | RESERVED | 267 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 268 | Flags | Label Index | 269 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 270 | Label Index | 271 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 273 where: 275 o Type is 1. 277 o Length: is 7, the total length in octets of the value portion of 278 the TLV. 280 o RESERVED: 8-bit field. MUST be clear on transmission and MUST be 281 ignored on reception. 283 o Flags: 16 bits of flags. None are defined by this document. The 284 flag field MUST be clear on transmission and MUST be ignored on 285 reception. 287 o Label Index: 32-bit value representing the index value in the SRGB 288 space. 290 3.2. IPv6 SID 292 The IPv6 SID TLV MAY be present in the BGP Prefix-SID attribute 293 attached to MP-BGP unlabeled IPv6 unicast prefixes ([RFC4760]). It 294 MUST be ignored for other BGP AFI/SAFI combinations. The IPv6 SID 295 TLV has the following format: 297 0 1 2 3 298 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 299 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 300 | Type | Length | RESERVED | 301 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 302 | RESERVED | | 303 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 304 | | 305 | IPv6 SID (16 octets) | 306 | | 307 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 308 | | 309 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 311 where: 313 o Type is 2. 315 o Length: is 19, the total length in octets of the value portion of 316 the TLV. 318 o RESERVED: 24-bit field for future use. MUST be clear on 319 transmission and MUST be ignored on reception. 321 o IPv6 SID: 16 octets. 323 3.3. Originator SRGB TLV 325 The Originator SRGB TLV is an optional TLV and has the following 326 format: 328 0 1 2 3 329 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 330 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 331 | Type | Length | Flags | 332 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 333 | Flags | 334 +-+-+-+-+-+-+-+-+ 336 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 337 | SRGB 1 (6 octets) | 338 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 339 | | 340 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 342 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 343 | SRGB n (6 octets) | 344 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 345 | | 346 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 348 where: 350 o Type is 3. 352 o Length is the total length in octets of the value portion of the 353 TLV: 2 + (multiple of 6). 355 o Flags: 16 bits of flags. None are defined in this document. 356 Flags MUST be clear on transmission and MUST be ignored on 357 reception. 359 o SRGB: 3 octets of base followed by 3 octets of range. Note that 360 the SRGB field MAY appear multiple times. If the SRGB field 361 appears multiple times, the SRGB consists of multiple ranges that 362 are concatenated. 364 The Originator SRGB TLV contains the SRGB of the node originating the 365 prefix to which the BGP Prefix-SID is attached. The Originator SRGB 366 TLV MUST NOT be changed during the propagation of the BGP update. 368 The originator SRGB describes the SRGB of the node where the BGP 369 Prefix SID is attached. It is used to build segment routing policies 370 when different SRGBs are used in the fabric, for example 371 ([I-D.ietf-spring-segment-routing-msdc]). 373 The receiving routers concatenate the ranges and build the Segment 374 Routing Global Block (SRGB) as follows: 376 SRGB = [100, 199] 377 [1000, 1099] 378 [500, 599] 380 The indexes span multiple ranges: 382 index=0 means label 100 383 ... 384 index 99 means label 199 385 index 100 means label 1000 386 index 199 means label 1099 387 ... 388 index 200 means label 500 389 ... 391 The originator SRGB may only appear in a BGP Prefix-SID attribute 392 attached to Labeled IPv4/IPv6 unicast prefixes ([RFC8277]). It MUST 393 be ignored when received for other BGP AFI/SAFI combinations. Since 394 the Label-Index TLV is required for IPv4/IPv6 prefix applicability, 395 the originator SRGB will be ignored if it is not specified consistent 396 with Section 6. 398 4. Receiving BGP Prefix-SID Attribute 400 A BGP speaker receiving a BGP Prefix-SID attribute from an EBGP 401 neighbor residing outside the boundaries of the SR domain MUST 402 discard the attribute unless it is configured to accept the attribute 403 from the EBGP neighbor. A BGP speaker MAY log an error for further 404 analysis when discarding an attribute. 406 4.1. MPLS Dataplane: Labeled Unicast 408 A Multiprotocol BGP labeled IPv4/IPv6 Unicast ([RFC8277]) session 409 type is required. 411 A BGP speaker may be locally configured with an SRGB=[SRGB_Start, 412 SRGB_End]. The preferred method for deriving the SRGB is a matter of 413 local node configuration. 415 Given a label index L_I, we refer to (L = L_I + SRGB_Start) as the 416 derived label. A BGP Prefix-SID attribute is designated 417 "unacceptable" for a speaker M if the derived label value L lies 418 outside the SRGB configured on M. Otherwise the Label-Index TLV is 419 designated "acceptable" to speaker M. 421 The mechanisms through which a given label index value is assigned to 422 a given prefix are outside the scope of this document. 424 The BGP Prefix-SID attribute MUST contain the Label-Index TLV and MAY 425 contain the Originator SRGB TLV. A BGP Prefix-SID attribute received 426 without a Label-Index TLV MUST be considered as "unacceptable" by the 427 receiving speaker. 429 If multiple prefixes are received with the same label index value, 430 all these prefixes MUST have their BGP Prefix-SID attribute 431 considered as "unacceptable" by the receiving speaker. 433 When a BGP speaker receives a path from a neighbor with an acceptable 434 BGP Prefix-SID attribute, it MUST program the derived label as the 435 local label for the prefix in its MPLS dataplane. In case of an 436 error, a BGP speaker MUST follow to the error handling rules 437 specified in Section 6. A BGP speaker MAY log an error for further 438 analysis. 440 When a BGP speaker receives a path from a neighbor with an 441 unacceptable BGP Prefix-SID attribute or when a BGP speaker receives 442 a path from a neighbor with a BGP Prefix-SID attribute but is unable 443 to process it (it does not have the capability or local policy 444 disables the capability), it MUST treat the path as if it came 445 without a BGP Prefix-SID attribute. For the purposes of local label 446 allocation, a BGP speaker MUST assign a local (also called dynamic) 447 label (non-SRGB) for such a prefix as per classic Multiprotocol BGP 448 labeled IPv4/IPv6 Unicast ([RFC8277]) operation. A BGP speaker MAY 449 log an error for further analysis. 451 The outgoing label is always programmed as per classic Multiprotocol 452 BGP labeled IPv4/IPv6 Unicast ([RFC8277]) operation. Specifically, a 453 BGP speaker receiving a prefix with a BGP Prefix-SID attribute and a 454 label NLRI field of Implicit NULL from a neighbor MUST adhere to 455 standard behavior and program its MPLS dataplane to pop the top label 456 when forwarding traffic to the prefix. The label NLRI defines the 457 outbound label that MUST be used by the receiving node. 459 The label index provides the receiving BGP speaker with guidance as 460 to the incoming label that SHOULD be assigned by that BGP speaker. 462 4.2. IPv6 Dataplane 464 When an SR IPv6 BGP speaker receives an IPv6 Unicast BGP Update with 465 a prefix having the BGP Prefix-SID attribute attached, it checks 466 whether the IPv6 SID TLV is present. If present and chosen as the 467 best path, the prefix is installed into the Segment Routing IPv6 468 dataplane as described in [I-D.ietf-spring-segment-routing]. 470 The Label-Index and Originator SRGB TLVs MUST be ignored on 471 reception. For future extendibility, no TLVs are required for the 472 BGP IPv6 unicast address family. However, a BGP Prefix-SID attribute 473 corresponding to the BGP IPv6 address family without an IPv6 SID TLV 474 MUST be ignored. 476 5. Advertising BGP Prefix-SID Attribute 478 The BGP Prefix-SID attribute MAY be attached to labeled BGP prefixes 479 (IPv4/IPv6) [RFC8277] or to IPv6 unicast prefixes [RFC4760]. In 480 order to prevent distribution of the BGP Prefix-SID attribute beyond 481 its intended scope of applicability, attribute filtering SHOULD be 482 deployed. 484 A BGP speaker that advertises a path received from one of its 485 neighbors SHOULD advertise the BGP Prefix-SID received with the path 486 without modification, as long as the BGP Prefix-SID was acceptable. 487 If the path did not come with a BGP Prefix-SID attribute, the speaker 488 MAY attach a BGP Prefix-SID to the path if configured to do so. The 489 content of the TLVs present in the BGP Prefix-SID is determined by 490 the configuration. 492 5.1. MPLS Dataplane: Labeled Unicast 494 A BGP speaker that originates a prefix attaches the BGP Prefix-SID 495 attribute when it advertises the prefix to its neighbors via 496 Multiprotocol BGP labeled IPv4/IPv6 Unicast ([RFC8277]). The value 497 of the label index in the Label-Index TLV is determined by 498 configuration. 500 A BGP speaker that originates a BGP Prefix-SID attribute MAY 501 optionally announce the Originator SRGB TLV along with the mandatory 502 Label-Index TLV. The content of the Originator SRGB TLV is 503 determined by configuration. 505 Since the label index value must be unique within an SR domain, by 506 default an implementation SHOULD NOT advertise the BGP Prefix-SID 507 attribute outside an Autonomous System unless it is explicitly 508 configured to do so. 510 In all cases, the label field of the advertised NLRI ([RFC8277], 511 [RFC4364]) MUST be set to the local/incoming label programmed in the 512 MPLS dataplane for the given advertised prefix. If the prefix is 513 associated with one of the BGP speaker's interfaces, this is the 514 usual MPLS label (such as the Implicit or Explicit NULL label). 516 5.2. IPv6 Dataplane 518 A BGP speaker that originates an IPv6 prefix with the BGP Prefix-SID 519 attribute MAY include the IPv6 SID TLV. 521 6. Error Handling of BGP Prefix-SID Attribute 523 When a BGP Speaker receives a BGP Update message containing a 524 malformed or unacceptable BGP Prefix-SID attribute attached to a 525 Labeled IPv4/IPv6 unicast prefix [RFC8277], it MUST ignore the 526 received BGP Prefix-SID attributes and not advertise it to other BGP 527 peers. This is equivalent to the "Attribute discard" action 528 specified in [RFC7606]. When discarding an attribute, a BGP speaker 529 SHOULD log an error for further analysis. 531 When a BGP Speaker receives a BGP Update message containing a 532 malformed or unacceptable BGP Prefix-SID attribute attached to an 533 unlabeled IPv6 unicast prefix [RFC4760], it MUST treat the 534 advertisement as a withdrawal. This is equivalent to the "Treat-as- 535 withdraw" action specified in [RFC7606]. This action is required 536 since simply ignoring the BGP Prefix-SID attribute would modify the 537 installed path and the "Attribute discard" option is not applicable 538 in this case [RFC7606]. When withdrawing the prefix, a BGP speaker 539 SHOULD log an error for further analysis. 541 Consistent with [RFC7606], only the first occurrence of the BGP 542 Prefix-SID attribute will be considered and subsequent occurrences 543 will be discarded. Similarly, only the first occurrence of a BGP 544 Prefix-SID attribute TLV of a given TLV type will be considered 545 unless the specification of that TLV type allows for multiple 546 occurrences. 548 For future extendibility, unknown TLVs MUST be ignored and propagated 549 unmodified. 551 7. IANA Considerations 553 This document defines a BGP path attribute known as the BGP Prefix- 554 SID attribute. This document requests IANA to assign an attribute 555 code type (suggested value: 40) to the BGP Prefix-SID attribute from 556 the BGP Path Attributes registry. 558 Currently, IANA temporarily assigned the following: 560 40 BGP Prefix-SID (TEMPORARY - registered 2015-09-30, expires 561 2016-09-30) [draft-ietf-idr-bgp-prefix-sid] 563 This document defines 3 TLVs for the BGP Prefix-SID attribute. These 564 TLVs need to be registered with IANA. We request IANA to create a 565 registry for BGP Prefix-SID Attribute TLVs as follows: 567 Under "Border Gateway Protocol (BGP) Parameters" registry, "BGP 568 Prefix-SID TLV Types" Reference: draft-ietf-idr-bgp-prefix-sid 569 Registration Procedure(s): Values 1-254 First Come First Served 570 (FCFS), Value 0 and 255 reserved 572 Value Type Reference 573 0 Reserved this document 574 1 Label-Index this document 575 2 IPv6 SID this document 576 3 Originator SRGB this document 577 4-254 Unassigned 578 255 Reserved this document 580 This document also creates a registry for the 16 bits of flags in the 581 Label-Index TLV. Initially, the registry will be empty. Flag bits 582 will be allocated First Come First Served (FCFS) consistent with the 583 BGP-SID TLV Types registry. 585 Finally, this document creates a registry for the 16 bits of flags in 586 the SRGB Originator TLV. Initially, the registry will be empty. 587 Flag bits will be allocated First Come First Served (FCFS) consistent 588 with the BGP-SID TLV Types registry. 590 8. Manageability Considerations 592 This document defines a BGP attribute to address use cases such as 593 the one described in [I-D.ietf-spring-segment-routing-msdc]. It is 594 assumed that advertisement of the BGP Prefix-SID attribute is 595 controlled by the operator in order to: 597 o Prevent undesired origination/advertisement of the BGP Prefix-SID 598 attribute. By default, a BGP Prefix-SID attribute SHOULD NOT be 599 attached to a prefix and advertised. Hence, BGP Prefix-SID 600 advertisement SHOULD require explicit enablement. 602 o Prevent any undesired propagation of the BGP Prefix-SID attribute. 603 By default, the BGP Prefix-SID is not advertised outside the 604 boundary of a single SR/administrative domain which may include 605 one or more ASes. The propagation to other ASes MUST be 606 explicitly configured. 608 The deployment model described in 609 [I-D.ietf-spring-segment-routing-msdc] assumes multiple Autonomous 610 Systems (ASes) under a common administrative domain. For this use 611 case, the BGP Prefix-SID advertisement is applicable to the inter-AS 612 context, i.e., EBGP, while it is confined to a single administrative 613 domain. 615 9. Security Considerations 617 This document introduces a BGP attribute (BGP Prefix-SID) which 618 inherits the security considerations expressed in: [RFC4271], 619 [RFC8277], and [I-D.ietf-spring-segment-routing]. 621 It should be noted that, as described in Section 8, this document 622 refers to a deployment model where all nodes are under the single 623 administrative domain. In this context, we assume that the operator 624 doesn't want to leak any information related to internal prefixes and 625 topology outside of the administrative domain. The internal 626 information includes the BGP Prefix-SID. In order to prevent such 627 leaking, the standard BGP mechanisms (filters) are applied at the 628 boundary of the SR/administrative domain. 630 10. Contributors 632 Keyur Patel 633 Arrcus, Inc. 634 US 636 Email: Keyur@arrcus.com 638 Saikat Ray 639 Unaffiliated 640 US 642 Email: raysaikat@gmail.com 644 11. Acknowledgements 646 The authors would like to thank Satya Mohanty for his contribution to 647 this document. 649 The authors would like to thank Alvaro Retana for substantive 650 comments as part of the Routing AD review. 652 The authors would like to thank Shyam Sethuram for comments and 653 discussion of TLV processing and validation. 655 The authors would like to thank Peter Yee and Tony Przygienda for 656 IETF last call directorate reviews. 658 12. References 660 12.1. Normative References 662 [I-D.ietf-spring-segment-routing] 663 Filsfils, C., Previdi, S., Ginsberg, L., Decraene, B., 664 Litkowski, S., and R. Shakir, "Segment Routing 665 Architecture", draft-ietf-spring-segment-routing-15 (work 666 in progress), January 2018. 668 [I-D.ietf-spring-segment-routing-mpls] 669 Filsfils, C., Previdi, S., Bashandy, A., Decraene, B., 670 Litkowski, S., and R. Shakir, "Segment Routing with MPLS 671 data plane", draft-ietf-spring-segment-routing-mpls-11 672 (work in progress), October 2017. 674 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 675 Requirement Levels", BCP 14, RFC 2119, 676 DOI 10.17487/RFC2119, March 1997, . 679 [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A 680 Border Gateway Protocol 4 (BGP-4)", RFC 4271, 681 DOI 10.17487/RFC4271, January 2006, . 684 [RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private 685 Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February 686 2006, . 688 [RFC4760] Bates, T., Chandra, R., Katz, D., and Y. Rekhter, 689 "Multiprotocol Extensions for BGP-4", RFC 4760, 690 DOI 10.17487/RFC4760, January 2007, . 693 [RFC7606] Chen, E., Ed., Scudder, J., Ed., Mohapatra, P., and K. 694 Patel, "Revised Error Handling for BGP UPDATE Messages", 695 RFC 7606, DOI 10.17487/RFC7606, August 2015, 696 . 698 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 699 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 700 May 2017, . 702 [RFC8277] Rosen, E., "Using BGP to Bind MPLS Labels to Address 703 Prefixes", RFC 8277, DOI 10.17487/RFC8277, October 2017, 704 . 706 12.2. Informative References 708 [I-D.ietf-idr-bgp-ls-segment-routing-ext] 709 Previdi, S., Talaulikar, K., Filsfils, C., Gredler, H., 710 and M. Chen, "BGP Link-State extensions for Segment 711 Routing", draft-ietf-idr-bgp-ls-segment-routing-ext-04 712 (work in progress), January 2018. 714 [I-D.ietf-idr-bgpls-segment-routing-epe] 715 Previdi, S., Filsfils, C., Patel, K., Ray, S., and J. 716 Dong, "BGP-LS extensions for Segment Routing BGP Egress 717 Peer Engineering", draft-ietf-idr-bgpls-segment-routing- 718 epe-14 (work in progress), December 2017. 720 [I-D.ietf-spring-segment-routing-msdc] 721 Filsfils, C., Previdi, S., Mitchell, J., Aries, E., and P. 722 Lapukhov, "BGP-Prefix Segment in large-scale data 723 centers", draft-ietf-spring-segment-routing-msdc-08 (work 724 in progress), December 2017. 726 [RFC7752] Gredler, H., Ed., Medved, J., Previdi, S., Farrel, A., and 727 S. Ray, "North-Bound Distribution of Link-State and 728 Traffic Engineering (TE) Information Using BGP", RFC 7752, 729 DOI 10.17487/RFC7752, March 2016, . 732 Authors' Addresses 734 Stefano Previdi (editor) 735 Cisco Systems 736 IT 738 Email: stefano@previdi.net 740 Clarence Filsfils 741 Cisco Systems 742 Brussels 743 Belgium 745 Email: cfilsfils@cisco.com 746 Acee Lindem 747 Cisco Systems 748 301 Midenhall Way 749 Cary, NC 27513 750 USA 752 Email: acee@cisco.com 754 Arjun Sreekantiah 756 Email: arjunhrs@gmail.com 758 Hannes Gredler 759 RtBrick Inc. 761 Email: hannes@rtbrick.com