idnits 2.17.1 draft-dawra-bess-srv6-services-02.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 (July 8, 2019) is 1747 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) == Missing Reference: 'TBD1' is mentioned on line 991, but not defined == Missing Reference: 'TBD2' is mentioned on line 992, but not defined == Unused Reference: 'I-D.filsfils-spring-segment-routing-policy' is defined on line 1048, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-6man-segment-routing-header' is defined on line 1057, but no explicit reference was found in the text == Unused Reference: 'RFC7606' is defined on line 1089, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-isis-segment-routing-extensions' is defined on line 1128, but no explicit reference was found in the text == Unused Reference: 'RFC3032' is defined on line 1140, but no explicit reference was found in the text == Unused Reference: 'RFC8402' is defined on line 1173, but no explicit reference was found in the text == Outdated reference: A later version (-26) exists of draft-ietf-6man-segment-routing-header-21 == Outdated reference: A later version (-28) exists of draft-ietf-spring-srv6-network-programming-01 == Outdated reference: A later version (-21) exists of draft-ietf-bess-evpn-igmp-mld-proxy-03 == Outdated reference: A later version (-26) exists of draft-ietf-idr-segment-routing-te-policy-07 == Outdated reference: A later version (-15) exists of draft-matsushima-spring-srv6-deployment-status-01 -- Obsolete informational reference (is this intentional?): RFC 5549 (Obsoleted by RFC 8950) Summary: 0 errors (**), 0 flaws (~~), 14 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 BESS Working Group 3 Internet-Draft 4 Intended status: Standards Track G. Dawra, Ed. 5 Expires: January 9, 2020 LinkedIn 6 C. Filsfils 7 P. Brissette 8 S. Agrawal 9 Cisco Systems 10 J. Leddy 11 Comcast 12 D. Voyer 13 D. Bernier 14 Bell Canada 15 D. Steinberg 16 Steinberg Consulting 17 R. Raszuk 18 Bloomberg LP 19 B. Decraene 20 Orange 21 S. Matsushima 22 SoftBank 23 S. Zhuang 24 Huawei Technologies 25 J. Rabadan 26 Nokia 27 July 8, 2019 29 SRv6 BGP based Overlay services 30 draft-dawra-bess-srv6-services-02 32 Abstract 34 This draft defines procedures and messages for SRv6-based BGP 35 services including L3VPN, EVPN and Internet services. It builds on 36 RFC4364 "BGP/MPLS IP Virtual Private Networks (VPNs)" and RFC7432 37 "BGP MPLS-Based Ethernet VPN". 39 Requirements Language 41 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 42 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 43 "OPTIONAL" in this document are to be interpreted as described in BCP 44 14 [RFC2119] [RFC8174] when, and only when, they appear in all 45 capitals, as shown here. 47 Status of This Memo 49 This Internet-Draft is submitted in full conformance with the 50 provisions of BCP 78 and BCP 79. 52 Internet-Drafts are working documents of the Internet Engineering 53 Task Force (IETF). Note that other groups may also distribute 54 working documents as Internet-Drafts. The list of current Internet- 55 Drafts is at https://datatracker.ietf.org/drafts/current/. 57 Internet-Drafts are draft documents valid for a maximum of six months 58 and may be updated, replaced, or obsoleted by other documents at any 59 time. It is inappropriate to use Internet-Drafts as reference 60 material or to cite them other than as "work in progress." 62 This Internet-Draft will expire on January 9, 2020. 64 Copyright Notice 66 Copyright (c) 2019 IETF Trust and the persons identified as the 67 document authors. All rights reserved. 69 This document is subject to BCP 78 and the IETF Trust's Legal 70 Provisions Relating to IETF Documents 71 (https://trustee.ietf.org/license-info) in effect on the date of 72 publication of this document. Please review these documents 73 carefully, as they describe your rights and restrictions with respect 74 to this document. Code Components extracted from this document must 75 include Simplified BSD License text as described in Section 4.e of 76 the Trust Legal Provisions and are provided without warranty as 77 described in the Simplified BSD License. 79 Table of Contents 81 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 82 2. SRv6 Services TLVs . . . . . . . . . . . . . . . . . . . . . 4 83 2.1. SRv6 Service Sub-TLVs . . . . . . . . . . . . . . . . . . 5 84 2.1.1. SRv6 SID Information Sub-TLV . . . . . . . . . . . . 6 85 2.1.2. SRv6 Service Data Sub-Sub-TLVs . . . . . . . . . . . 7 86 3. BGP based L3 service over SRv6 . . . . . . . . . . . . . . . 9 87 3.1. IPv4 VPN Over SRv6 Core . . . . . . . . . . . . . . . . . 10 88 3.2. IPv6 VPN Over SRv6 Core . . . . . . . . . . . . . . . . . 10 89 3.3. Global IPv4 over SRv6 Core . . . . . . . . . . . . . . . 11 90 3.4. Global IPv6 over SRv6 Core . . . . . . . . . . . . . . . 11 91 4. BGP based Ethernet VPN (EVPN) over SRv6 . . . . . . . . . . . 12 92 4.1. Ethernet Auto-discovery route over SRv6 Core . . . . . . 12 93 4.1.1. Per-ES A-D route . . . . . . . . . . . . . . . . . . 13 94 4.1.2. Per-EVI A-D route . . . . . . . . . . . . . . . . . . 13 96 4.2. MAC/IP Advertisement route over SRv6 Core . . . . . . . . 14 97 4.3. Inclusive Multicast Ethernet Tag Route over SRv6 Core . . 16 98 4.4. Ethernet Segment route over SRv6 Core . . . . . . . . . . 17 99 4.5. IP prefix route over SRv6 Core . . . . . . . . . . . . . 17 100 4.6. EVPN multicast routes (Route Types 6, 7, 8) over SRv6 101 core . . . . . . . . . . . . . . . . . . . . . . . . . . 18 102 5. Encoding SRv6 SID information . . . . . . . . . . . . . . . . 18 103 6. Implementation Status . . . . . . . . . . . . . . . . . . . . 19 104 7. Error Handling . . . . . . . . . . . . . . . . . . . . . . . 20 105 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 21 106 8.1. BGP Prefix-SID TLV Types registry . . . . . . . . . . . . 21 107 8.2. SRv6 Service Sub-TLV Types registry . . . . . . . . . . . 22 108 8.3. SRv6 Service Data Sub-Sub-TLV Types registry . . . . . . 22 109 9. Security Considerations . . . . . . . . . . . . . . . . . . . 22 110 10. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 23 111 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 23 112 11.1. Normative References . . . . . . . . . . . . . . . . . . 23 113 11.2. Informative References . . . . . . . . . . . . . . . . . 24 114 Appendix A. Contributors . . . . . . . . . . . . . . . . . . . . 26 115 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 26 117 1. Introduction 119 SRv6 refers to Segment Routing instantiated on the IPv6 dataplane [I- 120 D.ietf-spring-srv6-network-programming][I-D.ietf-6man-segment-routing 121 -header]. 123 SRv6 based BGP services refers to the L3 and L2 overlay services with 124 BGP as control plane and SRv6 as dataplane. 126 SRv6 SID refers to a SRv6 Segment Identifier as defined in 127 [I-D.ietf-spring-srv6-network-programming]. 129 SRv6 Service SID refers to an SRv6 SID associated with one of the 130 service specific behavior on the advertising Provider Edge(PE) 131 router, such as (but not limited to), END.DT (Table lookup in a VRF) 132 or END.DX (cross-connect to a nexthop) behaviors in the case of L3VPN 133 service as defined in [I-D.ietf-spring-srv6-network-programming]. 135 To provide SRv6 service with best-effort connectivity, the egress PE 136 signals an SRv6 Service SID with the BGP overlay service route. The 137 ingress PE encapsulates the payload in an outer IPv6 header where the 138 destination address is the SRv6 Service SID provided by the egress 139 PE. The underlay between the PEs only need to support plain IPv6 140 forwarding [RFC8200]. 142 To provide SRv6 service in conjunction with an underlay SLA from the 143 ingress PE to the egress PE, the egress PE colors the overlay service 144 route with a Color extended community 145 [I-D.ietf-idr-segment-routing-te-policy]. The ingress PE 146 encapsulates the payload packet in an outer IPv6 header with an SRH 147 that contains the segment list of SR policy associated with the 148 related SLA followed by the SRv6 Service SID associated with the 149 route. The underlay nodes whose SRv6 SID's are part of the SRH MUST 150 support SRv6 data plane. 152 BGP is used to advertise the reachability of prefixes of a particular 153 service from an egress PE to ingress PE nodes. 155 This document describes how existing BGP messages between PEs may 156 carry SRv6 Service SIDs as a means to interconnect PEs and form VPNs. 158 2. SRv6 Services TLVs 160 This document extends the BGP Prefix-SID attribute 161 [I-D.ietf-idr-bgp-prefix-sid] to carry SRv6 SIDs and associated 162 information. 164 The SRv6 Service TLVs are defined as two new TLVs of the BGP Prefix- 165 SID Attribute to achieve signaling of SRv6 SIDs for L3 and L2 166 services. 168 o SRv6 L3 Service TLV: This TLV encodes Service SID information for 169 SRv6 based L3 services. It corresponds to the equivalent 170 functionality provided by an MPLS Label when received with a Layer 171 3 service route. Some behaviors which MAY be encoded, but not 172 limited to, are End.DX4, End.DT4, End.DX6, End.DT6, etc. 174 o SRv6 L2 Service TLV: This TLV encodes Service SID information for 175 SRv6 based L2 services. It corresponds to the equivalent 176 functionality provided by an MPLS Label1 for EVPN Route-Types as 177 defined in[RFC7432]. Some behaviors which MAY be encoded, but not 178 limited to, are End.DX2, End.DX2V, End.DT2U, End.DT2M etc. 180 When an egress PE is enabled for BGP Services over SRv6 data-plane, 181 it MUST signal one or more SRv6 Service SIDs enclosed in SRv6 Service 182 TLV(s) within the BGP Prefix-SID Attribute attached to MP-BGP NLRIs 183 defined in [RFC4760][RFC4659][RFC5549][RFC7432][RFC4364] where 184 applicable as described in section 3 and 4. 186 The following depicts the SRv6 Service TLVs encoded in the BGP 187 Prefix-SID Attribute: 189 0 1 2 3 190 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 191 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 192 | TLV Type | TLV Length | RESERVED | 193 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 194 // SRv6 Service Sub-TLVs // 195 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 197 o TLV Type (1 octet): This field is assigned values from the IANA 198 registry "BGP Prefix-SID TLV Types". It is set to [TBD1] (to be 199 assigned by IANA) for SRv6 L3 Service TLV. It is set to [TBD2] 200 (to be assigned by IANA) for SRv6 L2 Service TLV. 202 o TLV Length (2 octets): Specifies the total length of the TLV 203 Value. 205 o RESERVED (1 octet): This field is reserved; it SHOULD be set to 0 206 by the sender and MUST be ignored by the receiver. 208 o SRv6 Service Sub-TLVs (variable): This field contains SRv6 Service 209 related information and is encoded as an unordered list of Sub- 210 TLVs whose format is described below. 212 2.1. SRv6 Service Sub-TLVs 214 The format of a single SRv6 Service Sub-TLV is depicted below: 216 0 1 2 3 217 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 218 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 219 | SRv6 Service | SRv6 Service | SRv6 Service // 220 | Sub-TLV | Sub-TLV | Sub-TL // 221 | Type | Length | value // 222 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 224 o SRv6 Service Sub-TLV Type (1 octet): Identifies the type of SRv6 225 service information. It is assigned values from the IANA Registry 226 "SRv6 Service Sub-TLV Types". 228 o SRv6 Service Sub-TLV Length (2 octets): Specifies the total length 229 of the Sub-TLV Value field. 231 o SRv6 Service Sub-TLV Value (variable): Contains data specific to 232 the Sub-TLV Type. In addition to fixed length data, this may also 233 optionally contain other properties of the SRv6 Service encoded as 234 a set of SRv6 Service Data Sub-Sub-TLVs whose format is described 235 in another sub-section below. 237 2.1.1. SRv6 SID Information Sub-TLV 239 SRv6 Service Sub-TLV Type 1 is assigned for SRv6 SID Information Sub- 240 TLV. This Sub-TLV contains a single SRv6 SID along with its 241 properties. Its encoding is depicted below: 243 0 1 2 3 244 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 245 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 246 | SRv6 Service | SRv6 Service | | 247 | Sub-TLV | Sub-TLV | | 248 | Type=1 | Length | RESERVED2 | 249 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 250 // SRv6 SID Value (16 bytes) // 251 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 252 | SRv6 SID Flags| SRv6 Endpoint Behavior | RESERVED3 | 253 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 254 // SRv6 Service Data Sub-Sub-TLVs // 255 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 257 o SRv6 Service Sub-TLV Type (1 octet): This field is set to 1 to 258 represent SRv6 SID Information Sub-TLV. 260 o SRv6 Service Sub-TLV Length (2 octets): This field contains the 261 total length of the Value field of the Sub-TLV. 263 o RESERVED2 (1 octet): SHOULD be set to 0 by the sender and MUST be 264 ignored by the receiver. 266 o SRv6 SID Value (16 octets): Encodes an SRv6 SID as defined in 267 [I-D.ietf-spring-srv6-network-programming] 269 o SRv6 SID Flags (1 octet): Encodes SRv6 SID Flags - none are 270 currently defined. 272 o SRv6 Endpoint Behavior (2 octets): Encodes SRv6 Endpoint behavior 273 defined in [I-D.ietf-spring-srv6-network-programming]. This field 274 SHOULD be set to the value 0xFFFF indicating opaque behavior 275 unless the router wants to signal the actual behavior. 277 o RESERVED3 (1 octet): SHOULD be set to 0 by the sender and MUST be 278 ignored by the receiver. 280 o SRv6 Service Data Sub-Sub-TLV Value (variable): This field 281 contains optional properties of the SRv6 SID. It is encoded as a 282 set of SRv6 Service Data Sub-Sub-TLVs. 284 2.1.2. SRv6 Service Data Sub-Sub-TLVs 286 The format of the SRv6 Service Data Sub-Sub-TLV is depicted below: 288 0 1 2 3 289 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 290 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 291 | Service Data | Sub-sub-TLV Length |Sub-sub TLV // 292 | Sub-Sub-TLV | | Value // 293 | Type | | // 294 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 296 o SRv6 Service Data Sub-Sub-TLV Type (1 octet): Identifies the type 297 of Sub-Sub-TLV. It is assigned values from the IANA Registry 298 "SRv6 Service Data Sub-Sub-TLVs". 300 o SRv6 Service Data Sub-Sub-TLV Length (2 octets): Specifies the 301 total length of the Sub-Sub-TLV Value field. 303 o SRv6 Service Data Sub-Sub-TLV Value (variable): Contains data 304 specific to the Sub-Sub-TLV Type. 306 2.1.2.1. SRv6 SID Structure Sub-Sub-TLV 308 SRv6 Service Data Sub-Sub-TLV Type 1 is assigned for SRv6 SID 309 structure Sub-Sub-TLV. SRv6 SID Structure Sub-Sub-TLV is used to 310 advertise the lengths of each individual parts of the SRv6 SID as 311 defined in [I-D.ietf-spring-srv6-network-programming]. It is carried 312 as Sub-Sub-TLV in SRv6 SID Information Sub-TLV 314 0 1 2 3 315 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 316 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 317 | SRv6 Service | SRv6 Service | Locator Block | 318 | Data Sub-Sub | Data Sub-Sub-TLV | Length | 319 | -TLV Type=1 | Length=6 | | 320 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 321 | Locator Node | Function | Argument | Transposition | 322 | Length | Length | Length | Length | 323 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 324 | Transposition | 325 | Offset | 326 +-+-+-+-+-+-+-+-+ 328 o SRv6 Service Data Sub-Sub-TLV Type (1 octet): This field is set to 329 1 to represent SRv6 SID Structure Sub-Sub-TLV. 331 o SRv6 Service Data Sub-Sub-TLV Length (2 octets): This field 332 contains the total length of 6 bytes. 334 o Locator Block Length(1 octet): Contains length of SRv6 SID locator 335 Block in bits. 337 o Locator Node Length(1 octet): Contains length of SRv6 SID locator 338 Node in bits. 340 o Function Length(1 octet): Contains length of SRv6 SID Function in 341 bits. 343 o Arguments Length(1 octet): Contains length of SRv6 SID arguments 344 in bits. 346 o Transposition Length(1 octet): Size in bits for the part of SID 347 that has been transposed (or shifted) into a label field 349 o Transposition Offset(1 octet): The offset position in bits for the 350 part of SID that has been transposed (or shifted) into a label 351 field. 353 Section 5 describes mechanisms for signaling of the SRv6 Service SID 354 by transposing a variable part of the SRv6 SID value (function and/or 355 the argument parts) and carrying them in existing label fields to 356 achieve more efficient packing of those service prefix NLRIs in BGP 357 update messages. The SRv6 SID Structure Sub-Sub-TLV MUST be included 358 with the appropriate length fields when the SRv6 Service SID is 359 signaled in split parts to enable the receiver to put together the 360 SID accurately. 362 Transposition Offset indicates the bit position and Transposition 363 Length indicates the number of bits that are being taken out of the 364 SRv6 SID value and put into high order bits of label field. The bits 365 that have been shifted out MUST be set to 0 in the SID value. 367 Transposition Length of 0 indicates nothing is transposed and that 368 the entire SRv6 SID value is encoded in the SID Information sub-TLV. 369 In this case, the Transposition Offset MUST be set to 0. 371 Since size of label field is 24 bits, only that many bits can be 372 transposed from the SRv6 SID value into it. 374 The SRv6 SID Structure Sub-Sub-TLV is optional and MAY be included 375 when the entire SRv6 Service SID value is encoded in the SID 376 Information Sub-TLV. 378 Arguments MAY be generally applicable for SIDs of only specific 379 behaviors (e.g. End.DT2M) and therefore the argument length MUST be 380 set to 0 for SIDs where the argument is not applicable. 382 3. BGP based L3 service over SRv6 384 BGP egress nodes (egress PEs) advertise a set of reachable prefixes. 385 Standard BGP update propagation schemes[RFC4271], which may make use 386 of route reflectors [RFC4456], are used to propagate these prefixes. 387 BGP ingress nodes (ingress PEs) receive these advertisements and may 388 add the prefix to the RIB in an appropriate VRF. 390 Egress PEs which supports SRv6 based L3 services advertises overlay 391 service prefixes along with a Service SID enclosed in a SRv6 L3 392 Service TLV within the BGP Prefix-SID Attribute. This TLV serves two 393 purposes - first, it indicates that the egress PE is reachable via an 394 SRv6 underlay and the BGP ingress PE receiving this route MUST choose 395 to perform IPv6 encapsulation and optionally insert an SRH when 396 required; second ,it indicates the value of the Service SID to be 397 used in the encapsulation. 399 The Service SID thus signaled only has local significance at the 400 egress PE, where it may be allocated or configured on a per-CE or 401 per-VRF basis. In practice, the SID may encode a cross-connect to a 402 specific Address Family table (END.DT) or next-hop/interface (END.DX) 403 as defined in [I-D.ietf-spring-srv6-network-programming]. 405 The SRv6 Service SID SHOULD be routable within the AS of the egress 406 PE and serves the dual purpose of providing reachability between 407 ingress PE and egress PE while also encoding the endpoint behavior. 409 At an ingress PE, BGP installs the received prefix in the correct RIB 410 table, recursing via an SR Policy leveraging the received SRv6 411 Service SID. 413 Assuming best-effort connectivity to the egress PE, the SR policy has 414 a path with a SID list made up of a single SID - the SRv6 Service SID 415 received with the related BGP route update. 417 However, when the received route is colored with an extended color 418 community 'C' and Next-Hop 'N', and the ingress PE has a valid SRv6 419 Policy (C, N) associated with SID list [I-D.filsfils- 420 spring-segment-routing-policy], then the effective SR Policy is . 423 Multiple VPN routes MAY resolve recursively via the same SR Policy. 425 3.1. IPv4 VPN Over SRv6 Core 427 IPv4 VPN Over IPv6 Core is defined in [RFC5549]. The MP_REACH_NLRI 428 is encoded as follows for an SRv6 Core: 430 o AFI = 1 432 o SAFI = 128 434 o Length of Next Hop Network Address = 16 (or 32) 436 o Network Address of Next Hop = IPv6 address of the egress PE 438 o NLRI = IPv4-VPN routes 440 o Label = It is set to Implicit NULL when the SID Structure Sub-Sub- 441 TLV is not present or when it is present and indicates that the 442 Function is encoded in the SID value (refer Section 5 for 443 details). Otherwise it carries the Function part of SRv6 SID when 444 indicated as such by the SID Structure Sub-Sub-TLV. 446 SRv6 Service SID is encoded as part of the SRv6 L3 Service TLV. The 447 behavior of the SRv6 SID is entirely up to the originator of the 448 advertisement. In practice, the behavior SHOULD be End.DX4 or 449 End.DT4. 451 3.2. IPv6 VPN Over SRv6 Core 453 IPv6 VPN over IPv6 Core is defined in [RFC4659]. The MP_REACH_NLRI 454 is encoded as follows for an SRv6 Core: 456 o AFI = 2 458 o SAFI = 128 460 o Length of Next Hop Network Address = 24 (or 48) 462 o Network Address of Next Hop = 8 octets of RD set to 0 followed by 463 IPv6 address of the egress PE 465 o NLRI = IPv6-VPN routes 467 o Label = It is set to Implicit NULL when the SID Structure Sub-Sub- 468 TLV is not present or when it is present and indicates that the 469 Function is encoded in the SID value (refer Section 5 for 470 details). Otherwise it carries the Function part of SRv6 SID when 471 indicated as such by the SID Structure Sub-Sub-TLV. 473 SRv6 Service SID is encoded as part of the SRv6 L3 Service TLV. The 474 behavior of the SRv6 SID is entirely up to the originator of the 475 advertisement. In practice, the behavior SHOULD be End.DX6 or 476 End.DT6. 478 3.3. Global IPv4 over SRv6 Core 480 IPv4 over IPv6 Core is defined in [RFC5549]. The MP_REACH_NLRI is 481 encoded with: 483 o AFI = 1 485 o SAFI = 1 487 o Length of Next Hop Network Address = 16 (or 32) 489 o Network Address of Next Hop = IPv6 address of Next Hop 491 o NLRI = IPv4 routes 493 SRv6 Service SID is encoded as part of the SRv6 L3 Service TLV. The 494 behavior of the SRv6 SID is entirely up to the originator of the 495 advertisement. In practice, the behavior SHOULD be End.DX4 or 496 End.DT4. 498 3.4. Global IPv6 over SRv6 Core 500 The MP_REACH_NLRI is encoded with: 502 o AFI = 2 504 o SAFI = 1 506 o Length of Next Hop Network Address = 16 (or 32) 508 o Network Address of Next Hop = IPv6 address of Next Hop 510 o NLRI = IPv6 routes 512 SRv6 Service SID is encoded as part of the SRv6 L3 Service TLV. The 513 behavior of the SRv6 SID is entirely up to the originator of the 514 advertisement. In practice, the behavior SHOULD be End.DX4 or 515 End.DT6. 517 Also, by utilizing the SRv6 L3 Service TLV to encode the Global SID, 518 a BGP free core is possible by encapsulating all BGP traffic from 519 edge to edge over SRv6 dataplane. 521 4. BGP based Ethernet VPN (EVPN) over SRv6 523 Ethernet VPN(EVPN), as defined in [RFC7432] provides an extendable 524 method of building an EVPN overlay. It primarily focuses on MPLS 525 based EVPNs but calls out the extensibility to IP based EVPN 526 overlays. [RFC7432] defines 4 Route Types which carry prefixes and 527 MPLS Label fields; the Label fields have specific use for MPLS 528 encapsulation of EVPN traffic. Route Type 5 carrying MPLS label 529 information (and thus encapsulation information) for EVPN is defined 530 in [I-D.ietf-bess-evpn-prefix-advertisement]. Route Types 6, 7 and 8 531 are defined in [I-D.ietf-bess-evpn-igmp-mld-proxy]. 533 o Ethernet Auto-discovery Route (Route Type 1) 535 o MAC/IP Advertisement Route (Route Type 2) 537 o Inclusive Multicast Ethernet Tag Route (Route Type 3) 539 o Ethernet Segment route (Route Type 4) 541 o IP prefix route (Route Type 5) 543 o Selective Multicast Ethernet Tag route (Route Type 6) 545 o IGMP join sync route (Route Type 7) 547 o IGMP leave sync route (Route Type 8) 549 To support SRv6 based EVPN overlays, one or more SRv6 Service SIDs 550 are advertised with Route Type 1,2,3 and 5. The SRv6 Service SID(s) 551 per Route Type are advertised in SRv6 L3/L2 Service TLVs within the 552 BGP Prefix-SID Attribute. Signaling of SRv6 Service SID(s) serves 553 two purposes - first, it indicates that the BGP egress device is 554 reachable via an SRv6 underlay and the BGP ingress device receiving 555 this route MUST choose to perform IPv6 encapsulation and optionally 556 insert an SRH when required; second, it indicates the value of the 557 Service SID(s) to be used in the encapsulation. 559 4.1. Ethernet Auto-discovery route over SRv6 Core 561 Ethernet Auto-Discovery (A-D) routes are Route Type 1 defined in 562 [RFC7432]and may be used to achieve split horizon filtering, fast 563 convergence and aliasing. EVPN Route Type 1 is also used in EVPN- 564 VPWS as well as in EVPN flexible cross-connect; mainly used to 565 advertise point-to-point services ID. 567 Multi-homed PEs MAY advertise an Ethernet Auto-Discovery route per 568 Ethernet segment along with the ESI Label extended community defined 569 in [RFC7432]. PEs may identify other PEs connected to the same 570 Ethernet segment after the EVPN Route Type 4 ES route exchange. All 571 the multi-homed and remote PEs that are part of same EVI may import 572 the Auto-Discovery route. 574 EVPN Route Type 1 is encoded as follows for SRv6 Core: 576 +---------------------------------------+ 577 | RD (8 octets) | 578 +---------------------------------------+ 579 |Ethernet Segment Identifier (10 octets)| 580 +---------------------------------------+ 581 | Ethernet Tag ID (4 octets) | 582 +---------------------------------------+ 583 | MPLS label (3 octets) | 584 +---------------------------------------+ 586 4.1.1. Per-ES A-D route 588 o BGP next-hop: IPv6 address of an egress PE 590 o Ethernet Tag ID: set to MAX-ET per [RFC7432] section 8.2.1 592 o MPLS Label: always set to zero per [RFC7432] section 8.2.1 594 o ESI label extended community ESI label field: It is set to 595 Implicit NULL when the SID Structure Sub-Sub-TLV is not present or 596 when it is present and indicates that the Argument is encoded in 597 the SID value (refer Section 5 for details). Otherwise it carries 598 the Argument part of SRv6 SID when indicated as such by the SID 599 Structure Sub-Sub-TLV. 601 A Service SID enclosed in a SRv6 L2 Service TLV within the BGP 602 Prefix-SID attribute is advertised along with the A-D route. The 603 behavior of the Service SID thus signaled is entirely up to the 604 originator of the advertisement. The Service SID is used to signal 605 Arg.FE2 SID argument for applicable End.DT2M SIDs. 607 4.1.2. Per-EVI A-D route 609 o BGP next-hop: IPv6 address of an egress PE 611 o Ethernet Tag ID: non-zero for VLAN-aware bundling service, EVPN 612 VPWS and FXC 614 o MPLS Label: It is set to Implicit NULL when the SID Structure Sub- 615 Sub-TLV is not present or when it is present and indicates that 616 the Function is encoded in the SID value (refer Section 5 for 617 details). Otherwise it carries the Function part of SRv6 SID when 618 indicated as such by the SID Structure Sub-Sub-TLV. 620 A Service SID enclosed in a SRv6 L2 Service TLV within the BGP 621 Prefix-SID attribute is advertised along with the A-D route. The 622 behavior of the Service SID thus signaled is entirely up to the 623 originator of the advertisement. In practice, the behavior would 624 SHOULD be END.DX2, END.DX2V or END.DT2U. 626 4.2. MAC/IP Advertisement route over SRv6 Core 628 EVPN Route Type 2 is used to advertise unicast traffic MAC+IP address 629 reachability through MP-BGP to all other PEs in a given EVPN 630 instance. 632 EVPN Route Type 2 is encoded as follows for SRv6 Core: 634 +---------------------------------------+ 635 | RD (8 octets) | 636 +---------------------------------------+ 637 |Ethernet Segment Identifier (10 octets)| 638 +---------------------------------------+ 639 | Ethernet Tag ID (4 octets) | 640 +---------------------------------------+ 641 | MAC Address Length (1 octet) | 642 +---------------------------------------+ 643 | MAC Address (6 octets) | 644 +---------------------------------------+ 645 | IP Address Length (1 octet) | 646 +---------------------------------------+ 647 | IP Address (0, 4, or 16 octets) | 648 +---------------------------------------+ 649 | MPLS Label1 (3 octets) | 650 +---------------------------------------+ 651 | MPLS Label2 (0 or 3 octets) | 652 +---------------------------------------+ 654 o BGP next-hop: IPv6 address of an egress PE 656 o MPLS Label1: It is set to Implicit NULL when the SID Structure 657 Sub-Sub-TLV is not present or when it is present and indicates 658 that the Function is encoded in the SID value (refer Section 5 for 659 details). Otherwise it carries the Function part of SRv6 SID when 660 indicated as such by the SID Structure Sub-Sub-TLV. 662 o MPLS Label2: It is set to Implicit NULL when the SID Structure 663 Sub-Sub-TLV is not present or when it is present and indicates 664 that the Function is encoded in the SID value (refer Section 5 for 665 details). Otherwise it carries the Function part of SRv6 SID when 666 indicated as such by the SID Structure Sub-Sub-TLV. 668 Service SIDs enclosed in SRv6 L2 Service TLV and optionally in SRv6 669 L3 Service TLV within the BGP SID attribute is advertised along with 670 the MAC/IP Advertisement route. 672 Described below are different types of Route Type 2 advertisements. 674 o MAC/IP Advertisement route with MAC Only 676 * BGP next-hop: IPv6 address of egress PE 678 * MPLS Label1: It is set to Implicit NULL when the SID Structure 679 Sub-Sub-TLV is not present or when it is present and indicates 680 that the Function is encoded in the SID value (refer Section 5 681 for details). Otherwise it carries the Function part of SRv6 682 SID when indicated as such by the SID Structure Sub-Sub-TLV. 684 o A Service SID enclosed in a SRv6 L2 Service TLV within the BGP 685 Prefix-SID attribute is advertised along with the route. The 686 behavior of the Service SID thus signaled is entirely up to the 687 originator of the advertisement. In practice, the behavior SHOULD 688 be END.DX2 or END.DT2U. 690 o MAC/IP Advertisement route with MAC+IP 692 * BGP next-hop: IPv6 address of egress PE 694 * MPLS Label1: It is set to Implicit NULL when the SID Structure 695 Sub-Sub-TLV is not present or when it is present and indicates 696 that the Function is encoded in the SID value(refer Section 5 697 for details). Otherwise it carries the Function part of SRv6 698 SID when indicated as such by the SID Structure Sub-Sub-TLV. 700 * MPLS Label2: It is set to Implicit NULL when the SID Structure 701 Sub-Sub-TLV is not present or when it is present and indicates 702 that the Function is encoded in the SID value (refer Section 5 703 for details). Otherwise it carries the Function part of SRv6 704 SID when indicated as such by the SID Structure Sub-Sub-TLV. 706 o An L2 Service SID enclosed in a SRv6 L2 Service TLV within the BGP 707 Prefix-SID attribute is advertised along with the route. In 708 addition, an L3 Service SID enclosed in a SRv6 L3 Service TLV 709 within the BGP SID attribute MAY also be advertised along with the 710 route. The behavior of the Service SID(s) thus signaled is 711 entirely up to the originator of the advertisement. In practice, 712 the behavior SHOULD be END.DX2 or END.DT2U for the L2 Service SID, 713 and END.DT6/4 or END.DX6/4 for the L3 Service SID. 715 4.3. Inclusive Multicast Ethernet Tag Route over SRv6 Core 717 EVPN Route Type 3 is used to advertise multicast traffic reachability 718 information through MP-BGP to all other PEs in a given EVPN instance. 720 EVPN Route Type 3 is encoded as follows for SRv6 core: 722 +---------------------------------------+ 723 | RD (8 octets) | 724 +---------------------------------------+ 725 | Ethernet Tag ID (4 octets) | 726 +---------------------------------------+ 727 | IP Address Length (1 octet) | 728 +---------------------------------------+ 729 | Originating Router's IP Address | 730 | (4 or 16 octets) | 731 +---------------------------------------+ 733 o BGP next-hop: IPv6 address of egress PE 735 PMSI Tunnel Attribute [RFC6514] MAY contain MPLS Implicit NULL label 736 and Tunnel Type would be similar to that defined in EVPN Route Type 6 737 i.e. Ingress replication route. 739 The format of PMSI Tunnel Attribute is encoded as follows for SRv6 740 Core: 742 +---------------------------------------+ 743 | Flag (1 octet) | 744 +---------------------------------------+ 745 | Tunnel Type (1 octet) | 746 +---------------------------------------+ 747 | MPLS label (3 octet) | 748 +---------------------------------------+ 749 | Tunnel Identifier (variable) | 750 +---------------------------------------+ 752 o Flag: zero value defined per [RFC7432] 754 o Tunnel Type: defined per [RFC6514] 756 o MPLS label: It is set to Implicit NULL when the SID Structure Sub- 757 Sub-TLV is not present or when it is present and indicates that 758 the Function is encoded in the SID value (refer Section 5 for 759 details). Otherwise it carries the Function part of SRv6 SID when 760 indicated as such by the SID Structure Sub-Sub-TLV. 762 o Tunnel Identifier: IP address of egress PE 764 A Service SID enclosed in a SRv6 L2 Service TLV within the BGP 765 Prefix-SID attribute is advertised along with the route. The 766 behavior of the Service SID thus signaled, is entirely up to the 767 originator of the advertisement. In practice, the behavior of the 768 SRv6 SID is as follows: 770 o END.DX2 or END.DT2M behavior 772 o The ESI Filtering argument (Arg.FE2) of the Service SID carried 773 along with EVPN Route Type 1 route SHOULD be merged together with 774 the applicable End.DT2M SID of Type 3 route advertised by remote 775 PE by doing a bitwise logical-OR operation to create a single SID 776 on the ingress PE for Split-horizon and other filtering 777 mechanisms. Details of filtering mechanisms are described in 778 [RFC7432]. 780 4.4. Ethernet Segment route over SRv6 Core 782 An Ethernet Segment route i.e. EVPN Route Type 4 is encoded as 783 follows for SRv6 core: 785 +---------------------------------------+ 786 | RD (8 octets) | 787 +---------------------------------------+ 788 | Ethernet Tag ID (4 octets) | 789 +---------------------------------------+ 790 | IP Address Length (1 octet) | 791 +---------------------------------------+ 792 | Originating Router's IP Address | 793 | (4 or 16 octets) | 794 +---------------------------------------+ 796 o BGP next-hop: IPv6 address of egress PE 798 SRv6 Service TLVs within BGP SID attribute are not advertised along 799 with this route. The processing of the route has not changed - it 800 remains as described in [RFC7432]. 802 4.5. IP prefix route over SRv6 Core 804 EVPN Route Type 5 is used to advertise IP address reachability 805 through MP-BGP to all other PEs in a given EVPN instance. IP address 806 may include host IP prefix or any specific subnet. 808 EVPN Route Type 5 is encoded as follows for SRv6 core: 810 +---------------------------------------+ 811 | RD (8 octets) | 812 +---------------------------------------+ 813 |Ethernet Segment Identifier (10 octets)| 814 +---------------------------------------+ 815 | Ethernet Tag ID (4 octets) | 816 +---------------------------------------+ 817 | IP Prefix Length (1 octet) | 818 +---------------------------------------+ 819 | IP Prefix (4 or 16 octets) | 820 +---------------------------------------+ 821 | GW IP Address (4 or 16 octets) | 822 +---------------------------------------+ 823 | MPLS Label (3 octets) | 824 +---------------------------------------+ 826 o BGP next-hop: IPv6 address of egress PE 828 o MPLS Label: It is set to Implicit NULL when the SID Structure Sub- 829 Sub-TLV is not present or when it is present and indicates that 830 the Function is encoded in the SID value (refer Section 5 for 831 details). Otherwise it carries the Function part of SRv6 SID when 832 indicated as such by the SID Structure Sub-Sub-TLV. 834 SRv6 Service SID is encoded as part of the SRv6 L3 Service TLV. The 835 function of the SRv6 SID is entirely up to the originator of the 836 advertisement. In practice, the behavior may SHOULD be End.DT4/6 or 837 End.DX4/6. 839 4.6. EVPN multicast routes (Route Types 6, 7, 8) over SRv6 core 841 These routes do not require the advertisement of SRv6 Service TLVs 842 along with them. Similar to EVPN Route Type 4, the BGP Nexthop is 843 equal to the IPv6 address of egress PE. More details may be added in 844 future revisions of this document. 846 5. Encoding SRv6 SID information 848 The SRv6 Service SID(s) for a BGP Service Prefix are carried in the 849 SRv6 Services TLVs of the BGP Prefix-SID Attribute. 851 For certain types of BGP Services like L3VPN where a per-VRF SID 852 allocation is used (i.e. End.DT4 or End.DT6 behaviors), the same SID 853 is shared across multiple NLRIs thus providing efficient packing. 854 However, for certain other types of BGP Services like EVPN VPWS where 855 a per-PW SID allocation is required (i.e. End.DX2 behavior), each 856 NLRI would have its own unique SID there by resulting in inefficient 857 packing. 859 To achieve efficient packing, this document allows flexibility in the 860 advertisement of the SRv6 Service SID either as a whole in the SRv6 861 Services TLVs or the encoding of only the common parts of the SRv6 862 SID (e.g. Locator parts) in the SRv6 Services TLVs and encoding the 863 variable (e.g. Function and Argument parts) in the existing label 864 fields specific to that service encoding. The SRv6 SID Structure 865 Sub-Sub-TLV describes the sizes of the parts of the SRv6 SID. It 866 also indicate offset of variable part and its length in SRv6 SID 867 value. 869 As an example, for the EVPN VPWS service prefix described in section 870 4.1.2, the function part of the SRv6 SID is encoded in the MPLS Label 871 field of the NLRI and the SID value in the SRv6 Services TLV carries 872 only the locator parts with the SRv6 SID Structure Sub-Sub-TLV 873 included. The SRv6 SID Structure sub-sub-TLV defines the lengths of 874 locator block, locator node and function parts (arguments are not 875 applicable for the End.DX2 behavior). Transposition Offset indicates 876 the bit position and Transposition Length indicates the number of 877 bits that are being taken out of the SID and put into label field. 879 In yet another example, for the EVPN Per-ES A-D route described in 880 section 4.1.1, only the argument of the SID needs to be signaled. 881 This argument part of the SRv6 SID MAY be Transposed in the ESI Label 882 field of the ESI Label Extended Community and the SID value in the 883 SRv6 Services TLV is set to 0 with the SRv6 SID Structure Sub-Sub-TLV 884 included. The SRv6 SID Structure sub-sub-TLV defines the lengths of 885 locator block, locator node, function and argument parts. The offset 886 and length of argument part SID value moved to label field is set in 887 Transpostion offset and length of SID structure TLV. The receiving 888 router is then able to put together the entire SRv6 Service SID (e.g. 889 for the End.DT2M behavior) placing the label value received in the 890 ESI Label field of the Per-ES A-D route into the correct 891 transposition offset and length in the SRv6 SID with the End.DT2M 892 behavior received for a EVPN Route Type 3 value. 894 6. Implementation Status 896 The [I-D.matsushima-spring-srv6-deployment-status] describes the 897 current deployment and implementation status of SRv6 which also 898 includes the BGP services over SRv6 as specified in this document. 900 7. Error Handling 902 In case of any errors encountered while processing SRv6 Service TLVs, 903 the details of the error SHOULD be logged for further analysis. 905 If multiple instances of SRv6 L3 Service TLV is encountered, all but 906 the first instance MUST be ignored. 908 If multiple instances of SRv6 L2 Service TLV is encountered, all but 909 the first instance MUST be ignored. 911 An SRv6 Service TLV is considered malformed in the following cases: 913 o the TLV Length is less than 1 915 o the TLV Length is inconsistent with the length of BGP SID 916 attribute 918 o atleast one of the constituent Sub-TLVs is malformed 920 An SRv6 Service Sub-TLV is considered malformed in the following 921 cases: 923 o the Sub-TLV Length is inconsistent with the length of the 924 enclosing SRv6 Service TLV 926 An SRv6 SID Information Sub-TLV is considered malformed in the 927 following cases: 929 * the Sub-TLV Length is less than 21 931 * the Sub-TLV Length is inconsistent with the length of the 932 enclosing SRv6 Service TLV 934 * atleast one of the constituent Sub-Sub-TLVs is malformed 936 An SRv6 Service Data Sub-sub-TLV is considered malformed in the 937 following cases: 939 o the Sub-Sub-TLV Length is inconsistent with the length of the 940 enclosing SRv6 service Sub-TLV 942 Any TLV or Sub-TLV or Sub-Sub-TLV is not considered malformed because 943 its Type is unrecognized. 945 Any TLV or Sub-TLV or Sub-Sub-TLV is not considered malformed because 946 of failing any semantic validation of its Value field. 948 The BGP Prefix-SID attribute is considered malformed if it contains 949 atleast one constituent SRv6 Service TLV that is malformed. In such 950 cases, the attribute MUST be discarded [RFC7606]and not propagated 951 further. Note that if a path whose BGP Prefix-SID attribute is 952 discarded in this manner is selected as the best path to be installed 953 in the RIB, traffic forwarding for the corresponding prefix may be 954 affected. Implementations MAY choose to make such paths less 955 preferable or even ineligible during the selection of best path for 956 the corresponding prefix. 958 SRv6 SID value in SRv6 Service Sub-TLV is invalid when SID Structure 959 Sub-Sub-TLV is present and transposition length is greater than 24. 960 Path pointing to such Prefix-SID Attribute should be ineligible 961 during the selection of best path for the corresponding prefix. 963 A BGP speaker receiving a path containing BGP Prefix-SID Attribute 964 with one or more SRv6 Service TLVs observes the following rules when 965 advertising the received path to other peers: 967 o if the nexthop is unchanged during advertisement, the SRv6 Service 968 TLVs, including any unrecognized Types of Sub-TLV and Sub-Sub-TLV, 969 SHOULD be propagated further. In addition, all Reserved fields in 970 the TLV or Sub-TLV or Sub-Sub-TLV MUST be propagated unchanged. 972 o if the nexthop is changed during advertisement, any unrecognized 973 Sub-TLVs and Sub-Sub-TLVs MUST NOT be propagated. 975 o if the nexthop is changed during advertisement, the TLVs, Sub-TLVs 976 and Sub-Sub-TLVs SHOULD be re-originated if appropriate, and not 977 merely propagated unchanged. The interpretation of the meaning of 978 re-origination versus propagation is a matter of local 979 implementation. 981 8. IANA Considerations 983 8.1. BGP Prefix-SID TLV Types registry 985 This document defines two new TLV Types of the BGP Prefx-SID 986 attribute. IANA is requested to assign Type values in the registry 987 "BGP Prefix-SID TLV Types" as follows: 989 Value Type Reference 990 -------------------------------------------- 991 [TBD1] SRv6 L3 Service TLV 992 [TBD2] SRv6 L2 Service TLV 994 IANA is also requested to reserve the following Type value. This was 995 used in some implementations of previous versions of this draft. 997 Value Type Reference 998 -------------------------------------------- 999 4 Reserved 1001 8.2. SRv6 Service Sub-TLV Types registry 1003 IANA is requested to create and maintain a new registry called "SRv6 1004 Service Sub-TLV Types". The allocation policy for this registry is: 1006 0 : Reserved 1007 1-127 : IETF Review 1008 128-254 : First Come First Served 1009 255 : Reserved 1011 The following Sub-TLV Types are defined in this document: 1013 Value Type Reference 1014 ---------------------------------------------------- 1015 1 SRv6 SID Information Sub-TLV 1017 8.3. SRv6 Service Data Sub-Sub-TLV Types registry 1019 IANA is requested to create and maintain a new registry called "SRv6 1020 Service Data Sub-Sub-TLV Types". The allocation policy for this 1021 registry is: 1023 0 : Reserved 1024 1-127 : IETF Review 1025 128-254 : First Come First Served 1026 255 : Reserved 1028 The following Sub-Sub-TLV Types are defined in this document: 1030 Value Type Reference 1031 ---------------------------------------------------- 1032 1 SRv6 SID Structure Sub-Sub-TLV 1034 9. Security Considerations 1036 This document introduces no new security considerations beyond those 1037 already specified in [RFC4271] and [RFC8277]. 1039 10. Conclusions 1041 This document proposes extensions to the BGP to allow advertising 1042 certain attributes and functionalities related to SRv6. 1044 11. References 1046 11.1. Normative References 1048 [I-D.filsfils-spring-segment-routing-policy] 1049 Filsfils, C., Sivabalan, S., Hegde, S., 1050 daniel.voyer@bell.ca, d., Lin, S., bogdanov@google.com, 1051 b., Krol, P., Horneffer, M., Steinberg, D., Decraene, B., 1052 Litkowski, S., Mattes, P., Ali, Z., Talaulikar, K., Liste, 1053 J., Clad, F., and K. Raza, "Segment Routing Policy 1054 Architecture", draft-filsfils-spring-segment-routing- 1055 policy-06 (work in progress), May 2018. 1057 [I-D.ietf-6man-segment-routing-header] 1058 Filsfils, C., Dukes, D., Previdi, S., Leddy, J., 1059 Matsushima, S., and d. daniel.voyer@bell.ca, "IPv6 Segment 1060 Routing Header (SRH)", draft-ietf-6man-segment-routing- 1061 header-21 (work in progress), June 2019. 1063 [I-D.ietf-spring-srv6-network-programming] 1064 Filsfils, C., Camarillo, P., Leddy, J., 1065 daniel.voyer@bell.ca, d., Matsushima, S., and Z. Li, "SRv6 1066 Network Programming", draft-ietf-spring-srv6-network- 1067 programming-01 (work in progress), July 2019. 1069 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1070 Requirement Levels", BCP 14, RFC 2119, 1071 DOI 10.17487/RFC2119, March 1997, 1072 . 1074 [RFC4456] Bates, T., Chen, E., and R. Chandra, "BGP Route 1075 Reflection: An Alternative to Full Mesh Internal BGP 1076 (IBGP)", RFC 4456, DOI 10.17487/RFC4456, April 2006, 1077 . 1079 [RFC6514] Aggarwal, R., Rosen, E., Morin, T., and Y. Rekhter, "BGP 1080 Encodings and Procedures for Multicast in MPLS/BGP IP 1081 VPNs", RFC 6514, DOI 10.17487/RFC6514, February 2012, 1082 . 1084 [RFC7432] Sajassi, A., Ed., Aggarwal, R., Bitar, N., Isaac, A., 1085 Uttaro, J., Drake, J., and W. Henderickx, "BGP MPLS-Based 1086 Ethernet VPN", RFC 7432, DOI 10.17487/RFC7432, February 1087 2015, . 1089 [RFC7606] Chen, E., Ed., Scudder, J., Ed., Mohapatra, P., and K. 1090 Patel, "Revised Error Handling for BGP UPDATE Messages", 1091 RFC 7606, DOI 10.17487/RFC7606, August 2015, 1092 . 1094 [RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6 1095 (IPv6) Specification", STD 86, RFC 8200, 1096 DOI 10.17487/RFC8200, July 2017, 1097 . 1099 [RFC8277] Rosen, E., "Using BGP to Bind MPLS Labels to Address 1100 Prefixes", RFC 8277, DOI 10.17487/RFC8277, October 2017, 1101 . 1103 11.2. Informative References 1105 [I-D.ietf-bess-evpn-igmp-mld-proxy] 1106 Sajassi, A., Thoria, S., Patel, K., Yeung, D., Drake, J., 1107 and W. Lin, "IGMP and MLD Proxy for EVPN", draft-ietf- 1108 bess-evpn-igmp-mld-proxy-03 (work in progress), June 2019. 1110 [I-D.ietf-bess-evpn-prefix-advertisement] 1111 Rabadan, J., Henderickx, W., Drake, J., Lin, W., and A. 1112 Sajassi, "IP Prefix Advertisement in EVPN", draft-ietf- 1113 bess-evpn-prefix-advertisement-11 (work in progress), May 1114 2018. 1116 [I-D.ietf-idr-bgp-prefix-sid] 1117 Previdi, S., Filsfils, C., Lindem, A., Sreekantiah, A., 1118 and H. Gredler, "Segment Routing Prefix SID extensions for 1119 BGP", draft-ietf-idr-bgp-prefix-sid-27 (work in progress), 1120 June 2018. 1122 [I-D.ietf-idr-segment-routing-te-policy] 1123 Previdi, S., Filsfils, C., Mattes, P., Rosen, E., Jain, 1124 D., and S. Lin, "Advertising Segment Routing Policies in 1125 BGP", draft-ietf-idr-segment-routing-te-policy-07 (work in 1126 progress), July 2019. 1128 [I-D.ietf-isis-segment-routing-extensions] 1129 Previdi, S., Ginsberg, L., Filsfils, C., Bashandy, A., 1130 Gredler, H., and B. Decraene, "IS-IS Extensions for 1131 Segment Routing", draft-ietf-isis-segment-routing- 1132 extensions-25 (work in progress), May 2019. 1134 [I-D.matsushima-spring-srv6-deployment-status] 1135 Matsushima, S., Filsfils, C., Ali, Z., and Z. Li, "SRv6 1136 Implementation and Deployment Status", draft-matsushima- 1137 spring-srv6-deployment-status-01 (work in progress), May 1138 2019. 1140 [RFC3032] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., 1141 Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack 1142 Encoding", RFC 3032, DOI 10.17487/RFC3032, January 2001, 1143 . 1145 [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A 1146 Border Gateway Protocol 4 (BGP-4)", RFC 4271, 1147 DOI 10.17487/RFC4271, January 2006, 1148 . 1150 [RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private 1151 Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February 1152 2006, . 1154 [RFC4659] De Clercq, J., Ooms, D., Carugi, M., and F. Le Faucheur, 1155 "BGP-MPLS IP Virtual Private Network (VPN) Extension for 1156 IPv6 VPN", RFC 4659, DOI 10.17487/RFC4659, September 2006, 1157 . 1159 [RFC4760] Bates, T., Chandra, R., Katz, D., and Y. Rekhter, 1160 "Multiprotocol Extensions for BGP-4", RFC 4760, 1161 DOI 10.17487/RFC4760, January 2007, 1162 . 1164 [RFC5549] Le Faucheur, F. and E. Rosen, "Advertising IPv4 Network 1165 Layer Reachability Information with an IPv6 Next Hop", 1166 RFC 5549, DOI 10.17487/RFC5549, May 2009, 1167 . 1169 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 1170 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 1171 May 2017, . 1173 [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., 1174 Decraene, B., Litkowski, S., and R. Shakir, "Segment 1175 Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, 1176 July 2018, . 1178 Appendix A. Contributors 1180 Ali Sajassi 1181 Cisco 1183 Email: sajassi@cisco.com 1185 Bart Peirens 1186 Proximus 1187 Belgium 1189 Email: bart.peirens@proximus.com 1191 Darren Dukes 1192 Cisco 1194 Email: ddukes@cisco.com 1196 Pablo Camarilo 1197 Cisco 1199 Email: pcamaril@cisco.com 1201 Shyam Sethuram 1202 Cisco 1204 Email: shsethur@cisco.com 1206 Zafar Ali 1207 Cisco 1209 Email: zali@cisco.com 1211 Ketan Talaulikar 1212 Cisco 1214 Email: ketant@cisco.com 1216 Authors' Addresses 1217 Gaurav Dawra (editor) 1218 LinkedIn 1219 USA 1221 Email: gdawra.ietf@gmail.com 1223 Clarence Filsfils 1224 Cisco Systems 1225 Belgium 1227 Email: cfilsfil@cisco.com 1229 Patrice Brissette 1230 Cisco Systems 1231 Canada 1233 Email: pbrisset@cisco.com 1235 Swadesh Agrawal 1236 Cisco Systems 1237 USA 1239 Email: swaagraw@cisco.com 1241 Jonn Leddy 1242 Comcast 1243 USA 1245 Daniel Voyer 1246 Bell Canada 1247 Canada 1249 Email: daniel.voyer@bell.ca 1251 Daniel Bernier 1252 Bell Canada 1253 Canada 1255 Email: daniel.bernier@bell.ca 1256 Dirk Steinberg 1257 Steinberg Consulting 1258 Germany 1260 Email: dws@steinberg.net 1262 Robert Raszuk 1263 Bloomberg LP 1264 USA 1266 Email: robert@raszuk.net 1268 Bruno Decraene 1269 Orange 1270 France 1272 Email: bruno.decraene@orange.com 1274 Satoru Matsushima 1275 SoftBank 1276 1-9-1,Higashi-Shimbashi,Minato-Ku 1277 Japan 105-7322 1279 Email: satoru.matsushima@g.softbank.co.jp 1281 Shunwan Zhuang 1282 Huawei Technologies 1283 China 1285 Email: zhuangshunwan@huawei.com 1287 Jorge Rabadan 1288 Nokia 1289 USA 1291 Email: jorge.rabadan@nokia.com