draft-ietf-lsvr-bgp-spf-51.original.xml   draft-ietf-lsvr-bgp-spf-51.xml 
<?xml version='1.0' encoding='utf-8'?> <?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE rfc [ <!DOCTYPE rfc [
<!ENTITY nbsp "&#160;"> <!ENTITY nbsp "&#160;">
<!ENTITY zwsp "&#8203;"> <!ENTITY zwsp "&#8203;">
<!ENTITY nbhy "&#8209;"> <!ENTITY nbhy "&#8209;">
<!ENTITY wj "&#8288;"> <!ENTITY wj "&#8288;">
]> ]>
<!-- This template is for creating an Internet Draft using xml2rfc,
which is available here: http://xml.resource.org. -->
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs),
please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that
most I-Ds might want to use.
(Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space
(using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-ie
tf-lsvr-bgp-spf-51"
ipr="trust200902" obsoletes="" updates="" submissionType="IETF" xml:lang="e
n" tocInclude="true"
tocDepth="4" symRefs="true" sortRefs="true" version="3" consensus="true">
<!-- xml2rfc v2v3 conversion 3.12.1 -->
<!-- category values: std, bcp, info, exp, and historic
ipr values: full3667, noModification3667, noDerivatives3667
you can add the attributes updates="NNNN" and obsoletes="NNNN"
they will automatically be output with "(if approved)" -->
<!-- ***** FRONT MATTER ***** --> <rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-ie tf-lsvr-bgp-spf-51" number="0000" ipr="trust200902" obsoletes="" updates="" subm issionType="IETF" xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true" so rtRefs="true" version="3" consensus="true">
<front> <!--[rfced] The Abstract/Introduction mentions that this document
<title abbrev="BGP Link-State SPF Routing"> provides extensions for use with BGP Link-State distribution and
BGP Link-State Shortest Path First (SPF) Routing</title> the SPF algorithm. Would you like to include "extensions" in the
<!-- add 'role="editor"' below for the editors if appropriate --> document title for consistency with the Abstract/Introduction?
<!-- Another author who claims to be an editor --> Original:
BGP Link-State Shortest Path First (SPF) Routing
Perhaps:
Extensions for BGP Link-State Shortest Path First (SPF) Routing
-->
-&gt; <front>
<title abbrev="BGP Link-State SPF Routing">BGP Link-State Shortest Path Firs
t (SPF) Routing</title>
<seriesInfo name="RFC" value="0000"/>
<author fullname="Keyur Patel" initials="K" surname="Patel"> <author fullname="Keyur Patel" initials="K" surname="Patel">
<organization>Arrcus, Inc.</organization> <organization>Arrcus, Inc.</organization>
<address> <address>
<email>keyur@arrcus.com</email> <email>keyur@arrcus.com</email>
</address> </address>
</author> </author>
<author fullname="Acee Lindem" initials="A" surname="Lindem"> <author fullname="Acee Lindem" initials="A" surname="Lindem">
<organization>LabN Consulting, LLC</organization> <organization>LabN Consulting, LLC</organization>
<address> <address>
<postal> <postal>
<street>301 Midenhall Way</street> <street>301 Midenhall Way</street>
<city>Cary</city> <city>Cary</city>
<region>NC</region> <region>NC</region>
<code>27513</code> <code>27513</code>
<country>USA</country> <country>United States of America</country>
</postal> </postal>
<email>acee.ietf@gmail.com</email> <email>acee.ietf@gmail.com</email>
</address> </address>
</author> </author>
<author fullname="Shawn Zandi" initials="S" surname="Zandi"> <author fullname="Shawn Zandi" initials="S" surname="Zandi">
<organization>LinkedIn</organization> <organization>LinkedIn</organization>
<address> <address>
<postal> <postal>
<street>222 2nd Street</street> <street>222 2nd Street</street>
<city>San Francisco</city> <city>San Francisco</city>
<region>CA</region> <region>CA</region>
<code>94105</code> <code>94105</code>
<country>USA</country> <country>United States of America</country>
</postal> </postal>
<email>szandi@linkedin.com</email> <email>szandi@linkedin.com</email>
</address> </address>
</author> </author>
<author fullname="Wim Henderickx" initials="W" surname="Henderickx"> <author fullname="Wim Henderickx" initials="W" surname="Henderickx">
<organization>Nokia</organization> <organization>Nokia</organization>
<address> <address>
<postal> <postal>
<street>copernicuslaan 50</street> <street>copernicuslaan 50</street>
<city>Antwerp</city> <city>Antwerp</city>
<code>2018</code> <code>2018</code>
<country>Belgium</country> <country>Belgium</country>
</postal> </postal>
<email>wim.henderickx@nokia.com</email> <email>wim.henderickx@nokia.com</email>
</address> </address>
</author> </author>
<date/> <date month="June" year="2025"/>
<!-- Meta-data Declarations -->
<area>RTG</area>
<workgroup>lsvr</workgroup>
<area>Routing</area>
<workgroup>Link State Vector Routing (LSVR) Working Group</workgroup>
<keyword>IDR</keyword> <keyword>IDR</keyword>
<!-- Keywords will be incorporated into HTML output
files in a meta tag but they have no effect on text or nroff
output. If you submit your draft to the RFC Editor, the
keywords will be used for the search engine. -->
<abstract> <abstract>
<t> <t>
Many Massively Scaled Data Centers (MSDCs) have converged on simplified Many Massively Scaled Data Centers (MSDCs) have converged on simplified
L3 (Layer 3) routing. Furthermore, requirements for operational simplici ty Layer 3 (L3) routing. Furthermore, requirements for operational simplici ty
has led many of these MSDCs to converge on BGP as their single routing has led many of these MSDCs to converge on BGP as their single routing
protocol for both their fabric routing and their Data Center Interconnec protocol for both fabric routing and Data Center Interconnect
t (DCI) routing. This document describes extensions to BGP for use with BG
(DCI) routing. This document describes extensions to BGP to use BGP P -
Link-State distribution and the Shortest Path First (SPF) algorithm. Link-State (BGP-LS) distribution and the Shortest Path First (SPF) algor
ithm.
In doing this, it allows In doing this, it allows
BGP to be efficiently used as both the underlay protocol and the overlay protocol in BGP to be efficiently used as both the underlay protocol and the overlay protocol in
MSDCs. MSDCs.
</t> </t>
</abstract> </abstract>
</front> </front>
<middle> <middle>
<section anchor="introduction" numbered="true" toc="default"> <section anchor="introduction" numbered="true" toc="default">
<name>Introduction</name> <name>Introduction</name>
<t> <t>
Many Massively Scaled Data Centers (MSDCs) have converged on simplified Many Massively Scaled Data Centers (MSDCs) have converged on simplified
L3 (Layer 3) routing. Furthermore, requirements for operational simplici ty Layer 3 (L3) routing. Furthermore, requirements for operational simplici ty
has led many of these MSDCs to converge on BGP <xref target="RFC4271" fo rmat="default"/> has led many of these MSDCs to converge on BGP <xref target="RFC4271" fo rmat="default"/>
as their single routing protocol for both their fabric routing and as their single routing protocol for both fabric routing and
their Data Center Interconnect (DCI) routing <xref target="RFC7938" form Data Center Interconnect (DCI) routing <xref target="RFC7938" format="de
at="default"/>. fault"/>.
This document describes an alternative solution which leverages This document describes an alternative solution that leverages
BGP-LS <xref target="RFC9552" format="default"/> BGP-LS <xref target="RFC9552" format="default"/>
and the Shortest Path First algorithm used by and the Shortest Path First (SPF) algorithm used by
Internal Gateway Protocols (IGPs). Internal Gateway Protocols (IGPs).
</t> </t>
<t> <t>
This document leverages both the BGP protocol <xref target="RFC4271" for mat="default"/> and This document leverages both the BGP protocol <xref target="RFC4271" for mat="default"/> and
the BGP-LS <xref target="RFC9552" format="default"/> extensions. The rel BGP-LS extensions <xref target="RFC9552" format="default"/>. The relatio
ationship, as well as nship as well as
the scope of changes is described respectively in <xref target="BGP-base the scope of changes are described in Sections <xref target="BGP-base" f
" format="default"/> ormat="counter"/>
and <xref target="BGP-LS" format="default"/>. The modifications to and <xref target="BGP-LS" format="counter"/>, respectively. The modifica
tions to
<xref target="RFC4271" format="default"/> <xref target="RFC4271" format="default"/>
for BGP SPF described herein only apply to IPv4 and IPv6 as underlay uni cast for BGP SPF described herein only apply to IPv4 and IPv6 as underlay uni cast
Subsequent Address Families Identifiers (SAFIs). Subsequent Address Family Identifiers (SAFIs).
Operations for any other BGP SAFIs are outside the scope of this documen t. Operations for any other BGP SAFIs are outside the scope of this documen t.
</t> </t>
<t> <t>
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, an d These include TCP-based flow-control, no periodic link-state refresh, an d
completely incremental NLRI advertisement. These advantages can reduce t completely incremental Network Layer Reachability Information (NLRI) adv
he ertisement.
overhead in MSDCs where there is a high degree of Equal Cost Multi-Path These advantages can reduce the
(ECMP) load-balancing. overhead in MSDCs where there is a high degree of Equal-Cost Multipath
(ECMP) load balancing.
Additionally, using an SPF-based computation can support fast convergenc e and Additionally, using an SPF-based computation can support fast convergenc e and
the computation of Loop-Free Alternatives (LFAs). The SPF LFA extensions defined the computation of Loop-Free Alternatives (LFAs). The SPF LFA extensions defined
in <xref target="RFC5286" format="default"/> can be similarly applied to BGP SPF calculations. in <xref target="RFC5286" format="default"/> can be similarly applied to BGP SPF calculations.
<!--[rfced] May we rephrase "are a matter of implementation detail" to
"are specific to implementation" or "are specific to the
implementation process" for clarity?
Original:
However, the details are a matter of implementation detail
and out of scope for this document.
Perhaps:
However, the details are specific to implementation and are
out of scope for this document.
-->
However, the details are a matter of implementation detail and out of sc ope for this However, the details are a matter of implementation detail and out of sc ope for this
document. document.
Furthermore, a BGP-based solution lends itself to multiple peering model s Furthermore, a BGP-based solution lends itself to multiple peering model s
including those incorporating route-reflectors <xref target="RFC4456" fo rmat="default"/> including those incorporating route reflectors <xref target="RFC4456" fo rmat="default"/>
or controllers. or controllers.
</t> </t>
<section anchor="terms" numbered="true" toc="default"> <section anchor="terms" numbered="true" toc="default">
<name>Terminology</name> <name>Terminology</name>
<t> <t>
This specification reuses terms defined in section 1.1 of This specification reuses terms defined in <xref section="1.1" target=
<xref target="RFC4271" format="default"/>. "RFC4271" format="default"/>.
</t> </t>
<t>Additionally, this document introduces the following terms: <t>Additionally, this document introduces the following terms:
</t> </t>
<dl newline="false" spacing="normal"> <dl newline="false" spacing="normal">
<dt>BGP SPF Routing Domain:</dt> <dt>BGP SPF Routing Domain:</dt>
<dd> A set of BGP routers that are under a single <dd> A set of BGP routers that are under a single
administrative domain and exchange link-state information using the BG administrative domain and that exchange link-state information using t
P-LS-SPF SAFI he BGP-LS-SPF SAFI
and compute routes using BGP SPF as described herein.</dd> and compute routes that use BGP SPF, as described herein.</dd>
<dt>BGP-LS-SPF NLRI:</dt> <dt>BGP-LS-SPF NLRI:</dt>
<dd> This refers to BGP-LS Network Layer Reachability <dd>The BGP-LS Network Layer Reachability
Information (NLRI) that is being advertised in the BGP-LS-SPF SAFI (<x ref target="SAFI" format="default"/>) Information (NLRI) that is being advertised in the BGP-LS-SPF SAFI (<x ref target="SAFI" format="default"/>)
and is being used for BGP SPF route computation.</dd> and is being used for BGP SPF route computation.</dd>
<dt>Dijkstra Algorithm:</dt> <dt>Dijkstra Algorithm:</dt>
<dd> <dd>
An algorithm for computing the shortest path from a given node in a graph An algorithm for computing the shortest path from a given node in a graph
to every other node in the graph. to every other node in the graph.
</dd> </dd>
<dt>Prefix NLRI:</dt> <dt>Prefix NLRI:</dt>
<dd> <dd>
In the context of BGP SPF, this term refers to both or either the IP v4 Topology Prefix NLRI In the context of BGP SPF, this term refers to the IPv4 Topology Pre fix NLRI
and/or the IPv6 Topology Prefix NLRI. and/or the IPv6 Topology Prefix NLRI.
</dd> </dd>
</dl> </dl>
</section> </section>
<section numbered="true" toc="default"> <section numbered="true" toc="default">
<name>BGP Shortest Path First (SPF) Motivation</name> <name>BGP Shortest Path First (SPF) Motivation</name>
<t> <t>
Given that <xref target="RFC7938" format="default"/> already describes how BGP could be used Given that <xref target="RFC7938" format="default"/> already describes how BGP could be used
as the sole routing protocol in an MSDC, one might question the motiva tion for as the sole routing protocol in an MSDC, one might question the motiva tion for
defining an alternative BGP deployment model when a mature solution ex ists. defining an alternative BGP deployment model when a mature solution ex ists.
For both alternatives, BGP offers the operational benefits of a single For both alternatives, BGP offers the operational benefits of a single
routing protocol as opposed to the combination of an IGP for the under routing protocol as opposed to the combination of IGP for the underlay
lay and BGP as the overlay. However, BGP SPF offers some unique advantages
and BGP as an overlay. However, BGP SPF offers some unique advantages above
above
and beyond standard BGP path-vector routing. With BGP SPF, the and beyond standard BGP path-vector routing. With BGP SPF, the
simple single-hop peering model recommended in section 5.2.1 of <xref target="RFC7938"/> simple single-hop peering model recommended in <xref section="5.2.1" t arget="RFC7938"/>
is augmented with peering models requiring fewer BGP sessions. is augmented with peering models requiring fewer BGP sessions.
</t> </t>
<t> <t>
A primary advantage is that all BGP speakers in the BGP SPF routing do main A primary advantage is that all BGP speakers in the BGP SPF routing do main
have a complete view of the topology. This allows support for ECMP, have a complete view of the topology. This allows support for ECMP,
IP fast-reroute (e.g., Loop-Free Alternatives) <xref target="RFC5286" format="default"/>, IP fast-reroute (e.g., Loop-Free Alternatives (LFAs) <xref target="RFC 5286" format="default"/>,
Shared Risk Link Groups (SRLGs) <xref target="RFC4202"/>, Shared Risk Link Groups (SRLGs) <xref target="RFC4202"/>,
and other routing enhancements without advertisement of additional and other routing enhancements without advertisement of additional
BGP paths <xref target="RFC7911" format="default"/> or other extensio ns. BGP paths <xref target="RFC7911" format="default"/> or other extensio ns.
</t> </t>
<t> <t>
With the BGP SPF decision process as defined in With the BGP SPF decision process as defined in
<xref target="bgp-decision" format="default"/>, NLRI changes can be di sseminated throughout the BGP <xref target="bgp-decision" format="default"/>, NLRI changes can be di sseminated throughout the BGP
routing domain much more rapidly. The added advantage of BGP using TCP for reliable routing domain much more rapidly. The added advantage of BGP using TCP for reliable
transport leverages TCP's inherent flow-control and guaranteed in-orde r delivery. transport leverages TCP's inherent flow-control and guaranteed in-orde r delivery.
</t> </t>
<t> <t>
Another primary advantage is a potential reduction in NLRI advertise ment. Another primary advantage is a potential reduction in NLRI advertise ment.
<!--[rfced] In the RFC Series, "100s or 1000s" is typically spelled
out. Would you like to spell it out here?
Original:
With standard BGP path-vector routing, a single link
failure may impact 100s or 1000s of prefixes and result in the
withdrawal or re-advertisement of the attendant NLRI.
Perhaps:
With standard BGP path-vector routing, a single link
failure may impact hundreds or thousands of prefixes
and result in the withdrawal or re-advertisement of
the attendant NLRI.
-->
With standard BGP path-vector routing, a single link failure may imp act With standard BGP path-vector routing, a single link failure may imp act
100s or 1000s of prefixes and result in the withdrawal or re-adverti sement of 100s or 1000s of prefixes and result in the withdrawal or readvertis ement of
the attendant NLRI. With BGP SPF, only the BGP speakers originating the attendant NLRI. With BGP SPF, only the BGP speakers originating
the link NLRI need to withdraw the corresponding BGP-LS-SPF Link NLR I. Additionally, the link NLRI need to withdraw the corresponding BGP-LS-SPF Link NLR I. Additionally,
the changed NLRI is advertised immediately as opposed to normal BGP where it the changed NLRI is advertised immediately as opposed to normal BGP where it
is only advertised after the best route selection. These advantages provide is only advertised after the best route selection. These advantages provide
NLRI dissemination throughout the BGP SPF routing domain with effici encies similar NLRI dissemination throughout the BGP SPF routing domain with effici encies similar
to link-state protocols. to link-state protocols.
</t> </t>
<t> <t>
With controller and route-reflector peering models, BGP SPF advertis ement With controller and route-reflector peering models, BGP SPF advertis ement
and distributed computation require a minimal number of sessions and and distributed computation require a minimal number of sessions and
copies of the NLRI since only the latest version of the NLRI from th e copies of the NLRI as only the latest version of the NLRI from the
originator is required (see <xref target="peering-models"/>). originator is required (see <xref target="peering-models"/>).
Given that verification of whether or not to advertise a link (with a Given that verification of whether or not to advertise a link (with a
BGP-LS-SPF Link NLRI) is done outside of BGP, each BGP BGP-LS-SPF Link NLRI) is done outside of BGP, each BGP
speaker only needs as many sessions and copies of the NLRI as requir ed for speaker only needs as many sessions and copies of the NLRI as requir ed for
redundancy. Additionally, a controller could inject topology (i.e., BGP-LS-SPF NLRI) redundancy. Additionally, a controller could inject topology (i.e., BGP-LS-SPF NLRI)
that is learned outside the BGP SPF routing domain. that is learned outside the BGP SPF routing domain.
</t> </t>
<t> <t>
Given BGP-LS NLRI is already defined Given that BGP-LS NLRI is already defined
<xref target="RFC9552" format="default"/>, this functionality <xref target="RFC9552" format="default"/>, this functionality
can be reused for BGP-LS-SPF NLRI. can be reused for BGP-LS-SPF NLRI.
</t> </t>
<t> <t>
Another advantage of BGP SPF is that both IPv6 and IPv4 can 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 NLRIs. In many be 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 congruent (refer to MSDC fabrics, the IPv4 and IPv6 topologies are congruent (refer to
<xref target="Link-NLRI" format="default"/>). <xref target="Link-NLRI" format="default"/>).
Although beyond the scope of this document, BGP-LS-SPF NLRI multi-to pology extensions could However, beyond the scope of this document, BGP-LS-SPF NLRI multi-to pology extensions could
be defined to support separate IPv4, IPv6, unicast, and multicast to pologies be defined to support separate IPv4, IPv6, unicast, and multicast to pologies
while sharing the same NLRI. while sharing the same NLRI.
</t> </t>
<t> <t>
<!--[rfced] How may we rephrase "and realize all the above advantages"
for clarity? Is the intended meaning that the BGF SPF topology
"offers" the above advantages, as shown below?
Original:
Finally, the BGP SPF topology can be used as an underlay for other
BGP SAFIs (using the existing model) and realize all the above
advantages.
Perhaps:
Finally, the BGP SPF topology can be used as an underlay for other
BGP SAFIs (using the existing model), and it offers all the above
advantages.
-->
Finally, the BGP SPF topology can be used as an underlay for other B GP Finally, the BGP SPF topology can be used as an underlay for other B GP
SAFIs (using the existing model) and realize all the above SAFIs (using the existing model) and realize all the above
advantages. advantages.
</t> </t>
</section> </section>
<section numbered="true" toc="default"> <section numbered="true" toc="default">
<name>Document Overview</name> <name>Document Overview</name>
<t> <t>
The document begins with sections defining the precise relationship
that BGP SPF has <!--[rfced] FYI - We rephrased this sentence as shown below to avoid
with both the base BGP protocol <xref target="RFC4271" format="defau any confusion with "[RFC4271] (Section 2)" and "[RFC9552] (Section 3)".
lt"/> (<xref target="BGP-base" format="default"/>) and the
BGP Link-State (BGP-LS) extensions <xref target="RFC9552" format="d Original:
efault"/> The document begins with sections defining the precise relationship
(<xref target="BGP-LS" format="default"/>). The BGP peering models, that BGP SPF has with both the base BGP protocol [RFC4271]
as well as (Section 2) and the BGP Link-State (BGP-LS) extensions [RFC9552]
(Section 3).
Current:
This document begins with Section 2 defining the precise relationship
that BGP SPF has with the base BGP protocol [RFC4271] and Section 3
defining the BGP - Link-State (BGP-LS) extensions [RFC9552].
-->
This document begins with <xref target="BGP-base" format="default"/>
defining the
precise relationship that BGP SPF has
with the base BGP protocol <xref target="RFC4271" format="default"/>
and <xref target="BGP-LS" format="default"/> defining the
BGP - Link-State (BGP-LS) extensions <xref target="RFC9552" format="
default"/>.
The BGP peering models as well as
their respective trade-offs are then discussed in their respective trade-offs are then discussed in
<xref target="peering-models" format="default"/>. The remaining sect ions, which make up the bulk of the <xref target="peering-models" format="default"/>. The remaining sect ions, which make up the bulk of the
document, define the protocol enhancements necessary to support BGP SPF including BGP-LS Extensions document, define the protocol enhancements necessary to support BGP SPF including BGP-LS extensions
(<xref target="protocol-extend" format="default"/>), replacement of the base BGP decision process (<xref target="protocol-extend" format="default"/>), replacement of the base BGP decision process
with the SPF computation (<xref target="bgp-decision" format="defaul t"/>), and BGP SPF error with the SPF computation (<xref target="bgp-decision" format="defaul t"/>), and BGP SPF error
handling (<xref target="error-handling" format="default"/>). handling (<xref target="error-handling" format="default"/>).
</t> </t>
</section> </section>
<section numbered="true" toc="default"> <section numbered="true" toc="default">
<name>Requirements Language</name> <name>Requirements Language</name>
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL <t>
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU
"MAY", and "OPTIONAL" in this document are to be interpreted as IRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
described in BCP 14 <xref target="RFC2119" format="default"/> <xref NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>
target="RFC8174" format="default"/> RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
when, and only when, they appear in all capitals, as shown here.</t> "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to
be interpreted as
described in BCP&nbsp;14 <xref target="RFC2119"/> <xref target="RFC8174"/>
when, and only when, they appear in all capitals, as shown here.
</t>
</section> </section>
</section> </section>
<!-- for Introductions section -->
<section anchor="BGP-base" numbered="true" toc="default"> <section anchor="BGP-base" numbered="true" toc="default">
<name>Base BGP Protocol Relationship</name> <name>Base BGP Protocol Relationship</name>
<t> <t>
With the exception of the decision process, the BGP SPF extensions leverage th e BGP With the exception of the decision process, BGP SPF extensions leverage the BG P
protocol <xref target="RFC4271" format="default"/> without change. This inclu des the BGP protocol protocol <xref target="RFC4271" format="default"/> without change. This inclu des the BGP protocol
Finite State Machine, BGP messages and their encodings, processing of BGP mess ages, Finite State Machine, BGP messages and their encodings, the processing of BGP messages,
BGP attributes and path attributes, BGP NLRI encodings, and any error handling BGP attributes and path attributes, BGP NLRI encodings, and any error handling
defined in <xref target="RFC4271" format="default"/>, <xref target="RFC4760" f ormat="default"/>, defined in <xref target="RFC4271" format="default"/>, <xref target="RFC4760" f ormat="default"/>,
and <xref target="RFC7606" format="default"/>. and <xref target="RFC7606" format="default"/>.
</t> </t>
<t> <t>
Due to the changes to the decision Due to changes in the decision
process, there are mechanisms and encodings that are no longer applicable. process, there are mechanisms and encodings that are no longer applicable.
Unless explicitly specified in the context of BGP SPF, all optional path Unless explicitly specified in the context of BGP SPF, all optional path
attributes SHOULD NOT be advertised. If received, all path attributes MUST attributes <bcp14>SHOULD NOT</bcp14> be advertised. If received, all path att
be accepted, validated, and propagated consistent with the BGP protocol ributes <bcp14>MUST</bcp14>
be accepted, validated, and propagated consistently with the BGP protocol
<xref target="RFC4271"/>, even if not needed by BGP SPF. <xref target="RFC4271"/>, even if not needed by BGP SPF.
</t> </t>
<t> <t>
Section 9.1 of <xref target="RFC4271" format="default"/> defines the decision process that <xref section="9.1" target="RFC4271" format="default"/> defines the decision p rocess that
is used to select routes for subsequent advertisement is used to select routes for subsequent advertisement
by applying the policies in the local Policy Information Base (PIB) to the by applying the policies in the local Policy Information Base (PIB) to the
routes stored in its Adj-RIBs-In. The output of the Decision Process is the routes stored in 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 set of 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-RIBs-Out selected routes are stored by a BGP speaker in the speaker's Adj-RIBs-Out,
according to policy. according to policy.
</t> </t>
<t> <t>
The BGP SPF extension fundamentally changes the decision process, as described The BGP SPF extension fundamentally changes the decision process, as described
herein. Specifically: herein. Specifically:
</t> </t>
<ol spacing="normal" type="1"> <ol spacing="normal" type="1">
<li> <li>
BGP advertisements are readvertised to neighbors immediately without waiting BGP advertisements are readvertised to neighbors immediately without waiting
or dependence on the route computation as specified in phase 3 of the base B or dependence on the route computation, as specified in phase 3 of the base
GP BGP
decision process. Multiple peering models are supported as specified in decision process. Multiple peering models are supported, as specified in
<xref target="peering-models" format="default"/>. <xref target="peering-models" format="default"/>.
</li> </li>
<li> <li>
<!--[rfced] May we rephrase this sentence as follows so that it parses
and is parallel with the third entry in the list?
Original:
Determining the degree of preference for BGP routes for the SPF
calculation as described in phase 1 of the base BGP decision
process is replaced with the mechanisms in Section 6.1.
Perhaps:
Phase 1 of the base BGP decision process, which determines the
degreee of preferencce for BGP routes for the SPF calculation,
is replaced with the mechanisms in Section 6.1.
-->
Determining the degree of preference for BGP routes for the SPF calculation as Determining the degree of preference for BGP routes for the SPF calculation as
described in phase 1 of the base BGP decision process is replaced with the mec hanisms described in phase 1 of the base BGP decision process is replaced with the mec hanisms
in <xref target="Phase-1" format="default"/>. in <xref target="Phase-1" format="default"/>.
</li> </li>
<li> <li>
Phase 2 of the base BGP protocol decision process is replaced with the Phase 2 of the base BGP protocol decision process is replaced with the
Shortest Path First (SPF) algorithm, also known as the Dijkstra algorithm. SPF algorithm, also known as the Dijkstra algorithm.
</li> </li>
</ol> </ol>
</section> </section>
<!-- for BGP relationship section -->
<section anchor="BGP-LS" numbered="true" toc="default"> <section anchor="BGP-LS" numbered="true" toc="default">
<name>BGP Link-State (BGP-LS) Relationship</name> <name>BGP - Link-State (BGP-LS) Relationship</name>
<t> <t>
<xref target="RFC9552" format="default"/> describes a mechanism by <xref target="RFC9552" format="default"/> describes a mechanism by
which link-state and Traffic Engineering (TE) information can be collected fro m networks and shared with external which link-state and Traffic Engineering (TE) information can be collected fro m networks and shared with external
entities using BGP. entities using BGP.
This is achieved by defining NLRI advertised using the BGP-LS AFI. The BGP-LS extensions defined in This is achieved by defining NLRIs that are advertised using the BGP-LS AFI. T he BGP-LS extensions defined in
<xref target="RFC9552" format="default"/> make use of the decision process def ined in <xref target="RFC9552" format="default"/> make use of the decision process def ined in
<xref target="RFC4271" format="default"/>. Rather than reusing the BGP-LS SAF I, the BGP-LS-SPF SAFI <xref target="RFC4271" format="default"/>. Rather than reusing the BGP-LS SAF I, the BGP-LS-SPF SAFI
(<xref target="SAFI" format="default"/>) is introduced to ensure backward comp atibility (<xref target="SAFI" format="default"/>) is introduced to ensure backward comp atibility
for the BGP-LS SAFI usage. for BGP-LS SAFI usage.
</t> </t>
<t> <t>
The "BGP-LS NLRI and Attribute TLVs" registry <xref target="RFC9552"/> is shar ed between The "BGP-LS NLRI and Attribute TLVs" registry <xref target="RFC9552"/> is shar ed between
the BGP-LS SAFI and the BGP-LS-SPF SAFI. the BGP-LS SAFI and the BGP-LS-SPF SAFI.
However, the TLVs defined in this document may not be applicable to However, the TLVs defined in this document may not be applicable to
the BGP-LS SAFI. As specified in Section 5.1 of <xref target="RFC9552"/>, the the BGP-LS SAFI. As specified in <xref section="5.1" target="RFC9552"/>, the
presence presence
of unknown or unexpected TLVs is required to not result in the NLRI or of unknown or unexpected TLVs is required so that the NLRI or
the BGP-LS Attribute being considered BGP-LS Attribute will not be considered
malformed (section 5.2 of <xref target="RFC9552"/>). The list of BGP-LS TLVs malformed (<xref section="5.2" target="RFC9552"/>). The list of BGP-LS TLVs a
applicable pplicable
to the BGP-LS-SPF SAFI are described in to the BGP-LS-SPF SAFI are described in
<xref target="NLRI-Use"/>. By default, the usage of other BGP-LS TLVs or <xref target="NLRI-Use"/>. By default, the usage of other BGP-LS TLVs or
extensions are ignored for the BGP-LS-SPF SAFI. However, this doesn't preclude the usage extensions are ignored for the BGP-LS-SPF SAFI. However, this doesn't preclude the usage
specification of these TLVs for the BGP-LS-SPF SAFI in future documents. specification of these TLVs for the BGP-LS-SPF SAFI in future documents.
</t> </t>
</section> </section>
<!-- for BGP-LS relationship section -->
<section anchor="peering-models" numbered="true" toc="default"> <section anchor="peering-models" numbered="true" toc="default">
<name>BGP SPF Peering Models</name> <name>BGP SPF Peering Models</name>
<t> <t>
Depending on the topology, scaling, capabilities of the BGP speakers, and redu ndancy Depending on the topology, scaling, capabilities of the BGP speakers, and redu ndancy
requirements, various peering models are supported. The only requirement is th at all BGP requirements, various peering models are supported. The only requirement is th at all BGP
speakers in the BGP SPF routing domain adhere to this specification. speakers in the BGP SPF routing domain adhere to this specification.
</t> </t>
<t> <t>
The choice of the deployment model is up to the operator and their requirement s and policies. The choice of the deployment model is up to the operator and their requirement s and policies.
Deployment model choice is out of scope for this document and is discussed in Deployment model choice is out of scope for this document and is discussed in
<xref target="I-D.ietf-lsvr-applicability" format="default"/>. The sub-section s below <xref target="I-D.ietf-lsvr-applicability" format="default"/>. The sub-section s below
describe several BGP SPF deployment models. However, this doesn't preclude oth er describe several BGP SPF deployment models. However, this doesn't preclude oth er
deployment models. deployment models.
</t> </t>
<section anchor="single-hop-peering" numbered="true" toc="default"> <section anchor="single-hop-peering" numbered="true" toc="default">
<name>BGP Single-Hop Peering on Network Node Connections</name> <name>BGP Single-Hop Peering on Network Node Connections</name>
<t> <t>
The simplest peering model is the one where The simplest peering model is the one where
EBGP single-hop sessions are established over direct point-to-point links External BGP (EBGP) single-hop sessions are established over direct point-to-p
interconnecting the nodes in the BGP SPF routing domain. Once the single-hop B oint links
GP session has been interconnecting the nodes in the BGP SPF routing domain.
established and the Multi-Protocol Extensions Capability with the BGP-LS-SPF A
FI/SAFI has been exchanged <!--[rfced] In RFC 4760, the term "Multiprotocol Extensions
<xref target="RFC4760" format="default"/> for the corresponding session, then capabilities" is used rather than "Multi-Protocol Extensions
the link is considered up from Capability". We have updated the text below to reflect
a BGP SPF perspective and the corresponding BGP-LS-SPF Link NLRI is advertised this. Note that there is another instance in Section 5.1.
. Please let us know if these changes are not correct.
Original:
Once the single-hop BGP session has been established and the
Multi-Protocol Extensions Capability with the BGP-LS-SPF AFI/SAFI
has been exchanged [RFC4760] for the corresponding session...
Current:
Once the single-hop BGP session has been established and the
Multiprotocol Extensions capabilities have been exchanged with
the BGP-LS-SPF AFI/SAFI [RFC4760] for the corresponding session...
-->
Once the single-hop BGP session has been
established and the Multiprotocol Extensions capabilities have been exchanged
with the BGP-LS-SPF AFI/SAFI
<xref target="RFC4760" format="default"/> for the corresponding session, then
the link is considered up and available from
a BGP SPF perspective, and the corresponding BGP-LS-SPF Link NLRI is advertise
d.
</t> </t>
<t> <t>
An End-of-RIB (EoR) Marker (<xref target="BGP-LS-SPF-EOR"/>) for the BGP-LS-SP An End-of-RIB (EoR) marker (<xref target="BGP-LS-SPF-EOR"/>) for the BGP-LS-SP
F F
SAFI MAY be required from a peer prior to advertising the BGP-LS-SPF Link NLRI SAFI <bcp14>MAY</bcp14> be required from a peer prior to advertising the BGP-L
for the corresponding link to that peer. When required, the default S-SPF Link NLRI
wait indefinitely for the EoR Marker prior to advertising the BGP-LS-SPF Link for the corresponding link to that peer.
NLRI.
<!--[rfced] The following sentence does not parse - are some words
perhaps missing after "default"? Please let us know how we may
rephrase for clarity.
Original:
When required, the default wait indefinitely for the EoR Marker prior
to advertising the BGP-LS-SPF Link NLRI. Refer to Section 10.4.
-->
When required, the default
wait indefinitely for the EoR marker prior to advertising the BGP-LS-SPF Link
NLRI.
Refer to <xref target="Adjacency-EoR-Required"/>. Refer to <xref target="Adjacency-EoR-Required"/>.
</t> </t>
<t> <t>
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.
</t> </t>
<t> <t>
If the session goes down, the corresponding Link NLRI are withdrawn. Topologic ally, If the session goes down, the corresponding Link NLRIs are withdrawn. Topologi cally,
this would be equivalent to the peering model in <xref target="RFC7938" format ="default"/> where there this would be equivalent to the peering model in <xref target="RFC7938" format ="default"/> where there
is a BGP session on every link in the data center switch fabric. The content of the Link NLRI is a BGP session on every link in the data center switch fabric. The content of the Link NLRI
is described in <xref target="Link-NLRI" format="default"/>. is described in <xref target="Link-NLRI" format="default"/>.
</t> </t>
</section> </section>
<section numbered="true" toc="default"> <section numbered="true" toc="default">
<name>BGP Peering Between Directly-Connected Nodes</name> <name>BGP Peering Between Directly Connected Nodes</name>
<t> <t>
In this model, BGP speakers peer with all directly-connected In this model, BGP speakers peer with all directly connected
nodes but the sessions may be between loopback addresses (i.e., nodes but the sessions may be between loopback addresses (i.e.,
two-hop sessions) and the direct connection two-hop sessions), and the direct connection
discovery and liveness detection for the interconnecting links are discovery and liveness detection for the interconnecting links are
independent of the BGP protocol. The BFD protocol <xref target="RFC5880" forma independent of the BGP protocol. The Bidirectional Forwarding Detection (BFD)
t="default"/> protocol <xref target="RFC5880" format="default"/>
is RECOMMENDED for liveness detection. Usage of other liveness connection mech is <bcp14>RECOMMENDED</bcp14> for liveness detection. Usage of other liveness
anisms connection mechanisms
is outside the scope of this document. is outside the scope of this document.
Consequently, there is a single BGP session even if there are multiple Consequently, there is a single BGP session even if there are multiple
direct connections between BGP speakers. The BGP-LS-SPF Link NLRI is advertise d direct connections between BGP speakers. The BGP-LS-SPF Link NLRI is advertise d
as long as a BGP session has been established, the BGP-LS-SPF AFI/SAFI as long as a BGP session has been established, the BGP-LS-SPF AFI/SAFI
capability has been exchanged <xref target="RFC4760" format="default"/>, capability has been exchanged <xref target="RFC4760" format="default"/>,
the link is operational as determined using liveness detection mechanisms, the link is operational as determined using liveness detection mechanisms,
and, optionally, the EoR Marker has been received as described in the and, optionally, the EoR marker has been received as described in
<xref target="BGP-LS-SPF-EOR"/>. <xref target="BGP-LS-SPF-EOR"/>.
This is much like the previous peering model only peering is between This is much like the previous peering model, except peering is between
loopback addresses and the interconnecting links can be unnumbered. However, loopback addresses and the interconnecting links can be unnumbered. However,
since there are BGP sessions between every directly-connected node in the since there are BGP sessions between every directly connected node in the
BGP SPF routing domain, there is a reduction in BGP sessions when there BGP SPF routing domain, there is a reduction in BGP sessions when there
are parallel links between nodes. Hence, this peering model is RECOMMENDED are parallel links between nodes. Hence, this peering model is <bcp14>RECOMMEN DED</bcp14>
over the single-hop peering model <xref target="single-hop-peering"/>. over the single-hop peering model <xref target="single-hop-peering"/>.
</t> </t>
</section> </section>
<section numbered="true" toc="default"> <section numbered="true" toc="default">
<name>BGP Peering in Route-Reflector or Controller Topology</name> <name>BGP Peering in Route-Reflector or Controller Topology</name>
<t> <t>
In this model, BGP speakers peer solely with one or more Route Reflectors In this model, BGP speakers peer solely with one or more route reflectors
<xref target="RFC4456" format="default"/> or controllers. As in the previous m odel, direct <xref target="RFC4456" format="default"/> or controllers. As in the previous m odel, direct
connection discovery and liveness detection for those links in the BGP connection discovery and liveness detection for those links in the BGP
SPF routing domain are done outside of the BGP protocol. SPF routing domain are done outside of the BGP protocol.
BGP-LS-SPF Link NLRI is advertised as long as the corresponding link is BGP-LS-SPF Link NLRI is advertised as long as the corresponding link is
considered up as per the chosen liveness detection mechanism (The BFD protocol considered up and available as per the chosen liveness detection mechanism (th
<xref target="RFC5880" format="default"/> is RECOMMENDED). us, the BFD protocol
<xref target="RFC5880" format="default"/> is <bcp14>RECOMMENDED</bcp14>).
</t> </t>
<t> <t>
This peering model, known as sparse peering, allows for fewer BGP sessions This peering model, known as "sparse peering", allows for fewer BGP sessions
and, consequently, fewer instances of the same NLRI received from multiple pee rs. and, consequently, fewer instances of the same NLRI received from multiple pee rs.
Ideally, the route-reflectors or controller BGP sessions would be on directly- connected Ideally, the route reflectors or controller BGP sessions would be on directly connected
links to avoid dependence on another routing protocol for session connectivity . However, links to avoid dependence on another routing protocol for session connectivity . However,
multi-hop peering is not precluded. The number of BGP sessions is dependent multi-hop peering is not precluded. The number of BGP sessions is dependent
on the redundancy requirements and the stability of the BGP sessions. on the redundancy requirements and the stability of the BGP sessions.
</t> </t>
<t> <t>
The controller may use constraints to determine The controller may use constraints to determine
when to advertise BGP-LS-SPF NLRI for BGP-LS peers. For example, a controller when to advertise BGP-LS-SPF NLRI for BGP-LS peers. For example, a controller
may delay advertisement of a link between two peers the until EoR may delay advertisement of a link between two peers the until the EoR
marker <xref target="BGP-LS-SPF-EOR"/> has been marker <xref target="BGP-LS-SPF-EOR"/> has been
received from both BGP peers and the BGP-LS Link NLRI for the link(s) between the two nodes received from both BGP peers and the BGP-LS Link NLRI for the link(s) between the two nodes
have been received from both BGP peers. has been received from both BGP peers.
</t> </t>
</section> </section>
</section> </section>
<!--[rfced] May we update the title of Section 5 to reflect "Shortest
Path Forward (SPF)" instead of "Shortest Path Routing (SPF)" for
consistency? And may we remove the SPF expansion in the title of
Section 5.1 since it was expanded in the title of Section 5?
Original:
5. BGP Shortest Path Routing (SPF) Protocol Extensions . . . 9
5.1. BGP-LS Shortest Path Routing (SPF) SAFI . . . . . . . . 10
Perhaps:
5. BGP Shortest Path First (SPF) Protocol Extensions . . . . . 9
5.1. BGP-LS SPF SAFI . . . . . . . . . . . . . . . . . . . . . 10
-->
<section anchor="protocol-extend" numbered="true" toc="default"> <section anchor="protocol-extend" numbered="true" toc="default">
<name>BGP Shortest Path Routing (SPF) Protocol Extensions</name> <name>BGP Shortest Path Routing (SPF) Protocol Extensions</name>
<section anchor="SAFI" numbered="true" toc="default"> <section anchor="SAFI" numbered="true" toc="default">
<name>BGP-LS Shortest Path Routing (SPF) SAFI</name> <name>BGP-LS Shortest Path Routing (SPF) SAFI</name>
<t> <t>
This document introduces the BGP-LS-SPF SAFI with a value of 80. This document introduces the BGP-LS-SPF SAFI with a value of 80.
The SPF-based decision process (Section 6) applies only to the The SPF-based decision process (<xref target="bgp-decision"/>) applies only to
BGP-LS-SPF SAFI and MUST NOT be used with other combinations of the
the BGP-LS AFI (16388). In order for two BGP speakers to BGP-LS-SPF SAFI and <bcp14>MUST NOT</bcp14> be used with other combinations of
exchange BGP-LS-SPF NLRI, they MUST exchange the Multiprotocol the BGP-LS AFI (16388).
Extensions Capability <xref target="RFC4760" format="default"/> In order for two BGP speakers to
to ensure that they are both capable of properly processing such exchange BGP-LS-SPF NLRI, they <bcp14>MUST</bcp14> exchange Multiprotocol
Extensions capabilities <xref target="RFC4760" format="default"/>
to 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 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 is used to advertise IPv4 and IPv6 prefix information in a
format facilitating an SPF-based decision process. format facilitating an SPF-based decision process.
</t> </t>
<section anchor="BGP-LS-TLV" numbered="true" toc="default"> <section anchor="BGP-LS-TLV" numbered="true" toc="default">
<name>BGP-LS-SPF NLRI TLVs</name> <name>BGP-LS-SPF NLRI TLVs</name>
<t> <t>
All the TLVs defined for BGP-LS <xref target="RFC9552" format="default"/> All the TLVs defined for BGP-LS <xref target="RFC9552" format="default"/>
are applicable and can be used with the BGP-LS-SPF SAFI to describe links, nod es, are applicable and can be used with the BGP-LS-SPF SAFI to describe links, nod es,
and prefixes comprising BGP-SPF LSDB information. and prefixes comprising BGP SPF Link-State Database (LSDB) information.
</t> </t>
<t> <t>
The NLRI and comprising TLVs MUST be encoded as specified in The NLRI and comprising TLVs <bcp14>MUST</bcp14> be encoded as specified in
section 5.1 <xref target="RFC9552" format="default"/>. TLVs specified as <xref section="5.1" target="RFC9552" format="default"/>. TLVs specified as
mandatory in <xref target="RFC9552" format="default"/> are mandatory in <xref target="RFC9552" format="default"/> are
considered mandatory for the BGP-LS-SPF SAFI as considered mandatory for the BGP-LS-SPF SAFI as
well. If a mandatory TLV is not present, the NLRI MUST NOT be used in the well. If a mandatory TLV is not present, the NLRI <bcp14>MUST NOT</bcp14> be u sed in the
BGP SPF route calculation. All the other TLVs are considered as optional TLVs. Documents BGP SPF route calculation. All the other TLVs are considered as optional TLVs. Documents
specifying usage of optional TLV for BGP SPF MUST address backward compatibili ty. specifying usage of optional TLVs for BGP SPF <bcp14>MUST</bcp14> address back ward compatibility.
</t> </t>
</section> </section>
<section numbered="true" toc="default"> <section numbered="true" toc="default">
<name>BGP-LS Attribute</name> <name>BGP-LS Attribute</name>
<t> <t>
The BGP-LS attribute of the BGP-LS-SPF SAFI uses exactly same format of the BG P-LS AFI The BGP-LS attribute of the BGP-LS-SPF SAFI uses the exact same format as the BGP-LS AFI
<xref target="RFC9552" format="default"/>. In <xref target="RFC9552" format="default"/>. In
other words, all the TLVs used in the BGP-LS attribute of the BGP-LS AFI are a pplicable other words, all the TLVs used in the BGP-LS attribute of the BGP-LS AFI are a pplicable
and used for the BGP-LS attribute of the BGP-LS-SPF SAFI. This attribute is an optional, and are used for the BGP-LS attribute of the BGP-LS-SPF SAFI. This attribute i s an optional,
non-transitive BGP attribute that is used to carry link, node, and prefix non-transitive BGP attribute that is used to carry link, node, and prefix
properties and attributes. The BGP-LS attribute is a set of TLVs. properties and attributes. The BGP-LS attribute is a set of TLVs.
</t> </t>
<t> <t>
All the TLVs defined for the BGP-LS Attribute <xref target="RFC9552" format=" default"/> All the TLVs defined for the BGP-LS Attribute <xref target="RFC9552" format=" default"/>
are applicable and can be used with the BGP-LS-SPF SAFI to carry link, node, a nd prefix are applicable and can be used with the BGP-LS-SPF SAFI to carry link, node, a nd prefix
properties and attributes. properties and attributes.
</t> </t>
<t> <t>
The BGP-LS attribute may potentially be quite large depending on The BGP-LS attribute may potentially be quite large depending on
the amount of link-state information associated with a single BGP-LS-SPF NLRI. the amount of link-state information associated with a single BGP-LS-SPF NLRI.
The BGP specification <xref target="RFC4271" format="default"/> mandates a max imum BGP The BGP specification <xref target="RFC4271" format="default"/> mandates a max imum BGP
message size of 4096 octets. It is RECOMMENDED that an message size of 4096 octets. It is <bcp14>RECOMMENDED</bcp14> that an
implementation support <xref target="RFC8654" format="default"/> in order to a ccommodate a greater implementation support <xref target="RFC8654" format="default"/> in order to a ccommodate a greater
amount of information within the BGP-LS Attribute. BGP speakers MUST amount of information within the BGP-LS Attribute. BGP speakers <bcp14>MUST</ bcp14>
ensure that they limit the TLVs included in the BGP-LS Attribute to ensure that they limit the TLVs included in the BGP-LS Attribute to
ensure that a BGP update message for a single BGP-LS-SPF NLRI does ensure that a BGP update message for a single BGP-LS-SPF NLRI does
not cross the maximum limit for a BGP message. The determination of not cross the maximum limit for a BGP message. The determination of
the types of TLVs to be included by the BGP speaker the types of TLVs to be included by the BGP speaker
originating the attribute is outside the scope of this document. originating the attribute is outside the scope of this document.
If, due to the limits on the maximum size of an UPDATE message, a single If, due to the limits on the maximum size of an UPDATE message, a single
route doesn't fit into the message, the BGP speaker MUST NOT advertise the route doesn't fit into the message, the BGP speaker <bcp14>MUST NOT</bcp14> ad
route to its peer and MAY choose to log an error locally <xref target="RFC4271 vertise the
"/>. route to its peer and <bcp14>MAY</bcp14> choose to log an error locally <xref
target="RFC4271"/>.
</t> </t>
</section> </section>
</section> </section>
<section anchor="NLRI-Use" numbered="true" toc="default"> <section anchor="NLRI-Use" numbered="true" toc="default">
<name>Extensions to BGP-LS</name> <name>Extensions to BGP-LS</name>
<t> <t>
<xref target="RFC9552" format="default"/> describes a mechanism <xref target="RFC9552" format="default"/> describes a mechanism
by which link-state and TE by which link-state and TE
information can be collected from IGPs and shared with external components information can be collected from IGPs and shared with external components
using the BGP protocol. It describes both the definition of the BGP-LS NLRI using the BGP protocol. It describes both the definition of the BGP-LS NLRI
skipping to change at line 547 skipping to change at line 640
information and the definition of a BGP path attribute (BGP-LS information and the definition of a BGP path attribute (BGP-LS
attribute) that carries link, node, and prefix properties and attribute) that carries link, node, and prefix properties and
attributes, such as the link and prefix metric or auxiliary attributes, such as the link and prefix metric or auxiliary
Router-IDs of nodes, etc. This document extends the usage of BGP-LS NLRI for Router-IDs of nodes, etc. This document extends the usage of BGP-LS NLRI for
the purpose of BGP SPF calculation via advertisement in the BGP-LS-SPF SAFI. the purpose of BGP SPF calculation via advertisement in the BGP-LS-SPF SAFI.
</t> </t>
<t> <t>
The protocol identifier specified in the Protocol-ID field The protocol identifier specified in the Protocol-ID field
<xref target="RFC9552" format="default"/> <xref target="RFC9552" format="default"/>
represents the origin of the advertised NLRI. For Node NLRI and Link NLRI, represents the origin of the advertised NLRI. For Node NLRI and Link NLRI,
the specified Protocol-ID MUST be the direct protocol (4). Node or Link NLRI w ith a the specified Protocol-ID <bcp14>MUST</bcp14> be the direct protocol (4). Node or Link NLRI with a
Protocol-ID other than the direct protocol is considered malformed. Protocol-ID other than the direct protocol is considered malformed.
For Prefix NLRI, the specified Protocol-ID For Prefix NLRI, the specified Protocol-ID
MUST be the origin of the prefix. The local and remote node descriptors for al l NLRI MUST <bcp14>MUST</bcp14> be the origin of the prefix. The Local and Remote Node Des criptors for all NLRI <bcp14>MUST</bcp14>
include the BGP Router-ID (TLV 516) <xref target="RFC9086"/> include the BGP Router-ID (TLV 516) <xref target="RFC9086"/>
and the AS Number (TLV 512) and the Autonomous System (TLV 512) number
<xref target="RFC9552" format="default"/>. <xref target="RFC9552" format="default"/>.
The BGP Confederation Member (TLV 517) The BGP Confederation Member (TLV 517)
<xref target="RFC9086" format="default"/> is not applicable. <xref target="RFC9086" format="default"/> is not applicable.
</t> </t>
<section numbered="true" toc="default"> <section numbered="true" toc="default">
<name>Node NLRI Usage</name> <name>Node NLRI Usage</name>
<t> <t>
The Node NLRI MUST be advertised unconditionally by all routers in The Node NLRI <bcp14>MUST</bcp14> be advertised unconditionally by all routers in
the BGP SPF routing domain. the BGP SPF routing domain.
</t> </t>
<section anchor="node-status-tlv" numbered="true" toc="default"> <section anchor="node-status-tlv" numbered="true" toc="default">
<name>BGP-LS-SPF Node NLRI Attribute SPF Status TLV</name> <name>BGP-LS-SPF Node NLRI Attribute SPF Status TLV</name>
<t> <t>
A BGP-LS Attribute SPF Status TLV of the BGP-LS-SPF Node NLRI is defined to in dicate the status of A BGP-LS Attribute SPF Status TLV of the BGP-LS-SPF Node NLRI is defined to in dicate the status of
the node with respect to the BGP SPF calculation. This is used to rapidly take a the node with respect to the BGP SPF calculation. This is used to rapidly take a
node out of service (refer to <xref target="node-failure" format="default"/>) node out of service (refer to <xref target="node-failure" format="default"/>)
or to indicate the node is not to be or to indicate that the node is not to be
used for transit (i.e., non-local) traffic (refer to <xref target="BGP-SPF" fo rmat="default"/>). used for transit (i.e., non-local) traffic (refer to <xref target="BGP-SPF" fo rmat="default"/>).
If the SPF Status TLV is not included with the Node NLRI, the node is consider ed to be up If the SPF Status TLV is not included with the Node NLRI, the node is consider ed to be up
and is available for transit traffic. A single TLV type is shared by the Node, Link, and and is available for transit traffic. 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.
</t> </t>
<artwork align="left" name="" type="" alt=""><![CDATA[ <artwork align="left" name="" type="" alt=""><![CDATA[
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 |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
]]></artwork>
SPF Status Values: 0 - Reserved <table>
1 - Node unreachable with respect to BGP SPF <name>SPF Status Values</name>
2 - Node does not support transit with respect <thead>
to BGP SPF <tr><th>Value</th><th>Description</th></tr>
3-254 - Undefined </thead>
255 - Reserved <tbody>
<tr><td>0</td><td>Reserved</td></tr>
<tr><td>1</td><td>Node unreachable with respect to BGP SPF</td></tr>
<tr><td>2</td><td>Node does not support transit with respect to BGP SPF</td>
</tr>
<tr><td>3-254</td><td>Unassigned</td></tr>
<tr><td>255</td><td>Reserved</td></tr>
</tbody>
</table>
]]></artwork>
<t> <t>
If a BGP speaker received the Node NLRI but If a BGP speaker received the Node NLRI but
the SPF Status TLV is not received, then any previously received SPF status in formation is the SPF Status TLV is not received, then any previously received SPF status in formation is
considered as implicitly withdrawn and the NLRI is propagated to other BGP spe akers. considered as implicitly withdrawn, and the NLRI is propagated to other BGP sp eakers.
A BGP speaker receiving a BGP Update containing A BGP speaker receiving a BGP Update containing
an SPF Status TLV in the BGP-LS attribute <xref target="RFC9552" format="defau lt"/> an SPF Status TLV in the BGP-LS attribute <xref target="RFC9552" format="defau lt"/>
with an unknown value SHOULD be advertised to other with an unknown value <bcp14>SHOULD</bcp14> be advertised to other
BGP speakers and MUST ignore the Status TLV with an unknown value in BGP speakers and <bcp14>MUST</bcp14> ignore the Status TLV with an unknown val
ue in
the SPF computation. the SPF computation.
An implementation MAY log this condition for further analysis. An implementation <bcp14>MAY</bcp14> log this condition for further analysis.
If the SPF Status TLV contains a reserved value (0 or 255) the TLV is consider If the SPF Status TLV contains a reserved value (0 or 255), the TLV is conside
ed malformed and red malformed and
is handled as described in <xref target="new-TLVs"/>. is handled as described in <xref target="new-TLVs"/>.
</t> </t>
</section> </section>
</section> </section>
<section anchor="Link-NLRI" numbered="true" toc="default"> <section anchor="Link-NLRI" numbered="true" toc="default">
<name>Link NLRI Usage</name> <name>Link NLRI Usage</name>
<t> <t>
The criteria for advertisement of Link NLRI are discussed in The criteria for advertisement of Link NLRIs are discussed in
<xref target="peering-models" format="default"/>. <xref target="peering-models" format="default"/>.
</t> </t>
<t> <t>
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 dependent on the IP addressing.
link's local IPv4 (TLV 259) and remote IPv4 (TLV 260) addresses are used.
For IPv6 links, the local IPv6 (TLV 261) and remote IPv6 (TLV 262) addresses <!--[rfced] FYI - We updated the following text to reflect the TLV
are used (Section 5.2.2 of <xref target="RFC9552"/>). IPv6 links without names per RFC 9552.
Original:
For IPv4 links, the link's local IPv4 (TLV 259) and remote IPv4
(TLV 260) addresses are used. For IPv6 links, the local IPv6
(TLV 261) and remote IPv6 (TLV 262) addresses are used (Section
5.2.2 of [RFC9552]).
Current:
For IPv4 links, the link's local IPv4 interface address (TLV 259)
and remote IPv4 neighbor address (TLV 260) are used. For IPv6
links, the local IPv6 interface address (TLV 261) and remote IPv6
neighbor address (TLV 262) are used (Section 5.2.2 of [RFC9552]).
-->
For IPv4 links, the
link's local IPv4 interface address (TLV 259) and remote IPv4 neighbor address
(TLV 260) are used.
For IPv6 links, the local IPv6 interface address (TLV 261) and remote IPv6 nei
ghbor address (TLV 262)
are used (<xref section="5.2.2" target="RFC9552"/>). IPv6 links without
global IPv6 addresses are considered unnumbered links and are handled as global IPv6 addresses are considered unnumbered links and are handled as
described below. described below.
For links supporting having both IPv4 and IPv6 addresses, both sets For links supporting both IPv4 and IPv6 addresses, both sets
of descriptors MAY be included in the same Link NLRI. of descriptors <bcp14>MAY</bcp14> be included in the same Link NLRI.
</t> </t>
<t> <t>
For unnumbered links, the Link Local/Remote Identifiers (TLV 258) For unnumbered links, the Link Local/Remote Identifiers (TLV 258)
are used. The Link Remote Identifier isn't normally exchanged in BGP are used. The Link Remote Identifier isn't normally exchanged in BGP,
and discovering the Link Remote Identifier is beyond the scope of this and discovering the Link Remote Identifier is beyond the scope of this
document. If the Link Remote Identifier is unknown, a Link Remote Identifier o f document. If the Link Remote Identifier is unknown, a Link Remote Identifier o f
0 MUST be advertised. When 0 is advertised and there are parallel unnumbered l inks 0 <bcp14>MUST</bcp14> be advertised. When 0 is advertised and there are parall el unnumbered links
between a pair of BGP speakers, there may be transient intervals where the between a pair of BGP speakers, there may be transient intervals where the
BGP speakers don't agree on which of the parallel unnumbered links are operati onal. BGP speakers don't agree on which of the parallel unnumbered links are operati onal.
For this reason, it is RECOMMENDED that the Link Remote Identifiers be For this reason, it is <bcp14>RECOMMENDED</bcp14> that the Link Remote Identif iers be
known (e.g., discovered using alternate mechanisms or configured) in the prese nce known (e.g., discovered using alternate mechanisms or configured) in the prese nce
of parallel unnumbered links. of parallel unnumbered links.
</t> </t>
<t> <t>
The link descriptors are The link descriptors are
described in table 4 of <xref target="RFC9552" format="default"/>. described in Table 4 of <xref target="RFC9552" format="default"/>.
Additionally, the Address Family Link Descriptor TLV is defined to determine w hether an Additionally, the Address Family Link Descriptor TLV is defined to determine w hether an
unnumbered link can be used in the IPv4 SPF, the IPv6, or both (refer to unnumbered link can be used in the IPv4 SPF, the IPv6, or both (refer to
<xref target="af-link-descriptor-tlv"/>). <xref target="af-link-descriptor-tlv"/>).
</t> </t>
<t> <t>
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 matching addres i.e., IPv4 or IPv6, both routers connecting the link <bcp14>MUST</bcp14> have
ses (i.e., matching addresses (i.e.,
router interface addresses must be on the same subnet for numbered interfaces router interface addresses must be on the same subnet for numbered interfaces,
and the and the
local/remote link identifiers (<xref target="BGP-SPF"/>) must match for unnumb ered local/remote link identifiers (<xref target="BGP-SPF"/>) must match for unnumb ered
interfaces). interfaces).
</t> </t>
<t> <t>
The IGP metric attribute TLV (TLV 1095) MUST be advertised. If a BGP speaker The IGP Metric (TLV 1095) <bcp14>MUST</bcp14> be advertised. If a BGP speaker
receives a Link NLRI without an IGP metric attribute TLV, then it MUST conside receives a Link NLRI without an IGP Metric attribute TLV, then it <bcp14>MUST<
r /bcp14> consider
the received NLRI as a malformed (refer to <xref target="error-handling"/>). the received NLRI as malformed (refer to <xref target="error-handling"/>).
The BGP SPF metric length is 4 octets. A metric is associated with the output side of each The BGP SPF metric length is 4 octets. A metric is associated with the output side of each
router interface. This metric is configurable by the system administrator. T he router interface. This metric is configurable by the system administrator. T he
lower the metric, the more likely the interface is to be used to forward data traffic. lower the metric, the more likely the interface is to be used to forward data traffic.
One possible default for metric would be to give each interface a metric of 1 One possible default for the metric would be to give each interface a metric of 1
making it effectively a hop count. making it effectively a hop count.
</t> </t>
<t> <t>
The usage of other link attribute TLVs is beyond the scope of this document. The usage of other link attribute TLVs is beyond the scope of this document.
</t> </t>
<section anchor="af-link-descriptor-tlv" numbered="true" toc="default"> <section anchor="af-link-descriptor-tlv" numbered="true" toc="default">
<name>BGP-LS Link NLRI Address Family Link Descriptor TLV</name> <name>BGP-LS Link NLRI Address Family Link Descriptor TLV</name>
<t> <t>
<!--[rfced] Section 5.2.2.1. For consistency, should instances of
"Address Family Link Descriptor" include "TLV" (i.e., "Address
Family Link Descriptor TLV") in the following paragraph (as the
latter part of the sentence (not shown) includes it)?
Original:
For unnumbered links, the address family cannot be ascertained from
the endpoint link descriptors. Hence, the Address Family (AF) Link
Descriptor SHOULD be included with the Link Local/Remote Identifiers
TLV for unnumbered links, so that the link can be used in the
respective address family SPF. If the Address Family Link Descriptor
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
Link Descriptor is present for a numbered link, the link descriptor
will be ignored.
-->
For unnumbered links, the address family cannot be ascertained from the For unnumbered links, the address family cannot be ascertained from the
endpoint link descriptors. Hence, the Address Family (AF) Link Descriptor SH OULD endpoint link descriptors. Hence, the Address Family Link Descriptor <bcp14> SHOULD</bcp14>
be included with the Link Local/Remote Identifiers TLV for unnumbered links, be included with the Link Local/Remote Identifiers TLV for unnumbered links,
so that the link can be used in the respective address family SPF. If the so that the link can be used in the respective address family SPF. If the
Address Family Link Address Family Link
Descriptor is not present for an unnumbered link, the link will not be Descriptor 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 Link used in the SPF computation for either address family. If the Address Family Link
Descriptor is present for a numbered link, the link descriptor Descriptor is present for a numbered link, the link descriptor
will be ignored. If the Address Family Link Descriptor TLV contains an will be ignored. If the Address Family Link Descriptor TLV contains an
undefined value (3-254), the link descriptor will be ignored. undefined value (3-254), the link descriptor will be ignored.
If the Address Family Link Descriptor TLV contains a If the Address Family Link Descriptor TLV contains a
reserved value (0 or 255) the TLV is considered malformed and reserved value (0 or 255), the TLV is considered malformed and
is handled as described in <xref target="new-TLVs"/>. is handled as described in <xref target="new-TLVs"/>.
</t> </t>
<t> <t>
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 Descriptor SPF computation by advertising separate Address Family Link Descriptor
TLVs for IPv4 and IPv6. TLVs for IPv4 and IPv6.
</t> </t>
<artwork align="left" name="" type="" alt=""><![CDATA[ <artwork align="left" name="" type="" alt=""><![CDATA[
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|
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
]]></artwork>
Address Family Values: 0 - Reserved <table>
1 - IPv4 Address Family <name>Address Family Values</name>
2 - IPv6 Address Family <thead>
3-254 - Undefined <tr><th>Value</th><th>Description</th></tr>
255 - Reserved </thead>
<tbody>
<tr><td>0</td><td>Reserved</td></tr>
<tr><td>1</td><td>IPv4 Address Family</td></tr>
<tr><td>2</td><td>IPv6 Address Family</td></tr>
<tr><td>3-254</td><td>Undefined</td></tr>
<tr><td>255</td><td>Reserved</td></tr>
</tbody>
</table>
]]></artwork>
</section> </section>
<section anchor="link-status-tlv" numbered="true" toc="default"> <section anchor="link-status-tlv" numbered="true" toc="default">
<name>BGP-LS-SPF Link NLRI Attribute SPF Status TLV</name> <name>BGP-LS-SPF Link NLRI Attribute SPF Status TLV</name>
<t> <t>
This BGP-LS-SPF Attribute TLV of the BGP-LS-SPF Link NLRI is defined to 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 calculation. Thi s is used to expedite indicate the status of the link with respect to the BGP SPF calculation. Thi s is used to expedite
convergence for link failures as discussed in <xref target="failure-converge " format="default"/>. If the convergence for link failures as discussed in <xref target="failure-converge " format="default"/>. If the
SPF Status TLV is not included with the Link NLRI, the link is considered SPF Status TLV is not included with the Link NLRI, the link is considered
up and available. The SPF status is acted upon with the execution of the up and available. The SPF status is acted upon with the execution of the
next SPF calculation <xref target="BGP-SPF" format="default"/>. next SPF calculation (<xref target="BGP-SPF" format="default"/>).
A single TLV type is shared by the Node, Link, and Prefix NLRI. A single TLV type is shared by the Node, Link, and Prefix NLRI.
The TLV type is 1184. The TLV type is 1184.
</t> </t>
<artwork align="left" name="" type="" alt=""><![CDATA[ <artwork align="left" name="" type="" alt=""><![CDATA[
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 |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
]]></artwork>
BGP Status Values: 0 - Reserved <table>
1 - Link Unreachable with respect to BGP SPF <name>BGP Status Values</name>
2-254 - Undefined <thead>
255 - Reserved <tr><th>Value</th><th>Description</th></tr>
</thead>
]]></artwork> <tbody>
<tr><td>0</td><td>Reserved</td></tr>
<tr><td>1</td><td>Link unreachable with respect to BGP SPF</td></tr>
<tr><td>2-254</td><td>Unassigned</td></tr>
<tr><td>255</td><td>Reserved</td></tr>
</tbody>
</table>
<t> <t>
If a BGP speaker received the Link NLRI but If a BGP speaker received the Link NLRI but
the SPF Status TLV is not received, then any previously received SPF status information is the SPF Status TLV is not received, then any previously received SPF status information is
considered as implicitly withdrawn and the NLRI is propagated to other BGP s peakers. considered as implicitly withdrawn, and the NLRI is propagated to other BGP speakers.
A BGP speaker receiving a BGP Update containing A BGP speaker receiving a BGP Update containing
an SPF Status TLV in the BGP-LS attribute <xref target="RFC9552" format="def ault"/> an SPF Status TLV in the BGP-LS attribute <xref target="RFC9552" format="def ault"/>
with an unknown value SHOULD be advertised to other with an unknown value <bcp14>SHOULD</bcp14> be advertised to other
BGP speakers and MUST ignore the Status TLV with an unknown value in BGP speakers and <bcp14>MUST</bcp14> ignore the SPF Status TLV with an unkno
wn value in
the SPF computation. the SPF computation.
An implementation MAY log this information for further analysis. An implementation <bcp14>MAY</bcp14> log this information for further analys
If the SPF Status TLV contains a reserved value (0 or 255) the TLV is consid is.
ered malformed and If the SPF Status TLV contains a reserved value (0 or 255), the TLV is consi
dered malformed and
is handled as described in <xref target="new-TLVs"/>. is handled as described in <xref target="new-TLVs"/>.
</t> </t>
</section> </section>
</section> </section>
<section anchor="Prefix-NLRI" numbered="true" toc="default"> <section anchor="Prefix-NLRI" numbered="true" toc="default">
<name>IPv4/IPv6 Prefix NLRI Usage</name> <name>IPv4/IPv6 Prefix NLRI Usage</name>
<t> <t>
IPv4/IPv6 Prefix NLRI is advertised with a Local Node Descriptor and A IPv4/IPv6 Prefix NLRI is advertised with a Local Node Descriptor and
the prefix and length. The Prefix Descriptors field includes the IP Reachabi the prefix and length. The Prefix Descriptor field includes IP Reachability
lity Information (TLV 265) as described in <xref target="RFC9552" format="default
Information TLV (TLV 265) as described in <xref target="RFC9552" format="def "/>.
ault"/>. The Prefix Metric (TLV 1155) <bcp14>MUST</bcp14> be advertised to be conside
The Prefix Metric TLV (TLV 1155) MUST be advertised to be considered for rou red for route calculation. The IGP Route Tag (TLV 1153) <bcp14>MAY</bcp14> be ad
te calculation. vertised. The usage of other BGP-LS
The IGP Route Tag TLV (TLV 1153) MAY be advertised. The usage of other BGP-L
S
attribute TLVs is beyond the scope of this document. attribute TLVs is beyond the scope of this document.
</t> </t>
<section anchor="prefix-status-tlv" numbered="true" toc="default"> <section anchor="prefix-status-tlv" numbered="true" toc="default">
<name>BGP-LS-SPF Prefix NLRI Attribute SPF Status TLV</name> <name>BGP-LS-SPF Prefix NLRI Attribute SPF Status TLV</name>
<t> <t>
A BGP-LS Attribute SPF Status TLV of the BGP-LS-SPF Prefix NLRI is defined to indicate the status of 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 SPF calculation. This is used to expedi te the prefix with respect to the BGP SPF calculation. This is used to expedi te
convergence for prefix unreachability as discussed in <xref target="failur e-converge" format="default"/>. convergence for prefix unreachability, as discussed in <xref target="failu re-converge" format="default"/>.
If the SPF Status TLV is not included with the Prefix NLRI, the prefix is considered If the SPF Status TLV is not included with the Prefix NLRI, the prefix is considered
reachable. reachable.
A single TLV type is shared by the Node, Link, and Prefix NLRI. A single TLV type is shared by the Node, Link, and Prefix NLRI.
The TLV type is 1184. The TLV type is 1184.
</t> </t>
<artwork align="left" name="" type="" alt=""><![CDATA[ <artwork align="left" name="" type="" alt=""><![CDATA[
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
2-254 - Undefined
255 - Reserved
]]></artwork> ]]></artwork>
<!--[rfced] We updated the description for BGP status value "1" (in
Section 5.2.3.1) for consistency with IANA's "BGP-LS-SPF Prefix
NLRI Attribute SPF Status TLV Status" registry
<https://www.iana.org/assignments/bgp-spf/>, as shown below.
We also placed the information in a table to match the formatting of
similar text in Section 5.2.2.2. Tables 3 and 4 are both titled
"BGP Status Values". Would you like to update one of the titles to
differentiate the tables?
Original:
BGP Status Values:
0 - Reserved
1 - Prefix Unreachable with respect to SPF
2-254 - Undefined
255 - Reserved
Current:
+=======+============================================+
| Value | Description |
+=======+============================================+
| 0 | Reserved |
+ - - - + - - - - - - - - - - - - - - - - - - - - - +
| 1 | Prefix unreachable with respect to BGP SPF |
+ - - - + - - - - - - - - - - - - - - - - - - - - - -+
| 2-254 | Unassigned |
+ - - - + - - - - - - - - - - - - - - - - - - - - - -+
| 255 | Reserved |
+ - - - + - - - - - - - - - - - - - - - - - - - - - -+
Table 4: BGP Status Values
-->
<table>
<name>BGP Status Values</name>
<thead>
<tr><th>Value</th><th>Description</th></tr>
</thead>
<tbody>
<tr><td>0</td><td>Reserved</td></tr>
<tr><td>1</td><td>Prefix unreachable with respect to BGP SPF</td></tr>
<tr><td>2-254</td><td>Unassigned</td></tr>
<tr><td>255</td><td>Reserved</td></tr>
</tbody>
</table>
<t> <t>
If a BGP speaker received the Prefix NLRI but If a BGP speaker received the Prefix NLRI but
the SPF Status TLV is not received, then any previously received SPF statu s information is the SPF Status TLV is not received, then any previously received SPF statu s information is
considered as implicitly withdrawn and the NLRI is propagated to other BGP speakers. considered as implicitly withdrawn, and the NLRI is propagated to other BG P speakers.
A BGP speaker receiving a BGP Update containing A BGP speaker receiving a BGP Update containing
an SPF Status TLV in the BGP-LS attribute <xref target="RFC9552" format="d efault"/> an SPF Status TLV in the BGP-LS attribute <xref target="RFC9552" format="d efault"/>
with an unknown value SHOULD be advertised to other with an unknown value <bcp14>SHOULD</bcp14> be advertised to other
BGP speakers and MUST ignore the Status TLV with an unknown value in BGP speakers and <bcp14>MUST</bcp14> ignore the Status TLV with an unknown
value in
the SPF computation. the SPF computation.
An implementation MAY log this information for further analysis. An implementation <bcp14>MAY</bcp14> log this information for further anal
If the SPF Status TLV contains a reserved value (0 or 255) the TLV is cons ysis.
idered malformed and If the SPF Status TLV contains a reserved value (0 or 255), the TLV is con
sidered malformed and
is handled as described in <xref target="new-TLVs"/>. is handled as described in <xref target="new-TLVs"/>.
</t> </t>
</section> </section>
</section> </section>
<section anchor="sequence-number-tlv" numbered="true" toc="default"> <section anchor="sequence-number-tlv" numbered="true" toc="default">
<name>BGP-LS Attribute Sequence Number TLV</name> <name>BGP-LS Attribute Sequence Number TLV</name>
<t> <t>
A BGP-LS Attribute Sequence Number TLV of the BGP-LS-SPF NLRI types is defin ed to assure the most A BGP-LS Attribute Sequence Number TLV of the BGP-LS-SPF NLRI types is defin ed to assure the most
recent version of a given NLRI is used in the SPF computation. The Sequence Number TLV is recent version of a given NLRI is used in the SPF computation. The Sequence Number TLV is
mandatory for BGP-LS-SPF NLRI. mandatory for BGP-LS-SPF NLRI.
skipping to change at line 817 skipping to change at line 1009
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 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) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork> ]]></artwork>
<t> <t>
Sequence Number: Sequence Number:
The 64-bit strictly-increasing sequence number MUST be incremented for every The 64-bit strictly increasing sequence number <bcp14>MUST</bcp14> be increm ented for every
self-originated version of a BGP-LS-SPF NLRI. BGP speakers implementing this specification self-originated version of a BGP-LS-SPF NLRI. BGP speakers implementing this specification
MUST use available mechanisms to preserve the sequence number's strictly inc reasing property <bcp14>MUST</bcp14> use available mechanisms to preserve the sequence number 's strictly increasing property
for the deployed life of the BGP speaker (including cold restarts). for the deployed life of the BGP speaker (including cold restarts).
One mechanism for accomplishing this would be to use the high-order 32 bits of the One mechanism for accomplishing this 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 ro uter sequence number as a wrap/boot count that is incremented any time the BGP ro uter
loses its sequence number state or the low-order 32 bits wrap. loses its sequence number state or the low-order 32 bits wrap.
</t> </t>
<t> <t>
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 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 should 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 speaker completel y be incremented and saved in non-volatile storage. If a BGP speaker completel y
loses its sequence number state (e.g., the BGP speaker hardware loses its sequence number state (e.g., the BGP speaker hardware
is replaced or experiences a cold-start), the BGP NLRI selection rules is replaced or experiences a cold start), the BGP NLRI selection rules
(see <xref target="Phase-1" format="default"/>) ensure convergence, albeit n ot immediately. (see <xref target="Phase-1" format="default"/>) ensure convergence, albeit n ot immediately.
</t> </t>
<t> <t>
If the Sequence Number TLV If the Sequence Number TLV
is not received, then the corresponding NLRI is considered as malformed and is not received, then the corresponding NLRI is considered as malformed and
MUST be handled as 'Treat-as-withdraw'. An implementation SHOULD log an erro r for <bcp14>MUST</bcp14> be handled as 'treat-as-withdraw'. An implementation <bc p14>SHOULD</bcp14> log an error for
further analysis. further analysis.
</t> </t>
</section> </section>
</section> </section>
<section anchor="BGP-LS-SPF-EOR" numbered="true" toc="default"> <section anchor="BGP-LS-SPF-EOR" numbered="true" toc="default">
<name>BGP-LS-SPF End of RIB (EoR) Marker</name> <name>BGP-LS-SPF End of RIB (EoR) Marker</name>
<t> <t>
The usage of the End-of-RIB (EoR) Marker <xref target="RFC4724"/> with the BG P-LS-SPF The usage of the EoR marker <xref target="RFC4724"/> with the BGP-LS-SPF
SAFI is somewhat different than the other BGP SAFIs. Reception of the EoR SAFI is somewhat different than the other BGP SAFIs. Reception of the EoR
marker MAY optionally be expected prior to advertising an LINK-NLRI for a giv en peer. marker <bcp14>MAY</bcp14> optionally be expected prior to advertising a Link NLRI for a given peer.
</t> </t>
</section> </section>
<section anchor="NEXT-HOP" numbered="true" toc="default"> <section anchor="NEXT-HOP" numbered="true" toc="default">
<name>BGP Next-Hop Information</name> <name>BGP Next-Hop Information</name>
<t> <t>
The rules for setting the BGP Next-Hop in the MP_REACH_NLRI attribute <xref target="RFC4760"/> The rules for setting the BGP Next-Hop in the MP_REACH_NLRI attribute <xref target="RFC4760"/>
for the BGP-LS-SPF SAFI follow the rules in section 5.5 of <xref target="RFC 9552" format="default"/>. for the BGP-LS-SPF SAFI follow the rules in <xref section="5.5" target="RFC9 552" format="default"/>.
All BGP peers that support SPF extensions will locally compute the Local-RIB Next-Hop All BGP peers that support SPF extensions will locally 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 as a result of the SPF process. 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.
</t> </t>
</section> </section>
</section> </section>
<section anchor="bgp-decision" numbered="true" toc="default"> <section anchor="bgp-decision" numbered="true" toc="default">
<name>Decision Process with SPF Algorithm</name> <name>Decision Process with the SPF Algorithm</name>
<t> <t>
The Decision Process described in <xref target="RFC4271" format="default"/> takes place in The Decision Process described in <xref target="RFC4271" format="default"/> takes place in
three distinct phases. The Phase 1 decision function of the Decision Process is three distinct phases. The Phase 1 decision function of the Decision Process is
responsible for calculating the degree responsible for calculating the degree
of preference for each route received from a BGP speaker's peer. The Phase 2 decision of preference for each route received from a BGP speaker's peer. The Phase 2 decision
function is invoked on completion of the Phase 1 decision function and is re sponsible function is invoked on completion of the Phase 1 decision function and is re sponsible
for choosing the best route out of all those available for each for choosing the best route out of all those available for each
distinct destination, and for installing each chosen route into the Local-RI B. distinct destination and for installing each chosen route into the Local-RIB .
The combination of the Phase 1 and 2 decision functions is characterized as The combination of the Phase 1 and 2 decision functions is characterized as
a Path Vector algorithm. a Path Vector algorithm.
</t> </t>
<t> <t>
The SPF-based Decision process replaces the BGP Decision process described i n The SPF-based Decision Process replaces the BGP Decision Process described i n
<xref target="RFC4271" format="default"/>. <xref target="RFC4271" format="default"/>.
Since BGP-LS-SPF NLRI always contains the local node descriptor as described in Since BGP-LS-SPF NLRI always contains the Local Node Descriptor as described in
<xref target="NLRI-Use" format="default"/>, each NLRI is uniquely originated by a single <xref target="NLRI-Use" format="default"/>, each NLRI is uniquely originated by a single
BGP speaker in the BGP SPF routing domain (the BGP node matching the NLRI's Node BGP speaker in the BGP SPF routing domain (the BGP node matching the NLRI's Node
Descriptors). Instances of the same NLRI originated by multiple BGP speakers would be Descriptors). Instances of the same NLRI originated by multiple BGP speakers would be
indicative of a configuration error or a masquerading attack indicative of a configuration error or a masquerading attack
(refer to <xref target="Security" format="default"/>). (refer to <xref target="Security" format="default"/>).
These selected Node NLRI and their Link/Prefix NLRI are used to build a dire cted These selected Node NLRIs and their Link/Prefix NLRIs are used to build a di rected
graph during the SPF computation as described below. The best routes for BGP prefixes graph during the SPF computation as described below. The best routes for BGP prefixes
are installed in the RIB as a result of the SPF process. are installed in the RIB as a result of the SPF process.
</t> </t>
<t> <t>
When BGP-LS-SPF NLRI is received, all that is required is to determine 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 sequence number as described whether it is the most recent by examining the Node-ID and sequence number as described
in <xref target="Phase-1" format="default"/>. If the received NLRI has changed , it is advertised in <xref target="Phase-1" format="default"/>. If the received NLRI has changed , it is advertised
to other BGP-LS-SPF peers. If the attributes have changed (other than the sequ ence number), to other BGP-LS-SPF peers. If the attributes have changed (other than the sequ ence number),
a BGP SPF calculation is triggered. However, a changed NLRI MAY be advertised immediately a BGP SPF calculation is triggered. However, a changed NLRI <bcp14>MAY</bcp14> be advertised immediately
to other peers and prior to any SPF calculation. Note that the BGP to other peers and prior to any SPF calculation. Note that the BGP
MinASOriginationIntervalTimer <xref target="RFC4271" format="default"/> timer is not applicable MinASOriginationIntervalTimer <xref target="RFC4271" format="default"/> timer is not applicable
to the BGP-LS-SPF SAFI. The MinRouteAdvertisementIntervalTimer is applicable w ith a suggested default to the BGP-LS-SPF SAFI. The MinRouteAdvertisementIntervalTimer is applicable w ith a suggested default
of 5 seconds consistent with Internal BGP (IBGP) (refer to section 10 of <xref of 5 seconds consistent with Internal BGP (IBGP) (refer to <xref section="10"
target="RFC4271"/>). target="RFC4271"/>).
<!--[rfced] We note that "SPF Back-Off algorithm" is called the "SPF
Back-Off Delay algorithm" in RFC 8405. We updated the text below
for consistency. Please let us know of any objections.
Original:
The scheduling of the SPF calculation, as described in Section 6.3, is an
implementation and/or configuration matter. Scheduling MAY be dampened
consistent with the SPF back-off algorithm specified in [RFC8405].
Current:
The scheduling of the SPF calculation, as described in Section 6.3, is an
implementation and/or configuration matter. Scheduling MAY be dampened
consistent with the SPF Back-Off Delay algorithm specified in [RFC8405].
-->
The scheduling of the SPF calculation, as described in The scheduling of the SPF calculation, as described in
<xref target="BGP-SPF" format="default"/>, is an implementation and/or configu ration matter. <xref target="BGP-SPF" format="default"/>, is an implementation and/or configu ration matter.
Scheduling MAY be dampened consistent with the SPF back-off algorithm Scheduling <bcp14>MAY</bcp14> be dampened consistent with the SPF Back-Off Del ay algorithm
specified in <xref target="RFC8405" format="default"/>. specified in <xref target="RFC8405" format="default"/>.
</t> </t>
<t> <t>
The Phase 3 decision function The Phase 3 decision function
of the Decision Process <xref target="RFC4271" format="default"/> is also simp of the Decision Process <xref target="RFC4271" format="default"/> is also simp
lified since under lified because under
normal SPF operation, a BGP speaker MUST advertise the changed NLRIs normal SPF operation, a BGP speaker <bcp14>MUST</bcp14> advertise the changed
NLRIs
to all BGP peers with the BGP-LS-SPF AFI/SAFI and install the changed routes i n to all BGP peers with the BGP-LS-SPF AFI/SAFI and install the changed routes i n
the GLOBAL-RIB. The only exception are unchanged the GLOBAL-RIB. The only exceptions are unchanged
NLRIs or stale NLRIs, i.e., NLRI received with a less recent (numerically smal NLRIs or stale NLRIs, i.e., an NLRI received with a less recent (numerically s
ler) maller)
sequence number. sequence number.
</t> </t>
<section anchor="Phase-1" numbered="true" toc="default"> <section anchor="Phase-1" numbered="true" toc="default">
<name>BGP SPF NLRI Selection</name> <name>BGP SPF NLRI Selection</name>
<t> <t>
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 <xref target="RFC4271" format="default"/>, no decision process (see <xref section="9.1.1" target="RFC4271" format="default"
longer apply. />) no longer apply.
</t> </t>
<ol spacing="normal" type="1"><li> <ol spacing="normal" type="1"><li>
NLRI self-originated from directly-connected BGP SPF peers are preferred. NLRIs self-originated from directly connected BGP SPF peers are preferred.
This condition can be determined by comparing the BGP Identifiers in This condition can be determined by comparing the BGP Identifiers in
the received Local Node Descriptor and the BGP OPEN message for an active the received Local Node Descriptor and the BGP OPEN message for an active
BGP session. This rule assures that stale NLRI is updated even if a BGP SPF ro BGP session. This rule assures that a stale NLRI is updated even if a BGP SPF
uter router
loses its sequence number state due to a cold-start. Note that once the BGP se loses its sequence number state due to a cold start. Note that once the BGP se
ssion ssion
goes down, the NLRI received is no longer considered as being from a directly goes down, the NLRI received is no longer considered as being from a directly
connected BGP SPF peer. connected BGP SPF peer.
</li> </li>
<li> <li>
Consistent with base BGP <xref target="RFC4271"/>, NLRI received from a peer w ill always Consistent with base BGP <xref target="RFC4271"/>, an NLRI received from a pee r will always
replace the same NLRI received from that peer. Coupled with rule #1, this will ensure that replace the same NLRI received from that peer. Coupled with rule #1, this will ensure that
any stale NLRI in the BGP SPF routing domain will be updated. any stale NLRI in the BGP SPF routing domain will be updated.
</li> </li>
<li> <li>
The NLRI with the most recent Sequence Number TLV, i.e., highest sequence numb er is selected. The NLRI with the most recent Sequence Number TLV, i.e., the highest sequence number is selected.
</li> </li>
<li> <li>
The NLRI received from the BGP speaker with the numerically larger BGP The NLRI received from the BGP speaker with the numerically larger BGP
Identifier is preferred. Identifier is preferred.
</li> </li>
</ol> </ol>
<t> <t>
When a BGP speaker completely loses its sequence number state, e.g., due to a cold start, or 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 sequence number wraps, the BGP routing in the unlikely possibility that a 64-bit sequence number wraps, the BGP routi
domain will ng domain will
still converge. This is due to the fact that BGP speakers adjacent to the rout still converge.
er
always accept self-originated NLRI from the associated speaker as more recent <!--[rfced] How may we clarify "as more recent" in the following
(rule #1). When a text. Have BGP speakers been accepting the self-originated NLRIs
recently (rather than "always"), as shown below?
Original:
This is due to the fact that BGP speakers adjacent to the router
always accept self-originated NLRI from the associated speaker as
more recent (rule #1).
Perhaps:
This is due to the fact that BGP speakers adjacent to the router
have been recently accepting self-originated NLRIs from the
associated speaker (per rule #1).
-->
This is due to the fact that BGP speakers adjacent to the router
always accept self-originated NLRIs from the associated speaker as more recent
(rule #1). When a
BGP speaker reestablishes a connection with its peers, any existing sessions a re taken BGP speaker reestablishes a connection with its peers, any existing sessions a re taken
down and stale NLRI are replaced. The adjacent BGP speakers update their NLRI down and stale NLRIs are replaced. The adjacent BGP speakers update their NLRI
advertisements and advertise to their neighbors until the BGP routing domain h as converged. advertisements and advertise to their neighbors until the BGP routing domain h as converged.
</t> </t>
<t> <t>
The modified SPF Decision Process performs an SPF calculation rooted at the lo cal BGP The modified SPF Decision Process performs an SPF calculation rooted at the lo cal BGP
speaker using the metrics from the Link Attribute IGP Metric TLV (1095) and speaker using the metrics from the Link Attribute IGP Metric (TLV 1095) and
the Prefix Attribute Prefix Metric TLV (1155) <xref target="RFC9552" format="d the Prefix Attribute Prefix Metric (TLV 1155) <xref target="RFC9552" format="d
efault"/>. efault"/>.
These metrics are considered consistently across the BGP SPF domain. These metrics are considered consistently across the BGP SPF domain.
As a result, any other BGP attributes that As a result, any other BGP attributes that
would influence the BGP decision process defined in <xref target="RFC4271" for mat="default"/> including would influence the BGP decision process defined in <xref target="RFC4271" for mat="default"/> including
ORIGIN, MULTI_EXIT_DISC, and ORIGIN, MULTI_EXIT_DISC, and
LOCAL_PREF attributes are ignored by the SPF algorithm. The Next Hop in the MP _REACH_NLRI attribute LOCAL_PREF attributes are ignored by the SPF algorithm. The Next Hop in the MP _REACH_NLRI attribute
<xref target="RFC4760"/> is discussed in <xref target="NEXT-HOP" format="defau lt"/>. <xref target="RFC4760"/> is discussed in <xref target="NEXT-HOP" format="defau lt"/>.
The AS_PATH and AS4_PATH <xref target="RFC6793" format="default"/> attributes The AS_PATH and AS4_PATH attributes <xref target="RFC6793" format="default"/>
are preserved and used for loop detection <xref target="RFC4271" format="defau lt"/>. They are ignored are preserved and used for loop detection <xref target="RFC4271" format="defau lt"/>. They are ignored
during the SPF computation for BGP-LS-SPF NLRIs. during the SPF computation for BGP-LS-SPF NLRIs.
</t> </t>
<section anchor="Self-Origin" numbered="true" toc="default"> <section anchor="Self-Origin" numbered="true" toc="default">
<name>BGP Self-Originated NLRI</name> <name>BGP Self-Originated NLRI</name>
<t> <t>
Node, Link, or Prefix NLRI with Node Descriptors matching the local BGP speake Nodes, Links, or Prefix NLRIs with Node Descriptors matching the local BGP spe
r are aker are
considered self-originated. When self-originated NLRI is received and it doesn considered self-originated. When a self-originated NLRI is received and it doe
't match the sn't match the
local node's NLRI content (including sequence number), special processing is r local node's NLRI content (including the sequence number), special processing
equired. is required.
</t> </t>
<ul spacing="normal"> <ul spacing="normal">
<li> <li>
If self-originated NLRI is received and the sequence number is more recent ( i.e., greater than If a self-originated NLRI is received and the sequence number is more recent (i.e., greater than
the local node's sequence number for the NLRI), the NLRI sequence number is advanced to the local node's sequence number for the NLRI), the NLRI sequence number is advanced to
one greater than the received sequence number and the NLRI is readvertised t o all peers. one greater than the received sequence number, and the NLRI is readvertised to all peers.
</li> </li>
<li> <li>
If self-originated NLRI is received and the sequence number is the same as t he local node's If a self-originated NLRI is received and the sequence number is the same as the local node's
sequence number but the attributes differ, the NLRI sequence number is advan ced to sequence number but the attributes differ, the NLRI sequence number is advan ced to
one greater than the received sequence number and the NLRI is readvertised t o all peers. one greater than the received sequence number, and the NLRI is readvertised to all peers.
</li> </li>
<!-- <!--
<li> <li>
If self-originated Link or Prefix NLRI is received and the Link or Prefix NL RI is no longer If self-originated Link or Prefix NLRI is received and the Link or Prefix NL RI is no longer
being advertised by the local node, the NLRI is considered stale and is with drawn using the being advertised by the local node, the NLRI is considered stale and is with drawn using the
standard BGP Update message Withdrawn Routes encodings <xref target="RFC4760 "/>. standard BGP Update message Withdrawn Routes encodings <xref target="RFC4760 "/>.
</li> </li>
--> -->
</ul> </ul>
<t> <t>
skipping to change at line 1006 skipping to change at line 1231
(refer to <xref target="Security" format="default"/>). (refer to <xref target="Security" format="default"/>).
</t> </t>
</section> </section>
</section> </section>
<section anchor="dual-stack" numbered="true" toc="default"> <section anchor="dual-stack" numbered="true" toc="default">
<name>Dual Stack Support</name> <name>Dual Stack Support</name>
<t> <t>
The SPF-based decision process operates on Node, Link, and Prefix NLRIs that s upport The SPF-based decision process operates on Node, Link, and Prefix NLRIs that s upport
both IPv4 and IPv6 addresses. Whether to run a single SPF computation or multi ple both IPv4 and IPv6 addresses. Whether to run a single SPF computation or multi ple
SPF computations for separate AFs is an implementation and/or policy matter. N ormally, IPv4 SPF computations for separate AFs is an implementation and/or policy matter. N ormally, IPv4
next-hops are calculated for IPv4 prefixes and IPv6 next-hops are calculated f or IPv6 next-hops are calculated for IPv4 prefixes, and IPv6 next-hops are calculated for IPv6
prefixes. prefixes.
</t> </t>
</section> </section>
<section anchor="BGP-SPF" numbered="true" toc="default"> <section anchor="BGP-SPF" numbered="true" toc="default">
<name>SPF Calculation based on BGP-LS-SPF NLRI</name> <name>SPF Calculation Based on BGP-LS-SPF NLRI</name>
<t> <t>
This section details the BGP-LS-SPF local routing information base (RIB) calcu This section details the BGP-LS-SPF local Routing Information Base (RIB) calcu
lation. lation.
The router uses BGP-LS-SPF Node, Link, and Prefix NLRI to compute routes using The router uses BGP-LS-SPF Node, Link, and Prefix NLRIs to compute routes usin
the g the
following algorithm. This calculation yields the set of routes associated following algorithm. This calculation yields the set of routes associated
with the BGP SPF Routing Domain. A router calculates the shortest-path tree u sing itself with the BGP SPF Routing Domain. A router calculates the shortest-path tree u sing itself
as the root. Optimizations to the BGP-LS-SPF algorithm are possible but MUST y as the root. Optimizations to the BGP-LS-SPF algorithm are possible but <bcp14
ield >MUST</bcp14> yield
the same set of routes. The algorithm below supports Equal Cost Multi-Path (EC the same set of routes. The algorithm below supports ECMP
MP) routes. Weighted Unequal-Cost Multipath (UCMP) routes are out of scope.
routes. Weighted Unequal Cost Multi-Path routes are out of scope.
</t> </t>
<t> <t>
The following abstract data structures are defined in order to specify the alg orithm. The following abstract data structures are defined in order to specify the alg orithm.
</t> </t>
<ul spacing="normal"> <dl spacing="normal" newline="false">
<li> <dt>Local Route Information Base (Local-RIB):</dt><dd>A routing table
Local Route Information Base (Local-RIB) - This routing table contains reacha that contains reachability information (i.e., next hops) for all prefixes (bo
bility information th
(i.e., next hops) for all prefixes (both IPv4 and IPv6) as well as BGP-LS-SPF IPv4 and IPv6) as well as BGP-LS-SPF node reachability.
node
reachability. Implementations may choose to implement this with separate RIBs <!--[rfced] Please clarify "Prefix versus Node reachability" in the
for each last sentence. Does "versus" mean "or" in this context?
address family and/or Prefix versus Node reachability.
</li> Also, we see "BGP-LS-SPF node reachability" in the first sentence.
<li> Should "node" be "Node" for consistency with "Node reachability"
Global Routing Information Base (GLOBAL-RIB) - This is the Routing Informatio (e.g., "BGP-LS-SPF Node reachability")?
n Base (RIB)
containing the current routes that are installed in the router's forwarding p Original:
lane. Local Route Information Base (Local-RIB) - This routing table
This is commonly referred to in networking parlance as "the RIB". contains reachability information (i.e., next hops) for all
</li> prefixes (both IPv4 and IPv6) as well as BGP-LS-SPF node
<li> reachability. Implementations may choose to implement this with
Link State NLRI Database (LSNDB) - Database of BGP-LS-SPF NLRI that facilitat separate RIBs for each address family and/or Prefix versus Node
es access to reachability.
all Node, Link, and Prefix NLRI.
</li> Perhaps:
<li> Local Route Information Base (Local-RIB): A routing table that
Candidate List (CAN-LIST) - This is a list of candidate Node NLRIs used during contains reachability information (i.e., next hops) for all
the BGP SPF prefixes (both IPv4 and IPv6) as well as BGP-LS-SPF Node
calculation. The list is sorted by reachability. Implementations may choose to implement this with
the cost to reach the Node NLRI with the Node NLRI with the lowest reachabilit separate RIBs for each address family and/or Prefix or Node
y cost at reachability.
the head of the list. This facilitates execution of the Dijkstra algorithm -->
where the shortest paths between the local node and other nodes in graph are c
omputed. Implementations may
The CAN-LIST is typically implemented as a heap but other data structures have choose to implement this with separate RIBs for each address family and/or
been used. Prefix versus Node reachability.</dd>
</li>
</ul> <dt>Global Routing Information Base (GLOBAL-RIB):</dt><dd>The
<t>The algorithm consists of the steps below: RIB containing the current routes that are
</t> installed in the router's forwarding plane. This is commonly referred to
in networking parlance as "the RIB".</dd>
<dt>Link-State NLRI Database (LSNDB):</dt><dd>A database of BGP-LS-SPF NLRIs
that facilitate access to all Node, Link, and Prefix NLRIs.</dd>
<dt>Candidate List (CAN-LIST):</dt><dd>A list of candidate Node
NLRIs used during the BGP SPF calculation. The list is sorted by the cost
to reach the Node NLRI, with the Node NLRI that has the lowest reachability c
ost
at the head of the list. This facilitates the execution of the Dijkstra
algorithm, where the shortest paths between the local node and other nodes
in the graph are computed. The CAN-LIST is typically implemented as a heap b
ut
other data structures have been used.</dd>
</dl>
<t>The Dijkstra algorithm consists of the steps below:</t>
<ol spacing="normal" type="1"><li> <ol spacing="normal" type="1"><li>
The current Local-RIB is invalidated, and the CAN-LIST is initialized to be em pty. The current Local-RIB is invalidated, and the CAN-LIST is initialized to be em pty.
The Local-RIB is rebuilt during the course of the SPF computation. The existi ng routing entries The Local-RIB is rebuilt during the course of the SPF computation. The existi ng routing entries
are preserved for comparison to determine changes that need to be made to the GLOBAL-RIB in are preserved for comparison to determine changes that need to be made to the GLOBAL-RIB in
step 6. These routes are referred to as stale routes. Step 6. These routes are referred to as "stale routes".
</li> </li>
<li> <li>
The cost of the Local-RIB Node route entry for the computing router is set to 0. 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 the CAN-LIST (which was previous ly initialized The computing router's Node NLRI is added to the CAN-LIST (which was previous ly initialized
to be empty in step 1). The next-hop list is set to the internal loopback nex t-hop. to be empty in Step 1). The next-hop list is set to the internal loopback nex t-hop.
</li> </li>
<li> <li>
The Node NLRI with the lowest cost is removed from the CAN-LIST for processing . The Node NLRI with the lowest cost is removed from the CAN-LIST for processing .
If the BGP-LS Node attribute includes an SPF Status TLV If the BGP-LS Node attribute includes an SPF Status TLV
(refer to <xref target="node-status-tlv" format="default"/>) (refer to <xref target="node-status-tlv" format="default"/>)
indicating the node is unreachable, the Node NLRI is ignored and the next lowe st cost indicating the node is unreachable, the Node NLRI is ignored and the next lowe st-cost
Node NLRI is selected from the CAN-LIST. The Node NLRI is selected from the CAN-LIST. The
Node corresponding to this NLRI is referred to as the Current-Node. If the CAN Node corresponding to this NLRI is referred to as the "Current-Node". If the C
-LIST AN-LIST
list is empty, the SPF calculation has completed and the algorithm proceeds to list is empty, the SPF calculation has completed and the algorithm proceeds to
step 6. Step 6.
</li> </li>
<li> <li>
<t> <t>
All the Prefix NLRI with the same Local Node Descriptors as the Current-Node All the Prefix NLRIs with the same Local Node Descriptors as the Current-Nod
are considered e are considered
for installation. The next-hop(s) for these Prefix NLRI are inherited from t for installation. The next-hop(s) for these Prefix NLRIs are inherited from
he Current-Node. the Current-Node.
If the Current-Node is for the local BGP Router, the next-hop for the prefix is a direct If 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 metric advertised in the Prefix A ttribute next-hop. The cost for each prefix is the metric advertised in the Prefix A ttribute
Prefix Metric TLV (1155) added to the cost to reach the Current-Node. The fo Prefix Metric (TLV 1155) added to the cost to reach the Current-Node. The fo
llowing llowing
is done for each Prefix NLRI (referred to as the Current-Prefix): is done for each Prefix NLRI (referred to as the "Current-Prefix"):
</t> </t>
<ul spacing="normal"> <ul spacing="normal">
<li> <li>
If the BGP-LS Prefix attribute includes an SPF Status TLV indicating the pre fix is If the BGP-LS Prefix attribute includes an SPF Status TLV indicating the pre fix is
unreachable, the Current-Prefix is considered unreachable and the next Prefi x unreachable, the Current-Prefix is considered unreachable, and the next Pref ix
NLRI is examined in Step 4. NLRI is examined in Step 4.
</li> </li>
<!--[rfced] Please clarify what "less than" refers to - is it the
metric's cost, length, or other?
Original:
If the Current-Prefix's corresponding prefix is in the Local-RIB
and the Local-RIB metric is less than the Current-Prefix's metric,
the Current-Prefix does not contribute to the route and the next
Prefix NLRI is examined in Step 4.
-->
<li> <li>
If the Current-Prefix's corresponding prefix is in the Local-RIB and the If the Current-Prefix's corresponding prefix is in the Local-RIB and the
Local-RIB metric is less than the Current-Prefix's metric, Local-RIB metric is less than the Current-Prefix's metric,
the Current-Prefix does not contribute to the route and the next Prefix NLRI is the Current-Prefix does not contribute to the route, and the next Prefix NLR I is
examined in Step 4. examined in Step 4.
</li> </li>
<!--[rfced] Please clarify "and the metric being updated". Is the
intended meaning perhaps "the metric is updated" (option A) or
that the next-hops are installed as the "Local-RIB route and
updated metric's next-hops" (option B)?
Original:
If the Current-Prefix's corresponding prefix is not in the
Local-RIB, the prefix is installed with the Current-Node's
next-hops installed as the Local-RIB route's next-hops and
the metric being updated.
Perhaps A:
If the Current-Prefix's corresponding prefix is not in the
Local-RIB, the prefix is installed with the Current-Node's
next-hops installed as the Local-RIB route's next-hops, and
the metric is updated.
Perhaps B:
If the Current-Prefix's corresponding prefix is not in the
Local-RIB, the prefix is installed with the Current-Node's
next-hops installed as the Local-RIB route and updated
metric's next-hops.
-->
<li> <li>
If the Current-Prefix's corresponding prefix is not in the Local-RIB, If the Current-Prefix's corresponding prefix is not in the Local-RIB,
the prefix is installed with the Current-Node's next-hops the prefix is installed with the Current-Node's next-hops
installed as the Local-RIB route's next-hops and the metric being updated. I f the installed as the Local-RIB route's next-hops and the metric being updated. I f the
IGP Route Tag TLV (1153) is IGP Route Tag (TLV 1153) is
included in the Current-Prefix's NLRI Attribute, the tag(s) are installed in included in the Current-Prefix's NLRI Attribute, the tag(s) is installed in
the the
current Local-RIB route's tag(s). current Local-RIB route's tag(s).
</li> </li>
<li> <li>
If the Current-Prefix's corresponding prefix is in the Local-RIB and the cos t is less If the Current-Prefix's corresponding prefix is in the Local-RIB and the cos t is less
than the Local-RIB route's metric, the prefix is installed with the Current- than the Local-RIB route's metric, the prefix is installed with the Current-
Node's next-hops Node's next-hops, which
replacing the Local-RIB route's next-hops and the metric being updated and a replace the Local-RIB route's next-hops and the metric being updated, and an
ny route tags y route tags
removed. If the IGP Route Tag TLV (1153) is are removed. If the IGP Route Tag (TLV 1153) is
included in the Current-Prefix's NLRI Attribute, the tag(s) are installed in included in the Current-Prefix's NLRI Attribute, the tag(s) is installed in
the the
current Local-RIB route's tag(s). current Local-RIB route's tag(s).
</li> </li>
<li> <li>
If the Current-Prefix's corresponding prefix is in the Local-RIB and the cos t If the Current-Prefix's corresponding prefix is in the Local-RIB and the cos t
is the same as the Local-RIB route's metric, the Current-Node's next-hops ar e merged is the same as the Local-RIB route's metric, the Current-Node's next-hops ar e merged
with Local-RIB route's next-hops. with the Local-RIB route's next-hops.
The algorithm below supports Equal Cost Multi-Path (ECMP) routes. The algorithm below supports ECMP routes.
Some platforms or implementations may have limits on the number of Some platforms or implementations may have limits on the number of
ECMP routes that can be supported. The setting or identification ECMP routes that can be supported. The setting or identification
of any limitations is outside the scope if this document. of any limitations is outside the scope if this document.
Weighted Unequal Cost Multi-Path routes are out of scope as well. Weighted UCMP routes are out of scope as well.
</li> </li>
</ul> </ul>
</li> </li>
<li> <li>
<t> <t>
All the Link NLRI with the same Node Identifiers as the Current-Node are con All the Link NLRIs with the same Node Identifiers as the Current-Node are co
sidered nsidered
for installation. Each link is examined and is referred to in the following for installation. Each link is examined and referred to as the "Current-Link
text " in the following text. The cost of the Current-Link is the advertised IGP Metr
as the Current-Link. The cost of the Current-Link is the advertised IGP Metr ic (TLV 1095)
ic TLV (1095)
from the Link NLRI BGP-LS attribute added to the cost to reach the Current-N ode. from the Link NLRI BGP-LS attribute added to the cost to reach the Current-N ode.
If the Current-Node is for the local BGP Router, If the Current-Node is for the local BGP Router,
the next-hop for the link is a direct next-hop pointing to the corresponding local the next-hop for the link is a direct next-hop pointing to the corresponding local
interface. For any other Current-Node, the next-hop(s) for the Current-Link are inherited interface. For any other Current-Node, the next-hop(s) for the Current-Link is inherited
from the Current-Node. The following is done for each link: from the Current-Node. The following is done for each link:
</t> </t>
<ol spacing="normal" type="a"> <ol spacing="normal" type="a">
<li> <li>
If the Current-Link's NLRI attribute includes an SPF Status TLV indicating the link is If the Current-Link's NLRI attribute includes an SPF Status TLV indicating the link is
down, the BGP-LS-SPF Link NLRI is considered down and the next link down, the BGP-LS-SPF Link NLRI is considered down, and the next link
for the Current-Node is examined in Step 5. for the Current-Node is examined in Step 5.
</li> </li>
<li> <li>
If the Current-Node NLRI attributes includes the SPF Status TLV If the Current-Node NLRI attributes include the SPF Status TLV
(refer to <xref target="node-status-tlv" format="default"/>) and the status (refer to <xref target="node-status-tlv" format="default"/>) and the status
indicates that the Node doesn't support transit, the next link for the Current -Node is indicates that the Node doesn't support transit, the next link for the Current -Node is
processed in Step 5. processed in Step 5.
</li> </li>
<li> <li>
<t> <t>
The Current-Link's Remote Node NLRI is accessed (i.e., the Node NLRI The Current-Link's Remote Node NLRI is accessed (i.e., the Node NLRI
with the same Node identifiers as the Current-Link's Remote Node Descriptors with the same Node Identifiers as the Current-Link's Remote Node Descriptors
). If it exists, ). If it exists,
it is referred to as the Remote-Node and the algorithm proceeds as follows: it is referred to as the "Remote-Node" and the algorithm proceeds as follows
:
</t> </t>
<ul spacing="normal"> <ul spacing="normal">
<li> <li>
If the Remote-Node's NLRI attribute includes an SPF Status TLV indicating th e node is If the Remote-Node's NLRI attribute includes an SPF Status TLV indicating th e node is
unreachable, the next link for the Current-Node is examined in Step 5. unreachable, the next link for the Current-Node is examined in Step 5.
</li> </li>
<li> <li>
<t> <t>
All the Link NLRI corresponding the Remote-Node are searched for a Link All the Link NLRIs corresponding to the Remote-Node are searched for a Link
NLRI pointing to the Current-Node. Each Remote-Node's Link NLRI (referred to a s the NLRI pointing to the Current-Node. Each Remote-Node's Link NLRI (referred to a s the
Remote-Link) is examined for Remote Node Descriptors matching the Current-Node and Remote-Link) is examined for Remote Node Descriptors matching the Current-Node and
Link Descriptors matching the Current-Link. Link Descriptors matching the Current-Link.
</t> </t>
<ul spacing = "normal"> <ul spacing = "normal">
<li> <li>
For IPv4/IPv6 numbered Link Descriptors to match during the IPv4 SPF compu For IPv4/IPv6 numbered Link Decriptors to match during the IPv4 SPF comput
tation, the ation, the
Current-Link's IP4/IPv6 interface address link descriptor MUST match the R Current-Link's IP4/IPv6 interface address link descriptor <bcp14>MUST</bcp
emote-Link 14> match the Remote-Link
IPv4/IPv6 neighbor address link descriptor and the Current-Link's IPv4/IPv IPv4/IPv6 neighbor address link descriptor, and the Current-Link's IPv4/IP
6 neighbor v6 neighbor
address MUST match the Remote-Link's IPv4/IPv6 interface address. address <bcp14>MUST</bcp14> match the Remote-Link's IPv4/IPv6 interface ad
dress.
</li> </li>
<li> <li>
For unnumbered links to match during the IPv4 or IPv6 SPF computation, For unnumbered links to match during the IPv4 or IPv6 SPF computation,
Current-Link and Remote-Link's Address Family Link Descriptor TLV must mat ch the Current-Link and Remote-Link's Address Family Link Descriptor TLV must match
the address 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-Link's Local the Current-Link's Remote Identifier <bcp14>MUST</bcp14> match the Remote-
Identifier and the Current-Link's Remote Identifier MUST match the Link's Local
Identifier, and the Current-Link's Remote Identifier <bcp14>MUST</bcp14> m
atch the
Remote-Link's Local Identifier. Remote-Link's Local Identifier.
<!--[rfced] Section 6.3. We note the following variations - are these
terms different? Please let us know if/how we may update these
for consistency.
Link Local/Remote Identifiers (TLV 258)
Current or Remote Link's Local Identifier
Current-Link's Remote Identifier
Link Remote Identifier
Link's Remote Identifier
Remote Link Identifiers
As an example, how may we update this sentence for consistency? Should
reference to TLV 258 be "Link Local/Remote Identifiers" per RFC 9552?
Original:
Since the Link's Remote Identifier may not be known, a value of 0
is considered a wildcard and will match any Current or Remote
Link's Local Identifier (see TLV 258 [RFC9552]).
Perhaps:
Since the Link Remote Identifier may not be known, a value of 0
is considered a wildcard and will match any Link Local/Remote
Identifiers (see TLV 258 [RFC9552]).
-->
Since the Link's Remote Identifier may not be known, a value of 0 Since the Link's Remote Identifier may not be known, a value of 0
is considered a wildcard and will match any Current or Remote Link's Local is considered a wildcard and will match any Current or Remote Link's Local
Identifier (see TLV 258 <xref target="RFC9552" format="default"/>). Identifier (see TLV 258 <xref target="RFC9552" format="default"/>).
Address Family Link Descriptor TLVs for multiple address families may be Address Family Link Descriptor TLVs for multiple address families may be
advertised so that an unnumbered link can be used in the SPF computation f or advertised so that an unnumbered link can be used in the SPF computation f or
multiple address families. multiple address families.
</li> </li>
</ul> </ul>
<t> <t>
If these conditions are satisfied for one of the Remote-Node's links, If these conditions are satisfied for one of the Remote-Node's links,
the bi-directional connectivity the bidirectional connectivity
check succeeds and the Remote-Node may be processed further. The check succeeds and the Remote-Node may be processed further. The
Remote-Node's Link NLRI providing bi-directional connectivity Remote-Node's Link NLRI providing bidirectional connectivity
is referred to as the Remote-Link. If no Remote-Link is found, the next is referred to as the Remote-Link. If no Remote-Link is found, the next
link for the Current-Node is examined in Step 5. link for the Current-Node is examined in Step 5.
</t> </t>
</li> </li>
<li> <li>
If the Remote-Link NLRI attribute includes an SPF Status TLV indicating If the Remote-Link NLRI attribute includes an SPF Status TLV indicating
the link is down, the Remote-Link NLRI is considered down and the next link the link is down, the Remote-Link NLRI is considered down, and the next link
for the Current-Node is examined in Step 5. for the Current-Node is examined in Step 5.
</li> </li>
<li> <li>
If the Remote-Node is not on the CAN-LIST, it is inserted based 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 Current-Node added on the cost. The Remote Node's cost is the cost of the Current-Node added
the Current-Link's IGP Metric TLV (1095). The next-hop(s) for the Remote-Node to the Current-Link's IGP Metric (TLV 1095). The next-hop(s) for the Remote-No
are inherited from the Current-Link. de
is inherited from the Current-Link.
</li> </li>
<li> <li>
If the Remote-Node NLRI is already on the CAN-LIST with a higher cost, it If the Remote-Node NLRI is already on the CAN-LIST with a higher cost, it
must be removed and reinserted with the Remote-Node cost based on the must be removed and reinserted with the Remote-Node cost based on the
Current-Link (as calculated in the previous step). The Current-Link (as calculated in the previous step). The
next-hop(s) for the Remote-Node are inherited from the Current-Link. next-hop(s) for the Remote-Node is inherited from the Current-Link.
</li> </li>
<li> <li>
If the Remote-Node NLRI is already on the CAN-LIST with the same cost, it need If the Remote-Node NLRI is already on the CAN-LIST with the same cost, it need
not be reinserted on the CAN-LIST. However, the Current-Link's next-hop(s) not be reinserted on the CAN-LIST. However, the Current-Link's next-hop(s)
must be merged into the current set of next-hops for the Remote-Node. must be merged into the current set of next-hops for the Remote-Node.
</li> </li>
<li> <li>
If the Remote-Node NLRI is already on the CAN-LIST with a lower cost, it need If the Remote-Node NLRI is already on the CAN-LIST with a lower cost, it need
not be reinserted on the CAN-LIST. not be reinserted on the CAN-LIST.
</li> </li>
</ul> </ul>
</li> </li>
<li> <li>
Return to step 3 to process the next lowest cost Node NLRI on the CAN-LIST. Return to Step 3 to process the next lowest-cost Node NLRI on the CAN-LIST.
</li> </li>
</ol> </ol>
</li> </li>
<li> <li>
<t> <t>
The Local-RIB is examined and changes (adds, deletes, modifications) are ins talled into The Local-RIB is examined and changes (adds, deletes, and modifications) are installed into
the GLOBAL-RIB. For each route in the Local-RIB: the GLOBAL-RIB. For each route in the Local-RIB:
</t> </t>
<ul spacing="normal"> <ul spacing="normal">
<li> <li>
If the route was added during the current BGP SPF computation, install the r oute into If the route was added during the current BGP SPF computation, install the r oute into
the GLOBAL-RIB. the GLOBAL-RIB.
</li> </li>
<li> <li>
If the route modified during the current BGP SPF computation (e.g., metric, ta gs, If the route was modified during the current BGP SPF computation (e.g., metric , tags,
or next-hops), update the route in the GLOBAL-RIB. or next-hops), update the route in the GLOBAL-RIB.
</li> </li>
<li> <li>
If the route was not installed during the current BGP SPF computation, remove the route If the route was not installed during the current BGP SPF computation, remove the route
from the GLOBAL-RIB. from the GLOBAL-RIB.
</li> </li>
</ul> </ul>
</li> </li>
</ol> </ol>
</section> </section>
<section numbered="true" toc="default"> <section numbered="true" toc="default">
<name>IPv4/IPv6 Unicast Address Family Interaction</name> <name>IPv4/IPv6 Unicast Address Family Interaction</name>
<t> <t>
While the BGP-LS-SPF address family and the BGP unicast address families may i nstall routes While the BGP-LS-SPF address family and the BGP unicast address families may i nstall routes
into the same device routing tables, they operate independently (i.e., "Ships- in-the-Night" mode). into the routing tables of the same device, they operate independently (i.e., "ships-in-the-night" mode).
There is no implicit route redistribution between the BGP-LS-SPF address famil y and the BGP There is no implicit route redistribution between the BGP-LS-SPF address famil y and the BGP
unicast address families. unicast address families.
</t> </t>
<t> <t>
It is RECOMMENDED that BGP-LS-SPF IPv4/IPv6 route computation and It is <bcp14>RECOMMENDED</bcp14> that BGP-LS-SPF IPv4/IPv6 route computation a nd
installation be given scheduling priority by default over other BGP address fa milies installation be given scheduling priority by default over other BGP address fa milies
as these address families are considered as underlay SAFIs. as these address families are considered as underlay SAFIs.
</t> </t>
</section> </section>
<section anchor="NLRI-Advertise" numbered="true" toc="default"> <section anchor="NLRI-Advertise" numbered="true" toc="default">
<name>NLRI Advertisement</name> <name>NLRI Advertisement</name>
<section anchor="failure-converge" numbered="true" toc="default"> <section anchor="failure-converge" numbered="true" toc="default">
<name>Link/Prefix Failure Convergence</name> <name>Link/Prefix Failure Convergence</name>
<t> <t>
A local failure prevents a link from being used in the SPF calculation A local failure prevents a link from being used in the SPF calculation
due to the IGP bi-directional connectivity requirement. Consequently, local li due to the IGP bidirectional connectivity requirement. Consequently, local lin
nk k
failures SHOULD always be communicated as quickly as possible and given priori failures <bcp14>SHOULD</bcp14> always be communicated as quickly as possible a
ty nd given priority
over other categories of changes to ensure expeditious propagation over other categories of changes to ensure expeditious propagation
and optimal convergence. and optimal convergence.
</t> </t>
<t> <t>
According to standard BGP procedures, the link would continue According to standard BGP procedures, the link would continue
to be used until the last copy of the BGP-LS-SPF Link NLRI is to be 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 SHOUL D withdrawn. In order to avoid this delay, the originator of the Link NLRI <bcp1 4>SHOULD</bcp14>
advertise a more recent version with an increased Sequence Number TLV for advertise a more recent version with an increased Sequence Number TLV for
the BGP-LS-SPF Link NLRI including the SPF Status TLV the BGP-LS-SPF Link NLRI including the SPF Status TLV
(refer to <xref target="link-status-tlv" format="default"/>) indicating the li nk (refer to <xref target="link-status-tlv" format="default"/>) indicating the li nk
is down with respect to BGP SPF. is down with respect to BGP SPF.
<!--[rfced] The following sentences do not parse, for example, "that
the BGP-LS-LINK NLRI is advertised with SPF Status". How may we
rephrase this text for clarity?
Also, should "BGP-LS-LINK NLRI" be updated as "BGP-LS-SPF Link NLRI"
in the first sentence and "BGP-LS-Prefix NLRI" be updated as
"BGP-LS-SPF Prefix NLRI" in the second sentence for consistency?
Original:
The configurable LinkStatusDownAdvertise timer controls the interval
that the BGP-LS-LINK NLRI is advertised with SPF Status indicating
the link is down prior to withdrawal.
The configurable PrefixStatusDownAdvertise timer controls the
interval that the BGP-LS-Prefix NLRI is advertised with SPF
Status indicating the prefix is unreachable prior to withdrawal.
Perhaps:
The configurable PrefixStatusDownAdvertise timer controls the
interval when a BGP-LS-SPF Link NLRI has been advertised with the
SPF Status TLV and indicates that the prefix is unreachable prior
to withdrawal.
The configurable PrefixStatusDownAdvertise timer controls the
interval when a BGP-LS-SPF Prefix NLRI is advertised with the
SPF Status TLV and indicates that the prefix is unreachable prior
to withdrawal.
-->
The configurable LinkStatusDownAdvertise timer The configurable LinkStatusDownAdvertise timer
controls the interval that the BGP-LS-LINK NLRI is advertised with SPF Status indicating controls the interval that the BGP-LS-LINK NLRI is advertised with SPF Status indicating
the link is down prior to withdrawal. the link is down prior to withdrawal.
If BGP-LS-SPF Link NLRI has been advertised with the SPF Status If a BGP-LS-SPF Link NLRI has been advertised with the SPF Status
TLV and the link becomes available TLV and the link becomes available
in that period, the originator of the BGP-LS-SPF LINK NLRI MUST advertise a mo in that period, the originator of the BGP-LS-SPF Link NLRI <bcp14>MUST</bcp14>
re recent advertise a more recent
version of the BGP-LS-SPF Link NLRI without the SPF Status TLV in the BGP-LS L version of the BGP-LS-SPF Link NLRI without the SPF Status TLV in the BGP-LS A
ink Attributes. ttributes.
The suggested default value for the LinkStatusDownAdvertise timer is 2 seconds . The suggested default value for the LinkStatusDownAdvertise timer is 2 seconds .
</t> </t>
<t> <t>
Similarly, when a prefix becomes unreachable, a more recent version of the BGP -LS-SPF Similarly, when a prefix becomes unreachable, a more recent version of the BGP -LS-SPF
Prefix NLRI SHOULD be advertised with the SPF Status TLV Prefix NLRI <bcp14>SHOULD</bcp14> be advertised with the SPF Status TLV
(refer to <xref target="prefix-status-tlv" format="default"/>) (refer to <xref target="prefix-status-tlv" format="default"/>)
indicating the prefix is unreachable in the BGP-LS Prefix Attributes and the p refix will be to indicate that the prefix is unreachable in the BGP-LS Prefix Attributes, an d the prefix will be
considered unreachable with respect to BGP SPF. considered unreachable with respect to BGP SPF.
The configurable PrefixStatusDownAdvertise timer The configurable PrefixStatusDownAdvertise timer
controls the interval that the BGP-LS-Prefix NLRI is advertised with SPF Statu s indicating controls the interval that the BGP-LS-Prefix NLRI is advertised with SPF Statu s indicating
the prefix is unreachable prior to withdrawal. the prefix is unreachable prior to withdrawal.
If the BGP-LS-SPF Prefix has been advertised with the SPF Status TLV and the p refix If the BGP-LS-SPF Prefix has been advertised with the SPF Status TLV and the p refix
becomes reachable in that period, the originator of the BGP-LS-SPF Prefix NLRI becomes reachable 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 the <bcp14>MUST</bcp14> advertise a more recent version of the BGP-LS-SPF Prefix N LRI without the
SPF Status TLV in the BGP-LS Prefix Attributes. SPF Status TLV in the BGP-LS Prefix Attributes.
The suggested default value for the PrefixStatusDownAdvertise timer is 2 secon ds. The suggested default value for the PrefixStatusDownAdvertise timer is 2 secon ds.
</t> </t>
</section> </section>
<section anchor="node-failure" numbered="true" toc="default"> <section anchor="node-failure" numbered="true" toc="default">
<name>Node Failure Convergence</name> <name>Node Failure Convergence</name>
<t> <t>
By default, all the NLRI advertised by a node are withdrawn when a session By default, all the NLRIs advertised by a node are withdrawn when a session
failure is detected <xref target="RFC4271"/>. If fast failure detection such a s BFD failure is detected <xref target="RFC4271"/>. If fast failure detection such a s BFD
<xref target="RFC5880"/> is utilized, and the node is <xref target="RFC5880"/> is utilized, and the node is
on the fastest converging path, the most recent versions of BGP-LS-SPF NLRI wi ll be on the fastest converging path, the most recent versions of BGP-LS-SPF NLRI wi ll be
withdrawn. This may result in older versions of NLRI received from peer(s) on withdrawn. This may result in older versions of NLRIs received from one or mor
different path(s) being in the LSNDB until they are withdrawn. e peers on
These stale NLRI will not delay convergence since the adjacent nodes detect th a different path(s) in the LSNDB until they are withdrawn.
e These stale NLRIs will not delay convergence since the adjacent nodes detect t
he
link failure and advertise a more recent NLRI indicating the link is down with respect to link failure and advertise a more recent NLRI indicating the link is down with respect to
BGP SPF (refer to <xref target="failure-converge" format="default"/>) and the BGP SPF (refer to <xref target="failure-converge" format="default"/>) and the
bi-directional connectivity check fails during the BGP SPF calculation bidirectional connectivity check fails during the BGP SPF calculation
(refer to <xref target="BGP-SPF" format="default"/>). (refer to <xref target="BGP-SPF" format="default"/>).
</t> </t>
</section> </section>
</section> </section>
</section> </section>
<section anchor="error-handling" numbered="true" toc="default"> <section anchor="error-handling" numbered="true" toc="default">
<name>Error Handling</name> <name>Error Handling</name>
<t> <t>
This section describes the Error Handling actions, as described in This section describes error-handling actions, as described in
<xref target="RFC7606" format="default"/>, that are specific to SAFI BGP-LS-SP <xref target="RFC7606" format="default"/>, that are specific to BGP-LS-SPF SAF
F BGP Update I BGP Update
message processing. message processing.
</t> </t>
<section anchor="new-TLVs" numbered="true" toc="default"> <section anchor="new-TLVs" numbered="true" toc="default">
<name>Processing of BGP-LS-SPF TLVs</name> <name>Processing of BGP-LS-SPF TLVs</name>
<t> <t>
When a BGP speaker receives a BGP Update containing a malformed Node NLRI When a BGP speaker receives a BGP Update containing a malformed Node NLRI
SPF Status TLV in the BGP-LS Attribute <xref target="RFC9552" format="default" />, SPF Status TLV in the BGP-LS Attribute <xref target="RFC9552" format="default" />,
the corresponding Node NLRI is the corresponding Node NLRI is
considered as malformed and MUST be handled as 'Treat-as-withdraw'. An considered malformed and <bcp14>MUST</bcp14> be handled as 'treat-as-withdraw'
implementation SHOULD log an error (subject to rate-limiting) for further anal . An
ysis. implementation <bcp14>SHOULD</bcp14> log an error (subject to rate limiting) f
or further analysis.
</t> </t>
<t> <t>
When a BGP speaker receives a BGP Update containing a malformed Link NLRI When a BGP speaker receives a BGP Update containing a malformed Link NLRI
SPF Status TLV in the BGP-LS Attribute <xref target="RFC9552" format="default" />, SPF Status TLV in the BGP-LS Attribute <xref target="RFC9552" format="default" />,
the corresponding Link NLRI is the corresponding Link NLRI is
considered as malformed and MUST be handled as 'Treat-as-withdraw'. An considered malformed and <bcp14>MUST</bcp14> be handled as 'treat-as-withdraw'
implementation SHOULD log an error (subject to rate-limiting) for further anal . An
ysis. implementation <bcp14>SHOULD</bcp14> log an error (subject to rate limiting) f
or further analysis.
</t> </t>
<t> <t>
When a BGP speaker receives a BGP Update containing a malformed Address Family When a BGP speaker receives a BGP Update containing a malformed Address Family
Link Descriptor TLV in the BGP-LS Attribute <xref target="RFC9552" format="def ault"/>, Link Descriptor TLV in the BGP-LS Attribute <xref target="RFC9552" format="def ault"/>,
the corresponding Link NLRI is the corresponding Link NLRI is
considered as malformed and MUST be handled as 'Treat-as-withdraw'. An considered malformed and <bcp14>MUST</bcp14> be handled as 'treat-as-withdraw'
implementation SHOULD log an error (subject to rate-limiting) for further anal . An
ysis. implementation <bcp14>SHOULD</bcp14> log an error (subject to rate limiting) f
or further analysis.
</t> </t>
<t> <t>
When a BGP speaker receives a BGP Update containing a malformed Prefix NLRI When a BGP speaker receives a BGP Update containing a malformed Prefix NLRI
SPF Status TLV in the BGP-LS Attribute <xref target="RFC9552" format="default" />, SPF Status TLV in the BGP-LS Attribute <xref target="RFC9552" format="default" />,
the corresponding Prefix NLRI is the corresponding Prefix NLRI is
considered as malformed and MUST be handled as 'Treat-as-withdraw'. An considered malformed and <bcp14>MUST</bcp14> be handled as 'treat-as-withdraw'
implementation SHOULD log an error (subject to rate-limiting) for further anal . An
ysis. implementation <bcp14>SHOULD</bcp14> log an error (subject to rate limiting) f
or further analysis.
</t> </t>
<t> <t>
When a BGP speaker receives a BGP Update containing any malformed BGP-LS Attri When a BGP speaker receives a BGP Update containing a malformed BGP-LS Attribu
bute TE te TE
and IGP Metric TLV, the corresponding NLRI is considered as malformed and IGP Metric TLV, the corresponding NLRI is considered malformed
and MUST be handled as 'Treat-as-withdraw' <xref target="RFC7606" format="defa and <bcp14>MUST</bcp14> be handled as 'treat-as-withdraw' <xref target="RFC760
ult"/>. 6" format="default"/>.
An implementation SHOULD log an error (subject to rate-limiting) for further a An implementation <bcp14>SHOULD</bcp14> log an error (subject to rate limiting
nalysis. ) for further analysis.
</t> </t>
<t> <t>
The BGP-LS Attribute consists of Node attribute TLVs, Link attribute TLVs, and The BGP-LS Attribute consists of Node attribute TLVs, Link attribute TLVs, and
the Prefix Prefix
attribute TLVs. Node attribute TLVs and their error handling rules are either attribute TLVs. Node attribute TLVs and their error-handling rules are either
defined in defined in
<xref target="RFC9552" format="default"/> <xref target="RFC9552" format="default"/>
or derived from <xref target="RFC5305" format="default"/> and <xref target="RF C6119" format="default"/>. or derived from <xref target="RFC5305" format="default"/> and <xref target="RF C6119" format="default"/>.
If a BGP speaker receives a BGP-LS Attribute which is considered malformed bas If a BGP speaker receives a BGP-LS Attribute that is considered malformed base
ed on these d on these
error handling rules, then it MUST consider the received NLRI as malformed and error-handling rules, then it <bcp14>MUST</bcp14> consider the received NLRI a
the receiving s malformed, and the receiving
BGP speaker MUST handle such malformed NLRI as 'Treat-as-withdraw' <xref targe BGP speaker <bcp14>MUST</bcp14> handle such a malformed NLRI as 'treat-as-with
t="RFC7606" format="default"/>. draw' <xref target="RFC7606" format="default"/>.
</t> </t>
<t> <t>
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 <xref target="RFC9552" format="default"/>. <xref section="5.2.1" target="RFC9552" format="default"/>.
Node Attribute TLVs and their error handling rules are either defined in Node Attribute TLVs and their error-handling rules are either defined in
<xref target="RFC9552" format="default"/> <xref target="RFC9552" format="default"/>
or derived from <xref target="RFC5305" format="default"/> and <xref target="RF C6119" format="default"/>. or derived from <xref target="RFC5305" format="default"/> and <xref target="RF C6119" format="default"/>.
</t> </t>
<t> <t>
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 <xref target="RFC9552" format="default"/>. <xref section="5.2.2" target="RFC9552" format="default"/>.
Link Attribute TLVs and their error handling rules are either defined in Link Attribute TLVs and their error-handling rules are either defined in
<xref target="RFC9552" format="default"/> <xref target="RFC9552" format="default"/>
or derived from <xref target="RFC5305" format="default"/> and <xref target="RF C6119" format="default"/>. or derived from <xref target="RFC5305" format="default"/> and <xref target="RF C6119" format="default"/>.
</t> </t>
<t> <t>
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 <xref target="RFC9552" format="default"/>. <xref section="5.2.3" target="RFC9552" format="default"/>.
Prefix Attribute TLVs and their error handling rules are either defined in Prefix Attribute TLVs and their error-handling rules are either defined in
<xref target="RFC9552" format="default"/> <xref target="RFC9552" format="default"/>
or derived from <xref target="RFC5130" format="default"/> and or derived from <xref target="RFC5130" format="default"/> and
<xref target="RFC2328" format="default"/>. <xref target="RFC2328" format="default"/>.
</t> </t>
<t> <t>
If a BGP speaker receives NLRI with a Node Descriptor TLV, Link Descriptor TLV , or Prefix Descriptor If a BGP speaker receives NLRI with a Node Descriptor TLV, Link Descriptor TLV , or Prefix Descriptor
TLV that is considered malformed based on error handling rules defined in the above references, TLV that is considered malformed based on error handling rules defined in the above references,
then it MUST consider the received NLRI as malformed and the receiving then it <bcp14>MUST</bcp14> consider the received NLRI as malformed, and the r
BGP speaker MUST handle such malformed NLRI as 'Treat-as-withdraw' <xref targe eceiving
t="RFC7606" format="default"/>. BGP speaker <bcp14>MUST</bcp14> handle such a malformed NLRI as 'treat-as-with
draw' <xref target="RFC7606" format="default"/>.
</t> </t>
<t> <t>
When a BGP speaker receives a BGP Update that does not contain any BGP-LS Attr When a BGP speaker receives a BGP Update that does not contain any BGP-LS Attr
ibute, ibutes,
it is most likely an indication of 'Attribute Discard' fault handling and the it is most likely an indication of 'Attribute Discard' fault handling, and the
BGP speaker SHOULD preserve and propagate the BGP-LS-SPF NLRI as described in BGP speaker <bcp14>SHOULD</bcp14> preserve and propagate the BGP-LS-SPF NLRI a
Section 8.2.2 of <xref target="RFC9552"/>. However, NLRI without the BGP-LS at s described in
tribute <xref section="8.2.2" target="RFC9552"/>. However, NLRIs without the BGP-LS at
MUST NOT be used in the SPF Calculation <xref target="BGP-SPF"/>. How this is tribute
accomplished <bcp14>MUST NOT</bcp14> be used in the SPF calculation (<xref target="BGP-SPF"
is an implementation matter but one way would be for these NLRI not to returne />). How this is accomplished
d in is an implementation matter, but one way would be for these NLRIs not to be re
turned in
LSNDB lookups. LSNDB lookups.
</t> </t>
</section> </section>
<section anchor="bgpspf-nlri" numbered="true" toc="default"> <section anchor="bgpspf-nlri" numbered="true" toc="default">
<name>Processing of BGP-LS-SPF NLRIs</name> <name>Processing of BGP-LS-SPF NLRIs</name>
<t> <t>
A BGP speaker supporting the BGP-LS-SPF SAFI MUST perform the syntactic valida A BGP speaker supporting the BGP-LS-SPF SAFI <bcp14>MUST</bcp14> perform the s
tion checks of the yntactic validation checks of the
BGP-LS-SPF NLRI listed in Section 8.2.2 of BGP-LS-SPF NLRI listed in <xref section="8.2.2" target="RFC9552" format="defau
<xref target="RFC9552" format="default"/> to determine if lt"/> to determine if
it is malformed. it is malformed.
</t> </t>
</section> </section>
<section anchor="bgpspf-attribute" numbered="true" toc="default"> <section anchor="bgpspf-attribute" numbered="true" toc="default">
<name>Processing of BGP-LS Attribute</name> <name>Processing of BGP-LS Attributes</name>
<t> <t>
A BGP speaker supporting the BGP-LS-SPF SAFI MUST perform the syntactic validat A BGP speaker supporting the BGP-LS-SPF SAFI <bcp14>MUST</bcp14> perform the sy
ion checks of the ntactic validation checks of the
BGP-LS Attribute listed in Section 8.2.2 of BGP-LS Attribute listed in <xref section="8.2.2" target="RFC9552" format="defau
<xref target="RFC9552" format="default"/> to determine if lt"/> to determine if
it is malformed. it is malformed.
</t> </t>
<t> <t>
An implementation SHOULD log an error for further analysis for problems An implementation <bcp14>SHOULD</bcp14> log an error for further analysis for problems
detected during syntax validation. detected during syntax validation.
</t> </t>
</section> </section>
<section anchor="bgp-sync" numbered="true" toc="default"> <section anchor="bgp-sync" numbered="true" toc="default">
<name>BGP-LS-SPF Link State NLRI Database Synchronization</name> <name>BGP-LS-SPF Link-State NLRI Database Synchronization</name>
<t> <t>
While uncommon, there may be situations where the LSNDBs of two While uncommon, there may be situations where the LSNDBs of two
BGP speakers supporting the BGP-LS-SPF SAFI lose synchronization. BGP speakers support the BGP-LS-SPF SAFI lose synchronization.
In these situations, the BGP In these situations, the BGP
session MUST be reset unless other means of resynchronization are used session <bcp14>MUST</bcp14> be reset unless other means of resynchronization are used
(beyond the scope of this document). (beyond the scope of this document).
When the session is reset, the BGP speaker MUST send a NOTIFICATION When the session is reset, the BGP speaker <bcp14>MUST</bcp14> send a NOTIFI CATION
message with the BGP error code "Loss of LSDB Synchronization" as described message with the BGP error code "Loss of LSDB Synchronization" as described
in section 3 of <xref target="RFC4271"/>. The mechanisms to detect loss of in <xref section="3" target="RFC4271"/>. The mechanisms to detect loss of
synchronization are beyond the scope of this document. synchronization are beyond the scope of this document.
</t> </t>
</section> </section>
</section> </section>
<section anchor="IANA" numbered="true" toc="default"> <section anchor="IANA" numbered="true" toc="default">
<name>IANA Considerations</name> <name>IANA Considerations</name>
<section numbered="true" toc="default"> <section numbered="true" toc="default">
<name>BGP-LS-SPF Allocation in SAFI Parameters Registry</name> <name>BGP-LS-SPF Allocation in the SAFI Values Registry</name>
<t> <t>
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 <xref target="RFC8126"/> and listed this document as a reference
Parameters" registry. IANA is requested to update the registration in the "SAFI Values" registry within the "Subsequent Address Family Identifiers
to reference only to this document. (SAFI) Parameters" registry group.
</t> </t>
</section> </section>
<section numbered="true" toc="default"> <section numbered="true" toc="default">
<name>BGP-LS-SPF Assignments to BGP-LS NLRI and Attribute TLV Registry</name> <name>BGP-LS-SPF Assignments in the BGP-LS NLRI and Attribute TLVs Registry</n ame>
<t> <t>
IANA has assigned six TLVs for BGP-LS-SPF NLRI in the "BGP-LS NLRI and Attribu te IANA has assigned six TLVs for BGP-LS-SPF NLRI in the "BGP-LS NLRI and Attribu te
TLV" registry. TLVs" registry. Supported TLV types include Sequence Number, SPF Status, and A
Supported TLV types include the SPF Status TLV type, Address Family Link ddress Family Link
Descriptor TLV type, and Sequence Number TLV type. Deprecated TLV types Descriptor. Deprecated TLV types include SPF Capability, IPv4 Link Prefix Len
include the SPF Capability TLV type, IPv4 Link Prefix Length TLV type, and IPv gth, and IPv6
6 Link Prefix Length.
Link Prefix Length TLV type.
</t> </t>
<!--[rfced] FYI - We placed the information in Table 5 in ascending
order to match the "BGP-LS NLRI and Attribute TLVs" registry at
<https://www.iana.org/assignments/bgp-ls-parameters/>
-->
<table anchor="tab.iana-attr" align="center"> <table anchor="tab.iana-attr" align="center">
<name>NLRI Attribute TLVs</name> <name>NLRI Attribute TLVs</name>
<thead> <thead>
<tr> <tr>
<th align="left">TLV Code Point</th> <th align="left">TLV Code Point</th>
<th align="left">Description</th> <th align="left">Description</th>
<th align="left">Reference</th> <th align="left">Reference</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
<td align="left">1185</td>
<td align="left">Address Family Link Descriptor</td>
<td align="left"><xref target="af-link-descriptor-tlv"/>, RFCXXXX ([this documen
t]).</td>
</tr>
<tr>
<td align="left">1181</td> <td align="left">1181</td>
<td align="left">Sequence Number</td> <td align="left">Sequence Number</td>
<td align="left">RFCXXXX ([this document]), <xref target="sequence-number-tlv"/> </td> <td align="left"><xref target="sequence-number-tlv"/> of RFC XXXX</td>
</tr> </tr>
<tr> <tr>
<td align="left">1184</td> <td align="left">1184</td>
<td align="left">SPF Status</td> <td align="left">SPF Status</td>
<td align="left"><xref target="node-status-tlv"/>, RFCXXXX ([this document]), <td align="left">Sections <xref target="node-status-tlv" format="counter"/>,
<xref target="link-status-tlv"/> and <xref target="prefix-status-tlv"/></td> <xref target="link-status-tlv" format="counter"/>, and <xref target="prefix-stat
us-tlv" format="counter"/> of RFC XXXX</td>
</tr>
<tr>
<td align="left">1185</td>
<td align="left">Address Family Link Descriptor</td>
<td align="left"><xref target="af-link-descriptor-tlv"/> of RFC XXXX</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<t> <t>
The early allocation assignments for the TLV types SPF Capability (1180), The early allocation assignments for the TLV types SPF Capability (1180),
IPv4 Link Prefix Length (1182), and IPv6 Link Prefix Length (1183) are no long er required IPv4 Link Prefix Length (1182), and IPv6 Link Prefix Length (1183) are no long er required
and are to be deprecated. and have been deprecated.
</t> </t>
</section> </section>
<section numbered="true" toc="default"> <section numbered="true" toc="default">
<name>BGP-LS-SPF Node NLRI Attribute SPF Status TLV Status Registry</name> <name>BGP-LS-SPF Node NLRI Attribute SPF Status TLV Status Registry</name>
<t> <t>
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" Registry for status values in a new BGP SPF group. Status TLV Status" registry for status values within the "BGP Shortest Path
First (BGP SPF)" registry group.
Initial values for this registry are provided below. Future assignments Initial values for this registry are provided below. Future assignments
are to be made using the Expert Review registration policy <xref target="RFC 8126"/> are to be made using the Expert Review registration policy <xref target="RFC 8126"/>
with guidance for Designated Experts as per section 7.2 of <xref target="RFC 9552"/>. with guidance for designated experts as per <xref section="7.2" target="RFC9 552"/>.
</t> </t>
<table anchor="tab.iana-node-status" align="center"> <table anchor="tab.iana-node-status" align="center">
<name>BGP-LS-SPF Node NLRI Attribute SPF Status TLV Status Registry Assignmen ts</name> <name>BGP-LS-SPF Node NLRI Attribute SPF Status TLV Status Registry Assignmen ts</name>
<thead> <thead>
<tr> <tr>
<th align="left">Values</th> <th align="left">Values</th>
<th align="left">Description</th> <th align="left">Description</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
skipping to change at line 1549 skipping to change at line 1889
<tr> <tr>
<td align="left">255</td> <td align="left">255</td>
<td align="left">Reserved</td> <td align="left">Reserved</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</section> </section>
<section numbered="true" toc="default"> <section numbered="true" toc="default">
<name>BGP-LS-SPF Link NLRI Attribute SPF Status TLV Status Registry</name> <name>BGP-LS-SPF Link NLRI Attribute SPF Status TLV Status Registry</name>
<t> <t>
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" Registry for status values in a new BGP SPF group. Status TLV Status" registry for status values within the BGP Shortest Path F
irst (BGP SPF)" registry group.
Initial values for this registry are provided below. Future assignments Initial values for this registry are provided below. Future assignments
are to be made using the IETF Review registration policy <xref target="RFC81 26"/>. are to be made using the IETF Review registration policy <xref target="RFC81 26"/>.
</t> </t>
<table anchor="tab.iana-link-status" align="center"> <table anchor="tab.iana-link-status" align="center">
<name>BGP-LS-SPF Link NLRI Attribute SPF Status TLV Status Registry Assignmen ts</name> <name>BGP-LS-SPF Link NLRI Attribute SPF Status TLV Status Registry Assignmen ts</name>
<thead> <thead>
<tr> <tr>
<th align="left">Value</th> <th align="left">Value</th>
<th align="left">Description</th> <th align="left">Description</th>
</tr> </tr>
skipping to change at line 1585 skipping to change at line 1925
<tr> <tr>
<td align="left">255</td> <td align="left">255</td>
<td align="left">Reserved</td> <td align="left">Reserved</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</section> </section>
<section numbered="true" toc="default"> <section numbered="true" toc="default">
<name>BGP-LS-SPF Prefix NLRI Attribute SPF Status TLV Status Registry</name> <name>BGP-LS-SPF Prefix NLRI Attribute SPF Status TLV Status Registry</name>
<t> <t>
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" Registry for status values in a new BGP SPF group. Status TLV Status" registry for status values within the "BGP Shortest Path
First (BGP SPF)" registry group.
Initial values for this registry are provided below. Future assignments Initial values for this registry are provided below. Future assignments
are to be made using the IETF Review registration policy <xref target="RFC81 26"/>. are to be made using the IETF Review registration policy <xref target="RFC81 26"/>.
</t> </t>
<table anchor="tab.iana-prefix-status" align="center"> <table anchor="tab.iana-prefix-status" align="center">
<name>BGP-LS-SPF Prefix NLRI Attribute SPF Status TLV Status Registry Assignm ents</name> <name>BGP-LS-SPF Prefix NLRI Attribute SPF Status TLV Status Registry Assignm ents</name>
<thead> <thead>
<tr> <tr>
<th align="left">Value</th> <th align="left">Value</th>
<th align="left">Description</th> <th align="left">Description</th>
</tr> </tr>
skipping to change at line 1619 skipping to change at line 1959
<td align="left">Unassigned</td> <td align="left">Unassigned</td>
</tr> </tr>
<tr> <tr>
<td align="left">255</td> <td align="left">255</td>
<td align="left">Reserved</td> <td align="left">Reserved</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</section> </section>
<section numbered="true" toc="default"> <section numbered="true" toc="default">
<name>BGP Error (Notification) Code Assignment</name> <name>Assignment in the BGP Error (Notification) Codes Registry</name>
<t> <t>
IANA is requested to assign a TBD code for "Loss of LSDB Synchronization" in IANA has assigned value 9 for Loss of LSDB Synchronization in the
the "BGP Error (Notification) Codes" registry within the
BGP Error (Notification) Codes" registry in the
"Border Gateway Protocol (BGP) Parameters" registry group. "Border Gateway Protocol (BGP) Parameters" registry group.
</t> </t>
</section> </section>
</section> </section>
<section anchor="Security" numbered="true" toc="default"> <section anchor="Security" numbered="true" toc="default">
<name>Security Considerations</name> <name>Security Considerations</name>
<t> <t>
This document defines a BGP SAFI, i.e., the BGP-LS-SPF SAFI. This document This document defines a BGP SAFI, i.e., the BGP-LS-SPF SAFI. This document
does not change the underlying security issues inherent in the BGP protocol does not change the underlying security issues inherent in the BGP protocol
<xref target="RFC4271" format="default"/>. The Security Considerations <xref target="RFC4271" format="default"/>. The security considerations
discussed in <xref target="RFC4271" format="default"/> apply to the BGP SPF fu nctionality as well. discussed in <xref target="RFC4271" format="default"/> apply to the BGP SPF fu nctionality as well.
The analysis of the security issues for BGP mentioned The analysis of the security issues for BGP mentioned
in <xref target="RFC4272" format="default"/> and <xref target="RFC6952" format ="default"/> also applies to this document. in <xref target="RFC4272" format="default"/> and <xref target="RFC6952" format ="default"/> also applies to this document.
The threats and security considerations are the similar to the BGP IPv4 Unicas t SAFI and The threats and security considerations are similar to the BGP IPv4 Unicast SA FI and
IPv6 Unicast SAFI when utilized in similar deployments, e.g., <xref target="RF C7938"/>. IPv6 Unicast SAFI when utilized in similar deployments, e.g., <xref target="RF C7938"/>.
The analysis of Generic Threats to Routing Protocols done in <xref target="RFC 4593" format="default"/> The analysis of generic threats to routing protocols in <xref target="RFC4593" format="default"/>
is also worth noting. is also worth noting.
</t> </t>
<t> <t>
As the modifications described in this document for As the modifications for
BGP SPF apply to IPv4 Unicast and IPv6 Unicast as underlay SAFIs in a single BGP SPF described in this document apply to IPv4 Unicast and IPv6 Unicast as u
nderlay SAFIs in a single
BGP SPF Routing Domain, the BGP BGP SPF Routing Domain, the BGP
security solutions described in <xref target="RFC6811" format="default"/> and <xref target="RFC8205" format="default"/> security solutions described in <xref target="RFC6811" format="default"/> and <xref target="RFC8205" format="default"/>
are out of scope as they are meant to apply for inter-domain BGP where are out of scope as they are meant to apply for inter-domain BGP, where
multiple BGP Routing Domains are typically involved. The BGP-LS-SPF SAFI NLRI multiple BGP Routing Domains are typically involved. The BGP-LS-SPF SAFI NLRIs
described described
in this document are typically advertised between External BGP (EBGP) or in this document are typically advertised between EBGP or
Internal BGP (IBGP) speakers under a single administrative domain. IBGP speakers under a single administrative domain.
</t> </t>
<t> <t>
<!--[rfced] We having trouble parsing this sentence. Does the
processing of the BGP SPF and BGP-LS-SPF SAFI cause the encoding
to be inherited from BGP-LS (option A)? Or do BGP-LS-SPF SAFIs
and processed BGP SPFs inherit the encoding (option B)? Please
clarify.
Original:
The BGP SPF processing and the BGP-LS-SPF SAFI inherit the encoding
from BGP-LS [RFC9552], and consequently, inherit the security
considerations for BGP-LS associated with encoding.
Perhaps A:
When BGP SPF and BGP-LS-SPF SAFI are processed, they inherit
encoding from BGP-LS [RFC9552] and, consequently, inherit the
security considerations for the BGP-LS associated with encoding.
Perhaps B:
BGP-LS-SPF SAFIs and processed BGP SPFs inherit the encoding
from BGP-LS [RFC9552] and, consequently, inherit the security
considerations for BGP-LS associated with encoding.
-->
The BGP SPF processing and the BGP-LS-SPF SAFI inherit the encoding from BGP-L S The BGP SPF processing and the BGP-LS-SPF SAFI inherit the encoding from BGP-L S
<xref target="RFC9552" format="default"/>, and consequently, inherit <xref target="RFC9552" format="default"/>, and consequently, inherit
the security considerations for BGP-LS associated with encoding. Additionally, the security considerations for BGP-LS associated with encoding. Additionally,
given that the BGP SPF processing given that BGP SPF processing
is used to install IPv4 and IPv6 Unicast routes, the BGP SPF processing is vul is used to install IPv4 and IPv6 unicast routes, the BGP SPF processing is vul
nerable to nerable to
attacks to the routing control plane that aren't applicable to BGP-LS. One not able attacks to the routing control plane that aren't applicable to BGP-LS. One not able
Denial-of-Service attack, would be to include malformed BGP attributes in a re plicated Denial-of-Service attack would be to include malformed BGP attributes in a rep licated
BGP Update, causing the receiving peer to treat the advertised BGP-LS-SPF to a BGP Update, causing the receiving peer to treat the advertised BGP-LS-SPF to a
withdrawal <xref target="RFC7606" format="default"/>. withdrawal <xref target="RFC7606" format="default"/>.
</t> </t>
<t> <t>
In order to mitigate the risk of peering with BGP speakers masquerading In order to mitigate the risk of peering with BGP speakers masquerading
as legitimate authorized BGP speakers, it is RECOMMENDED that as legitimate authorized BGP speakers, it is <bcp14>RECOMMENDED</bcp14> that
the TCP Authentication Option (TCP-AO) <xref target="RFC5925" format="default" /> be used to the TCP Authentication Option (TCP-AO) <xref target="RFC5925" format="default" /> be used to
authenticate BGP sessions. If an authorized BGP peer is compromised, that authenticate BGP sessions. If an authorized BGP peer is compromised, that
BGP peer could advertise modified Node, Link, or Prefix NLRI which result BGP peer could advertise a modified Node, Link, or Prefix NLRI that results
in misrouting, repeating origination of NLRI, and/or excessive SPF in misrouting, repeating origination of NLRI, and/or excessive SPF
calculations. When a BGP speaker detects that its self-originated NLRI calculations. When a BGP speaker detects that its self-originated NLRI
is being originated by another BGP speaker, an appropriate error SHOULD is being originated by another BGP speaker, an appropriate error <bcp14>SHOULD </bcp14>
be logged so that the operator can take corrective action. This exposure is si milar be logged so that the operator can take corrective action. This exposure is si milar
to other BGP AFI/SAFIs. to other BGP AFI/SAFIs.
</t> </t>
</section> </section>
<section anchor="Management" numbered="true" toc="default"> <section anchor="Management" numbered="true" toc="default">
<name>Management Considerations</name> <name>Management Considerations</name>
<t> <t>
This section includes unique management considerations for the BGP-LS-SPF addr ess family. This section includes unique management considerations for the BGP-LS-SPF addr ess family.
</t> </t>
<section anchor="Config" numbered="true" toc="default"> <section anchor="Config" numbered="true" toc="default">
<name>Configuration</name> <name>Configuration</name>
<t> <t>
All routers in BGP SPF Routing Domain are under a single administrative domain All routers in the BGP SPF Routing Domain are under a single administrative do main
allowing for consistent configuration. allowing for consistent configuration.
</t> </t>
</section> </section>
<section anchor="link-metric-config" numbered="true" toc="default"> <section anchor="link-metric-config" numbered="true" toc="default">
<name>Link Metric Configuration</name> <name>Link Metric Configuration</name>
<t> <t>
For loopback prefixes, it is RECOMMENDED that the metric be 0. For loopback prefixes, it is <bcp14>RECOMMENDED</bcp14> that the metric be 0 .
For non-loopback prefixes, the setting of the For non-loopback prefixes, the setting of the
metric is a local matter and beyond the scope of this document. metric is a local matter and beyond the scope of this document.
</t> </t>
<t> <t>
<!--[rfced] How may we update this sentence for clarity?
Original:
Algorithms such as setting the metric inversely to the link speed as
supported in some IGP implementations MAY be supported.
Perhaps:
Algorithms that set the metric inversely to the link speed
in some IGP implementations MAY be supported.
-->
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 <bcp14>MAY</bcp14> be supported. Howev er, the
details of how the metric is computed are beyond the scope of this document. details of how the metric is computed are beyond the scope of this document.
</t> </t>
<t> <t>
Within a BGP SPF Routing Domain, the IGP metrics for all advertised links SHO ULD be configured or Within a BGP SPF Routing Domain, the IGP metrics for all advertised links <bc p14>SHOULD</bcp14> be configured or
defaulted consistently. For example, if a default metric is used for one rout er's links, then a defaulted consistently. For example, if a default metric is used for one rout er's links, then a
similar metric should be used for all router's links. Similarly, if the link metric is similar 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 router, then this derived from using the inverse of the link bandwidth on one router, then this
SHOULD <bcp14>SHOULD</bcp14>
be done for all routers and the same reference bandwidth SHOULD be used to de be done for all routers, and the same reference bandwidth <bcp14>SHOULD</bcp1
rive the 4> be used to derive the
inversely proportional metric. Failure to do so will result in incorrect rout ing based on inversely proportional metric. Failure to do so will result in incorrect rout ing based on
link metric. the link metric.
</t> </t>
</section> </section>
<section anchor="neighbor-config" numbered="true" toc="default"> <section anchor="neighbor-config" numbered="true" toc="default">
<name>Unnumbered Link Configuration</name> <name>Unnumbered Link Configuration</name>
<t> <t>
When parallel unnumbered links between BGP-SPF routers are included in the B When parallel unnumbered links between BGP and SPF routers are included in t
GP SPF routing he BGP SPF routing
domain and the Remote Link Identifiers aren't readily discovered, it is RECO domain and the Remote Link Identifiers aren't readily discovered, it is <bcp
MMENDED that these 14>RECOMMENDED</bcp14> that
the Remote Link Identifiers be configured so that precise NLRI Link matching the Remote Link Identifiers be configured so that precise Link NLRI matching
can be done. can be done.
</t> </t>
</section> </section>
<section anchor="Adjacency-EoR-Required" numbered="true" toc="default"> <section anchor="Adjacency-EoR-Required" numbered="true" toc="default">
<name>Adjacency End-of-RIB (EOR) Marker Requirement</name> <name>Adjacency End-of-RIB (EOR) Marker Requirement</name>
<t> <t>
Depending on the peering model, topology, and convergence requirements, an Depending on the peering model, topology, and convergence requirements, an
End-of-RIB (EoR) Marker <xref target="BGP-LS-SPF-EOR"/> for the BGP-LS-SPF EoR marker (<xref target="BGP-LS-SPF-EOR"/>) for the BGP-LS-SPF
SAFI MAY be required from the peer prior to advertising a BGP-LS Link NLRI SAFI <bcp14>MAY</bcp14> be required from the peer prior to advertising a BGP-L
for the peer. If configuration is supported, this MUST be configurable at S Link NLRI
the BGP SPF instance level and MUST be configured consistently throughout for the peer. If configuration is supported, this <bcp14>MUST</bcp14> be confi
gurable at
the BGP SPF instance level and <bcp14>MUST</bcp14> be configured consistently
throughout
the BGP SPF routing domain. the BGP SPF routing domain.
</t> </t>
<t> <t>
When this configuration is provided, the default MUST be to wait When this configuration is provided, the default <bcp14>MUST</bcp14> be to wai
indefinitely prior to advertising a BGP-LS link NLRI. Configuration of t
indefinitely prior to advertising a BGP-LS Link NLRI. Configuration of
a timer specifying the maximum time to wait prior to advertisement a timer specifying the maximum time to wait prior to advertisement
MAY be provided. <bcp14>MAY</bcp14> be provided.
</t> </t>
</section> </section>
<section anchor="spf-backoff-config" numbered="true" toc="default"> <section anchor="spf-backoff-config" numbered="true" toc="default">
<name>backoff-config</name> <name>backoff-config</name>
<t> <t>
In addition to configuration of the BGP-LS-SPF address family, implementations In addition to the configuration of the BGP-LS-SPF address family, implementat
SHOULD ions <bcp14>SHOULD</bcp14>
support the "Shortest Path First (SPF) Back-Off Delay Algorithm for Link-State support "Shortest Path First (SPF) Back-Off Delay Algorithm for Link-State IGP
IGPs" s"
<xref target="RFC8405" format="default"/>. If supported, configuration of the INITIAL_SPF_DELAY, SHORT_SPF_DELAY, <xref target="RFC8405" format="default"/>. If supported, configuration of the INITIAL_SPF_DELAY, SHORT_SPF_DELAY,
LONG_SPF_DELAY, TIME_TO_LEARN, and HOLDDOWN_INTERVAL MUST be supported <xref t LONG_SPF_DELAY, TIME_TO_LEARN, and HOLDDOWN_INTERVAL <bcp14>MUST</bcp14> be su
arget="RFC8405" format="default"/>. pported <xref target="RFC8405" format="default"/>.
Section 6 of <xref target="RFC8405" format="default"/> recommends consistent c <xref section="6" target="RFC8405" format="default"/> recommends consistent co
onfiguration of these values nfiguration of these values
throughout the IGP routing domain and this also applies to the BGP SPF Routing throughout the IGP routing domain, and this also applies to the BGP SPF Routin
Domain. g Domain.
</t> </t>
</section> </section>
<section anchor="bgp-ls-spf-readvertisement-delay" numbered="true" toc="default" > <section anchor="bgp-ls-spf-readvertisement-delay" numbered="true" toc="default" >
<name>BGP-LS-SPF NLRI Readvertisement Delay</name> <name>BGP-LS-SPF NLRI Readvertisement Delay</name>
<t> <t>
The configuration parameter specifies the delay for readvertising a more recen t The configuration parameter that specifies the delay for readvertising a more recent
instance of a self-originated NLRI when received more than once in succession instance of a self-originated NLRI when received more than once in succession
is BGP_LS_SPF_SELF_READVERTISEMENT_DELAY. The default is 5 seconds. is BGP_LS_SPF_SELF_READVERTISEMENT_DELAY. The default is 5 seconds.
</t> </t>
</section> </section>
<section anchor="Operation" numbered="true" toc="default"> <section anchor="Operation" numbered="true" toc="default">
<name>Operational Data</name> <name>Operational Data</name>
<t> <t>
In order to troubleshoot SPF issues, implementations SHOULD support an SPF log including In order to troubleshoot SPF issues, implementations <bcp14>SHOULD</bcp14> sup port an SPF log including
entries for previous SPF computations. Each SPF log entry would include the BG P-LS-SPF NLRI SPF entries for previous SPF computations. Each SPF log entry would include the BG P-LS-SPF NLRI SPF
triggering the SPF, SPF scheduled time, SPF start time and SPF end time. triggering the SPF, SPF scheduled time, SPF start time, and SPF end time.
Since the size of the log is finite, implementations Since the size of the log is finite, implementations
SHOULD also maintain counters for the total number of SPF computations and the <bcp14>SHOULD</bcp14> also maintain counters for the total number of SPF compu
total number of SPF triggering events. Additionally, to troubleshoot SPF sched tations and the
uling and total number of SPF triggering events. Additionally, troubleshooting should be
back-off <xref target="RFC8405" format="default"/>, the current SPF back-off s available for SPF scheduling and
tate, remaining time-to-learn, back-off <xref target="RFC8405" format="default"/>, the current SPF back-off s
remaining hold-down interval, last trigger event time, last SPF time, and next tate, the remaining time-to-learn,
SPF time should be the remaining hold-down interval, the last trigger event time, the last SPF ti
available. me, and the next SPF time.
</t> </t>
</section> </section>
<section anchor="bgp-ls-spf-isolation" numbered="true" toc="default"> <section anchor="bgp-ls-spf-isolation" numbered="true" toc="default">
<name>BGP-LS-SPF Address Family Session Isolation</name> <name>BGP-LS-SPF Address Family Session Isolation</name>
<t> <t>
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 BGP-LS-SPF AFI/SAFI SPF computation serve as the
underlay for other BGP AFI/SAFIs. underlay for other BGP AFI/SAFIs.
To avoid errors encountered in other AFI/SAFIs from impacting To avoid errors encountered in other AFI/SAFIs from impacting
the BGP-LS-SPF AFI/SAFI or vice versa, isolation mechanisms such as the BGP-LS-SPF AFI/SAFI or vice versa, isolation mechanisms such as
separate BGP instances or separate BGP sessions (e.g., using different separate BGP instances or separate BGP sessions (e.g., using different
addresses for peering) for BGP SPF Link-State information distribution addresses for peering) for BGP SPF Link-State distribution information
SHOULD be used. <bcp14>SHOULD</bcp14> be used.
</t>
</section>
</section>
<section anchor="implementation" numbered="true" toc="default">
<name>Implementation Status</name>
<t>
Note RFC Editor: Please remove this section and the associated references
prior to publication.
</t>
<t>
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
<xref target="RFC7942" format="default"/>. 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.
</t>
<t>
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".
</t>
<t>
The document <xref target="I-D.psarkar-lsvr-bgp-spf-impl" format="default"/>
contains an implementation report documenting implementations of
BGP Link-State Short Path First (SPF) routing, i.e., this specification.
</t> </t>
</section> </section>
<section anchor="Acknowledgements" numbered="true" toc="default"> <section anchor="Acknowledgements" numbered="true" toc="default">
<name>Acknowledgements</name> <name>Acknowledgements</name>
<t> <t>The authors would like to thank <contact fullname="Sue Hares"/>,
The authors would like to thank Sue Hares, Jorge Rabadan, Boris Hassanov, Dan <contact fullname="Jorge Rabadan"/>, <contact fullname="Boris Hassanov"/>,
Frost, <contact fullname="Dan Frost"/>, <contact fullname="Matt Anderson"/>,
Matt Anderson, Fred Baker, Lukas Krattiger, Yingzhen Qu, and Haibo Wang for th <contact fullname="Fred Baker"/>, <contact fullname="Lukas Krattiger"/>,
eir <contact fullname="Yingzhen Qu"/>, and <contact fullname="Haibo Wang"/> for
review and comments. Thanks to Pushpasis Sarkar for discussions on preventing their reviews and comments. Thanks to <contact fullname="Pushpasis Sarkar"/>
a for discussions on preventing a BGP SPF Router from being used for non-local
BGP SPF Router from being used for non-local traffic (i.e., transit traffic). traffic (i.e., transit traffic).</t>
</t> <t>The authors extend a special thanks to <contact fullname="Eric Rosen"/> for
<t> fruitful discussions on BGP-LS-SPF convergence as compared to IGPs.</t>
The authors extend special thanks to Eric Rosen for fruitful discussions on
BGP-LS-SPF convergence as compared to IGPs. <!--[rfced] FYI - To avoid the repetition of "The authors would like
</t> to thank" in the Acknowledgements, we updated the text as
<t> follows:
The authors would like extend thanks Alvaro Retana for multiple AD reviews
and discussions. Original:
</t> The authors would like extend thanks Alvaro Retana for
<t> multiple AD reviews and discussions.
The authors would to thank Ketan Talaulikar for an extensive shepherd review.
</t> The authors would to thank Ketan Talaulikar for an extensive
<t> shepherd review.
The authors would like to thank Adrian Farrel, Li Zhang, and Jie Dong for WG l
ast The authors would like to thank Adrian Farrel, Li Zhang, and Jie Dong
call review comments. for WG last call review comments.
</t>
<t> The authors would to like to thank Jim Guichard for his AD review
The authors would to like to thank Jim Guichard for his AD review and discussi and discussion.
on.
</t> The authors would to like to thank David Dong for his IANA review.
<t>
The authors would to like to thank David Dong for his IANA review. The authors would to like to thank Joel Halpern for his GENART review.
</t>
<t> The authors would to like to thank Erik Kline, Eric Vyncke, Mahesh
The authors would to like to thank Joel Halpern for his GENART review. Jethanandani, and Roman Danyliw for IESG review comments.
</t>
<t> The authors would to like to thank John Scudder for his detailed
The authors would to like to thank Erik Kline, Eric Vyncke, Mahesh IESG review and specifically for helping align the document with
Jethanandani, and Roman Danyliw for IESG review comments. BGP documents.
</t>
<t> Current:
The authors would to like to thank John Scudder for his detailed IESG The authors would also like to thank the following people:
review and specifically for helping align the document with BGP documents.
</t> * Alvaro Retana for multiple AD reviews and discussions.
* Ketan Talaulikar for an extensive shepherd review.
* Adrian Farrel, Li Zhang, and Jie Dong for WG Last Call review
comments.
* Jim Guichard for his AD review and discussion.
* David Dong for his IANA review.
* Joel Halpern for his GENART review.
* Erik Kline, Eric Vyncke, Mahesh Jethanandani, and Roman Danyliw
for IESG review comments.
* John Scudder for his detailed IESG review and specifically for
helping align the document with BGP documents.
-->
<t>The authors would also like to thank the following people:</t>
<ul empty="false">
<li><t><contact fullname="Alvaro Retana"/> for multiple AD
reviews and discussions.</t></li>
<li><t><contact fullname="Ketan Talaulikar"/> for an
extensive shepherd review.</t></li>
<li><t><contact fullname="Adrian Farrel"/>,
<contact fullname="Li Zhang"/>, and <contact fullname="Jie Dong"/> for WG
Last Call review comments.</t></li>
<li><t><contact fullname="Jim Guichard"/> for his AD review and
discussion.</t></li>
<li><t><contact fullname="David Dong"/> for his IANA review.</t></li>
<li><t><contact fullname="Joel Halpern"/> for his GENART review.</t></li>
<li><t><contact fullname="Erik Kline"/>,
<contact fullname="Eric Vyncke"/>, <contact fullname="Mahesh
Jethanandani"/>, and <contact fullname="Roman Danyliw"/> for IESG review
comments.</t></li>
<li><t><contact fullname="John Scudder"/> for his detailed IESG
review and specifically for helping align the document with BGP documents.</t>
</li>
</ul>
</section> </section>
<section anchor="Contributors" numbered="true" toc="default"> <section anchor="Contributors" numbered="true" toc="default">
<name>Contributors</name> <name>Contributors</name>
<t> <t>The following people contributed substantially to the content of this documen
In addition to the authors listed on the front page, the following t and should be considered
co-authors have contributed to the document. coauthors:</t>
</t>
<artwork align="left" name="" type="" alt=""><![CDATA[
Derek Yeung
Arrcus, Inc.
derek@arrcus.com
Gunter Van De Velde <contact fullname="Derek Yeung">
Nokia <organization>Arrcus, Inc.</organization>
gunter.van_de_velde@nokia.com <address>
<email>derek@arrcus.com</email>
</address>
</contact>
Abhay Roy <contact fullname="Gunter Van De Velde">
Arrcus, Inc. <organization>Nokia</organization>
abhay@arrcus.com <address>
<email>gunter.van_de_velde@nokia.com</email>
</address>
</contact>
Venu Venugopal <contact fullname="Abhay Roy">
Cisco Systems <organization>Arrcus, Inc.</organization>
venuv@cisco.com <address>
<email>abhay@arrcus.com</email>
</address>
</contact>
Chaitanya Yadlapalli <contact fullname="Venu Venugopal">
AT&T <organization>Cisco Systems</organization>
cy098d@att.com <address>
]]></artwork> <email>venuv@cisco.com</email>
</address>
</contact>
<contact fullname="Chaitanya Yadlapalli">
<organization>AT&amp;T</organization>
<address>
<email>cy098d@att.com</email>
</address>
</contact>
</section>
</section> </section>
</middle> </middle>
<!-- *****BACK MATTER ***** -->
<back> <back>
<references><name>References</name> <references><name>References</name>
<references><name>Normative References</name> <references><name>Normative References</name>
<xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.2119.xml" <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"
/> />
<xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.2328.xml" <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2328.xml"
/> />
<xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.4202.xml" <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4202.xml"
/> />
<xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.4271.xml" <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4271.xml"
/> />
<xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.4760.xml" <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4760.xml"
/> />
<xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.5305.xml" <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5305.xml"
/> />
<xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.5130.xml" <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5130.xml"
/> />
<xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.5880.xml" <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5880.xml"
/> />
<xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.5925.xml" <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5925.xml"
/> />
<xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.6793.xml" <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6793.xml"
/> />
<xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.6811.xml" <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6811.xml"
/> />
<xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.6119.xml" <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6119.xml"
/> />
<xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.7606.xml" <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7606.xml"
/> />
<xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8126.xml" <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml"
/> />
<xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8174.xml" <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"
/> />
<xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8205.xml" <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8205.xml"
/> />
<xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8405.xml" <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8405.xml"
/> />
<xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8654.xml" <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8654.xml"
/> />
<xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.9086.xml" <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9086.xml"
/> />
<xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.9552.xml" <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9552.xml"
/> />
</references> </references>
<references><name>Informational References</name> <references><name>Informative References</name>
<xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.4272.xml" <!-- Note: Removed references to [RFC7942] and [I-D.psarkar-lsvr-bgp-spf-impl] p
/> er authors' note. -->
<xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.4456.xml"
/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4272.xml"
<xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.4593.xml" />
/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4456.xml"
<xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.4724.xml" />
/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4593.xml"
<xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.5286.xml" />
/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4724.xml"
<xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.6952.xml" />
/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5286.xml"
<xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.7911.xml" />
/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6952.xml"
<xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.7938.xml" />
/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7911.xml"
<xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.7942.xml" />
/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7938.xml"
/>
<!-- draft-ietf-lsvr-applicability-22. IESG State: RFC Ed Queue as of 06/06/25 -
C529 companion doc. -->
<xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-lsv r-applicability.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-lsv r-applicability.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.psarkar-
lsvr-bgp-spf-impl.xml"/> <!-- [rfced] Some author comments are present in the XML. Please
confirm that no updates related to these comments are
outstanding. Note that the comments will be deleted prior to
publication.
-->
<!-- [rfced] Terminology
1) Throughout the text, the following terminology appears to be used
inconsistently. Please review these occurrences and let us know
if/how they may be made consistent.
BGP Router vs. BGP router
BGP SPF Router vs. BGP SPF router vs. BGP-SPF router
BGP SPF Routing Domain vs. BGP SPF routing domain
BGP-LS Attribute vs. BGP-LS attribute
[Note: uppercase used in RFC 9552]
BGP-LS Prefix Attribute vs. BGP-LS Prefix attribute
BGP-LS-LINK NLRI vs. BGP-LS Link NLRI
BGP-LS-SPF NLRI vs. BGP-LS-SPF Link NLRI
[Note: are these terms different or the same?]
BGP-LS-SPF Node NLRI vs. BGP-LS-SPF NLRI
[Note: are these terms different or the same?]
Decision Process vs. decision process
[Note: uppercase used in RFC 4271]
Remote Identifier vs. Remote Link Identifier
[Note: are these terms different or the same?]
Remote Node NLRI vs. Remote-Node NLRI
UPDATE message vs. Update message vs. update message
[Note: should this be "UPDATE message" per RFC 7606?]
2) FYI - We updated the following terms to reflect the forms on the right
for consistency. Please let us know of any objections.
AS Number (TLV 512) -> Autonomous System (TLV 512) (per RFC 9552)
back-off algorithm -> Back-Off algorithm (per RFC 8405)
Error Handling -> error handling
BGP update -> BGP Update
BGP-LS Link Attributes -> BGP-LS Attributes (1 instance)
BGP-LS-SPF LINK NLRI -> BGP-LS-SPF Link NLRI
EoR Marker -> EoR marker (per RFC 4724)
IGP metric attribute TLV (TLV 1095) -> IGP Metric (TLV 1095) (per RFC 9552)
local and remote node descriptors -> Local and Remote Node Descriptors
local node descriptor -> Local Node Descriptor
local/remote link identifiers -> Local/Remote Link Identifiers XX
NLRI Link -> Link NLRI
Node identifiers -> Node Identifiers
phase 1 -> Phase 1
Route Reflector -> route reflector (per RFC 4456)
SAFI BGP-LS-SPF BGP Update -> BGP-LS-SPF SAFI BGP Update
set 1 -> Step 1
Ships-in-the-Night -> ships-in-the-night (per other RFCs)
SPF back-off -> SPF Back-Off (per RFC 8405)
Treat-as-withdraw -> treat-as-withdraw (per RFC 7606)
Unequal Cost Multi-Path -> Unequal-Cost Multipath
Unicast -> unicast
3) In this document, we see one occurence of "BGP-LS-SPF Attribute TLV",
and it is not used in any other RFCs. Is this form correct or should it
perhaps be "BGP-LS-SPF attribute" or other?
Original:
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
calculation.
4) In this document, we see one occurence of "BGP-LS Node attribute".
Should this be "BGP-LS attribute" or other for consistency?
Original:
If the BGP-LS Node attribute includes an SPF Status TLV
(refer to Section 5.2.1.1) indicating the node is
unreachable, the Node NLRI is ignored and the next lowest
cost Node NLRI is selected from the CAN-LIST.
5) Should "local/remote link identifiers" perhaps be "Link
Local/Remote Identifiers" for consistency?
Original:
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
matching addresses (i.e., router interface addresses must be on the
same subnet for numbered interfaces and the local/remote link
identifiers (Section 6.3) must match for unnumbered interfaces).
Perhaps:
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
matching addresses (i.e., router interface addresses must be on the
same subnet for numbered interfaces, and the Link Local/Remote
Identifiers (Section 6.3) must match for unnumbered interfaces).
6) We note inconsistencies with "next hop". How may we update this term
for consistency?
Next-Hop vs. Next Hop vs. next-hop vs. next hop
Some instances in the document:
BGP Next-Hop
Current-Node's next-hops
Local-RIB Next-Hop
Local-RIB route's next-hops
MP_REACH_NLRI Next-Hop
The Next Hop in the MP_REACH_NLRI attribute
(i.e., next hops)
the next-hop for...
Perhaps:
BGP Next-Hop (per RFC 9552)
Local-RIB Next-Hop
MP_REACH_NLRI Next-Hop
When used in general: lowercase open form and hyphenated
when preceding a noun (e.g., "The next-hop list is set
to the internal loopback next hop").
-->
<!-- [rfced] Abbreviations
1) FYI - We have added expansions for the following abbreviations
per Section 3.6 of RFC 7322 ("RFC Style Guide"). Please review each
expansion in the document carefully to ensure correctness.
Autonomous System (AS)
Bidirectional Forwarding Detection (BFD)
Network Layer Reachability Information (NLRI)
Unequal-Cost Multipath (UCMP)
2) We note "LSDB" and "LSNDB". Are these different databases or
should they be updated for consistency?
Link-State Database (LSDB) (per RFC 9552)
Link-State NLRI Database (LSNDB)
-->
<!-- [rfced] Please review the "Inclusive Language" portion of the online
Style Guide <https://www.rfc-editor.org/styleguide/part2/#inclusive_language>
and let us know if any changes are needed. Updates of this nature typically
result in more precise language, which is helpful for readers.
Note that our script did not flag any words in particular, but this should
still be reviewed as a best practice.
-->
</references> </references>
</references> </references>
</back> </back>
</rfc> </rfc>
 End of changes. 281 change blocks. 
777 lines changed or deleted 1357 lines changed or added

This html diff was produced by rfcdiff 1.48.