idnits 2.17.00 (12 Aug 2021) /tmp/idnits58404/draft-keyupate-idr-bgp-spf-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 seems to contain a disclaimer for pre-RFC5378 work, but was first submitted on or after 10 November 2008. The disclaimer is usually necessary only for documents that revise or obsolete older RFCs, and that take significant amounts of text from those RFCs. If you can contact all authors of the source material and they are willing to grant the BCP78 rights to the IETF Trust, you can and should remove the disclaimer. Otherwise, the disclaimer is needed and you can ignore this comment. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (January 12, 2018) is 1583 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: 'RFC2328' is mentioned on line 584, but not defined == Missing Reference: 'RFC5286' is mentioned on line 613, but not defined == Missing Reference: 'RFC4456' is mentioned on line 588, but not defined == Missing Reference: 'RFC4915' is mentioned on line 608, but not defined == Missing Reference: 'RFC5549' is mentioned on line 618, but not defined ** Obsolete undefined reference: RFC 5549 (Obsoleted by RFC 8950) == Missing Reference: 'RFC4790' is mentioned on line 603, but not defined == Missing Reference: 'RFC4750' is mentioned on line 598, but not defined == Missing Reference: 'RFC4724' is mentioned on line 593, but not defined == Outdated reference: draft-ietf-idr-bgpls-segment-routing-epe has been published as RFC 9086 ** Downref: Normative reference to an Informational RFC: RFC 7938 Summary: 2 errors (**), 0 flaws (~~), 11 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group K. Patel 3 Internet-Draft Arrcus, Inc. 4 Intended status: Standards Track A. Lindem 5 Expires: July 16, 2018 Cisco Systems 6 S. Zandi 7 Linkedin 8 G. Van de Velde 9 Nokia 10 January 12, 2018 12 Shortest Path Routing Extensions for BGP Protocol 13 draft-keyupate-idr-bgp-spf-04.txt 15 Abstract 17 Many Massively Scaled Data Centers (MSDCs) have converged on 18 simplified layer 3 routing. Furthermore, requirements for 19 operational simplicity have lead many of these MSDCs to converge on 20 BGP as their single routing protocol for both their fabric routing 21 and their Data Center Interconnect (DCI) routing. This document 22 describes a solution which leverages BGP Link-State distribution and 23 the Shortest Path First algorithm similar to Internal Gateway 24 Protocols (IGPs) such as OSPF. 26 Status of This Memo 28 This Internet-Draft is submitted in full conformance with the 29 provisions of BCP 78 and BCP 79. 31 Internet-Drafts are working documents of the Internet Engineering 32 Task Force (IETF). Note that other groups may also distribute 33 working documents as Internet-Drafts. The list of current Internet- 34 Drafts is at http://datatracker.ietf.org/drafts/current/. 36 Internet-Drafts are draft documents valid for a maximum of six months 37 and may be updated, replaced, or obsoleted by other documents at any 38 time. It is inappropriate to use Internet-Drafts as reference 39 material or to cite them other than as "work in progress." 41 This Internet-Draft will expire on July 16, 2018. 43 Copyright Notice 45 Copyright (c) 2018 IETF Trust and the persons identified as the 46 document authors. All rights reserved. 48 This document is subject to BCP 78 and the IETF Trust's Legal 49 Provisions Relating to IETF Documents 50 (http://trustee.ietf.org/license-info) in effect on the date of 51 publication of this document. Please review these documents 52 carefully, as they describe your rights and restrictions with respect 53 to this document. Code Components extracted from this document must 54 include Simplified BSD License text as described in Section 4.e of 55 the Trust Legal Provisions and are provided without warranty as 56 described in the Simplified BSD License. 58 This document may contain material from IETF Documents or IETF 59 Contributions published or made publicly available before November 60 10, 2008. The person(s) controlling the copyright in some of this 61 material may not have granted the IETF Trust the right to allow 62 modifications of such material outside the IETF Standards Process. 63 Without obtaining an adequate license from the person(s) controlling 64 the copyright in such materials, this document may not be modified 65 outside the IETF Standards Process, and derivative works of it may 66 not be created outside the IETF Standards Process, except to format 67 it for publication as an RFC or to translate it into languages other 68 than English. 70 Table of Contents 72 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 73 1.1. BGP Shortest Path First (SPF) Motivation . . . . . . . . 4 74 1.2. Requirements Language . . . . . . . . . . . . . . . . . . 5 75 2. BGP Peering Models . . . . . . . . . . . . . . . . . . . . . 5 76 2.1. BGP Single-Hop Peering on Network Node Connections . . . 5 77 2.2. BGP Peering Between Directly Connected Network Nodes . . 5 78 2.3. BGP Peering in Route-Reflector or Controller Topology . . 6 79 3. BGP-LS Shortest Path Routing (SPF) SAFI . . . . . . . . . . . 6 80 4. Extensions to BGP-LS . . . . . . . . . . . . . . . . . . . . 6 81 4.1. Node NLRI Usage and Modifications . . . . . . . . . . . . 6 82 4.2. Link NLRI Usage . . . . . . . . . . . . . . . . . . . . . 7 83 4.3. Prefix NLRI Usage . . . . . . . . . . . . . . . . . . . . 7 84 4.4. BGP-LS Attribute Sequence-Number TLV . . . . . . . . . . 8 85 5. Decision Process with SPF Algorithm . . . . . . . . . . . . . 9 86 5.1. Phase-1 BGP NLRI Selection . . . . . . . . . . . . . . . 9 87 5.2. Dual Stack Support . . . . . . . . . . . . . . . . . . . 10 88 5.3. NEXT_HOP Manipulation . . . . . . . . . . . . . . . . . . 10 89 5.4. NLRI Advertisement and Convergence . . . . . . . . . . . 10 90 5.5. Error Handling . . . . . . . . . . . . . . . . . . . . . 11 91 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 92 7. Security Considerations . . . . . . . . . . . . . . . . . . . 12 93 7.1. Acknowledgements . . . . . . . . . . . . . . . . . . . . 12 94 7.2. Contributorss . . . . . . . . . . . . . . . . . . . . . . 12 95 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 96 8.1. Normative References . . . . . . . . . . . . . . . . . . 12 97 8.2. Information References . . . . . . . . . . . . . . . . . 13 98 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 100 1. Introduction 102 Many Massively Scaled Data Centers (MSDCs) have converged on 103 simplified layer 3 routing. Furthermore, requirements for 104 operational simplicity have lead many of these MSDCs to converge on 105 BGP [RFC4271] as their single routing protocol for both their fabric 106 routing and their Data Center Interconnect (DCI) routing. 107 Requirements and procedures for using BGP are described in [RFC7938]. 108 This document describes an alternative solution which leverages BGP- 109 LS [RFC7752] and the Shortest Path First algorithm similar to 110 Internal Gateway Protocols (IGPs) such as OSPF [RFC2328]. 112 [RFC4271] defines the Decision Process that is used to select routes 113 for subsequent advertisement by applying the policies in the local 114 Policy Information Base (PIB) to the routes stored in its Adj-RIBs- 115 In. The output of the Decision Process is the set of routes that are 116 announced by a BGP speaker to its peers. These selected routes are 117 stored by a BGP speaker in the speaker's Adj-RIBs-Out according to 118 policy. 120 [RFC7752] describes a mechanism by which link-state and TE 121 information can be collected from networks and shared with external 122 components using BGP. This is achieved by defining NLRI carried 123 within BGP-LS AFI and BGP-LS SAFIs. The BGP-LS extensions defined in 124 [RFC7752] makes use of the Decision Process defined in [RFC4271]. 126 This document augments [RFC7752] by replacing its use of the existing 127 Decision Process. The BGP-LS-SPF and BGP-LS-SPF-VPN AFI/SAFI are 128 introduced to insure backward compatibility. The Phase 1 and 2 129 decision functions of the Decision Process are replaced with the 130 Shortest Path Algorithm (SPF) also known as the Dijkstra Algorithm. 131 The Phase 3 decision function is also simplified since it is no 132 longer dependent on the previous phases. This solution avails the 133 benefits of both BGP and SPF-based IGPs. These include TCP based 134 flow-control, no periodic link-state refresh, and completely 135 incremental NLRI advertisement. These advantages can reduce the 136 overhead in MSDCs where there is a high degree of Equal Cost Multi- 137 Path (ECMPs) and the topology is very stable. Additionally, using a 138 SPF-based computation can support fast convergence and the 139 computation of Loop-Free Alternatives (LFAs) [RFC5286] in the event 140 of link failures. Furthermore, a BGP based solution lends itself to 141 multiple peering models including those incorporating route- 142 reflectors [RFC4456] or controllers. 144 Support for Multiple Topology Routing (MTR) as described in [RFC4915] 145 is an area for further study dependent on deployment requirements. 147 1.1. BGP Shortest Path First (SPF) Motivation 149 Given that [RFC7938] already describes how BGP could be used as the 150 sole routing protocol in an MSDC, one might question the motivation 151 for defining an alternate BGP deployment model when a mature solution 152 exists. For both alternatives, BGP offers the operational benefits 153 of a single routing protocol. However, BGP SPF offers some unique 154 advantages above and beyond standard BGP distance-vector routing. 156 A primary advantage is that all BGP speakers in the BGP SPF routing 157 domain will have a complete view of the topology. This will allow 158 support of ECMP, IP fast-reroute (e.g., Loop-Free Alternatives), 159 Shared Risk Link Groups (SRLGs), and other routing enhancements 160 without advertisement of addition BGP paths or other extensions. In 161 short, the advantages of an IGP such as OSPF [RFC2328] are availed in 162 BGP. 164 With the simplified BGP decision process as defined in Section 5.1, 165 NLRI changes can be disseminated throughout the BGP routing domain 166 much more rapidly (equivalent to IGPs with the proper 167 implementation). 169 Another primary advantage is a potential reduction in NLRI 170 advertisement. With standard BGP distance-vector routing, a single 171 link failure may impact 100s or 1000s prefixes and result in the 172 withdrawal or re-advertisement of the attendant NLRI. With BGP SPF, 173 only the BGP speakers corresponding to the link NLRI need withdraw 174 the corresponding BGP-LS Link NLRI. This advantage will contribute 175 to both faster convergence and better scaling. 177 With controller and route-reflector peering models, BGP SPF 178 advertisement and distributed computation require a minimal number of 179 sessions and copies of the NLRI since only the latest verion of the 180 NLRI from the originator is required. Given that verification of the 181 adjacencies is done outside of BGP (see Section 2), each BGP speaker 182 will only need as many sessions and copies of the NLRI as required 183 for redundancy (e.g., one for SPF computation and another for 184 backup). Functions such as Optimized Route Reflection (ORR) are 185 supported without extension by virture of the primary advantages. 186 Additionally, a controller could inject topology that is learned 187 outside the BGP routing domain. 189 Given that controllers are already consuming BGP-LS NLRI [RFC7752], 190 reusing for the BGP-LS SPF leverages the existing controller 191 implementations. 193 Another potential advantage of BGP SPF is that both IPv6 and IPv4 can 194 be supported in the same address family using the same topology. 195 Although not described in this version of the document, multi- 196 topology extensions can be used to support separate IPv4, IPv6, 197 unicast, and multicast topologies while sharing the same NLRI. 199 Finally, the BGP SPF topology can be used as an underlay for other 200 BGP address families (using the existing model) and realize all the 201 above advantages. A simplified peering model using IPv6 link-local 202 addresses as next-hops can be deployed similar to [RFC5549]. 204 1.2. Requirements Language 206 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 207 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 208 document are to be interpreted as described in RFC 2119 [RFC2119]. 210 2. BGP Peering Models 212 Depending on the requirements, scaling, and capabilities of the BGP 213 speakers, various peering models are supported. The only requirement 214 is that all BGP speakers in the BGP SPF routing domain receive link- 215 state NLRI on a timely basis, run an SPF calculation, and update 216 their data plane appropriately. The content of the Link NLRI is 217 described in Section 4.2. 219 2.1. BGP Single-Hop Peering on Network Node Connections 221 The simplest peering model is the one described in section 5.2.1 of 222 [RFC7938]. In this model, EBGP single-hop sessions are established 223 over direct point-to-point links interconnecting the network nodes. 224 For the purposes of BGP SPF, Link NLRI is only advertised if a 225 single-hop BGP session has been established and the Link-State/SPF 226 adddress family capability has been exchanged [RFC4790] on the 227 corresponding session. If the session goes down, the NLRI will be 228 withdrawn. 230 2.2. BGP Peering Between Directly Connected Network Nodes 232 In this model, BGP speakers peer with all directly connected network 233 nodes but the sessions may be multi-hop and the direct connection 234 discovery and liveliness detection for those connections are 235 independent of the BGP protocol. How this is accomplished is outside 236 the scope of this document. Consequently, there will be a single 237 session even if there are multiple direct connections between BGP 238 speakers. For the purposes of BGP SPF, Link NLRI is advertised as 239 long as a BGP session has been established, the Link-State/SPF 240 address family capability has been exchanged [RFC4790] and the 241 corresponding link is up and considered operational. 243 2.3. BGP Peering in Route-Reflector or Controller Topology 245 In this model, BGP speakers peer solely with one or more Route 246 Reflectors [RFC4456] or controllers. As in the previous model, 247 direct connection discovery and liveliness detection for those 248 connections are done outside the BGP protocol. For the purposes of 249 BGP SPF, Link NLRI is advertised as long as the corresponding link is 250 up and considered operational. 252 3. BGP-LS Shortest Path Routing (SPF) SAFI 254 In order to replace the Phase 1 and 2 decision functions of the 255 existing Decision Process with an SPF-based Decision Process and 256 streamline the Phase 3 decision functions in a backward compatible 257 manner, this draft introduces a couple AFI/SAFIs for BGP LS SPF 258 operation. The BGP-LS-SPF (AF 16388 / SAFI TBD1) and BGP-LS-SPF-VPN 259 (AFI 16388 / SAFI TBD2) [RFC4790] are allocated by IANA as specified 260 in the Section 6. 262 4. Extensions to BGP-LS 264 [RFC7752] describes a mechanism by which link-state and TE 265 information can be collected from networks and shared with external 266 components using BGP protocol. It contains two parts: definition of 267 a new BGP NLRI that describes links, nodes, and prefixes comprising 268 IGP link-state information and definition of a new BGP path attribute 269 (BGP-LS attribute) that carries link, node, and prefix properties and 270 attributes, such as the link and prefix metric or auxiliary Router- 271 IDs of nodes, etc. 273 The BGP protocol will be used in the Protocol-ID field specified in 274 table 1 of [I-D.ietf-idr-bgpls-segment-routing-epe]. The local and 275 remote node descriptors for all NLRI will be the BGP Router-ID (TLV 276 516) and either the AS Number (TLV 512) [RFC7752] or the BGP 277 Confederation Member (TLV 517) 278 [I-D.ietf-idr-bgpls-segment-routing-epe]. However, if the BGP 279 Router-ID is known to be unique within the BGP Routing domain, it can 280 be used as the sole descriptor. 282 4.1. Node NLRI Usage and Modifications 284 The SPF capability is a new Node Attribute TLV that will be added to 285 those defined in table 7 of [RFC7752]. The new attribute TLV will 286 only be applicable when BGP is specified in the Node NLRI Protocol ID 287 field. The TBD TLV type will be defined by IANA. The new Node 288 Attribute TLV will contain a single octet SPF algorithm field: 290 0 1 2 3 291 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 292 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 293 | Type | Length | 294 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 295 | SPF Algorithm | 296 +-+-+-+-+-+-+-+-+ 298 The SPF Algorithm may take the following values: 300 1 - Normal SPF 301 2 - Strict SPF 303 When computing the SPF for a given BGP routing domain, only BGP nodes 304 advertising the SPF capability attribute will be included the 305 Shortest Path Tree (SPT). 307 4.2. Link NLRI Usage 309 The criteria for advertisement of Link NLRI are discussed in 310 Section 2. 312 Link NLRI is advertised with local and remote node descriptors as 313 described above and unique link identifiers dependent on the 314 addressing. For IPv4 links, the links local IPv4 (TLV 259) and 315 remote IPv4 (TLV 260) addresses will be used. For IPv6 links, the 316 local IPv6 (TLV 261) and remote IPv6 (TLV 262) addresses will be 317 used. For unnumbered links, the link local/remote identifiers (TLV 318 258) will be used. For links supporting having both IPv4 and IPv6 319 addresses, both sets of descriptors may be included in the same Link 320 NLRI. The link identifiers are described in table 5 of [RFC7752]. 322 The link IGP metric attribute TLV (TLV 1095) as well as any others 323 required for non-SPF purposes SHOULD be advertised. Algorithms such 324 as setting the metric inversely to the link speed as done in the OSPF 325 MIB [RFC4750] may be supported. However, this is beyond the scope of 326 this document. 328 4.3. Prefix NLRI Usage 330 Prefix NLRI is advertised with a local descriptor as described above 331 and the prefix and length used as the descriptors (TLV 265) as 332 described in [RFC7752]. The prefix metric attribute TLV (TLV 1155) 333 as well as any others required for non-SPF purposes SHOULD be 334 advertised. For loopback prefixes, the metric should be 0. For non- 335 loopback, the setting of the metric is beyond the scope of this 336 document. 338 4.4. BGP-LS Attribute Sequence-Number TLV 340 A new BGP-LS Attribute TLV to BGP-LS NLRI types is defined to assure 341 the most recent version of a given NLRI is used in the SPF 342 computation. The TBD TLV type will be defined by IANA. The new BGP- 343 LS Attribute TLV will contain an 8 octet sequence number. The usage 344 of the Sequence Number TLV is described in Section 5.1. 346 0 1 2 3 347 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 348 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 349 | Type | Length | 350 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 351 | Sequence Number (High-Order 32 Bits) | 352 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 353 | Sequence Number (Low-Order 32 Bits) | 354 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 356 Sequence Number 358 The 64-bit strictly increasing sequence number is incremented for 359 every version of BGP-LS NLRI originated. BGP speakers implementing 360 this specification MUST use available mechanisms to preserve the 361 sequence number's strictly increasing property for the deployed life 362 of the BGP speaker (including cold restarts). One mechanism for 363 accomplishing this would be to use the high-order 32 bits of the 364 sequence number as a wrap/boot count that is incremented anytime the 365 BGP Router router loses its sequence number state or the low-order 32 366 bits wrap. 368 When incrementing the sequence number for each self-originated NLRI, 369 the sequence number should be treated as an unsigned 64-bit value. 370 If the lower-order 32-bit value wraps, the higher-order 32-bit value 371 should be incremented and saved in non-volatile storage. If by some 372 chance the BGP Speaker is deployed long enough that there is a 373 possibility that the 64-bit sequence number may wrap or a BGP Speaker 374 completely loses its sequence number state (e.g, the BGP speaker 375 hardware is replaced), the phase 1 decision function (see 376 Section 5.1) rules should insure convergance, albeit, not 377 immediately. 379 5. Decision Process with SPF Algorithm 381 The Decision Process described in [RFC4271] takes place in three 382 distinct phases. The Phase 1 decision function of the Decision 383 Process is responsible for calculating the degree of preference for 384 each route received from a Speaker's peer. The Phase 2 decision 385 function is invoked on completion of the Phase 1 decision function 386 and is responsible for choosing the best route out of all those 387 available for each distinct destination, and for installing each 388 chosen route into the Loc-RIB. The combination of the Phase 1 and 2 389 decision functions is also known as a Path vector algorithm. 391 When BGP-LS-SPF NLRI is received, all that is required is to 392 determine whether it is the best-path by examining the Node-ID and 393 sequence number as described in Section 5.1. If the best-path NLRI 394 had changed, it will be advertised to other BGP-LS-SPF peers. If the 395 attributes have changed (other than the sequence number), a BGP SPF 396 calculation will be scheduled. However, a changed best-path can be 397 advertised to other peer immediately and propagation of changes can 398 approach IGP convergence times. 400 The SPF based Decision process starts with selecting only those Node 401 NLRI whose SPF capability TLV matches with the local BGP speaker's 402 SPF capability TLV value. Since Link-State NLRI always contains the 403 local descriptor [RFC7752], it will only be originated by a single 404 BGP speaker in the BGP routing domain. These selected Node NLRI and 405 their Link/Prefix NLRI are used to build a directed graph during the 406 SPF computation. The best paths for BGP prefixes are installed as a 407 result of the SPF process. 409 The Phase 3 decision function of the Decision Process [RFC4271] is 410 also simplified since under normal SPF operation, a BGP speaker would 411 advertise the NLRI selected for the SPF to all BGP peers with the 412 BGP-LS/BGP-SPF AFI/SAFI. Application of policy would not be 413 prevented but would normally not be necessary. 415 5.1. Phase-1 BGP NLRI Selection 417 The rules for NLRI selection are greatly simplified from [RFC4271]. 419 1. If the NLRI is received from the BGP speaker originating the NLRI 420 (as determined by the comparing BGP Router ID in the NLRI Node 421 identifiers with the BGP speaker Router ID), then it is preferred 422 over the same NLRI from non-originators. 424 2. If the Sequence-Number TLV is present in the BGP-LS Attribute, 425 then the NLIR with the most recent, i.e., highest sequence number 426 is selected. BGP-LS NLRI with a Sequence-Number TLV will be 427 considered more recent than NLRI without a BGP-LS or a BGP-LS 428 Attribute that doesn't include the Sequence-Number TLV. 430 3. The final tie-breaker is the NLRI from the BGP Speaker with the 431 numerically largest BGP Router ID. 433 The modified Decision Process with SPF algorithm uses the metric from 434 Link and Prefix NLRI Attribute TLVs [RFC7752]. As a result, any 435 attributes that would influence the Decision process defined in 436 [RFC4271] like ORIGIN, MULTI_EXIT_DISC, and LOCAL_PREF attributes are 437 ignored by the SPF algorithm. Furthermore, the NEXT_HOP attribute 438 value is preserved and validated but otherwise ignored during the SPF 439 or best-path. 441 5.2. Dual Stack Support 443 The SPF based decision process operates on Node, Link, and Prefix 444 NLRIs that support both IPv4 and IPv6 addresses. Whether to run a 445 single SPF instance or multiple SPF instances for separate AFs is a 446 matter of a local implementation. Normally, IPv4 next-hops are 447 calculated for IPv4 prefixes and IPv6 next-hops are calculated for 448 IPv6 prefixes. However, an interesting use-case is deployment of 449 [RFC5549] where IPv6 link-local next-hops are calculated for both 450 IPv4 and IPv6 prefixes. As stated in Section 1, support for Multiple 451 Topology Routing (MTR) is an area for future study. 453 5.3. NEXT_HOP Manipulation 455 A BGP speaker that supports SPF extensions MAY interact with peers 456 that don't support SPF extensions. If the BGP Link-State address 457 family is advertised to a peer not supporting the SPF extensions 458 described herein, then the BGP speaker MUST conform to the NEXT_HOP 459 rules mentioned in [RFC4271] when announcing the Link-State address 460 family routes to those peers. 462 All BGP peers that support SPF extensions would locally compute the 463 NEXT_HOP values as result of the SPF process. As a result, the 464 NEXT_HOP attribute is always ignored on receipt. However BGP 465 speakers should set the NEXT_HOP address according to the NEXT_HOP 466 attribute rules mentioned in [RFC4271]. 468 5.4. NLRI Advertisement and Convergence 470 A local failure will prevent a link from being used in the SPF 471 calculation due to the IGP bi-directional connectivity requirment. 472 Consequently, local link failues should always be given priority over 473 updates (e.g., withdrawing all routes learned on a session) in order 474 to ensure the highest priority progation and optimal convergence. 476 Delaying the withdrawal of non-local routes is an area for further 477 study as more IGP-like mechanisms would be required to prevent usage 478 of stale NLRI. 480 5.5. Error Handling 482 When a BGP speaker receives a BGP Update containing a malformed SPF 483 Capability TLV in the Node NLRI BGP-LS Attribute [RFC7752], it MUST 484 ignore the received TLV and the Node NLRI and not pass it to other 485 BGP peers as specified in [RFC7606]. When discarding a Node NLRI 486 with malformed TLV, a BGP speaker SHOULD log an error for further 487 analysis. 489 6. IANA Considerations 491 This document defines a couple AFI/SAFIs for BGP LS SPF operation and 492 requests IANA to assign the BGP-LS-SPF AFI 16388 / SAFI TBD1 and the 493 BGP-LS-SPF-VPN AFI 16388 / SAFI TBD2 as described in [RFC4750]. 495 This document also defines two attribute TLV for BGP LS NLRI. We 496 request IANA to assign TLVs for the SPF capability and the Sequence 497 Number from the "BGP-LS Node Descriptor, Link Descriptor, Prefix 498 Descriptor, and Attribute TLVs" Registry. Additionally, IANA is 499 requested to create a new registry for "BGP-LS SPF Capability 500 Algorithms" for the value of the algorithm both in the BGP-LS Node 501 Attribute TLV and the BGP SPF Capability. The initial assignments 502 are: 504 +-------------+-----------------------------------+ 505 | Value(s) | Assignment Policy | 506 +-------------+-----------------------------------+ 507 | 0 | Reserved (not to be assigned) | 508 | | | 509 | 1 | SPF | 510 | | | 511 | 2 | Strict SPF | 512 | | | 513 | 3-254 | Unassigned (IETF Review) | 514 | | | 515 | 255 | Reserved (not to be assigned) | 516 +-------------+-----------------------------------+ 518 BGP-LS SPF Capability Algorithms 520 7. Security Considerations 522 This extension to BGP does not change the underlying security issues 523 inherent in the existing [RFC4724] and [RFC4271]. 525 7.1. Acknowledgements 527 The authors would like to thank .... for the review and comments. 529 7.2. Contributorss 531 In addition to the authors listed on the front page, the following 532 co-authors have contributed to the document. 534 Derek Yeung 535 Arrcus, Inc. 536 derek@arrcus.com 538 Abhay Roy 539 Cisco Systems 540 akr@cisco.com 542 Venu Venugopal 543 Cisco Systems 544 venuv@cisco.com 546 8. References 548 8.1. Normative References 550 [I-D.ietf-idr-bgpls-segment-routing-epe] 551 Previdi, S., Filsfils, C., Patel, K., Ray, S., and J. 552 Dong, "BGP-LS extensions for Segment Routing BGP Egress 553 Peer Engineering", draft-ietf-idr-bgpls-segment-routing- 554 epe-14 (work in progress), December 2017. 556 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 557 Requirement Levels", BCP 14, RFC 2119, 558 DOI 10.17487/RFC2119, March 1997, . 561 [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A 562 Border Gateway Protocol 4 (BGP-4)", RFC 4271, 563 DOI 10.17487/RFC4271, January 2006, . 566 [RFC7606] Chen, E., Ed., Scudder, J., Ed., Mohapatra, P., and K. 567 Patel, "Revised Error Handling for BGP UPDATE Messages", 568 RFC 7606, DOI 10.17487/RFC7606, August 2015, 569 . 571 [RFC7752] Gredler, H., Ed., Medved, J., Previdi, S., Farrel, A., and 572 S. Ray, "North-Bound Distribution of Link-State and 573 Traffic Engineering (TE) Information Using BGP", RFC 7752, 574 DOI 10.17487/RFC7752, March 2016, . 577 [RFC7938] Lapukhov, P., Premji, A., and J. Mitchell, Ed., "Use of 578 BGP for Routing in Large-Scale Data Centers", RFC 7938, 579 DOI 10.17487/RFC7938, August 2016, . 582 8.2. Information References 584 [RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, 585 DOI 10.17487/RFC2328, April 1998, . 588 [RFC4456] Bates, T., Chen, E., and R. Chandra, "BGP Route 589 Reflection: An Alternative to Full Mesh Internal BGP 590 (IBGP)", RFC 4456, DOI 10.17487/RFC4456, April 2006, 591 . 593 [RFC4724] Sangli, S., Chen, E., Fernando, R., Scudder, J., and Y. 594 Rekhter, "Graceful Restart Mechanism for BGP", RFC 4724, 595 DOI 10.17487/RFC4724, January 2007, . 598 [RFC4750] Joyal, D., Ed., Galecki, P., Ed., Giacalone, S., Ed., 599 Coltun, R., and F. Baker, "OSPF Version 2 Management 600 Information Base", RFC 4750, DOI 10.17487/RFC4750, 601 December 2006, . 603 [RFC4790] Newman, C., Duerst, M., and A. Gulbrandsen, "Internet 604 Application Protocol Collation Registry", RFC 4790, 605 DOI 10.17487/RFC4790, March 2007, . 608 [RFC4915] Psenak, P., Mirtorabi, S., Roy, A., Nguyen, L., and P. 609 Pillay-Esnault, "Multi-Topology (MT) Routing in OSPF", 610 RFC 4915, DOI 10.17487/RFC4915, June 2007, 611 . 613 [RFC5286] Atlas, A., Ed. and A. Zinin, Ed., "Basic Specification for 614 IP Fast Reroute: Loop-Free Alternates", RFC 5286, 615 DOI 10.17487/RFC5286, September 2008, . 618 [RFC5549] Le Faucheur, F. and E. Rosen, "Advertising IPv4 Network 619 Layer Reachability Information with an IPv6 Next Hop", 620 RFC 5549, DOI 10.17487/RFC5549, May 2009, 621 . 623 Authors' Addresses 625 Keyur Patel 626 Arrcus, Inc. 628 Email: keyur@arrcus.com 630 Acee Lindem 631 Cisco Systems 632 301 Midenhall Way 633 Cary, NC 27513 634 USA 636 Email: acee@cisco.com 638 Shawn Zandi 639 Linkedin 640 222 2nd Street 641 San Francisco, CA 94105 642 USA 644 Email: szandi@linkedin.com 646 Gunter Van de Velde 647 Nokia 648 Antwerp 649 Belgium 651 Email: gunter.van_de_velde@nokia.com