| 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 " "> | <!ENTITY nbsp " "> | |||
| <!ENTITY zwsp "​"> | <!ENTITY zwsp "​"> | |||
| <!ENTITY nbhy "‑"> | <!ENTITY nbhy "‑"> | |||
| <!ENTITY wj "⁠"> | <!ENTITY wj "⁠"> | |||
| ]> | ]> | |||
| <!-- 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 | ||||
| --> | ||||
| -> | <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 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&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. | ||||