draft-ietf-lsvr-bgp-spf-51.original   draft-ietf-lsvr-bgp-spf-51.txt 
Link State Vector Routing (LSVR) Working Group K. Patel Internet Engineering Task Force (IETF) K. Patel
Internet-Draft Arrcus, Inc. Request for Comments: 0000 Arrcus, Inc.
Intended status: Standards Track A. Lindem Category: Standards Track A. Lindem
Expires: 27 July 2025 LabN Consulting, LLC ISSN: 2070-1721 LabN Consulting, LLC
S. Zandi S. Zandi
LinkedIn LinkedIn
W. Henderickx W. Henderickx
Nokia Nokia
23 January 2025 June 2025
BGP Link-State Shortest Path First (SPF) Routing BGP Link-State Shortest Path First (SPF) Routing
draft-ietf-lsvr-bgp-spf-51
Abstract Abstract
Many Massively Scaled Data Centers (MSDCs) have converged on Many Massively Scaled Data Centers (MSDCs) have converged on
simplified L3 (Layer 3) routing. Furthermore, requirements for simplified Layer 3 (L3) routing. Furthermore, requirements for
operational simplicity has led many of these MSDCs to converge on BGP operational simplicity has led many of these MSDCs to converge on BGP
as their single routing protocol for both their fabric routing and as their single routing protocol for both fabric routing and Data
their Data Center Interconnect (DCI) routing. This document Center Interconnect (DCI) routing. This document describes
describes extensions to BGP to use BGP Link-State distribution and extensions to BGP for use with BGP - Link-State (BGP-LS) distribution
the Shortest Path First (SPF) algorithm. In doing this, it allows and the Shortest Path First (SPF) algorithm. In doing this, it
BGP to be efficiently used as both the underlay protocol and the allows BGP to be efficiently used as both the underlay protocol and
overlay protocol in MSDCs. the overlay protocol in MSDCs.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This is an Internet Standards Track document.
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months This document is a product of the Internet Engineering Task Force
and may be updated, replaced, or obsoleted by other documents at any (IETF). It represents the consensus of the IETF community. It has
time. It is inappropriate to use Internet-Drafts as reference received public review and has been approved for publication by the
material or to cite them other than as "work in progress." Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 7841.
This Internet-Draft will expire on 27 July 2025. Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
https://www.rfc-editor.org/info/rfc0000.
Copyright Notice Copyright Notice
Copyright (c) 2025 IETF Trust and the persons identified as the Copyright (c) 2025 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents
license-info) in effect on the date of publication of this document. (https://trustee.ietf.org/license-info) in effect on the date of
Please review these documents carefully, as they describe your rights publication of this document. Please review these documents
and restrictions with respect to this document. Code Components carefully, as they describe your rights and restrictions with respect
extracted from this document must include Revised BSD License text as to this document. Code Components extracted from this document must
described in Section 4.e of the Trust Legal Provisions and are include Revised BSD License text as described in Section 4.e of the
provided without warranty as described in the Revised BSD License. Trust Legal Provisions and are provided without warranty as described
in the Revised BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 1.1. Terminology
1.2. BGP Shortest Path First (SPF) Motivation . . . . . . . . 4 1.2. BGP Shortest Path First (SPF) Motivation
1.3. Document Overview . . . . . . . . . . . . . . . . . . . . 6 1.3. Document Overview
1.4. Requirements Language . . . . . . . . . . . . . . . . . . 6 1.4. Requirements Language
2. Base BGP Protocol Relationship . . . . . . . . . . . . . . . 6 2. Base BGP Protocol Relationship
3. BGP Link-State (BGP-LS) Relationship . . . . . . . . . . . . 7 3. BGP - Link-State (BGP-LS) Relationship
4. BGP SPF Peering Models . . . . . . . . . . . . . . . . . . . 8 4. BGP SPF Peering Models
4.1. BGP Single-Hop Peering on Network Node Connections . . . 8 4.1. BGP Single-Hop Peering on Network Node Connections
4.2. BGP Peering Between Directly-Connected Nodes . . . . . . 8 4.2. BGP Peering Between Directly Connected Nodes
4.3. BGP Peering in Route-Reflector or Controller Topology . . 9 4.3. BGP Peering in Route-Reflector or Controller Topology
5. BGP Shortest Path Routing (SPF) Protocol Extensions . . . . . 9 5. BGP Shortest Path Routing (SPF) Protocol Extensions
5.1. BGP-LS Shortest Path Routing (SPF) SAFI . . . . . . . . . 10 5.1. BGP-LS Shortest Path Routing (SPF) SAFI
5.1.1. BGP-LS-SPF NLRI TLVs . . . . . . . . . . . . . . . . 10 5.1.1. BGP-LS-SPF NLRI TLVs
5.1.2. BGP-LS Attribute . . . . . . . . . . . . . . . . . . 10 5.1.2. BGP-LS Attribute
5.2. Extensions to BGP-LS . . . . . . . . . . . . . . . . . . 11 5.2. Extensions to BGP-LS
5.2.1. Node NLRI Usage . . . . . . . . . . . . . . . . . . . 11 5.2.1. Node NLRI Usage
5.2.1.1. BGP-LS-SPF Node NLRI Attribute SPF Status TLV . . 11 5.2.1.1. BGP-LS-SPF Node NLRI Attribute SPF Status TLV
5.2.2. Link NLRI Usage . . . . . . . . . . . . . . . . . . . 12 5.2.2. Link NLRI Usage
5.2.2.1. BGP-LS Link NLRI Address Family Link Descriptor 5.2.2.1. BGP-LS Link NLRI Address Family Link Descriptor TLV
TLV . . . . . . . . . . . . . . . . . . . . . . . . 13 5.2.2.2. BGP-LS-SPF Link NLRI Attribute SPF Status TLV
5.2.2.2. BGP-LS-SPF Link NLRI Attribute SPF Status TLV . . 14 5.2.3. IPv4/IPv6 Prefix NLRI Usage
5.2.3. IPv4/IPv6 Prefix NLRI Usage . . . . . . . . . . . . . 15 5.2.3.1. BGP-LS-SPF Prefix NLRI Attribute SPF Status TLV
5.2.3.1. BGP-LS-SPF Prefix NLRI Attribute SPF Status 5.2.4. BGP-LS Attribute Sequence Number TLV
TLV . . . . . . . . . . . . . . . . . . . . . . . . 15 5.3. BGP-LS-SPF End of RIB (EoR) Marker
5.2.4. BGP-LS Attribute Sequence Number TLV . . . . . . . . 16 5.4. BGP Next-Hop Information
5.3. BGP-LS-SPF End of RIB (EoR) Marker . . . . . . . . . . . 17 6. Decision Process with the SPF Algorithm
5.4. BGP Next-Hop Information . . . . . . . . . . . . . . . . 17 6.1. BGP SPF NLRI Selection
6. Decision Process with SPF Algorithm . . . . . . . . . . . . . 17 6.1.1. BGP Self-Originated NLRI
6.1. BGP SPF NLRI Selection . . . . . . . . . . . . . . . . . 18 6.2. Dual Stack Support
6.1.1. BGP Self-Originated NLRI . . . . . . . . . . . . . . 19 6.3. SPF Calculation Based on BGP-LS-SPF NLRI
6.2. Dual Stack Support . . . . . . . . . . . . . . . . . . . 20 6.4. IPv4/IPv6 Unicast Address Family Interaction
6.3. SPF Calculation based on BGP-LS-SPF NLRI . . . . . . . . 20 6.5. NLRI Advertisement
6.4. IPv4/IPv6 Unicast Address Family Interaction . . . . . . 25 6.5.1. Link/Prefix Failure Convergence
6.5. NLRI Advertisement . . . . . . . . . . . . . . . . . . . 25 6.5.2. Node Failure Convergence
6.5.1. Link/Prefix Failure Convergence . . . . . . . . . . . 25 7. Error Handling
6.5.2. Node Failure Convergence . . . . . . . . . . . . . . 26 7.1. Processing of BGP-LS-SPF TLVs
7.2. Processing of BGP-LS-SPF NLRIs
7. Error Handling . . . . . . . . . . . . . . . . . . . . . . . 26 7.3. Processing of BGP-LS Attributes
7.1. Processing of BGP-LS-SPF TLVs . . . . . . . . . . . . . . 26 7.4. BGP-LS-SPF Link-State NLRI Database Synchronization
7.2. Processing of BGP-LS-SPF NLRIs . . . . . . . . . . . . . 28 8. IANA Considerations
7.3. Processing of BGP-LS Attribute . . . . . . . . . . . . . 28 8.1. BGP-LS-SPF Allocation in the SAFI Values Registry
7.4. BGP-LS-SPF Link State NLRI Database Synchronization . . . 28 8.2. BGP-LS-SPF Assignments in the BGP-LS NLRI and Attribute
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 28 TLVs Registry
8.1. BGP-LS-SPF Allocation in SAFI Parameters Registry . . . . 28
8.2. BGP-LS-SPF Assignments to BGP-LS NLRI and Attribute TLV
Registry . . . . . . . . . . . . . . . . . . . . . . . . 28
8.3. BGP-LS-SPF Node NLRI Attribute SPF Status TLV Status 8.3. BGP-LS-SPF Node NLRI Attribute SPF Status TLV Status
Registry . . . . . . . . . . . . . . . . . . . . . . . . 29 Registry
8.4. BGP-LS-SPF Link NLRI Attribute SPF Status TLV Status 8.4. BGP-LS-SPF Link NLRI Attribute SPF Status TLV Status
Registry . . . . . . . . . . . . . . . . . . . . . . . . 30 Registry
8.5. BGP-LS-SPF Prefix NLRI Attribute SPF Status TLV Status 8.5. BGP-LS-SPF Prefix NLRI Attribute SPF Status TLV Status
Registry . . . . . . . . . . . . . . . . . . . . . . . . 30 Registry
8.6. BGP Error (Notification) Code Assignment . . . . . . . . 31 8.6. Assignment in the BGP Error (Notification) Codes Registry
9. Security Considerations . . . . . . . . . . . . . . . . . . . 31 9. Security Considerations
10. Management Considerations . . . . . . . . . . . . . . . . . . 32 10. Management Considerations
10.1. Configuration . . . . . . . . . . . . . . . . . . . . . 32 10.1. Configuration
10.2. Link Metric Configuration . . . . . . . . . . . . . . . 32 10.2. Link Metric Configuration
10.3. Unnumbered Link Configuration . . . . . . . . . . . . . 32 10.3. Unnumbered Link Configuration
10.4. Adjacency End-of-RIB (EOR) Marker Requirement . . . . . 32 10.4. Adjacency End-of-RIB (EOR) Marker Requirement
10.5. backoff-config . . . . . . . . . . . . . . . . . . . . . 33 10.5. backoff-config
10.6. BGP-LS-SPF NLRI Readvertisement Delay . . . . . . . . . 33 10.6. BGP-LS-SPF NLRI Readvertisement Delay
10.7. Operational Data . . . . . . . . . . . . . . . . . . . . 33 10.7. Operational Data
10.8. BGP-LS-SPF Address Family Session Isolation . . . . . . 33 10.8. BGP-LS-SPF Address Family Session Isolation
11. Implementation Status . . . . . . . . . . . . . . . . . . . . 34 10.9. Acknowledgements
12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 34 10.10. Contributors
13. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 35 11. References
14. References . . . . . . . . . . . . . . . . . . . . . . . . . 35 11.1. Normative References
14.1. Normative References . . . . . . . . . . . . . . . . . . 35 11.2. Informative References
14.2. Informational References . . . . . . . . . . . . . . . . 37 Authors' Addresses
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 39
1. Introduction 1. Introduction
Many Massively Scaled Data Centers (MSDCs) have converged on Many Massively Scaled Data Centers (MSDCs) have converged on
simplified L3 (Layer 3) routing. Furthermore, requirements for simplified Layer 3 (L3) routing. Furthermore, requirements for
operational simplicity has led many of these MSDCs to converge on BGP operational simplicity has led many of these MSDCs to converge on BGP
[RFC4271] as their single routing protocol for both their fabric [RFC4271] as their single routing protocol for both fabric routing
routing and their Data Center Interconnect (DCI) routing [RFC7938]. and Data Center Interconnect (DCI) routing [RFC7938]. This document
This document describes an alternative solution which leverages BGP- describes an alternative solution that leverages BGP-LS [RFC9552] and
LS [RFC9552] and the Shortest Path First algorithm used by Internal the Shortest Path First (SPF) algorithm used by Internal Gateway
Gateway Protocols (IGPs). Protocols (IGPs).
This document leverages both the BGP protocol [RFC4271] and the BGP- This document leverages both the BGP protocol [RFC4271] and BGP-LS
LS [RFC9552] extensions. The relationship, as well as the scope of extensions [RFC9552]. The relationship as well as the scope of
changes is described respectively in Section 2 and Section 3. The changes are described in Sections 2 and 3, respectively. The
modifications to [RFC4271] for BGP SPF described herein only apply to modifications to [RFC4271] for BGP SPF described herein only apply to
IPv4 and IPv6 as underlay unicast Subsequent Address Families IPv4 and IPv6 as underlay unicast Subsequent Address Family
Identifiers (SAFIs). Operations for any other BGP SAFIs are outside Identifiers (SAFIs). Operations for any other BGP SAFIs are outside
the scope of this document. the scope of this document.
This solution avails the benefits of both BGP and SPF-based IGPs. This solution avails the benefits of both BGP and SPF-based IGPs.
These include TCP-based flow-control, no periodic link-state refresh, These include TCP-based flow-control, no periodic link-state refresh,
and completely incremental NLRI advertisement. These advantages can and completely incremental Network Layer Reachability Information
reduce the overhead in MSDCs where there is a high degree of Equal (NLRI) advertisement. These advantages can reduce the overhead in
Cost Multi-Path (ECMP) load-balancing. Additionally, using an SPF- MSDCs where there is a high degree of Equal-Cost Multipath (ECMP)
based computation can support fast convergence and the computation of load balancing. Additionally, using an SPF-based computation can
Loop-Free Alternatives (LFAs). The SPF LFA extensions defined in support fast convergence and the computation of Loop-Free
[RFC5286] can be similarly applied to BGP SPF calculations. However, Alternatives (LFAs). The SPF LFA extensions defined in [RFC5286] can
the details are a matter of implementation detail and out of scope be similarly applied to BGP SPF calculations. However, the details
for this document. Furthermore, a BGP-based solution lends itself to are a matter of implementation detail and out of scope for this
multiple peering models including those incorporating route- document. Furthermore, a BGP-based solution lends itself to multiple
reflectors [RFC4456] or controllers. peering models including those incorporating route reflectors
[RFC4456] or controllers.
1.1. Terminology 1.1. Terminology
This specification reuses terms defined in section 1.1 of [RFC4271]. This specification reuses terms defined in Section 1.1 of [RFC4271].
Additionally, this document introduces the following terms: Additionally, this document introduces the following terms:
BGP SPF Routing Domain: A set of BGP routers that are under a single BGP SPF Routing Domain: A set of BGP routers that are under a single
administrative domain and exchange link-state information using administrative domain and that exchange link-state information
the BGP-LS-SPF SAFI and compute routes using BGP SPF as described using the BGP-LS-SPF SAFI and compute routes that use BGP SPF, as
herein. described herein.
BGP-LS-SPF NLRI: This refers to BGP-LS Network Layer Reachability BGP-LS-SPF NLRI: The BGP-LS Network Layer Reachability Information
Information (NLRI) that is being advertised in the BGP-LS-SPF SAFI (NLRI) that is being advertised in the BGP-LS-SPF SAFI
(Section 5.1) and is being used for BGP SPF route computation. (Section 5.1) and is being used for BGP SPF route computation.
Dijkstra Algorithm: An algorithm for computing the shortest path Dijkstra Algorithm: An algorithm for computing the shortest path
from a given node in a graph to every other node in the graph. from a given node in a graph to every other node in the graph.
Prefix NLRI: In the context of BGP SPF, this term refers to both or Prefix NLRI: In the context of BGP SPF, this term refers to the IPv4
either the IPv4 Topology Prefix NLRI and/or the IPv6 Topology Topology Prefix NLRI and/or the IPv6 Topology Prefix NLRI.
Prefix NLRI.
1.2. BGP Shortest Path First (SPF) Motivation 1.2. BGP Shortest Path First (SPF) Motivation
Given that [RFC7938] already describes how BGP could be used as the Given that [RFC7938] already describes how BGP could be used as the
sole routing protocol in an MSDC, one might question the motivation sole routing protocol in an MSDC, one might question the motivation
for defining an alternative BGP deployment model when a mature for defining an alternative BGP deployment model when a mature
solution exists. For both alternatives, BGP offers the operational solution exists. For both alternatives, BGP offers the operational
benefits of a single routing protocol as opposed to the combination benefits of a single routing protocol as opposed to the combination
of an IGP for the underlay and BGP as an overlay. However, BGP SPF of IGP for the underlay and BGP as the overlay. However, BGP SPF
offers some unique advantages above and beyond standard BGP path- offers some unique advantages above and beyond standard BGP path-
vector routing. With BGP SPF, the simple single-hop peering model vector routing. With BGP SPF, the simple single-hop peering model
recommended in section 5.2.1 of [RFC7938] is augmented with peering recommended in Section 5.2.1 of [RFC7938] is augmented with peering
models requiring fewer BGP sessions. models requiring fewer BGP sessions.
A primary advantage is that all BGP speakers in the BGP SPF routing A primary advantage is that all BGP speakers in the BGP SPF routing
domain have a complete view of the topology. This allows support for domain have a complete view of the topology. This allows support for
ECMP, IP fast-reroute (e.g., Loop-Free Alternatives) [RFC5286], ECMP, IP fast-reroute (e.g., Loop-Free Alternatives (LFAs) [RFC5286],
Shared Risk Link Groups (SRLGs) [RFC4202], and other routing Shared Risk Link Groups (SRLGs) [RFC4202], and other routing
enhancements without advertisement of additional BGP paths [RFC7911] enhancements without advertisement of additional BGP paths [RFC7911]
or other extensions. or other extensions.
With the BGP SPF decision process as defined in Section 6, NLRI With the BGP SPF decision process as defined in Section 6, NLRI
changes can be disseminated throughout the BGP routing domain much changes can be disseminated throughout the BGP routing domain much
more rapidly. The added advantage of BGP using TCP for reliable more rapidly. The added advantage of BGP using TCP for reliable
transport leverages TCP's inherent flow-control and guaranteed in- transport leverages TCP's inherent flow-control and guaranteed in-
order delivery. order delivery.
Another primary advantage is a potential reduction in NLRI Another primary advantage is a potential reduction in NLRI
advertisement. With standard BGP path-vector routing, a single link advertisement. With standard BGP path-vector routing, a single link
failure may impact 100s or 1000s of prefixes and result in the failure may impact 100s or 1000s of prefixes and result in the
withdrawal or re-advertisement of the attendant NLRI. With BGP SPF, withdrawal or readvertisement of the attendant NLRI. With BGP SPF,
only the BGP speakers originating the link NLRI need to withdraw the only the BGP speakers originating the link NLRI need to withdraw the
corresponding BGP-LS-SPF Link NLRI. Additionally, the changed NLRI corresponding BGP-LS-SPF Link NLRI. Additionally, the changed NLRI
is advertised immediately as opposed to normal BGP where it is only is advertised immediately as opposed to normal BGP where it is only
advertised after the best route selection. These advantages provide advertised after the best route selection. These advantages provide
NLRI dissemination throughout the BGP SPF routing domain with NLRI dissemination throughout the BGP SPF routing domain with
efficiencies similar to link-state protocols. efficiencies similar to link-state protocols.
With controller and route-reflector peering models, BGP SPF With controller and route-reflector peering models, BGP SPF
advertisement and distributed computation require a minimal number of advertisement and distributed computation require a minimal number of
sessions and copies of the NLRI since only the latest version of the sessions and copies of the NLRI as only the latest version of the
NLRI from the originator is required (see Section 4). Given that NLRI from the originator is required (see Section 4). Given that
verification of whether or not to advertise a link (with a BGP-LS-SPF verification of whether or not to advertise a link (with a BGP-LS-SPF
Link NLRI) is done outside of BGP, each BGP speaker only needs as Link NLRI) is done outside of BGP, each BGP speaker only needs as
many sessions and copies of the NLRI as required for redundancy. many sessions and copies of the NLRI as required for redundancy.
Additionally, a controller could inject topology (i.e., BGP-LS-SPF Additionally, a controller could inject topology (i.e., BGP-LS-SPF
NLRI) that is learned outside the BGP SPF routing domain. NLRI) that is learned outside the BGP SPF routing domain.
Given BGP-LS NLRI is already defined [RFC9552], this functionality Given that BGP-LS NLRI is already defined [RFC9552], this
can be reused for BGP-LS-SPF NLRI. functionality can be reused for BGP-LS-SPF NLRI.
Another advantage of BGP SPF is that both IPv6 and IPv4 can be Another advantage of BGP SPF is that both IPv6 and IPv4 can be
supported using the BGP-LS-SPF SAFI with the same BGP-LS-SPF Link supported using the BGP-LS-SPF SAFI with the same BGP-LS-SPF Link
NLRIs. In many MSDC fabrics, the IPv4 and IPv6 topologies are NLRIs. In many MSDC fabrics, the IPv4 and IPv6 topologies are
congruent (refer to Section 5.2.2). Although beyond the scope of congruent (refer to Section 5.2.2). However, beyond the scope of
this document, BGP-LS-SPF NLRI multi-topology extensions could be this document, BGP-LS-SPF NLRI multi-topology extensions could be
defined to support separate IPv4, IPv6, unicast, and multicast defined to support separate IPv4, IPv6, unicast, and multicast
topologies while sharing the same NLRI. topologies while sharing the same NLRI.
Finally, the BGP SPF topology can be used as an underlay for other Finally, the BGP SPF topology can be used as an underlay for other
BGP SAFIs (using the existing model) and realize all the above BGP SAFIs (using the existing model) and realize all the above
advantages. advantages.
1.3. Document Overview 1.3. Document Overview
The document begins with sections defining the precise relationship This document begins with Section 2 defining the precise relationship
that BGP SPF has with both the base BGP protocol [RFC4271] that BGP SPF has with the base BGP protocol [RFC4271] and Section 3
(Section 2) and the BGP Link-State (BGP-LS) extensions [RFC9552] defining the BGP - Link-State (BGP-LS) extensions [RFC9552]. The BGP
(Section 3). The BGP peering models, as well as their respective peering models as well as their respective trade-offs are then
trade-offs are then discussed in Section 4. The remaining sections, discussed in Section 4. The remaining sections, which make up the
which make up the bulk of the document, define the protocol bulk of the document, define the protocol enhancements necessary to
enhancements necessary to support BGP SPF including BGP-LS Extensions support BGP SPF including BGP-LS extensions (Section 5), replacement
(Section 5), replacement of the base BGP decision process with the of the base BGP decision process with the SPF computation
SPF computation (Section 6), and BGP SPF error handling (Section 7). (Section 6), and BGP SPF error handling (Section 7).
1.4. Requirements Language 1.4. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP "OPTIONAL" in this document are to be interpreted as described in
14 [RFC2119] [RFC8174] when, and only when, they appear in all BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
2. Base BGP Protocol Relationship 2. Base BGP Protocol Relationship
With the exception of the decision process, the BGP SPF extensions With the exception of the decision process, BGP SPF extensions
leverage the BGP protocol [RFC4271] without change. This includes leverage the BGP protocol [RFC4271] without change. This includes
the BGP protocol Finite State Machine, BGP messages and their the BGP protocol Finite State Machine, BGP messages and their
encodings, processing of BGP messages, BGP attributes and path encodings, the processing of BGP messages, BGP attributes and path
attributes, BGP NLRI encodings, and any error handling defined in attributes, BGP NLRI encodings, and any error handling defined in
[RFC4271], [RFC4760], and [RFC7606]. [RFC4271], [RFC4760], and [RFC7606].
Due to the changes to the decision process, there are mechanisms and Due to changes in the decision process, there are mechanisms and
encodings that are no longer applicable. Unless explicitly specified encodings that are no longer applicable. Unless explicitly specified
in the context of BGP SPF, all optional path attributes SHOULD NOT be in the context of BGP SPF, all optional path attributes SHOULD NOT be
advertised. If received, all path attributes MUST be accepted, advertised. If received, all path attributes MUST be accepted,
validated, and propagated consistent with the BGP protocol [RFC4271], validated, and propagated consistently with the BGP protocol
even if not needed by BGP SPF. [RFC4271], even if not needed by BGP SPF.
Section 9.1 of [RFC4271] defines the decision process that is used to Section 9.1 of [RFC4271] defines the decision process that is used to
select routes for subsequent advertisement by applying the policies select routes for subsequent advertisement by applying the policies
in the local Policy Information Base (PIB) to the routes stored in in the local Policy Information Base (PIB) to the routes stored in
its Adj-RIBs-In. The output of the Decision Process is the set of its Adj-RIBs-In. The output of the Decision Process is the set of
routes that are announced by a BGP speaker to its peers. These routes that are announced by a BGP speaker to its peers. These
selected routes are stored by a BGP speaker in the speaker's Adj- selected routes are stored by a BGP speaker in the speaker's Adj-
RIBs-Out according to policy. RIBs-Out, according to policy.
The BGP SPF extension fundamentally changes the decision process, as The BGP SPF extension fundamentally changes the decision process, as
described herein. Specifically: described herein. Specifically:
1. BGP advertisements are readvertised to neighbors immediately 1. BGP advertisements are readvertised to neighbors immediately
without waiting or dependence on the route computation as without waiting or dependence on the route computation, as
specified in phase 3 of the base BGP decision process. Multiple specified in phase 3 of the base BGP decision process. Multiple
peering models are supported as specified in Section 4. peering models are supported, as specified in Section 4.
2. Determining the degree of preference for BGP routes for the SPF 2. Determining the degree of preference for BGP routes for the SPF
calculation as described in phase 1 of the base BGP decision calculation as described in phase 1 of the base BGP decision
process is replaced with the mechanisms in Section 6.1. process is replaced with the mechanisms in Section 6.1.
3. Phase 2 of the base BGP protocol decision process is replaced 3. Phase 2 of the base BGP protocol decision process is replaced
with the Shortest Path First (SPF) algorithm, also known as the with the SPF algorithm, also known as the Dijkstra algorithm.
Dijkstra algorithm.
3. BGP Link-State (BGP-LS) Relationship 3. BGP - Link-State (BGP-LS) Relationship
[RFC9552] describes a mechanism by which link-state and Traffic [RFC9552] describes a mechanism by which link-state and Traffic
Engineering (TE) information can be collected from networks and Engineering (TE) information can be collected from networks and
shared with external entities using BGP. This is achieved by shared with external entities using BGP. This is achieved by
defining NLRI advertised using the BGP-LS AFI. The BGP-LS extensions defining NLRIs that are advertised using the BGP-LS AFI. The BGP-LS
defined in [RFC9552] make use of the decision process defined in extensions defined in [RFC9552] make use of the decision process
[RFC4271]. Rather than reusing the BGP-LS SAFI, the BGP-LS-SPF SAFI defined in [RFC4271]. Rather than reusing the BGP-LS SAFI, the BGP-
(Section 5.1) is introduced to ensure backward compatibility for the LS-SPF SAFI (Section 5.1) is introduced to ensure backward
BGP-LS SAFI usage. compatibility for BGP-LS SAFI usage.
The "BGP-LS NLRI and Attribute TLVs" registry [RFC9552] is shared The "BGP-LS NLRI and Attribute TLVs" registry [RFC9552] is shared
between the BGP-LS SAFI and the BGP-LS-SPF SAFI. However, the TLVs between the BGP-LS SAFI and the BGP-LS-SPF SAFI. However, the TLVs
defined in this document may not be applicable to the BGP-LS SAFI. defined in this document may not be applicable to the BGP-LS SAFI.
As specified in Section 5.1 of [RFC9552], the presence of unknown or As specified in Section 5.1 of [RFC9552], the presence of unknown or
unexpected TLVs is required to not result in the NLRI or the BGP-LS unexpected TLVs is required so that the NLRI or BGP-LS Attribute will
Attribute being considered malformed (section 5.2 of [RFC9552]). The not be considered malformed (Section 5.2 of [RFC9552]). The list of
list of BGP-LS TLVs applicable to the BGP-LS-SPF SAFI are described BGP-LS TLVs applicable to the BGP-LS-SPF SAFI are described in
in Section 5.2. By default, the usage of other BGP-LS TLVs or Section 5.2. By default, the usage of other BGP-LS TLVs or
extensions are ignored for the BGP-LS-SPF SAFI. However, this extensions are ignored for the BGP-LS-SPF SAFI. However, this
doesn't preclude the usage specification of these TLVs for the BGP- doesn't preclude the usage specification of these TLVs for the BGP-
LS-SPF SAFI in future documents. LS-SPF SAFI in future documents.
4. BGP SPF Peering Models 4. BGP SPF Peering Models
Depending on the topology, scaling, capabilities of the BGP speakers, Depending on the topology, scaling, capabilities of the BGP speakers,
and redundancy requirements, various peering models are supported. and redundancy requirements, various peering models are supported.
The only requirement is that all BGP speakers in the BGP SPF routing The only requirement is that all BGP speakers in the BGP SPF routing
domain adhere to this specification. domain adhere to this specification.
The choice of the deployment model is up to the operator and their The choice of the deployment model is up to the operator and their
requirements and policies. Deployment model choice is out of scope requirements and policies. Deployment model choice is out of scope
for this document and is discussed in [I-D.ietf-lsvr-applicability]. for this document and is discussed in [I-D.ietf-lsvr-applicability].
The sub-sections below describe several BGP SPF deployment models. The sub-sections below describe several BGP SPF deployment models.
However, this doesn't preclude other deployment models. However, this doesn't preclude other deployment models.
4.1. BGP Single-Hop Peering on Network Node Connections 4.1. BGP Single-Hop Peering on Network Node Connections
The simplest peering model is the one where EBGP single-hop sessions The simplest peering model is the one where External BGP (EBGP)
are established over direct point-to-point links interconnecting the single-hop sessions are established over direct point-to-point links
nodes in the BGP SPF routing domain. Once the single-hop BGP session interconnecting the nodes in the BGP SPF routing domain. Once the
has been established and the Multi-Protocol Extensions Capability single-hop BGP session has been established and the Multiprotocol
with the BGP-LS-SPF AFI/SAFI has been exchanged [RFC4760] for the Extensions capabilities have been exchanged with the BGP-LS-SPF AFI/
corresponding session, then the link is considered up from a BGP SPF SAFI [RFC4760] for the corresponding session, then the link is
perspective and the corresponding BGP-LS-SPF Link NLRI is advertised. considered up and available from a BGP SPF perspective, and the
corresponding BGP-LS-SPF Link NLRI is advertised.
An End-of-RIB (EoR) Marker (Section 5.3) for the BGP-LS-SPF SAFI MAY An End-of-RIB (EoR) marker (Section 5.3) for the BGP-LS-SPF SAFI MAY
be required from a peer prior to advertising the BGP-LS-SPF Link NLRI be required from a peer prior to advertising the BGP-LS-SPF Link NLRI
for the corresponding link to that peer. When required, the default for the corresponding link to that peer. When required, the default
wait indefinitely for the EoR Marker prior to advertising the BGP-LS- wait indefinitely for the EoR marker prior to advertising the BGP-LS-
SPF Link NLRI. Refer to Section 10.4. SPF Link NLRI. Refer to Section 10.4.
A failure to consistently configure the use of the EoR marker can A failure to consistently configure the use of the EoR marker can
result in transient micro-loops and dropped traffic due to incomplete result in transient micro-loops and dropped traffic due to incomplete
forwarding state. forwarding state.
If the session goes down, the corresponding Link NLRI are withdrawn. If the session goes down, the corresponding Link NLRIs are withdrawn.
Topologically, this would be equivalent to the peering model in Topologically, this would be equivalent to the peering model in
[RFC7938] where there is a BGP session on every link in the data [RFC7938] where there is a BGP session on every link in the data
center switch fabric. The content of the Link NLRI is described in center switch fabric. The content of the Link NLRI is described in
Section 5.2.2. Section 5.2.2.
4.2. BGP Peering Between Directly-Connected Nodes 4.2. BGP Peering Between Directly Connected Nodes
In this model, BGP speakers peer with all directly-connected nodes In this model, BGP speakers peer with all directly connected nodes
but the sessions may be between loopback addresses (i.e., two-hop but the sessions may be between loopback addresses (i.e., two-hop
sessions) and the direct connection discovery and liveness detection sessions), and the direct connection discovery and liveness detection
for the interconnecting links are independent of the BGP protocol. for the interconnecting links are independent of the BGP protocol.
The BFD protocol [RFC5880] is RECOMMENDED for liveness detection. The Bidirectional Forwarding Detection (BFD) protocol [RFC5880] is
Usage of other liveness connection mechanisms is outside the scope of RECOMMENDED for liveness detection. Usage of other liveness
this document. Consequently, there is a single BGP session even if connection mechanisms is outside the scope of this document.
there are multiple direct connections between BGP speakers. The BGP- Consequently, there is a single BGP session even if there are
LS-SPF Link NLRI is advertised as long as a BGP session has been multiple direct connections between BGP speakers. The BGP-LS-SPF
Link NLRI is advertised as long as a BGP session has been
established, the BGP-LS-SPF AFI/SAFI capability has been exchanged established, the BGP-LS-SPF AFI/SAFI capability has been exchanged
[RFC4760], the link is operational as determined using liveness [RFC4760], the link is operational as determined using liveness
detection mechanisms, and, optionally, the EoR Marker has been detection mechanisms, and, optionally, the EoR marker has been
received as described in the Section 5.3. This is much like the received as described in Section 5.3. This is much like the previous
previous peering model only peering is between loopback addresses and peering model, except peering is between loopback addresses and the
the interconnecting links can be unnumbered. However, since there interconnecting links can be unnumbered. However, since there are
are BGP sessions between every directly-connected node in the BGP SPF BGP sessions between every directly connected node in the BGP SPF
routing domain, there is a reduction in BGP sessions when there are routing domain, there is a reduction in BGP sessions when there are
parallel links between nodes. Hence, this peering model is parallel links between nodes. Hence, this peering model is
RECOMMENDED over the single-hop peering model Section 4.1. RECOMMENDED over the single-hop peering model Section 4.1.
4.3. BGP Peering in Route-Reflector or Controller Topology 4.3. BGP Peering in Route-Reflector or Controller Topology
In this model, BGP speakers peer solely with one or more Route In this model, BGP speakers peer solely with one or more route
Reflectors [RFC4456] or controllers. As in the previous model, reflectors [RFC4456] or controllers. As in the previous model,
direct connection discovery and liveness detection for those links in direct connection discovery and liveness detection for those links in
the BGP SPF routing domain are done outside of the BGP protocol. the BGP SPF routing domain are done outside of the BGP protocol.
BGP-LS-SPF Link NLRI is advertised as long as the corresponding link BGP-LS-SPF Link NLRI is advertised as long as the corresponding link
is considered up as per the chosen liveness detection mechanism (The is considered up and available as per the chosen liveness detection
BFD protocol [RFC5880] is RECOMMENDED). mechanism (thus, the BFD protocol [RFC5880] is RECOMMENDED).
This peering model, known as sparse peering, allows for fewer BGP This peering model, known as "sparse peering", allows for fewer BGP
sessions and, consequently, fewer instances of the same NLRI received sessions and, consequently, fewer instances of the same NLRI received
from multiple peers. Ideally, the route-reflectors or controller BGP from multiple peers. Ideally, the route reflectors or controller BGP
sessions would be on directly-connected links to avoid dependence on sessions would be on directly connected links to avoid dependence on
another routing protocol for session connectivity. However, multi- another routing protocol for session connectivity. However, multi-
hop peering is not precluded. The number of BGP sessions is hop peering is not precluded. The number of BGP sessions is
dependent on the redundancy requirements and the stability of the BGP dependent on the redundancy requirements and the stability of the BGP
sessions. sessions.
The controller may use constraints to determine when to advertise The controller may use constraints to determine when to advertise
BGP-LS-SPF NLRI for BGP-LS peers. For example, a controller may BGP-LS-SPF NLRI for BGP-LS peers. For example, a controller may
delay advertisement of a link between two peers the until EoR marker delay advertisement of a link between two peers the until the EoR
Section 5.3 has been received from both BGP peers and the BGP-LS Link marker Section 5.3 has been received from both BGP peers and the BGP-
NLRI for the link(s) between the two nodes have been received from LS Link NLRI for the link(s) between the two nodes has been received
both BGP peers. from both BGP peers.
5. BGP Shortest Path Routing (SPF) Protocol Extensions 5. BGP Shortest Path Routing (SPF) Protocol Extensions
5.1. BGP-LS Shortest Path Routing (SPF) SAFI 5.1. BGP-LS Shortest Path Routing (SPF) SAFI
This document introduces the BGP-LS-SPF SAFI with a value of 80. The This document introduces the BGP-LS-SPF SAFI with a value of 80. The
SPF-based decision process (Section 6) applies only to the BGP-LS-SPF SPF-based decision process (Section 6) applies only to the BGP-LS-SPF
SAFI and MUST NOT be used with other combinations of the BGP-LS AFI SAFI and MUST NOT be used with other combinations of the BGP-LS AFI
(16388). In order for two BGP speakers to exchange BGP-LS-SPF NLRI, (16388). In order for two BGP speakers to exchange BGP-LS-SPF NLRI,
they MUST exchange the Multiprotocol Extensions Capability [RFC4760] they MUST exchange Multiprotocol Extensions capabilities [RFC4760] to
to ensure that they are both capable of properly processing such ensure that they are both capable of properly processing such an
NLRI. This is done with AFI 16388 / SAFI 80. The BGP-LS-SPF SAFI is NLRI. This is done with AFI 16388 / SAFI 80. The BGP-LS-SPF SAFI is
used to advertise IPv4 and IPv6 prefix information in a format used to advertise IPv4 and IPv6 prefix information in a format
facilitating an SPF-based decision process. facilitating an SPF-based decision process.
5.1.1. BGP-LS-SPF NLRI TLVs 5.1.1. BGP-LS-SPF NLRI TLVs
All the TLVs defined for BGP-LS [RFC9552] are applicable and can be All the TLVs defined for BGP-LS [RFC9552] are applicable and can be
used with the BGP-LS-SPF SAFI to describe links, nodes, and prefixes used with the BGP-LS-SPF SAFI to describe links, nodes, and prefixes
comprising BGP-SPF LSDB information. comprising BGP SPF Link-State Database (LSDB) information.
The NLRI and comprising TLVs MUST be encoded as specified in section The NLRI and comprising TLVs MUST be encoded as specified in
5.1 [RFC9552]. TLVs specified as mandatory in [RFC9552] are Section 5.1 of [RFC9552]. TLVs specified as mandatory in [RFC9552]
considered mandatory for the BGP-LS-SPF SAFI as well. If a mandatory are considered mandatory for the BGP-LS-SPF SAFI as well. If a
TLV is not present, the NLRI MUST NOT be used in the BGP SPF route mandatory TLV is not present, the NLRI MUST NOT be used in the BGP
calculation. All the other TLVs are considered as optional TLVs. SPF route calculation. All the other TLVs are considered as optional
Documents specifying usage of optional TLV for BGP SPF MUST address TLVs. Documents specifying usage of optional TLVs for BGP SPF MUST
backward compatibility. address backward compatibility.
5.1.2. BGP-LS Attribute 5.1.2. BGP-LS Attribute
The BGP-LS attribute of the BGP-LS-SPF SAFI uses exactly same format The BGP-LS attribute of the BGP-LS-SPF SAFI uses the exact same
of the BGP-LS AFI [RFC9552]. In other words, all the TLVs used in format as the BGP-LS AFI [RFC9552]. In other words, all the TLVs
the BGP-LS attribute of the BGP-LS AFI are applicable and used for used in the BGP-LS attribute of the BGP-LS AFI are applicable and are
the BGP-LS attribute of the BGP-LS-SPF SAFI. This attribute is an used for the BGP-LS attribute of the BGP-LS-SPF SAFI. This attribute
optional, non-transitive BGP attribute that is used to carry link, is an optional, non-transitive BGP attribute that is used to carry
node, and prefix properties and attributes. The BGP-LS attribute is link, node, and prefix properties and attributes. The BGP-LS
a set of TLVs. attribute is a set of TLVs.
All the TLVs defined for the BGP-LS Attribute [RFC9552] are All the TLVs defined for the BGP-LS Attribute [RFC9552] are
applicable and can be used with the BGP-LS-SPF SAFI to carry link, applicable and can be used with the BGP-LS-SPF SAFI to carry link,
node, and prefix properties and attributes. node, and prefix properties and attributes.
The BGP-LS attribute may potentially be quite large depending on the The BGP-LS attribute may potentially be quite large depending on the
amount of link-state information associated with a single BGP-LS-SPF amount of link-state information associated with a single BGP-LS-SPF
NLRI. The BGP specification [RFC4271] mandates a maximum BGP message NLRI. The BGP specification [RFC4271] mandates a maximum BGP message
size of 4096 octets. It is RECOMMENDED that an implementation size of 4096 octets. It is RECOMMENDED that an implementation
support [RFC8654] in order to accommodate a greater amount of support [RFC8654] in order to accommodate a greater amount of
skipping to change at page 11, line 29 skipping to change at line 487
properties and attributes, such as the link and prefix metric or properties and attributes, such as the link and prefix metric or
auxiliary Router-IDs of nodes, etc. This document extends the usage auxiliary Router-IDs of nodes, etc. This document extends the usage
of BGP-LS NLRI for the purpose of BGP SPF calculation via of BGP-LS NLRI for the purpose of BGP SPF calculation via
advertisement in the BGP-LS-SPF SAFI. advertisement in the BGP-LS-SPF SAFI.
The protocol identifier specified in the Protocol-ID field [RFC9552] The protocol identifier specified in the Protocol-ID field [RFC9552]
represents the origin of the advertised NLRI. For Node NLRI and Link represents the origin of the advertised NLRI. For Node NLRI and Link
NLRI, the specified Protocol-ID MUST be the direct protocol (4). NLRI, the specified Protocol-ID MUST be the direct protocol (4).
Node or Link NLRI with a Protocol-ID other than the direct protocol Node or Link NLRI with a Protocol-ID other than the direct protocol
is considered malformed. For Prefix NLRI, the specified Protocol-ID is considered malformed. For Prefix NLRI, the specified Protocol-ID
MUST be the origin of the prefix. The local and remote node MUST be the origin of the prefix. The Local and Remote Node
descriptors for all NLRI MUST include the BGP Router-ID (TLV 516) Descriptors for all NLRI MUST include the BGP Router-ID (TLV 516)
[RFC9086] and the AS Number (TLV 512) [RFC9552]. The BGP [RFC9086] and the Autonomous System (TLV 512) number [RFC9552]. The
Confederation Member (TLV 517) [RFC9086] is not applicable. BGP Confederation Member (TLV 517) [RFC9086] is not applicable.
5.2.1. Node NLRI Usage 5.2.1. Node NLRI Usage
The Node NLRI MUST be advertised unconditionally by all routers in The Node NLRI MUST be advertised unconditionally by all routers in
the BGP SPF routing domain. the BGP SPF routing domain.
5.2.1.1. BGP-LS-SPF Node NLRI Attribute SPF Status TLV 5.2.1.1. BGP-LS-SPF Node NLRI Attribute SPF Status TLV
A BGP-LS Attribute SPF Status TLV of the BGP-LS-SPF Node NLRI is A BGP-LS Attribute SPF Status TLV of the BGP-LS-SPF Node NLRI is
defined to indicate the status of the node with respect to the BGP defined to indicate the status of the node with respect to the BGP
SPF calculation. This is used to rapidly take a node out of service SPF calculation. This is used to rapidly take a node out of service
(refer to Section 6.5.2) or to indicate the node is not to be used (refer to Section 6.5.2) or to indicate that the node is not to be
for transit (i.e., non-local) traffic (refer to Section 6.3). If the used for transit (i.e., non-local) traffic (refer to Section 6.3).
SPF Status TLV is not included with the Node NLRI, the node is If the SPF Status TLV is not included with the Node NLRI, the node is
considered to be up and is available for transit traffic. A single considered to be up and is available for transit traffic. A single
TLV type is shared by the Node, Link, and Prefix NLRI. The TLV type TLV type is shared by the Node, Link, and Prefix NLRI. The TLV type
is 1184. is 1184.
0 1 2 3 0 1 2 3
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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type (1184) | Length (1 Octet) | | Type (1184) | Length (1 Octet) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SPF Status | | SPF Status |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
SPF Status Values: 0 - Reserved +=======+=======================================================+
1 - Node unreachable with respect to BGP SPF | Value | Description |
2 - Node does not support transit with respect +=======+=======================================================+
to BGP SPF | 0 | Reserved |
3-254 - Undefined +-------+-------------------------------------------------------+
255 - Reserved | 1 | Node unreachable with respect to BGP SPF |
+-------+-------------------------------------------------------+
| 2 | Node does not support transit with respect to BGP SPF |
+-------+-------------------------------------------------------+
| 3-254 | Unassigned |
+-------+-------------------------------------------------------+
| 255 | Reserved |
+-------+-------------------------------------------------------+
Table 1: SPF Status Values
If a BGP speaker received the Node NLRI but the SPF Status TLV is not If a BGP speaker received the Node NLRI but the SPF Status TLV is not
received, then any previously received SPF status information is received, then any previously received SPF status information is
considered as implicitly withdrawn and the NLRI is propagated to considered as implicitly withdrawn, and the NLRI is propagated to
other BGP speakers. A BGP speaker receiving a BGP Update containing other BGP speakers. A BGP speaker receiving a BGP Update containing
an SPF Status TLV in the BGP-LS attribute [RFC9552] with an unknown an SPF Status TLV in the BGP-LS attribute [RFC9552] with an unknown
value SHOULD be advertised to other BGP speakers and MUST ignore the value SHOULD be advertised to other BGP speakers and MUST ignore the
Status TLV with an unknown value in the SPF computation. An Status TLV with an unknown value in the SPF computation. An
implementation MAY log this condition for further analysis. If the implementation MAY log this condition for further analysis. If the
SPF Status TLV contains a reserved value (0 or 255) the TLV is SPF Status TLV contains a reserved value (0 or 255), the TLV is
considered malformed and is handled as described in Section 7.1. considered malformed and is handled as described in Section 7.1.
5.2.2. Link NLRI Usage 5.2.2. Link NLRI Usage
The criteria for advertisement of Link NLRI are discussed in The criteria for advertisement of Link NLRIs are discussed in
Section 4. Section 4.
Link NLRI is advertised with unique local and remote node descriptors Link NLRI is advertised with unique Local and Remote Node Descriptors
dependent on the IP addressing. For IPv4 links, the link's local dependent on the IP addressing. For IPv4 links, the link's local
IPv4 (TLV 259) and remote IPv4 (TLV 260) addresses are used. For IPv4 interface address (TLV 259) and remote IPv4 neighbor address
IPv6 links, the local IPv6 (TLV 261) and remote IPv6 (TLV 262) (TLV 260) are used. For IPv6 links, the local IPv6 interface address
addresses are used (Section 5.2.2 of [RFC9552]). IPv6 links without (TLV 261) and remote IPv6 neighbor address (TLV 262) are used
global IPv6 addresses are considered unnumbered links and are handled (Section 5.2.2 of [RFC9552]). IPv6 links without global IPv6
as described below. For links supporting having both IPv4 and IPv6 addresses are considered unnumbered links and are handled as
addresses, both sets of descriptors MAY be included in the same Link described below. For links supporting both IPv4 and IPv6 addresses,
NLRI. both sets of descriptors MAY be included in the same Link NLRI.
For unnumbered links, the Link Local/Remote Identifiers (TLV 258) are For unnumbered links, the Link Local/Remote Identifiers (TLV 258) are
used. The Link Remote Identifier isn't normally exchanged in BGP and used. The Link Remote Identifier isn't normally exchanged in BGP,
discovering the Link Remote Identifier is beyond the scope of this and discovering the Link Remote Identifier is beyond the scope of
document. If the Link Remote Identifier is unknown, a Link Remote this document. If the Link Remote Identifier is unknown, a Link
Identifier of 0 MUST be advertised. When 0 is advertised and there Remote Identifier of 0 MUST be advertised. When 0 is advertised and
are parallel unnumbered links between a pair of BGP speakers, there there are parallel unnumbered links between a pair of BGP speakers,
may be transient intervals where the BGP speakers don't agree on there may be transient intervals where the BGP speakers don't agree
which of the parallel unnumbered links are operational. For this on which of the parallel unnumbered links are operational. For this
reason, it is RECOMMENDED that the Link Remote Identifiers be known reason, it is RECOMMENDED that the Link Remote Identifiers be known
(e.g., discovered using alternate mechanisms or configured) in the (e.g., discovered using alternate mechanisms or configured) in the
presence of parallel unnumbered links. presence of parallel unnumbered links.
The link descriptors are described in table 4 of [RFC9552]. The link descriptors are described in Table 4 of [RFC9552].
Additionally, the Address Family Link Descriptor TLV is defined to Additionally, the Address Family Link Descriptor TLV is defined to
determine whether an unnumbered link can be used in the IPv4 SPF, the determine whether an unnumbered link can be used in the IPv4 SPF, the
IPv6, or both (refer to Section 5.2.2.1). IPv6, or both (refer to Section 5.2.2.1).
For a link to be used in SPF computation for a given address family, For a link to be used in SPF computation for a given address family,
i.e., IPv4 or IPv6, both routers connecting the link MUST have i.e., IPv4 or IPv6, both routers connecting the link MUST have
matching addresses (i.e., router interface addresses must be on the matching addresses (i.e., router interface addresses must be on the
same subnet for numbered interfaces and the local/remote link same subnet for numbered interfaces, and the local/remote link
identifiers (Section 6.3) must match for unnumbered interfaces). identifiers (Section 6.3) must match for unnumbered interfaces).
The IGP metric attribute TLV (TLV 1095) MUST be advertised. If a BGP The IGP Metric (TLV 1095) MUST be advertised. If a BGP speaker
speaker receives a Link NLRI without an IGP metric attribute TLV, receives a Link NLRI without an IGP Metric attribute TLV, then it
then it MUST consider the received NLRI as a malformed (refer to MUST consider the received NLRI as malformed (refer to Section 7).
Section 7). The BGP SPF metric length is 4 octets. A metric is The BGP SPF metric length is 4 octets. A metric is associated with
associated with the output side of each router interface. This the output side of each router interface. This metric is
metric is configurable by the system administrator. The lower the configurable by the system administrator. The lower the metric, the
metric, the more likely the interface is to be used to forward data more likely the interface is to be used to forward data traffic. One
traffic. One possible default for metric would be to give each possible default for the metric would be to give each interface a
interface a metric of 1 making it effectively a hop count. metric of 1 making it effectively a hop count.
The usage of other link attribute TLVs is beyond the scope of this The usage of other link attribute TLVs is beyond the scope of this
document. document.
5.2.2.1. BGP-LS Link NLRI Address Family Link Descriptor TLV 5.2.2.1. BGP-LS Link NLRI Address Family Link Descriptor TLV
For unnumbered links, the address family cannot be ascertained from For unnumbered links, the address family cannot be ascertained from
the endpoint link descriptors. Hence, the Address Family (AF) Link the endpoint link descriptors. Hence, the Address Family Link
Descriptor SHOULD be included with the Link Local/Remote Identifiers Descriptor SHOULD be included with the Link Local/Remote Identifiers
TLV for unnumbered links, so that the link can be used in the TLV for unnumbered links, so that the link can be used in the
respective address family SPF. If the Address Family Link Descriptor respective address family SPF. If the Address Family Link Descriptor
is not present for an unnumbered link, the link will not be used in is not present for an unnumbered link, the link will not be used in
the SPF computation for either address family. If the Address Family the SPF computation for either address family. If the Address Family
Link Descriptor is present for a numbered link, the link descriptor Link Descriptor is present for a numbered link, the link descriptor
will be ignored. If the Address Family Link Descriptor TLV contains will be ignored. If the Address Family Link Descriptor TLV contains
an undefined value (3-254), the link descriptor will be ignored. If an undefined value (3-254), the link descriptor will be ignored. If
the Address Family Link Descriptor TLV contains a reserved value (0 the Address Family Link Descriptor TLV contains a reserved value (0
or 255) the TLV is considered malformed and is handled as described or 255), the TLV is considered malformed and is handled as described
in Section 7.1. in Section 7.1.
Note that an unnumbered link can be used for both the IPv4 and IPv6 Note that an unnumbered link can be used for both the IPv4 and IPv6
SPF computation by advertising separate Address Family Link SPF computation by advertising separate Address Family Link
Descriptor TLVs for IPv4 and IPv6. Descriptor TLVs for IPv4 and IPv6.
0 1 2 3 0 1 2 3
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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type (1185) | Length (1 Octet) | | Type (1185) | Length (1 Octet) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Address Family| | Address Family|
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
Address Family Values: 0 - Reserved +=======+=====================+
1 - IPv4 Address Family | Value | Description |
2 - IPv6 Address Family +=======+=====================+
3-254 - Undefined | 0 | Reserved |
255 - Reserved +-------+---------------------+
| 1 | IPv4 Address Family |
+-------+---------------------+
| 2 | IPv6 Address Family |
+-------+---------------------+
| 3-254 | Undefined |
+-------+---------------------+
| 255 | Reserved |
+-------+---------------------+
Table 2: Address Family Values
5.2.2.2. BGP-LS-SPF Link NLRI Attribute SPF Status TLV 5.2.2.2. BGP-LS-SPF Link NLRI Attribute SPF Status TLV
This BGP-LS-SPF Attribute TLV of the BGP-LS-SPF Link NLRI is defined The BGP-LS-SPF Attribute TLV of the BGP-LS-SPF Link NLRI is defined
to indicate the status of the link with respect to the BGP SPF to indicate the status of the link with respect to the BGP SPF
calculation. This is used to expedite convergence for link failures calculation. This is used to expedite convergence for link failures
as discussed in Section 6.5.1. If the SPF Status TLV is not included as discussed in Section 6.5.1. If the SPF Status TLV is not included
with the Link NLRI, the link is considered up and available. The SPF with the Link NLRI, the link is considered up and available. The SPF
status is acted upon with the execution of the next SPF calculation status is acted upon with the execution of the next SPF calculation
Section 6.3. A single TLV type is shared by the Node, Link, and (Section 6.3). A single TLV type is shared by the Node, Link, and
Prefix NLRI. The TLV type is 1184. Prefix NLRI. The TLV type is 1184.
0 1 2 3 0 1 2 3
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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type (1184) | Length (1 Octet) | | Type (1184) | Length (1 Octet) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SPF Status | | SPF Status |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
BGP Status Values: 0 - Reserved +=======+==========================================+
1 - Link Unreachable with respect to BGP SPF | Value | Description |
2-254 - Undefined +=======+==========================================+
255 - Reserved | 0 | Reserved |
+-------+------------------------------------------+
| 1 | Link unreachable with respect to BGP SPF |
+-------+------------------------------------------+
| 2-254 | Unassigned |
+-------+------------------------------------------+
| 255 | Reserved |
+-------+------------------------------------------+
Table 3: BGP Status Values
If a BGP speaker received the Link NLRI but the SPF Status TLV is not If a BGP speaker received the Link NLRI but the SPF Status TLV is not
received, then any previously received SPF status information is received, then any previously received SPF status information is
considered as implicitly withdrawn and the NLRI is propagated to considered as implicitly withdrawn, and the NLRI is propagated to
other BGP speakers. A BGP speaker receiving a BGP Update containing other BGP speakers. A BGP speaker receiving a BGP Update containing
an SPF Status TLV in the BGP-LS attribute [RFC9552] with an unknown an SPF Status TLV in the BGP-LS attribute [RFC9552] with an unknown
value SHOULD be advertised to other BGP speakers and MUST ignore the value SHOULD be advertised to other BGP speakers and MUST ignore the
Status TLV with an unknown value in the SPF computation. An SPF Status TLV with an unknown value in the SPF computation. An
implementation MAY log this information for further analysis. If the implementation MAY log this information for further analysis. If the
SPF Status TLV contains a reserved value (0 or 255) the TLV is SPF Status TLV contains a reserved value (0 or 255), the TLV is
considered malformed and is handled as described in Section 7.1. considered malformed and is handled as described in Section 7.1.
5.2.3. IPv4/IPv6 Prefix NLRI Usage 5.2.3. IPv4/IPv6 Prefix NLRI Usage
IPv4/IPv6 Prefix NLRI is advertised with a Local Node Descriptor and A IPv4/IPv6 Prefix NLRI is advertised with a Local Node Descriptor
the prefix and length. The Prefix Descriptors field includes the IP and the prefix and length. The Prefix Descriptor field includes IP
Reachability Information TLV (TLV 265) as described in [RFC9552]. Reachability Information (TLV 265) as described in [RFC9552]. The
The Prefix Metric TLV (TLV 1155) MUST be advertised to be considered Prefix Metric (TLV 1155) MUST be advertised to be considered for
for route calculation. The IGP Route Tag TLV (TLV 1153) MAY be route calculation. The IGP Route Tag (TLV 1153) MAY be advertised.
advertised. The usage of other BGP-LS attribute TLVs is beyond the The usage of other BGP-LS attribute TLVs is beyond the scope of this
scope of this document. document.
5.2.3.1. BGP-LS-SPF Prefix NLRI Attribute SPF Status TLV 5.2.3.1. BGP-LS-SPF Prefix NLRI Attribute SPF Status TLV
A BGP-LS Attribute SPF Status TLV of the BGP-LS-SPF Prefix NLRI is A BGP-LS Attribute SPF Status TLV of the BGP-LS-SPF Prefix NLRI is
defined to indicate the status of the prefix with respect to the BGP defined to indicate the status of the prefix with respect to the BGP
SPF calculation. This is used to expedite convergence for prefix SPF calculation. This is used to expedite convergence for prefix
unreachability as discussed in Section 6.5.1. If the SPF Status TLV unreachability, as discussed in Section 6.5.1. If the SPF Status TLV
is not included with the Prefix NLRI, the prefix is considered is not included with the Prefix NLRI, the prefix is considered
reachable. A single TLV type is shared by the Node, Link, and Prefix reachable. A single TLV type is shared by the Node, Link, and Prefix
NLRI. The TLV type is 1184. NLRI. The TLV type is 1184.
0 1 2 3 0 1 2 3
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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type (1184) | Length (1 Octet) | | Type (1184) | Length (1 Octet) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SPF Status | | SPF Status |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
BGP Status Values: 0 - Reserved +=======+============================================+
1 - Prefix Unreachable with respect to SPF | Value | Description |
2-254 - Undefined +=======+============================================+
255 - Reserved | 0 | Reserved |
+-------+--------------------------------------------+
| 1 | Prefix unreachable with respect to BGP SPF |
+-------+--------------------------------------------+
| 2-254 | Unassigned |
+-------+--------------------------------------------+
| 255 | Reserved |
+-------+--------------------------------------------+
Table 4: BGP Status Values
If a BGP speaker received the Prefix NLRI but the SPF Status TLV is If a BGP speaker received the Prefix NLRI but the SPF Status TLV is
not received, then any previously received SPF status information is not received, then any previously received SPF status information is
considered as implicitly withdrawn and the NLRI is propagated to considered as implicitly withdrawn, and the NLRI is propagated to
other BGP speakers. A BGP speaker receiving a BGP Update containing other BGP speakers. A BGP speaker receiving a BGP Update containing
an SPF Status TLV in the BGP-LS attribute [RFC9552] with an unknown an SPF Status TLV in the BGP-LS attribute [RFC9552] with an unknown
value SHOULD be advertised to other BGP speakers and MUST ignore the value SHOULD be advertised to other BGP speakers and MUST ignore the
Status TLV with an unknown value in the SPF computation. An Status TLV with an unknown value in the SPF computation. An
implementation MAY log this information for further analysis. If the implementation MAY log this information for further analysis. If the
SPF Status TLV contains a reserved value (0 or 255) the TLV is SPF Status TLV contains a reserved value (0 or 255), the TLV is
considered malformed and is handled as described in Section 7.1. considered malformed and is handled as described in Section 7.1.
5.2.4. BGP-LS Attribute Sequence Number TLV 5.2.4. BGP-LS Attribute Sequence Number TLV
A BGP-LS Attribute Sequence Number TLV of the BGP-LS-SPF NLRI types A BGP-LS Attribute Sequence Number TLV of the BGP-LS-SPF NLRI types
is defined to assure the most recent version of a given NLRI is used is defined to assure the most recent version of a given NLRI is used
in the SPF computation. The Sequence Number TLV is mandatory for in the SPF computation. The Sequence Number TLV is mandatory for
BGP-LS-SPF NLRI. The TLV type 1181 has been assigned by IANA. The BGP-LS-SPF NLRI. The TLV type 1181 has been assigned by IANA. The
BGP-LS Attribute Sequence Number TLV contains an 8-octet sequence BGP-LS Attribute Sequence Number TLV contains an 8-octet sequence
number. The usage of the Sequence Number TLV is described in number. The usage of the Sequence Number TLV is described in
skipping to change at page 16, line 31 skipping to change at line 756
0 1 2 3 0 1 2 3
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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type (1181) | Length (8 Octets) | | Type (1181) | Length (8 Octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number (High-Order 32 Bits) | | Sequence Number (High-Order 32 Bits) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number (Low-Order 32 Bits) | | Sequence Number (Low-Order 32 Bits) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Sequence Number: The 64-bit strictly-increasing sequence number MUST Sequence Number: The 64-bit strictly increasing sequence number MUST
be incremented for every self-originated version of a BGP-LS-SPF be incremented for every self-originated version of a BGP-LS-SPF
NLRI. BGP speakers implementing this specification MUST use NLRI. BGP speakers implementing this specification MUST use
available mechanisms to preserve the sequence number's strictly available mechanisms to preserve the sequence number's strictly
increasing property for the deployed life of the BGP speaker increasing property for the deployed life of the BGP speaker
(including cold restarts). One mechanism for accomplishing this (including cold restarts). One mechanism for accomplishing this
would be to use the high-order 32 bits of the sequence number as a would be to use the high-order 32 bits of the sequence number as a
wrap/boot count that is incremented any time the BGP router loses its wrap/boot count that is incremented any time the BGP router loses its
sequence number state or the low-order 32 bits wrap. sequence number state or the low-order 32 bits wrap.
When incrementing the sequence number for each self-originated NLRI, When incrementing the sequence number for each self-originated NLRI,
the sequence number should be treated as an unsigned 64-bit value. the sequence number should be treated as an unsigned 64-bit value.
If the lower-order 32-bit value wraps, the higher-order 32-bit value If the lower-order 32-bit value wraps, the higher-order 32-bit value
should be incremented and saved in non-volatile storage. If a BGP should be incremented and saved in non-volatile storage. If a BGP
speaker completely loses its sequence number state (e.g., the BGP speaker completely loses its sequence number state (e.g., the BGP
speaker hardware is replaced or experiences a cold-start), the BGP speaker hardware is replaced or experiences a cold start), the BGP
NLRI selection rules (see Section 6.1) ensure convergence, albeit not NLRI selection rules (see Section 6.1) ensure convergence, albeit not
immediately. immediately.
If the Sequence Number TLV is not received, then the corresponding If the Sequence Number TLV is not received, then the corresponding
NLRI is considered as malformed and MUST be handled as 'Treat-as- NLRI is considered as malformed and MUST be handled as 'treat-as-
withdraw'. An implementation SHOULD log an error for further withdraw'. An implementation SHOULD log an error for further
analysis. analysis.
5.3. BGP-LS-SPF End of RIB (EoR) Marker 5.3. BGP-LS-SPF End of RIB (EoR) Marker
The usage of the End-of-RIB (EoR) Marker [RFC4724] with the BGP-LS- The usage of the EoR marker [RFC4724] with the BGP-LS-SPF SAFI is
SPF SAFI is somewhat different than the other BGP SAFIs. Reception somewhat different than the other BGP SAFIs. Reception of the EoR
of the EoR marker MAY optionally be expected prior to advertising an marker MAY optionally be expected prior to advertising a Link NLRI
LINK-NLRI for a given peer. for a given peer.
5.4. BGP Next-Hop Information 5.4. BGP Next-Hop Information
The rules for setting the BGP Next-Hop in the MP_REACH_NLRI attribute The rules for setting the BGP Next-Hop in the MP_REACH_NLRI attribute
[RFC4760] for the BGP-LS-SPF SAFI follow the rules in section 5.5 of [RFC4760] for the BGP-LS-SPF SAFI follow the rules in Section 5.5 of
[RFC9552]. All BGP peers that support SPF extensions will locally [RFC9552]. All BGP peers that support SPF extensions will locally
compute the Local-RIB Next-Hop as a result of the SPF process. compute the Local-RIB Next-Hop as a result of the SPF process.
Hence, the use of the MP_REACH_NLRI Next-Hop as a tiebreaker in the Hence, the use of the MP_REACH_NLRI Next-Hop as a tiebreaker in the
standard BGP path decision processing is not applicable. standard BGP path decision processing is not applicable.
6. Decision Process with SPF Algorithm 6. Decision Process with the SPF Algorithm
The Decision Process described in [RFC4271] takes place in three The Decision Process described in [RFC4271] takes place in three
distinct phases. The Phase 1 decision function of the Decision distinct phases. The Phase 1 decision function of the Decision
Process is responsible for calculating the degree of preference for Process is responsible for calculating the degree of preference for
each route received from a BGP speaker's peer. The Phase 2 decision each route received from a BGP speaker's peer. The Phase 2 decision
function is invoked on completion of the Phase 1 decision function function is invoked on completion of the Phase 1 decision function
and is responsible for choosing the best route out of all those and is responsible for choosing the best route out of all those
available for each distinct destination, and for installing each available for each distinct destination and for installing each
chosen route into the Local-RIB. The combination of the Phase 1 and chosen route into the Local-RIB. The combination of the Phase 1 and
2 decision functions is characterized as a Path Vector algorithm. 2 decision functions is characterized as a Path Vector algorithm.
The SPF-based Decision process replaces the BGP Decision process The SPF-based Decision Process replaces the BGP Decision Process
described in [RFC4271]. Since BGP-LS-SPF NLRI always contains the described in [RFC4271]. Since BGP-LS-SPF NLRI always contains the
local node descriptor as described in Section 5.2, each NLRI is Local Node Descriptor as described in Section 5.2, each NLRI is
uniquely originated by a single BGP speaker in the BGP SPF routing uniquely originated by a single BGP speaker in the BGP SPF routing
domain (the BGP node matching the NLRI's Node Descriptors). domain (the BGP node matching the NLRI's Node Descriptors).
Instances of the same NLRI originated by multiple BGP speakers would Instances of the same NLRI originated by multiple BGP speakers would
be indicative of a configuration error or a masquerading attack be indicative of a configuration error or a masquerading attack
(refer to Section 9). These selected Node NLRI and their Link/Prefix (refer to Section 9). These selected Node NLRIs and their Link/
NLRI are used to build a directed graph during the SPF computation as Prefix NLRIs are used to build a directed graph during the SPF
described below. The best routes for BGP prefixes are installed in computation as described below. The best routes for BGP prefixes are
the RIB as a result of the SPF process. installed in the RIB as a result of the SPF process.
When BGP-LS-SPF NLRI is received, all that is required is to When BGP-LS-SPF NLRI is received, all that is required is to
determine whether it is the most recent by examining the Node-ID and determine whether it is the most recent by examining the Node-ID and
sequence number as described in Section 6.1. If the received NLRI sequence number as described in Section 6.1. If the received NLRI
has changed, it is advertised to other BGP-LS-SPF peers. If the has changed, it is advertised to other BGP-LS-SPF peers. If the
attributes have changed (other than the sequence number), a BGP SPF attributes have changed (other than the sequence number), a BGP SPF
calculation is triggered. However, a changed NLRI MAY be advertised calculation is triggered. However, a changed NLRI MAY be advertised
immediately to other peers and prior to any SPF calculation. Note immediately to other peers and prior to any SPF calculation. Note
that the BGP MinASOriginationIntervalTimer [RFC4271] timer is not that the BGP MinASOriginationIntervalTimer [RFC4271] timer is not
applicable to the BGP-LS-SPF SAFI. The applicable to the BGP-LS-SPF SAFI. The
MinRouteAdvertisementIntervalTimer is applicable with a suggested MinRouteAdvertisementIntervalTimer is applicable with a suggested
default of 5 seconds consistent with Internal BGP (IBGP) (refer to default of 5 seconds consistent with Internal BGP (IBGP) (refer to
section 10 of [RFC4271]). The scheduling of the SPF calculation, as Section 10 of [RFC4271]). The scheduling of the SPF calculation, as
described in Section 6.3, is an implementation and/or configuration described in Section 6.3, is an implementation and/or configuration
matter. Scheduling MAY be dampened consistent with the SPF back-off matter. Scheduling MAY be dampened consistent with the SPF Back-Off
algorithm specified in [RFC8405]. Delay algorithm specified in [RFC8405].
The Phase 3 decision function of the Decision Process [RFC4271] is The Phase 3 decision function of the Decision Process [RFC4271] is
also simplified since under normal SPF operation, a BGP speaker MUST also simplified because under normal SPF operation, a BGP speaker
advertise the changed NLRIs to all BGP peers with the BGP-LS-SPF AFI/ MUST advertise the changed NLRIs to all BGP peers with the BGP-LS-SPF
SAFI and install the changed routes in the GLOBAL-RIB. The only AFI/SAFI and install the changed routes in the GLOBAL-RIB. The only
exception are unchanged NLRIs or stale NLRIs, i.e., NLRI received exceptions are unchanged NLRIs or stale NLRIs, i.e., an NLRI received
with a less recent (numerically smaller) sequence number. with a less recent (numerically smaller) sequence number.
6.1. BGP SPF NLRI Selection 6.1. BGP SPF NLRI Selection
For all BGP-LS-SPF NLRIs, the selection rules for phase 1 of the BGP For all BGP-LS-SPF NLRIs, the selection rules for Phase 1 of the BGP
decision process, section 9.1.1 [RFC4271], no longer apply. decision process (see Section 9.1.1 of [RFC4271]) no longer apply.
1. NLRI self-originated from directly-connected BGP SPF peers are 1. NLRIs self-originated from directly connected BGP SPF peers are
preferred. This condition can be determined by comparing the BGP preferred. This condition can be determined by comparing the BGP
Identifiers in the received Local Node Descriptor and the BGP Identifiers in the received Local Node Descriptor and the BGP
OPEN message for an active BGP session. This rule assures that OPEN message for an active BGP session. This rule assures that a
stale NLRI is updated even if a BGP SPF router loses its sequence stale NLRI is updated even if a BGP SPF router loses its sequence
number state due to a cold-start. Note that once the BGP session number state due to a cold start. Note that once the BGP session
goes down, the NLRI received is no longer considered as being goes down, the NLRI received is no longer considered as being
from a directly connected BGP SPF peer. from a directly connected BGP SPF peer.
2. Consistent with base BGP [RFC4271], NLRI received from a peer 2. Consistent with base BGP [RFC4271], an NLRI received from a peer
will always replace the same NLRI received from that peer. will always replace the same NLRI received from that peer.
Coupled with rule #1, this will ensure that any stale NLRI in the Coupled with rule #1, this will ensure that any stale NLRI in the
BGP SPF routing domain will be updated. BGP SPF routing domain will be updated.
3. The NLRI with the most recent Sequence Number TLV, i.e., highest 3. The NLRI with the most recent Sequence Number TLV, i.e., the
sequence number is selected. highest sequence number is selected.
4. The NLRI received from the BGP speaker with the numerically 4. The NLRI received from the BGP speaker with the numerically
larger BGP Identifier is preferred. larger BGP Identifier is preferred.
When a BGP speaker completely loses its sequence number state, e.g., When a BGP speaker completely loses its sequence number state, e.g.,
due to a cold start, or in the unlikely possibility that 64-bit due to a cold start, or in the unlikely possibility that a 64-bit
sequence number wraps, the BGP routing domain will still converge. sequence number wraps, the BGP routing domain will still converge.
This is due to the fact that BGP speakers adjacent to the router This is due to the fact that BGP speakers adjacent to the router
always accept self-originated NLRI from the associated speaker as always accept self-originated NLRIs from the associated speaker as
more recent (rule #1). When a BGP speaker reestablishes a connection more recent (rule #1). When a BGP speaker reestablishes a connection
with its peers, any existing sessions are taken down and stale NLRI with its peers, any existing sessions are taken down and stale NLRIs
are replaced. The adjacent BGP speakers update their NLRI are replaced. The adjacent BGP speakers update their NLRI
advertisements and advertise to their neighbors until the BGP routing advertisements and advertise to their neighbors until the BGP routing
domain has converged. domain has converged.
The modified SPF Decision Process performs an SPF calculation rooted The modified SPF Decision Process performs an SPF calculation rooted
at the local BGP speaker using the metrics from the Link Attribute at the local BGP speaker using the metrics from the Link Attribute
IGP Metric TLV (1095) and the Prefix Attribute Prefix Metric TLV IGP Metric (TLV 1095) and the Prefix Attribute Prefix Metric (TLV
(1155) [RFC9552]. These metrics are considered consistently across 1155) [RFC9552]. These metrics are considered consistently across
the BGP SPF domain. As a result, any other BGP attributes that would the BGP SPF domain. As a result, any other BGP attributes that would
influence the BGP decision process defined in [RFC4271] including influence the BGP decision process defined in [RFC4271] including
ORIGIN, MULTI_EXIT_DISC, and LOCAL_PREF attributes are ignored by the ORIGIN, MULTI_EXIT_DISC, and LOCAL_PREF attributes are ignored by the
SPF algorithm. The Next Hop in the MP_REACH_NLRI attribute [RFC4760] SPF algorithm. The Next Hop in the MP_REACH_NLRI attribute [RFC4760]
is discussed in Section 5.4. The AS_PATH and AS4_PATH [RFC6793] is discussed in Section 5.4. The AS_PATH and AS4_PATH attributes
attributes are preserved and used for loop detection [RFC4271]. They [RFC6793] are preserved and used for loop detection [RFC4271]. They
are ignored during the SPF computation for BGP-LS-SPF NLRIs. are ignored during the SPF computation for BGP-LS-SPF NLRIs.
6.1.1. BGP Self-Originated NLRI 6.1.1. BGP Self-Originated NLRI
Node, Link, or Prefix NLRI with Node Descriptors matching the local Nodes, Links, or Prefix NLRIs with Node Descriptors matching the
BGP speaker are considered self-originated. When self-originated local BGP speaker are considered self-originated. When a self-
NLRI is received and it doesn't match the local node's NLRI content originated NLRI is received and it doesn't match the local node's
(including sequence number), special processing is required. NLRI content (including the sequence number), special processing is
required.
* If self-originated NLRI is received and the sequence number is * If a self-originated NLRI is received and the sequence number is
more recent (i.e., greater than the local node's sequence number more recent (i.e., greater than the local node's sequence number
for the NLRI), the NLRI sequence number is advanced to one greater for the NLRI), the NLRI sequence number is advanced to one greater
than the received sequence number and the NLRI is readvertised to than the received sequence number, and the NLRI is readvertised to
all peers. all peers.
* If self-originated NLRI is received and the sequence number is the * If a self-originated NLRI is received and the sequence number is
same as the local node's sequence number but the attributes the same as the local node's sequence number but the attributes
differ, the NLRI sequence number is advanced to one greater than differ, the NLRI sequence number is advanced to one greater than
the received sequence number and the NLRI is readvertised to all the received sequence number, and the NLRI is readvertised to all
peers. peers.
The above actions are performed immediately when the first instance The above actions are performed immediately when the first instance
of a newer self-originated NLRI is received. In this case, the newer of a newer self-originated NLRI is received. In this case, the newer
instance is considered to be a stale instance that was advertised by instance is considered to be a stale instance that was advertised by
the local node prior to a restart where the NLRI state was lost. the local node prior to a restart where the NLRI state was lost.
However, if subsequent newer self-originated NLRI is received for the However, if subsequent newer self-originated NLRI is received for the
same Node, Link, or Prefix NLRI, the readvertisement or withdrawal is same Node, Link, or Prefix NLRI, the readvertisement or withdrawal is
delayed by BGP_LS_SPF_SELF_READVERTISEMENT_DELAY (default 5) seconds delayed by BGP_LS_SPF_SELF_READVERTISEMENT_DELAY (default 5) seconds
since it is likely being advertised by a misconfigured or rogue BGP since it is likely being advertised by a misconfigured or rogue BGP
speaker (refer to Section 9). speaker (refer to Section 9).
6.2. Dual Stack Support 6.2. Dual Stack Support
The SPF-based decision process operates on Node, Link, and Prefix The SPF-based decision process operates on Node, Link, and Prefix
NLRIs that support both IPv4 and IPv6 addresses. Whether to run a NLRIs that support both IPv4 and IPv6 addresses. Whether to run a
single SPF computation or multiple SPF computations for separate AFs single SPF computation or multiple SPF computations for separate AFs
is an implementation and/or policy matter. Normally, IPv4 next-hops is an implementation and/or policy matter. Normally, IPv4 next-hops
are calculated for IPv4 prefixes and IPv6 next-hops are calculated are calculated for IPv4 prefixes, and IPv6 next-hops are calculated
for IPv6 prefixes. for IPv6 prefixes.
6.3. SPF Calculation based on BGP-LS-SPF NLRI 6.3. SPF Calculation Based on BGP-LS-SPF NLRI
This section details the BGP-LS-SPF local routing information base This section details the BGP-LS-SPF local Routing Information Base
(RIB) calculation. The router uses BGP-LS-SPF Node, Link, and Prefix (RIB) calculation. The router uses BGP-LS-SPF Node, Link, and Prefix
NLRI to compute routes using the following algorithm. This NLRIs to compute routes using the following algorithm. This
calculation yields the set of routes associated with the BGP SPF calculation yields the set of routes associated with the BGP SPF
Routing Domain. A router calculates the shortest-path tree using Routing Domain. A router calculates the shortest-path tree using
itself as the root. Optimizations to the BGP-LS-SPF algorithm are itself as the root. Optimizations to the BGP-LS-SPF algorithm are
possible but MUST yield the same set of routes. The algorithm below possible but MUST yield the same set of routes. The algorithm below
supports Equal Cost Multi-Path (ECMP) routes. Weighted Unequal Cost supports ECMP routes. Weighted Unequal-Cost Multipath (UCMP) routes
Multi-Path routes are out of scope. are out of scope.
The following abstract data structures are defined in order to The following abstract data structures are defined in order to
specify the algorithm. specify the algorithm.
* Local Route Information Base (Local-RIB) - This routing table Local Route Information Base (Local-RIB): A routing table that
contains reachability information (i.e., next hops) for all contains reachability information (i.e., next hops) for all
prefixes (both IPv4 and IPv6) as well as BGP-LS-SPF node prefixes (both IPv4 and IPv6) as well as BGP-LS-SPF node
reachability. Implementations may choose to implement this with reachability. Implementations may choose to implement this with
separate RIBs for each address family and/or Prefix versus Node separate RIBs for each address family and/or Prefix versus Node
reachability. reachability.
* Global Routing Information Base (GLOBAL-RIB) - This is the Routing Global Routing Information Base (GLOBAL-RIB): The RIB containing the
Information Base (RIB) containing the current routes that are current routes that are installed in the router's forwarding
installed in the router's forwarding plane. This is commonly plane. This is commonly referred to in networking parlance as
referred to in networking parlance as "the RIB". "the RIB".
* Link State NLRI Database (LSNDB) - Database of BGP-LS-SPF NLRI Link-State NLRI Database (LSNDB): A database of BGP-LS-SPF NLRIs
that facilitates access to all Node, Link, and Prefix NLRI. that facilitate access to all Node, Link, and Prefix NLRIs.
* Candidate List (CAN-LIST) - This is a list of candidate Node NLRIs Candidate List (CAN-LIST): A list of candidate Node NLRIs used
used during the BGP SPF calculation. The list is sorted by the during the BGP SPF calculation. The list is sorted by the cost to
cost to reach the Node NLRI with the Node NLRI with the lowest reach the Node NLRI, with the Node NLRI that has the lowest
reachability cost at the head of the list. This facilitates reachability cost at the head of the list. This facilitates the
execution of the Dijkstra algorithm where the shortest paths execution of the Dijkstra algorithm, where the shortest paths
between the local node and other nodes in graph are computed. The between the local node and other nodes in the graph are computed.
CAN-LIST is typically implemented as a heap but other data The CAN-LIST is typically implemented as a heap but other data
structures have been used. structures have been used.
The algorithm consists of the steps below: The Dijkstra algorithm consists of the steps below:
1. The current Local-RIB is invalidated, and the CAN-LIST is 1. The current Local-RIB is invalidated, and the CAN-LIST is
initialized to be empty. The Local-RIB is rebuilt during the initialized to be empty. The Local-RIB is rebuilt during the
course of the SPF computation. The existing routing entries are course of the SPF computation. The existing routing entries are
preserved for comparison to determine changes that need to be preserved for comparison to determine changes that need to be
made to the GLOBAL-RIB in step 6. These routes are referred to made to the GLOBAL-RIB in Step 6. These routes are referred to
as stale routes. as "stale routes".
2. The cost of the Local-RIB Node route entry for the computing 2. The cost of the Local-RIB Node route entry for the computing
router is set to 0. The computing router's Node NLRI is added to router is set to 0. The computing router's Node NLRI is added to
the CAN-LIST (which was previously initialized to be empty in the CAN-LIST (which was previously initialized to be empty in
step 1). The next-hop list is set to the internal loopback next- Step 1). The next-hop list is set to the internal loopback next-
hop. hop.
3. The Node NLRI with the lowest cost is removed from the CAN-LIST 3. The Node NLRI with the lowest cost is removed from the CAN-LIST
for processing. If the BGP-LS Node attribute includes an SPF for processing. If the BGP-LS Node attribute includes an SPF
Status TLV (refer to Section 5.2.1.1) indicating the node is Status TLV (refer to Section 5.2.1.1) indicating the node is
unreachable, the Node NLRI is ignored and the next lowest cost unreachable, the Node NLRI is ignored and the next lowest-cost
Node NLRI is selected from the CAN-LIST. The Node corresponding Node NLRI is selected from the CAN-LIST. The Node corresponding
to this NLRI is referred to as the Current-Node. If the CAN-LIST to this NLRI is referred to as the "Current-Node". If the CAN-
list is empty, the SPF calculation has completed and the LIST list is empty, the SPF calculation has completed and the
algorithm proceeds to step 6. algorithm proceeds to Step 6.
4. All the Prefix NLRI with the same Local Node Descriptors as the 4. All the Prefix NLRIs with the same Local Node Descriptors as the
Current-Node are considered for installation. The next-hop(s) Current-Node are considered for installation. The next-hop(s)
for these Prefix NLRI are inherited from the Current-Node. If for these Prefix NLRIs are inherited from the Current-Node. If
the Current-Node is for the local BGP Router, the next-hop for the Current-Node is for the local BGP Router, the next-hop for
the prefix is a direct next-hop. The cost for each prefix is the the prefix is a direct next-hop. The cost for each prefix is the
metric advertised in the Prefix Attribute Prefix Metric TLV metric advertised in the Prefix Attribute Prefix Metric (TLV
(1155) added to the cost to reach the Current-Node. The 1155) added to the cost to reach the Current-Node. The following
following is done for each Prefix NLRI (referred to as the is done for each Prefix NLRI (referred to as the "Current-
Current-Prefix): Prefix"):
* If the BGP-LS Prefix attribute includes an SPF Status TLV * If the BGP-LS Prefix attribute includes an SPF Status TLV
indicating the prefix is unreachable, the Current-Prefix is indicating the prefix is unreachable, the Current-Prefix is
considered unreachable and the next Prefix NLRI is examined in considered unreachable, and the next Prefix NLRI is examined
Step 4. in Step 4.
* If the Current-Prefix's corresponding prefix is in the Local- * If the Current-Prefix's corresponding prefix is in the Local-
RIB and the Local-RIB metric is less than the Current-Prefix's RIB and the Local-RIB metric is less than the Current-Prefix's
metric, the Current-Prefix does not contribute to the route metric, the Current-Prefix does not contribute to the route,
and the next Prefix NLRI is examined in Step 4. and the next Prefix NLRI is examined in Step 4.
* If the Current-Prefix's corresponding prefix is not in the * If the Current-Prefix's corresponding prefix is not in the
Local-RIB, the prefix is installed with the Current-Node's Local-RIB, the prefix is installed with the Current-Node's
next-hops installed as the Local-RIB route's next-hops and the next-hops installed as the Local-RIB route's next-hops and the
metric being updated. If the IGP Route Tag TLV (1153) is metric being updated. If the IGP Route Tag (TLV 1153) is
included in the Current-Prefix's NLRI Attribute, the tag(s) included in the Current-Prefix's NLRI Attribute, the tag(s) is
are installed in the current Local-RIB route's tag(s). installed in the current Local-RIB route's tag(s).
* If the Current-Prefix's corresponding prefix is in the Local- * If the Current-Prefix's corresponding prefix is in the Local-
RIB and the cost is less than the Local-RIB route's metric, RIB and the cost is less than the Local-RIB route's metric,
the prefix is installed with the Current-Node's next-hops the prefix is installed with the Current-Node's next-hops,
replacing the Local-RIB route's next-hops and the metric being which replace the Local-RIB route's next-hops and the metric
updated and any route tags removed. If the IGP Route Tag TLV being updated, and any route tags are removed. If the IGP
(1153) is included in the Current-Prefix's NLRI Attribute, the Route Tag (TLV 1153) is included in the Current-Prefix's NLRI
tag(s) are installed in the current Local-RIB route's tag(s). Attribute, the tag(s) is installed in the current Local-RIB
route's tag(s).
* If the Current-Prefix's corresponding prefix is in the Local- * If the Current-Prefix's corresponding prefix is in the Local-
RIB and the cost is the same as the Local-RIB route's metric, RIB and the cost is the same as the Local-RIB route's metric,
the Current-Node's next-hops are merged with Local-RIB route's the Current-Node's next-hops are merged with the Local-RIB
next-hops. The algorithm below supports Equal Cost Multi-Path route's next-hops. The algorithm below supports ECMP routes.
(ECMP) routes. Some platforms or implementations may have Some platforms or implementations may have limits on the
limits on the number of ECMP routes that can be supported. number of ECMP routes that can be supported. The setting or
The setting or identification of any limitations is outside identification of any limitations is outside the scope if this
the scope if this document. Weighted Unequal Cost Multi-Path document. Weighted UCMP routes are out of scope as well.
routes are out of scope as well.
5. All the Link NLRI with the same Node Identifiers as the Current- 5. All the Link NLRIs with the same Node Identifiers as the Current-
Node are considered for installation. Each link is examined and Node are considered for installation. Each link is examined and
is referred to in the following text as the Current-Link. The referred to as the "Current-Link" in the following text. The
cost of the Current-Link is the advertised IGP Metric TLV (1095) cost of the Current-Link is the advertised IGP Metric (TLV 1095)
from the Link NLRI BGP-LS attribute added to the cost to reach from the Link NLRI BGP-LS attribute added to the cost to reach
the Current-Node. If the Current-Node is for the local BGP the Current-Node. If the Current-Node is for the local BGP
Router, the next-hop for the link is a direct next-hop pointing Router, the next-hop for the link is a direct next-hop pointing
to the corresponding local interface. For any other Current- to the corresponding local interface. For any other Current-
Node, the next-hop(s) for the Current-Link are inherited from the Node, the next-hop(s) for the Current-Link is inherited from the
Current-Node. The following is done for each link: Current-Node. The following is done for each link:
a. If the Current-Link's NLRI attribute includes an SPF Status a. If the Current-Link's NLRI attribute includes an SPF Status
TLV indicating the link is down, the BGP-LS-SPF Link NLRI is TLV indicating the link is down, the BGP-LS-SPF Link NLRI is
considered down and the next link for the Current-Node is considered down, and the next link for the Current-Node is
examined in Step 5. examined in Step 5.
b. If the Current-Node NLRI attributes includes the SPF Status b. If the Current-Node NLRI attributes include the SPF Status
TLV (refer to Section 5.2.1.1) and the status indicates that TLV (refer to Section 5.2.1.1) and the status indicates that
the Node doesn't support transit, the next link for the the Node doesn't support transit, the next link for the
Current-Node is processed in Step 5. Current-Node is processed in Step 5.
c. The Current-Link's Remote Node NLRI is accessed (i.e., the c. The Current-Link's Remote Node NLRI is accessed (i.e., the
Node NLRI with the same Node identifiers as the Current- Node NLRI with the same Node Identifiers as the Current-
Link's Remote Node Descriptors). If it exists, it is Link's Remote Node Descriptors). If it exists, it is
referred to as the Remote-Node and the algorithm proceeds as referred to as the "Remote-Node" and the algorithm proceeds
follows: as follows:
* If the Remote-Node's NLRI attribute includes an SPF Status * If the Remote-Node's NLRI attribute includes an SPF Status
TLV indicating the node is unreachable, the next link for TLV indicating the node is unreachable, the next link for
the Current-Node is examined in Step 5. the Current-Node is examined in Step 5.
* All the Link NLRI corresponding the Remote-Node are * All the Link NLRIs corresponding to the Remote-Node are
searched for a Link NLRI pointing to the Current-Node. searched for a Link NLRI pointing to the Current-Node.
Each Remote-Node's Link NLRI (referred to as the Remote- Each Remote-Node's Link NLRI (referred to as the Remote-
Link) is examined for Remote Node Descriptors matching the Link) is examined for Remote Node Descriptors matching the
Current-Node and Link Descriptors matching the Current- Current-Node and Link Descriptors matching the Current-
Link. Link.
- For IPv4/IPv6 numbered Link Descriptors to match during - For IPv4/IPv6 numbered Link Decriptors to match during
the IPv4 SPF computation, the Current-Link's IP4/IPv6 the IPv4 SPF computation, the Current-Link's IP4/IPv6
interface address link descriptor MUST match the interface address link descriptor MUST match the
Remote-Link IPv4/IPv6 neighbor address link descriptor Remote-Link IPv4/IPv6 neighbor address link descriptor,
and the Current-Link's IPv4/IPv6 neighbor address MUST and the Current-Link's IPv4/IPv6 neighbor address MUST
match the Remote-Link's IPv4/IPv6 interface address. match the Remote-Link's IPv4/IPv6 interface address.
- For unnumbered links to match during the IPv4 or IPv6 - For unnumbered links to match during the IPv4 or IPv6
SPF computation, Current-Link and Remote-Link's Address SPF computation, the Current-Link and Remote-Link's
Family Link Descriptor TLV must match the address Address Family Link Descriptor TLV must match the
family of the IPv4 or IPv6 SPF computation, the address family of the IPv4 or IPv6 SPF computation, the
Current-Link's Remote Identifier MUST match the Remote- Current-Link's Remote Identifier MUST match the Remote-
Link's Local Identifier and the Current-Link's Remote Link's Local Identifier, and the Current-Link's Remote
Identifier MUST match the Remote-Link's Local Identifier MUST match the Remote-Link's Local
Identifier. Since the Link's Remote Identifier may not Identifier. Since the Link's Remote Identifier may not
be known, a value of 0 is considered a wildcard and be known, a value of 0 is considered a wildcard and
will match any Current or Remote Link's Local will match any Current or Remote Link's Local
Identifier (see TLV 258 [RFC9552]). Address Family Identifier (see TLV 258 [RFC9552]). Address Family
Link Descriptor TLVs for multiple address families may Link Descriptor TLVs for multiple address families may
be advertised so that an unnumbered link can be used in be advertised so that an unnumbered link can be used in
the SPF computation for multiple address families. the SPF computation for multiple address families.
If these conditions are satisfied for one of the Remote- If these conditions are satisfied for one of the Remote-
Node's links, the bi-directional connectivity check Node's links, the bidirectional connectivity check
succeeds and the Remote-Node may be processed further. succeeds and the Remote-Node may be processed further.
The Remote-Node's Link NLRI providing bi-directional The Remote-Node's Link NLRI providing bidirectional
connectivity is referred to as the Remote-Link. If no connectivity is referred to as the Remote-Link. If no
Remote-Link is found, the next link for the Current-Node Remote-Link is found, the next link for the Current-Node
is examined in Step 5. is examined in Step 5.
* If the Remote-Link NLRI attribute includes an SPF Status * If the Remote-Link NLRI attribute includes an SPF Status
TLV indicating the link is down, the Remote-Link NLRI is TLV indicating the link is down, the Remote-Link NLRI is
considered down and the next link for the Current-Node is considered down, and the next link for the Current-Node is
examined in Step 5. examined in Step 5.
* If the Remote-Node is not on the CAN-LIST, it is inserted * If the Remote-Node is not on the CAN-LIST, it is inserted
based on the cost. The Remote Node's cost is the cost of based on the cost. The Remote Node's cost is the cost of
Current-Node added the Current-Link's IGP Metric TLV the Current-Node added to the Current-Link's IGP Metric
(1095). The next-hop(s) for the Remote-Node are inherited (TLV 1095). The next-hop(s) for the Remote-Node is
from the Current-Link. inherited from the Current-Link.
* If the Remote-Node NLRI is already on the CAN-LIST with a * If the Remote-Node NLRI is already on the CAN-LIST with a
higher cost, it must be removed and reinserted with the higher cost, it must be removed and reinserted with the
Remote-Node cost based on the Current-Link (as calculated Remote-Node cost based on the Current-Link (as calculated
in the previous step). The next-hop(s) for the Remote- in the previous step). The next-hop(s) for the Remote-
Node are inherited from the Current-Link. Node is inherited from the Current-Link.
* If the Remote-Node NLRI is already on the CAN-LIST with * If the Remote-Node NLRI is already on the CAN-LIST with
the same cost, it need not be reinserted on the CAN-LIST. the same cost, it need not be reinserted on the CAN-LIST.
However, the Current-Link's next-hop(s) must be merged However, the Current-Link's next-hop(s) must be merged
into the current set of next-hops for the Remote-Node. into the current set of next-hops for the Remote-Node.
* If the Remote-Node NLRI is already on the CAN-LIST with a * If the Remote-Node NLRI is already on the CAN-LIST with a
lower cost, it need not be reinserted on the CAN-LIST. lower cost, it need not be reinserted on the CAN-LIST.
d. Return to step 3 to process the next lowest cost Node NLRI on d. Return to Step 3 to process the next lowest-cost Node NLRI on
the CAN-LIST. the CAN-LIST.
6. The Local-RIB is examined and changes (adds, deletes, 6. The Local-RIB is examined and changes (adds, deletes, and
modifications) are installed into the GLOBAL-RIB. For each route modifications) are installed into the GLOBAL-RIB. For each route
in the Local-RIB: in the Local-RIB:
* If the route was added during the current BGP SPF computation, * If the route was added during the current BGP SPF computation,
install the route into the GLOBAL-RIB. install the route into the GLOBAL-RIB.
* If the route modified during the current BGP SPF computation * If the route was modified during the current BGP SPF
(e.g., metric, tags, or next-hops), update the route in the computation (e.g., metric, tags, or next-hops), update the
GLOBAL-RIB. route in the GLOBAL-RIB.
* If the route was not installed during the current BGP SPF * If the route was not installed during the current BGP SPF
computation, remove the route from the GLOBAL-RIB. computation, remove the route from the GLOBAL-RIB.
6.4. IPv4/IPv6 Unicast Address Family Interaction 6.4. IPv4/IPv6 Unicast Address Family Interaction
While the BGP-LS-SPF address family and the BGP unicast address While the BGP-LS-SPF address family and the BGP unicast address
families may install routes into the same device routing tables, they families may install routes into the routing tables of the same
operate independently (i.e., "Ships-in-the-Night" mode). There is no device, they operate independently (i.e., "ships-in-the-night" mode).
implicit route redistribution between the BGP-LS-SPF address family There is no implicit route redistribution between the BGP-LS-SPF
and the BGP unicast address families. address family and the BGP unicast address families.
It is RECOMMENDED that BGP-LS-SPF IPv4/IPv6 route computation and It is RECOMMENDED that BGP-LS-SPF IPv4/IPv6 route computation and
installation be given scheduling priority by default over other BGP installation be given scheduling priority by default over other BGP
address families as these address families are considered as underlay address families as these address families are considered as underlay
SAFIs. SAFIs.
6.5. NLRI Advertisement 6.5. NLRI Advertisement
6.5.1. Link/Prefix Failure Convergence 6.5.1. Link/Prefix Failure Convergence
A local failure prevents a link from being used in the SPF A local failure prevents a link from being used in the SPF
calculation due to the IGP bi-directional connectivity requirement. calculation due to the IGP bidirectional connectivity requirement.
Consequently, local link failures SHOULD always be communicated as Consequently, local link failures SHOULD always be communicated as
quickly as possible and given priority over other categories of quickly as possible and given priority over other categories of
changes to ensure expeditious propagation and optimal convergence. changes to ensure expeditious propagation and optimal convergence.
According to standard BGP procedures, the link would continue to be According to standard BGP procedures, the link would continue to be
used until the last copy of the BGP-LS-SPF Link NLRI is withdrawn. used until the last copy of the BGP-LS-SPF Link NLRI is withdrawn.
In order to avoid this delay, the originator of the Link NLRI SHOULD In order to avoid this delay, the originator of the Link NLRI SHOULD
advertise a more recent version with an increased Sequence Number TLV advertise a more recent version with an increased Sequence Number TLV
for the BGP-LS-SPF Link NLRI including the SPF Status TLV (refer to for the BGP-LS-SPF Link NLRI including the SPF Status TLV (refer to
Section 5.2.2.2) indicating the link is down with respect to BGP SPF. Section 5.2.2.2) indicating the link is down with respect to BGP SPF.
The configurable LinkStatusDownAdvertise timer controls the interval The configurable LinkStatusDownAdvertise timer controls the interval
that the BGP-LS-LINK NLRI is advertised with SPF Status indicating that the BGP-LS-LINK NLRI is advertised with SPF Status indicating
the link is down prior to withdrawal. If BGP-LS-SPF Link NLRI has the link is down prior to withdrawal. If a BGP-LS-SPF Link NLRI has
been advertised with the SPF Status TLV and the link becomes been advertised with the SPF Status TLV and the link becomes
available in that period, the originator of the BGP-LS-SPF LINK NLRI available in that period, the originator of the BGP-LS-SPF Link NLRI
MUST advertise a more recent version of the BGP-LS-SPF Link NLRI MUST advertise a more recent version of the BGP-LS-SPF Link NLRI
without the SPF Status TLV in the BGP-LS Link Attributes. The without the SPF Status TLV in the BGP-LS Attributes. The suggested
suggested default value for the LinkStatusDownAdvertise timer is 2 default value for the LinkStatusDownAdvertise timer is 2 seconds.
seconds.
Similarly, when a prefix becomes unreachable, a more recent version Similarly, when a prefix becomes unreachable, a more recent version
of the BGP-LS-SPF Prefix NLRI SHOULD be advertised with the SPF of the BGP-LS-SPF Prefix NLRI SHOULD be advertised with the SPF
Status TLV (refer to Section 5.2.3.1) indicating the prefix is Status TLV (refer to Section 5.2.3.1) to indicate that the prefix is
unreachable in the BGP-LS Prefix Attributes and the prefix will be unreachable in the BGP-LS Prefix Attributes, and the prefix will be
considered unreachable with respect to BGP SPF. The configurable considered unreachable with respect to BGP SPF. The configurable
PrefixStatusDownAdvertise timer controls the interval that the BGP- PrefixStatusDownAdvertise timer controls the interval that the BGP-
LS-Prefix NLRI is advertised with SPF Status indicating the prefix is LS-Prefix NLRI is advertised with SPF Status indicating the prefix is
unreachable prior to withdrawal. If the BGP-LS-SPF Prefix has been unreachable prior to withdrawal. If the BGP-LS-SPF Prefix has been
advertised with the SPF Status TLV and the prefix becomes reachable advertised with the SPF Status TLV and the prefix becomes reachable
in that period, the originator of the BGP-LS-SPF Prefix NLRI MUST in that period, the originator of the BGP-LS-SPF Prefix NLRI MUST
advertise a more recent version of the BGP-LS-SPF Prefix NLRI without advertise a more recent version of the BGP-LS-SPF Prefix NLRI without
the SPF Status TLV in the BGP-LS Prefix Attributes. The suggested the SPF Status TLV in the BGP-LS Prefix Attributes. The suggested
default value for the PrefixStatusDownAdvertise timer is 2 seconds. default value for the PrefixStatusDownAdvertise timer is 2 seconds.
6.5.2. Node Failure Convergence 6.5.2. Node Failure Convergence
By default, all the NLRI advertised by a node are withdrawn when a By default, all the NLRIs advertised by a node are withdrawn when a
session failure is detected [RFC4271]. If fast failure detection session failure is detected [RFC4271]. If fast failure detection
such as BFD [RFC5880] is utilized, and the node is on the fastest such as BFD [RFC5880] is utilized, and the node is on the fastest
converging path, the most recent versions of BGP-LS-SPF NLRI will be converging path, the most recent versions of BGP-LS-SPF NLRI will be
withdrawn. This may result in older versions of NLRI received from withdrawn. This may result in older versions of NLRIs received from
peer(s) on different path(s) being in the LSNDB until they are one or more peers on a different path(s) in the LSNDB until they are
withdrawn. These stale NLRI will not delay convergence since the withdrawn. These stale NLRIs will not delay convergence since the
adjacent nodes detect the link failure and advertise a more recent adjacent nodes detect the link failure and advertise a more recent
NLRI indicating the link is down with respect to BGP SPF (refer to NLRI indicating the link is down with respect to BGP SPF (refer to
Section 6.5.1) and the bi-directional connectivity check fails during Section 6.5.1) and the bidirectional connectivity check fails during
the BGP SPF calculation (refer to Section 6.3). the BGP SPF calculation (refer to Section 6.3).
7. Error Handling 7. Error Handling
This section describes the Error Handling actions, as described in This section describes error-handling actions, as described in
[RFC7606], that are specific to SAFI BGP-LS-SPF BGP Update message [RFC7606], that are specific to BGP-LS-SPF SAFI BGP Update message
processing. processing.
7.1. Processing of BGP-LS-SPF TLVs 7.1. Processing of BGP-LS-SPF TLVs
When a BGP speaker receives a BGP Update containing a malformed Node When a BGP speaker receives a BGP Update containing a malformed Node
NLRI SPF Status TLV in the BGP-LS Attribute [RFC9552], the NLRI SPF Status TLV in the BGP-LS Attribute [RFC9552], the
corresponding Node NLRI is considered as malformed and MUST be corresponding Node NLRI is considered malformed and MUST be handled
handled as 'Treat-as-withdraw'. An implementation SHOULD log an as 'treat-as-withdraw'. An implementation SHOULD log an error
error (subject to rate-limiting) for further analysis. (subject to rate limiting) for further analysis.
When a BGP speaker receives a BGP Update containing a malformed Link When a BGP speaker receives a BGP Update containing a malformed Link
NLRI SPF Status TLV in the BGP-LS Attribute [RFC9552], the NLRI SPF Status TLV in the BGP-LS Attribute [RFC9552], the
corresponding Link NLRI is considered as malformed and MUST be corresponding Link NLRI is considered malformed and MUST be handled
handled as 'Treat-as-withdraw'. An implementation SHOULD log an as 'treat-as-withdraw'. An implementation SHOULD log an error
error (subject to rate-limiting) for further analysis. (subject to rate limiting) for further analysis.
When a BGP speaker receives a BGP Update containing a malformed When a BGP speaker receives a BGP Update containing a malformed
Address Family Link Descriptor TLV in the BGP-LS Attribute [RFC9552], Address Family Link Descriptor TLV in the BGP-LS Attribute [RFC9552],
the corresponding Link NLRI is considered as malformed and MUST be the corresponding Link NLRI is considered malformed and MUST be
handled as 'Treat-as-withdraw'. An implementation SHOULD log an handled as 'treat-as-withdraw'. An implementation SHOULD log an
error (subject to rate-limiting) for further analysis. error (subject to rate limiting) for further analysis.
When a BGP speaker receives a BGP Update containing a malformed When a BGP speaker receives a BGP Update containing a malformed
Prefix NLRI SPF Status TLV in the BGP-LS Attribute [RFC9552], the Prefix NLRI SPF Status TLV in the BGP-LS Attribute [RFC9552], the
corresponding Prefix NLRI is considered as malformed and MUST be corresponding Prefix NLRI is considered malformed and MUST be handled
handled as 'Treat-as-withdraw'. An implementation SHOULD log an as 'treat-as-withdraw'. An implementation SHOULD log an error
error (subject to rate-limiting) for further analysis. (subject to rate limiting) for further analysis.
When a BGP speaker receives a BGP Update containing any malformed When a BGP speaker receives a BGP Update containing a malformed BGP-
BGP-LS Attribute TE and IGP Metric TLV, the corresponding NLRI is LS Attribute TE and IGP Metric TLV, the corresponding NLRI is
considered as malformed and MUST be handled as 'Treat-as-withdraw' considered malformed and MUST be handled as 'treat-as-withdraw'
[RFC7606]. An implementation SHOULD log an error (subject to rate- [RFC7606]. An implementation SHOULD log an error (subject to rate
limiting) for further analysis. limiting) for further analysis.
The BGP-LS Attribute consists of Node attribute TLVs, Link attribute The BGP-LS Attribute consists of Node attribute TLVs, Link attribute
TLVs, and the Prefix attribute TLVs. Node attribute TLVs and their TLVs, and Prefix attribute TLVs. Node attribute TLVs and their
error handling rules are either defined in [RFC9552] or derived from error-handling rules are either defined in [RFC9552] or derived from
[RFC5305] and [RFC6119]. If a BGP speaker receives a BGP-LS [RFC5305] and [RFC6119]. If a BGP speaker receives a BGP-LS
Attribute which is considered malformed based on these error handling Attribute that is considered malformed based on these error-handling
rules, then it MUST consider the received NLRI as malformed and the rules, then it MUST consider the received NLRI as malformed, and the
receiving BGP speaker MUST handle such malformed NLRI as 'Treat-as- receiving BGP speaker MUST handle such a malformed NLRI as 'treat-as-
withdraw' [RFC7606]. withdraw' [RFC7606].
Node Descriptor TLVs and their error handling rules are defined in Node Descriptor TLVs and their error-handling rules are defined in
section 5.2.1 of [RFC9552]. Node Attribute TLVs and their error Section 5.2.1 of [RFC9552]. Node Attribute TLVs and their error-
handling rules are either defined in [RFC9552] or derived from handling rules are either defined in [RFC9552] or derived from
[RFC5305] and [RFC6119]. [RFC5305] and [RFC6119].
Link Descriptor TLVs and their error handling rules are defined in Link Descriptor TLVs and their error-handling rules are defined in
section 5.2.2 of [RFC9552]. Link Attribute TLVs and their error Section 5.2.2 of [RFC9552]. Link Attribute TLVs and their error-
handling rules are either defined in [RFC9552] or derived from handling rules are either defined in [RFC9552] or derived from
[RFC5305] and [RFC6119]. [RFC5305] and [RFC6119].
Prefix Descriptor TLVs and their error handling rules are defined in Prefix Descriptor TLVs and their error-handling rules are defined in
section 5.2.3 of [RFC9552]. Prefix Attribute TLVs and their error Section 5.2.3 of [RFC9552]. Prefix Attribute TLVs and their error-
handling rules are either defined in [RFC9552] or derived from handling rules are either defined in [RFC9552] or derived from
[RFC5130] and [RFC2328]. [RFC5130] and [RFC2328].
If a BGP speaker receives NLRI with a Node Descriptor TLV, Link If a BGP speaker receives NLRI with a Node Descriptor TLV, Link
Descriptor TLV, or Prefix Descriptor TLV that is considered malformed Descriptor TLV, or Prefix Descriptor TLV that is considered malformed
based on error handling rules defined in the above references, then based on error handling rules defined in the above references, then
it MUST consider the received NLRI as malformed and the receiving BGP it MUST consider the received NLRI as malformed, and the receiving
speaker MUST handle such malformed NLRI as 'Treat-as-withdraw' BGP speaker MUST handle such a malformed NLRI as 'treat-as-withdraw'
[RFC7606]. [RFC7606].
When a BGP speaker receives a BGP Update that does not contain any When a BGP speaker receives a BGP Update that does not contain any
BGP-LS Attribute, it is most likely an indication of 'Attribute BGP-LS Attributes, it is most likely an indication of 'Attribute
Discard' fault handling and the BGP speaker SHOULD preserve and Discard' fault handling, and the BGP speaker SHOULD preserve and
propagate the BGP-LS-SPF NLRI as described in Section 8.2.2 of propagate the BGP-LS-SPF NLRI as described in Section 8.2.2 of
[RFC9552]. However, NLRI without the BGP-LS attribute MUST NOT be [RFC9552]. However, NLRIs without the BGP-LS attribute MUST NOT be
used in the SPF Calculation Section 6.3. How this is accomplished is used in the SPF calculation (Section 6.3). How this is accomplished
an implementation matter but one way would be for these NLRI not to is an implementation matter, but one way would be for these NLRIs not
returned in LSNDB lookups. to be returned in LSNDB lookups.
7.2. Processing of BGP-LS-SPF NLRIs 7.2. Processing of BGP-LS-SPF NLRIs
A BGP speaker supporting the BGP-LS-SPF SAFI MUST perform the A BGP speaker supporting the BGP-LS-SPF SAFI MUST perform the
syntactic validation checks of the BGP-LS-SPF NLRI listed in syntactic validation checks of the BGP-LS-SPF NLRI listed in
Section 8.2.2 of [RFC9552] to determine if it is malformed. Section 8.2.2 of [RFC9552] to determine if it is malformed.
7.3. Processing of BGP-LS Attribute 7.3. Processing of BGP-LS Attributes
A BGP speaker supporting the BGP-LS-SPF SAFI MUST perform the A BGP speaker supporting the BGP-LS-SPF SAFI MUST perform the
syntactic validation checks of the BGP-LS Attribute listed in syntactic validation checks of the BGP-LS Attribute listed in
Section 8.2.2 of [RFC9552] to determine if it is malformed. Section 8.2.2 of [RFC9552] to determine if it is malformed.
An implementation SHOULD log an error for further analysis for An implementation SHOULD log an error for further analysis for
problems detected during syntax validation. problems detected during syntax validation.
7.4. BGP-LS-SPF Link State NLRI Database Synchronization 7.4. BGP-LS-SPF Link-State NLRI Database Synchronization
While uncommon, there may be situations where the LSNDBs of two BGP While uncommon, there may be situations where the LSNDBs of two BGP
speakers supporting the BGP-LS-SPF SAFI lose synchronization. In speakers support the BGP-LS-SPF SAFI lose synchronization. In these
these situations, the BGP session MUST be reset unless other means of situations, the BGP session MUST be reset unless other means of
resynchronization are used (beyond the scope of this document). When resynchronization are used (beyond the scope of this document). When
the session is reset, the BGP speaker MUST send a NOTIFICATION the session is reset, the BGP speaker MUST send a NOTIFICATION
message with the BGP error code "Loss of LSDB Synchronization" as message with the BGP error code "Loss of LSDB Synchronization" as
described in section 3 of [RFC4271]. The mechanisms to detect loss described in Section 3 of [RFC4271]. The mechanisms to detect loss
of synchronization are beyond the scope of this document. of synchronization are beyond the scope of this document.
8. IANA Considerations 8. IANA Considerations
8.1. BGP-LS-SPF Allocation in SAFI Parameters Registry 8.1. BGP-LS-SPF Allocation in the SAFI Values Registry
IANA has assigned value 80 for BGP-LS-SPF from the First Come First IANA has assigned value 80 for BGP-LS-SPF from the First Come First
Served range in the "Subsequent Address Family Identifiers (SAFI) Served range [RFC8126] and listed this document as a reference in the
Parameters" registry. IANA is requested to update the registration "SAFI Values" registry within the "Subsequent Address Family
to reference only to this document. Identifiers (SAFI) Parameters" registry group.
8.2. BGP-LS-SPF Assignments to BGP-LS NLRI and Attribute TLV Registry 8.2. BGP-LS-SPF Assignments in the BGP-LS NLRI and Attribute TLVs
Registry
IANA has assigned six TLVs for BGP-LS-SPF NLRI in the "BGP-LS NLRI IANA has assigned six TLVs for BGP-LS-SPF NLRI in the "BGP-LS NLRI
and Attribute TLV" registry. Supported TLV types include the SPF and Attribute TLVs" registry. Supported TLV types include Sequence
Status TLV type, Address Family Link Descriptor TLV type, and Number, SPF Status, and Address Family Link Descriptor. Deprecated
Sequence Number TLV type. Deprecated TLV types include the SPF TLV types include SPF Capability, IPv4 Link Prefix Length, and IPv6
Capability TLV type, IPv4 Link Prefix Length TLV type, and IPv6 Link Link Prefix Length.
Prefix Length TLV type.
+==========+=================+=================================+ +================+=================+============================+
| TLV Code | Description | Reference | | TLV Code Point | Description | Reference |
| Point | | | +================+=================+============================+
+==========+=================+=================================+ | 1181 | Sequence Number | Section 5.2.4 of RFC XXXX |
| 1185 | Address Family | Section 5.2.2.1, RFCXXXX ([this | +----------------+-----------------+----------------------------+
| | Link Descriptor | document]). | | 1184 | SPF Status | Sections 5.2.1.1, 5.2.2.2, |
+----------+-----------------+---------------------------------+ | | | and 5.2.3.1 of RFC XXXX |
| 1181 | Sequence Number | RFCXXXX ([this document]), | +----------------+-----------------+----------------------------+
| | | Section 5.2.4 | | 1185 | Address Family | Section 5.2.2.1 of RFC |
+----------+-----------------+---------------------------------+ | | Link Descriptor | XXXX |
| 1184 | SPF Status | Section 5.2.1.1, RFCXXXX ([this | +----------------+-----------------+----------------------------+
| | | document]), Section 5.2.2.2 and |
| | | Section 5.2.3.1 |
+----------+-----------------+---------------------------------+
Table 1: NLRI Attribute TLVs Table 5: NLRI Attribute TLVs
The early allocation assignments for the TLV types SPF Capability The early allocation assignments for the TLV types SPF Capability
(1180), IPv4 Link Prefix Length (1182), and IPv6 Link Prefix Length (1180), IPv4 Link Prefix Length (1182), and IPv6 Link Prefix Length
(1183) are no longer required and are to be deprecated. (1183) are no longer required and have been deprecated.
8.3. BGP-LS-SPF Node NLRI Attribute SPF Status TLV Status Registry 8.3. BGP-LS-SPF Node NLRI Attribute SPF Status TLV Status Registry
IANA is requested to create the "BGP-LS-SPF Node NLRI Attribute SPF IANA has created the "BGP-LS-SPF Node NLRI Attribute SPF Status TLV
Status TLV Status" Registry for status values in a new BGP SPF group. Status" registry for status values within the "BGP Shortest Path
Initial values for this registry are provided below. Future First (BGP SPF)" registry group. Initial values for this registry
assignments are to be made using the Expert Review registration are provided below. Future assignments are to be made using the
policy [RFC8126] with guidance for Designated Experts as per section Expert Review registration policy [RFC8126] with guidance for
7.2 of [RFC9552]. designated experts as per Section 7.2 of [RFC9552].
+========+==========================================+ +========+==========================================+
| Values | Description | | Values | Description |
+========+==========================================+ +========+==========================================+
| 0 | Reserved | | 0 | Reserved |
+--------+------------------------------------------+ +--------+------------------------------------------+
| 1 | Node unreachable with respect to BGP SPF | | 1 | Node unreachable with respect to BGP SPF |
+--------+------------------------------------------+ +--------+------------------------------------------+
| 2 | Node does not support transit traffic | | 2 | Node does not support transit traffic |
| | with respect to BGP SPF | | | with respect to BGP SPF |
+--------+------------------------------------------+ +--------+------------------------------------------+
| 3-254 | Unassigned | | 3-254 | Unassigned |
+--------+------------------------------------------+ +--------+------------------------------------------+
| 255 | Reserved | | 255 | Reserved |
+--------+------------------------------------------+ +--------+------------------------------------------+
Table 2: BGP-LS-SPF Node NLRI Attribute SPF Table 6: BGP-LS-SPF Node NLRI Attribute SPF
Status TLV Status Registry Assignments Status TLV Status Registry Assignments
8.4. BGP-LS-SPF Link NLRI Attribute SPF Status TLV Status Registry 8.4. BGP-LS-SPF Link NLRI Attribute SPF Status TLV Status Registry
IANA is requested to create the "BGP-LS-SPF Link NLRI Attribute SPF IANA has created the "BGP-LS-SPF Link NLRI Attribute SPF Status TLV
Status TLV Status" Registry for status values in a new BGP SPF group. Status" registry for status values within the BGP Shortest Path First
Initial values for this registry are provided below. Future (BGP SPF)" registry group. Initial values for this registry are
assignments are to be made using the IETF Review registration policy provided below. Future assignments are to be made using the IETF
[RFC8126]. Review registration policy [RFC8126].
+=======+==========================================+ +=======+==========================================+
| Value | Description | | Value | Description |
+=======+==========================================+ +=======+==========================================+
| 0 | Reserved | | 0 | Reserved |
+-------+------------------------------------------+ +-------+------------------------------------------+
| 1 | Link unreachable with respect to BGP SPF | | 1 | Link unreachable with respect to BGP SPF |
+-------+------------------------------------------+ +-------+------------------------------------------+
| 2-254 | Unassigned | | 2-254 | Unassigned |
+-------+------------------------------------------+ +-------+------------------------------------------+
| 255 | Reserved | | 255 | Reserved |
+-------+------------------------------------------+ +-------+------------------------------------------+
Table 3: BGP-LS-SPF Link NLRI Attribute SPF Table 7: BGP-LS-SPF Link NLRI Attribute SPF
Status TLV Status Registry Assignments Status TLV Status Registry Assignments
8.5. BGP-LS-SPF Prefix NLRI Attribute SPF Status TLV Status Registry 8.5. BGP-LS-SPF Prefix NLRI Attribute SPF Status TLV Status Registry
IANA is requested to create the "BGP-LS-SPF Prefix NLRI Attribute SPF IANA has created the "BGP-LS-SPF Prefix NLRI Attribute SPF Status TLV
Status TLV Status" Registry for status values in a new BGP SPF group. Status" registry for status values within the "BGP Shortest Path
Initial values for this registry are provided below. Future First (BGP SPF)" registry group. Initial values for this registry
assignments are to be made using the IETF Review registration policy are provided below. Future assignments are to be made using the IETF
[RFC8126]. Review registration policy [RFC8126].
+=======+============================================+ +=======+============================================+
| Value | Description | | Value | Description |
+=======+============================================+ +=======+============================================+
| 0 | Reserved | | 0 | Reserved |
+-------+--------------------------------------------+ +-------+--------------------------------------------+
| 1 | Prefix unreachable with respect to BGP SPF | | 1 | Prefix unreachable with respect to BGP SPF |
+-------+--------------------------------------------+ +-------+--------------------------------------------+
| 2-254 | Unassigned | | 2-254 | Unassigned |
+-------+--------------------------------------------+ +-------+--------------------------------------------+
| 255 | Reserved | | 255 | Reserved |
+-------+--------------------------------------------+ +-------+--------------------------------------------+
Table 4: BGP-LS-SPF Prefix NLRI Attribute SPF Table 8: BGP-LS-SPF Prefix NLRI Attribute SPF
Status TLV Status Registry Assignments Status TLV Status Registry Assignments
8.6. BGP Error (Notification) Code Assignment 8.6. Assignment in the BGP Error (Notification) Codes Registry
IANA is requested to assign a TBD code for "Loss of LSDB IANA has assigned value 9 for Loss of LSDB Synchronization in the
Synchronization" in the BGP Error (Notification) Codes" registry in "BGP Error (Notification) Codes" registry within the "Border Gateway
the "Border Gateway Protocol (BGP) Parameters" registry group. Protocol (BGP) Parameters" registry group.
9. Security Considerations 9. Security Considerations
This document defines a BGP SAFI, i.e., the BGP-LS-SPF SAFI. This This document defines a BGP SAFI, i.e., the BGP-LS-SPF SAFI. This
document does not change the underlying security issues inherent in document does not change the underlying security issues inherent in
the BGP protocol [RFC4271]. The Security Considerations discussed in the BGP protocol [RFC4271]. The security considerations discussed in
[RFC4271] apply to the BGP SPF functionality as well. The analysis [RFC4271] apply to the BGP SPF functionality as well. The analysis
of the security issues for BGP mentioned in [RFC4272] and [RFC6952] of the security issues for BGP mentioned in [RFC4272] and [RFC6952]
also applies to this document. The threats and security also applies to this document. The threats and security
considerations are the similar to the BGP IPv4 Unicast SAFI and IPv6 considerations are similar to the BGP IPv4 Unicast SAFI and IPv6
Unicast SAFI when utilized in similar deployments, e.g., [RFC7938]. Unicast SAFI when utilized in similar deployments, e.g., [RFC7938].
The analysis of Generic Threats to Routing Protocols done in The analysis of generic threats to routing protocols in [RFC4593] is
[RFC4593] is also worth noting. also worth noting.
As the modifications described in this document for BGP SPF apply to As the modifications for BGP SPF described in this document apply to
IPv4 Unicast and IPv6 Unicast as underlay SAFIs in a single BGP SPF IPv4 Unicast and IPv6 Unicast as underlay SAFIs in a single BGP SPF
Routing Domain, the BGP security solutions described in [RFC6811] and Routing Domain, the BGP security solutions described in [RFC6811] and
[RFC8205] are out of scope as they are meant to apply for inter- [RFC8205] are out of scope as they are meant to apply for inter-
domain BGP where multiple BGP Routing Domains are typically involved. domain BGP, where multiple BGP Routing Domains are typically
The BGP-LS-SPF SAFI NLRI described in this document are typically involved. The BGP-LS-SPF SAFI NLRIs described in this document are
advertised between External BGP (EBGP) or Internal BGP (IBGP) typically advertised between EBGP or IBGP speakers under a single
speakers under a single administrative domain. administrative domain.
The BGP SPF processing and the BGP-LS-SPF SAFI inherit the encoding The BGP SPF processing and the BGP-LS-SPF SAFI inherit the encoding
from BGP-LS [RFC9552], and consequently, inherit the security from BGP-LS [RFC9552], and consequently, inherit the security
considerations for BGP-LS associated with encoding. Additionally, considerations for BGP-LS associated with encoding. Additionally,
given that the BGP SPF processing is used to install IPv4 and IPv6 given that BGP SPF processing is used to install IPv4 and IPv6
Unicast routes, the BGP SPF processing is vulnerable to attacks to unicast routes, the BGP SPF processing is vulnerable to attacks to
the routing control plane that aren't applicable to BGP-LS. One the routing control plane that aren't applicable to BGP-LS. One
notable Denial-of-Service attack, would be to include malformed BGP notable Denial-of-Service attack would be to include malformed BGP
attributes in a replicated BGP Update, causing the receiving peer to attributes in a replicated BGP Update, causing the receiving peer to
treat the advertised BGP-LS-SPF to a withdrawal [RFC7606]. treat the advertised BGP-LS-SPF to a withdrawal [RFC7606].
In order to mitigate the risk of peering with BGP speakers In order to mitigate the risk of peering with BGP speakers
masquerading as legitimate authorized BGP speakers, it is RECOMMENDED masquerading as legitimate authorized BGP speakers, it is RECOMMENDED
that the TCP Authentication Option (TCP-AO) [RFC5925] be used to that the TCP Authentication Option (TCP-AO) [RFC5925] be used to
authenticate BGP sessions. If an authorized BGP peer is compromised, authenticate BGP sessions. If an authorized BGP peer is compromised,
that BGP peer could advertise modified Node, Link, or Prefix NLRI that BGP peer could advertise a modified Node, Link, or Prefix NLRI
which result in misrouting, repeating origination of NLRI, and/or that results in misrouting, repeating origination of NLRI, and/or
excessive SPF calculations. When a BGP speaker detects that its excessive SPF calculations. When a BGP speaker detects that its
self-originated NLRI is being originated by another BGP speaker, an self-originated NLRI is being originated by another BGP speaker, an
appropriate error SHOULD be logged so that the operator can take appropriate error SHOULD be logged so that the operator can take
corrective action. This exposure is similar to other BGP AFI/SAFIs. corrective action. This exposure is similar to other BGP AFI/SAFIs.
10. Management Considerations 10. Management Considerations
This section includes unique management considerations for the BGP- This section includes unique management considerations for the BGP-
LS-SPF address family. LS-SPF address family.
10.1. Configuration 10.1. Configuration
All routers in BGP SPF Routing Domain are under a single All routers in the BGP SPF Routing Domain are under a single
administrative domain allowing for consistent configuration. administrative domain allowing for consistent configuration.
10.2. Link Metric Configuration 10.2. Link Metric Configuration
For loopback prefixes, it is RECOMMENDED that the metric be 0. For For loopback prefixes, it is RECOMMENDED that the metric be 0. For
non-loopback prefixes, the setting of the metric is a local matter non-loopback prefixes, the setting of the metric is a local matter
and beyond the scope of this document. and beyond the scope of this document.
Algorithms such as setting the metric inversely to the link speed as Algorithms such as setting the metric inversely to the link speed as
supported in some IGP implementations MAY be supported. However, the supported in some IGP implementations MAY be supported. However, the
details of how the metric is computed are beyond the scope of this details of how the metric is computed are beyond the scope of this
document. document.
Within a BGP SPF Routing Domain, the IGP metrics for all advertised Within a BGP SPF Routing Domain, the IGP metrics for all advertised
links SHOULD be configured or defaulted consistently. For example, links SHOULD be configured or defaulted consistently. For example,
if a default metric is used for one router's links, then a similar if a default metric is used for one router's links, then a similar
metric should be used for all router's links. Similarly, if the link metric should be used for all router's links. Similarly, if the link
metric is derived from using the inverse of the link bandwidth on one metric is derived from using the inverse of the link bandwidth on one
router, then this SHOULD be done for all routers and the same router, then this SHOULD be done for all routers, and the same
reference bandwidth SHOULD be used to derive the inversely reference bandwidth SHOULD be used to derive the inversely
proportional metric. Failure to do so will result in incorrect proportional metric. Failure to do so will result in incorrect
routing based on link metric. routing based on the link metric.
10.3. Unnumbered Link Configuration 10.3. Unnumbered Link Configuration
When parallel unnumbered links between BGP-SPF routers are included When parallel unnumbered links between BGP and SPF routers are
in the BGP SPF routing domain and the Remote Link Identifiers aren't included in the BGP SPF routing domain and the Remote Link
readily discovered, it is RECOMMENDED that these the Remote Link Identifiers aren't readily discovered, it is RECOMMENDED that the
Identifiers be configured so that precise NLRI Link matching can be Remote Link Identifiers be configured so that precise Link NLRI
done. matching can be done.
10.4. Adjacency End-of-RIB (EOR) Marker Requirement 10.4. Adjacency End-of-RIB (EOR) Marker Requirement
Depending on the peering model, topology, and convergence Depending on the peering model, topology, and convergence
requirements, an End-of-RIB (EoR) Marker Section 5.3 for the BGP-LS- requirements, an EoR marker (Section 5.3) for the BGP-LS-SPF SAFI MAY
SPF SAFI MAY be required from the peer prior to advertising a BGP-LS be required from the peer prior to advertising a BGP-LS Link NLRI for
Link NLRI for the peer. If configuration is supported, this MUST be the peer. If configuration is supported, this MUST be configurable
configurable at the BGP SPF instance level and MUST be configured at the BGP SPF instance level and MUST be configured consistently
consistently throughout the BGP SPF routing domain. throughout the BGP SPF routing domain.
When this configuration is provided, the default MUST be to wait When this configuration is provided, the default MUST be to wait
indefinitely prior to advertising a BGP-LS link NLRI. Configuration indefinitely prior to advertising a BGP-LS Link NLRI. Configuration
of a timer specifying the maximum time to wait prior to advertisement of a timer specifying the maximum time to wait prior to advertisement
MAY be provided. MAY be provided.
10.5. backoff-config 10.5. backoff-config
In addition to configuration of the BGP-LS-SPF address family, In addition to the configuration of the BGP-LS-SPF address family,
implementations SHOULD support the "Shortest Path First (SPF) Back- implementations SHOULD support "Shortest Path First (SPF) Back-Off
Off Delay Algorithm for Link-State IGPs" [RFC8405]. If supported, Delay Algorithm for Link-State IGPs" [RFC8405]. If supported,
configuration of the INITIAL_SPF_DELAY, SHORT_SPF_DELAY, configuration of the INITIAL_SPF_DELAY, SHORT_SPF_DELAY,
LONG_SPF_DELAY, TIME_TO_LEARN, and HOLDDOWN_INTERVAL MUST be LONG_SPF_DELAY, TIME_TO_LEARN, and HOLDDOWN_INTERVAL MUST be
supported [RFC8405]. Section 6 of [RFC8405] recommends consistent supported [RFC8405]. Section 6 of [RFC8405] recommends consistent
configuration of these values throughout the IGP routing domain and configuration of these values throughout the IGP routing domain, and
this also applies to the BGP SPF Routing Domain. this also applies to the BGP SPF Routing Domain.
10.6. BGP-LS-SPF NLRI Readvertisement Delay 10.6. BGP-LS-SPF NLRI Readvertisement Delay
The configuration parameter specifies the delay for readvertising a The configuration parameter that specifies the delay for
more recent instance of a self-originated NLRI when received more readvertising a more recent instance of a self-originated NLRI when
than once in succession is BGP_LS_SPF_SELF_READVERTISEMENT_DELAY. received more than once in succession is
The default is 5 seconds. BGP_LS_SPF_SELF_READVERTISEMENT_DELAY. The default is 5 seconds.
10.7. Operational Data 10.7. Operational Data
In order to troubleshoot SPF issues, implementations SHOULD support In order to troubleshoot SPF issues, implementations SHOULD support
an SPF log including entries for previous SPF computations. Each SPF an SPF log including entries for previous SPF computations. Each SPF
log entry would include the BGP-LS-SPF NLRI SPF triggering the SPF, log entry would include the BGP-LS-SPF NLRI SPF triggering the SPF,
SPF scheduled time, SPF start time and SPF end time. Since the size SPF scheduled time, SPF start time, and SPF end time. Since the size
of the log is finite, implementations SHOULD also maintain counters of the log is finite, implementations SHOULD also maintain counters
for the total number of SPF computations and the total number of SPF for the total number of SPF computations and the total number of SPF
triggering events. Additionally, to troubleshoot SPF scheduling and triggering events. Additionally, troubleshooting should be available
back-off [RFC8405], the current SPF back-off state, remaining time- for SPF scheduling and back-off [RFC8405], the current SPF back-off
to-learn, remaining hold-down interval, last trigger event time, last state, the remaining time-to-learn, the remaining hold-down interval,
SPF time, and next SPF time should be available. the last trigger event time, the last SPF time, and the next SPF
time.
10.8. BGP-LS-SPF Address Family Session Isolation 10.8. BGP-LS-SPF Address Family Session Isolation
In common deployment scenarios, the unicast routes installed during In common deployment scenarios, the unicast routes installed during
BGP-LS-SPF AFI/SAFI SPF computation serve as the underlay for other BGP-LS-SPF AFI/SAFI SPF computation serve as the underlay for other
BGP AFI/SAFIs. To avoid errors encountered in other AFI/SAFIs from BGP AFI/SAFIs. To avoid errors encountered in other AFI/SAFIs from
impacting the BGP-LS-SPF AFI/SAFI or vice versa, isolation mechanisms impacting the BGP-LS-SPF AFI/SAFI or vice versa, isolation mechanisms
such as separate BGP instances or separate BGP sessions (e.g., using such as separate BGP instances or separate BGP sessions (e.g., using
different addresses for peering) for BGP SPF Link-State information different addresses for peering) for BGP SPF Link-State distribution
distribution SHOULD be used. information SHOULD be used.
11. Implementation Status
Note RFC Editor: Please remove this section and the associated
references prior to publication.
This section records the status of known implementations of the
protocol defined by this specification at the time of posting of this
Internet-Draft and is based on a proposal described in [RFC7942].
The description of implementations in this section is intended to
assist the IETF in its decision processes in progressing drafts to
RFCs. Please note that the listing of any individual implementation
here does not imply endorsement by the IETF. Furthermore, no effort
has been spent to verify the information presented here that was
supplied by IETF contributors. This is not intended as, and must not
be construed to be, a catalog of available implementations or their
features. Readers are advised to note that other implementations may
exist.
According to RFC 7942, "this will allow reviewers and working groups
to assign due consideration to documents that have the benefit of
running code, which may serve as evidence of valuable experimentation
and feedback that have made the implemented protocols more mature.
It is up to the individual working groups to use this information as
they see fit".
The document [I-D.psarkar-lsvr-bgp-spf-impl] contains an
implementation report documenting implementations of BGP Link-State
Short Path First (SPF) routing, i.e., this specification.
12. Acknowledgements 10.9. Acknowledgements
The authors would like to thank Sue Hares, Jorge Rabadan, Boris The authors would like to thank Sue Hares, Jorge Rabadan, Boris
Hassanov, Dan Frost, Matt Anderson, Fred Baker, Lukas Krattiger, Hassanov, Dan Frost, Matt Anderson, Fred Baker, Lukas Krattiger,
Yingzhen Qu, and Haibo Wang for their review and comments. Thanks to Yingzhen Qu, and Haibo Wang for their reviews and comments. Thanks
Pushpasis Sarkar for discussions on preventing a BGP SPF Router from to Pushpasis Sarkar for discussions on preventing a BGP SPF Router
being used for non-local traffic (i.e., transit traffic). from being used for non-local traffic (i.e., transit traffic).
The authors extend special thanks to Eric Rosen for fruitful The authors extend a special thanks to Eric Rosen for fruitful
discussions on BGP-LS-SPF convergence as compared to IGPs. discussions on BGP-LS-SPF convergence as compared to IGPs.
The authors would like extend thanks Alvaro Retana for multiple AD The authors would also like to thank the following people:
reviews and discussions.
The authors would to thank Ketan Talaulikar for an extensive shepherd * Alvaro Retana for multiple AD reviews and discussions.
review.
The authors would like to thank Adrian Farrel, Li Zhang, and Jie Dong * Ketan Talaulikar for an extensive shepherd review.
for WG last call review comments.
The authors would to like to thank Jim Guichard for his AD review and * Adrian Farrel, Li Zhang, and Jie Dong for WG Last Call review
discussion. comments.
The authors would to like to thank David Dong for his IANA review. * Jim Guichard for his AD review and discussion.
The authors would to like to thank Joel Halpern for his GENART * David Dong for his IANA review.
review.
The authors would to like to thank Erik Kline, Eric Vyncke, Mahesh * Joel Halpern for his GENART review.
Jethanandani, and Roman Danyliw for IESG review comments.
The authors would to like to thank John Scudder for his detailed IESG * Erik Kline, Eric Vyncke, Mahesh Jethanandani, and Roman Danyliw
review and specifically for helping align the document with BGP for IESG review comments.
documents.
13. Contributors * John Scudder for his detailed IESG review and specifically for
helping align the document with BGP documents.
In addition to the authors listed on the front page, the following 10.10. Contributors
co-authors have contributed to the document.
The following people contributed substantially to the content of this
document and should be considered coauthors:
Derek Yeung Derek Yeung
Arrcus, Inc. Arrcus, Inc.
derek@arrcus.com Email: derek@arrcus.com
Gunter Van De Velde Gunter Van De Velde
Nokia Nokia
gunter.van_de_velde@nokia.com Email: gunter.van_de_velde@nokia.com
Abhay Roy Abhay Roy
Arrcus, Inc. Arrcus, Inc.
abhay@arrcus.com Email: abhay@arrcus.com
Venu Venugopal Venu Venugopal
Cisco Systems Cisco Systems
venuv@cisco.com Email: venuv@cisco.com
Chaitanya Yadlapalli Chaitanya Yadlapalli
AT&T AT&T
cy098d@att.com Email: cy098d@att.com
14. References 11. References
14.1. Normative References 11.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, [RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328,
DOI 10.17487/RFC2328, April 1998, DOI 10.17487/RFC2328, April 1998,
<https://www.rfc-editor.org/info/rfc2328>. <https://www.rfc-editor.org/info/rfc2328>.
skipping to change at page 37, line 49 skipping to change at line 1726
Ray, S., and J. Dong, "Border Gateway Protocol - Link Ray, S., and J. Dong, "Border Gateway Protocol - Link
State (BGP-LS) Extensions for Segment Routing BGP Egress State (BGP-LS) Extensions for Segment Routing BGP Egress
Peer Engineering", RFC 9086, DOI 10.17487/RFC9086, August Peer Engineering", RFC 9086, DOI 10.17487/RFC9086, August
2021, <https://www.rfc-editor.org/info/rfc9086>. 2021, <https://www.rfc-editor.org/info/rfc9086>.
[RFC9552] Talaulikar, K., Ed., "Distribution of Link-State and [RFC9552] Talaulikar, K., Ed., "Distribution of Link-State and
Traffic Engineering Information Using BGP", RFC 9552, Traffic Engineering Information Using BGP", RFC 9552,
DOI 10.17487/RFC9552, December 2023, DOI 10.17487/RFC9552, December 2023,
<https://www.rfc-editor.org/info/rfc9552>. <https://www.rfc-editor.org/info/rfc9552>.
14.2. Informational References 11.2. Informative References
[I-D.ietf-lsvr-applicability] [I-D.ietf-lsvr-applicability]
Patel, K., Lindem, A., Zandi, S., Dawra, G., and J. Dong, Patel, K., Lindem, A., Zandi, S., Dawra, G., and J. Dong,
"Usage and Applicability of BGP Link-State Shortest Path "Usage and Applicability of BGP Link-State Shortest Path
Routing (BGP-SPF) in Data Centers", Work in Progress, Routing (BGP-SPF) in Data Centers", Work in Progress,
Internet-Draft, draft-ietf-lsvr-applicability-21, 16 Internet-Draft, draft-ietf-lsvr-applicability-22, 23
January 2025, <https://datatracker.ietf.org/doc/html/ January 2025, <https://datatracker.ietf.org/doc/html/
draft-ietf-lsvr-applicability-21>. draft-ietf-lsvr-applicability-22>.
[I-D.psarkar-lsvr-bgp-spf-impl]
Sarkar, P., Patel, K., Pallagatti, S., and
sajibasil@gmail.com, "BGP Shortest Path Routing Extension
Implementation Report", Work in Progress, Internet-Draft,
draft-psarkar-lsvr-bgp-spf-impl-02, 23 September 2024,
<https://datatracker.ietf.org/doc/html/draft-psarkar-lsvr-
bgp-spf-impl-02>.
[RFC4272] Murphy, S., "BGP Security Vulnerabilities Analysis", [RFC4272] Murphy, S., "BGP Security Vulnerabilities Analysis",
RFC 4272, DOI 10.17487/RFC4272, January 2006, RFC 4272, DOI 10.17487/RFC4272, January 2006,
<https://www.rfc-editor.org/info/rfc4272>. <https://www.rfc-editor.org/info/rfc4272>.
[RFC4456] Bates, T., Chen, E., and R. Chandra, "BGP Route [RFC4456] Bates, T., Chen, E., and R. Chandra, "BGP Route
Reflection: An Alternative to Full Mesh Internal BGP Reflection: An Alternative to Full Mesh Internal BGP
(IBGP)", RFC 4456, DOI 10.17487/RFC4456, April 2006, (IBGP)", RFC 4456, DOI 10.17487/RFC4456, April 2006,
<https://www.rfc-editor.org/info/rfc4456>. <https://www.rfc-editor.org/info/rfc4456>.
skipping to change at page 39, line 15 skipping to change at line 1775
[RFC7911] Walton, D., Retana, A., Chen, E., and J. Scudder, [RFC7911] Walton, D., Retana, A., Chen, E., and J. Scudder,
"Advertisement of Multiple Paths in BGP", RFC 7911, "Advertisement of Multiple Paths in BGP", RFC 7911,
DOI 10.17487/RFC7911, July 2016, DOI 10.17487/RFC7911, July 2016,
<https://www.rfc-editor.org/info/rfc7911>. <https://www.rfc-editor.org/info/rfc7911>.
[RFC7938] Lapukhov, P., Premji, A., and J. Mitchell, Ed., "Use of [RFC7938] Lapukhov, P., Premji, A., and J. Mitchell, Ed., "Use of
BGP for Routing in Large-Scale Data Centers", RFC 7938, BGP for Routing in Large-Scale Data Centers", RFC 7938,
DOI 10.17487/RFC7938, August 2016, DOI 10.17487/RFC7938, August 2016,
<https://www.rfc-editor.org/info/rfc7938>. <https://www.rfc-editor.org/info/rfc7938>.
[RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running
Code: The Implementation Status Section", BCP 205,
RFC 7942, DOI 10.17487/RFC7942, July 2016,
<https://www.rfc-editor.org/info/rfc7942>.
Authors' Addresses Authors' Addresses
Keyur Patel Keyur Patel
Arrcus, Inc. Arrcus, Inc.
Email: keyur@arrcus.com Email: keyur@arrcus.com
Acee Lindem Acee Lindem
LabN Consulting, LLC LabN Consulting, LLC
301 Midenhall Way 301 Midenhall Way
Cary, NC 27513 Cary, NC 27513
 End of changes. 245 change blocks. 
646 lines changed or deleted 630 lines changed or added

This html diff was produced by rfcdiff 1.48.