| < draft-ietf-lsvr-bgp-spf-12.txt | draft-ietf-lsvr-bgp-spf-13.txt > | |||
|---|---|---|---|---|
| Network Working Group K. Patel | Network Working Group K. Patel | |||
| Internet-Draft Arrcus, Inc. | Internet-Draft Arrcus, Inc. | |||
| Intended status: Standards Track A. Lindem | Intended status: Standards Track A. Lindem | |||
| Expires: July 30, 2021 Cisco Systems | Expires: August 26, 2021 Cisco Systems | |||
| S. Zandi | S. Zandi | |||
| W. Henderickx | W. Henderickx | |||
| Nokia | Nokia | |||
| January 26, 2021 | February 22, 2021 | |||
| BGP Link-State Shortest Path First (SPF) Routing | BGP Link-State Shortest Path First (SPF) Routing | |||
| draft-ietf-lsvr-bgp-spf-12 | draft-ietf-lsvr-bgp-spf-13 | |||
| Abstract | Abstract | |||
| Many Massively Scaled Data Centers (MSDCs) have converged on | Many Massively Scaled Data Centers (MSDCs) have converged on | |||
| simplified layer 3 routing. Furthermore, requirements for | simplified layer 3 routing. Furthermore, requirements for | |||
| operational simplicity have led many of these MSDCs to converge on | operational simplicity have led many of these MSDCs to converge on | |||
| BGP as their single routing protocol for both their fabric routing | BGP as their single routing protocol for both their fabric routing | |||
| and their Data Center Interconnect (DCI) routing. This document | and their Data Center Interconnect (DCI) routing. This document | |||
| describes extensions to BGP to use BGP Link-State distribution and | describes extensions to BGP to use BGP Link-State distribution and | |||
| the Shortest Path First (SPF) algorithm used by Internal Gateway | the Shortest Path First (SPF) algorithm used by Internal Gateway | |||
| skipping to change at page 1, line 44 ¶ | skipping to change at page 1, line 44 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on July 30, 2021. | This Internet-Draft will expire on August 26, 2021. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 5, line 46 ¶ | skipping to change at page 5, line 46 ¶ | |||
| will only need as many sessions and copies of the NLRI as required | will only need as many sessions and copies of the NLRI as required | |||
| for redundancy (see Section 4). Additionally, a controller could | for redundancy (see Section 4). Additionally, a controller could | |||
| inject topology that is learned outside the BGP SPF routing domain. | inject topology that is learned outside the BGP SPF routing domain. | |||
| Given that controllers are already consuming BGP-LS NLRI [RFC7752], | Given that controllers are already consuming BGP-LS NLRI [RFC7752], | |||
| this functionality can be reused for BGP-LS-SPF NLRI. | this functionality can be reused for BGP-LS-SPF NLRI. | |||
| Another potential advantage of BGP SPF is that both IPv6 and IPv4 can | Another potential advantage of BGP SPF is that both IPv6 and IPv4 can | |||
| both be supported using the BGP-LS-SPF SAFI with the same BGP-LS-SPF | both be supported using the BGP-LS-SPF SAFI with the same BGP-LS-SPF | |||
| NLRIs. In many MSDC fabrics, the IPv4 and IPv6 topologies are | NLRIs. In many MSDC fabrics, the IPv4 and IPv6 topologies are | |||
| congruent. Although beyond the scope of this document, multi- | congruent, refer to Section 5.2.2 and Section 5.2.3. Although beyond | |||
| topology extensions could be used to support separate IPv4, IPv6, | the scope of this document, multi-topology extensions could be used | |||
| unicast, and multicast topologies while sharing the same NLRI. | to support separate IPv4, IPv6, unicast, and multicast topologies | |||
| while sharing the same NLRI. | ||||
| Finally, the BGP SPF topology can be used as an underlay for other | Finally, the BGP SPF topology can be used as an underlay for other | |||
| BGP SAFIs (using the existing model) and realize all the above | BGP SAFIs (using the existing model) and realize all the above | |||
| advantages. | advantages. | |||
| 1.3. Document Overview | 1.3. Document Overview | |||
| The document begins with sections defining the precise relationship | The document begins with sections defining the precise relationship | |||
| that BGP SPF has with both the base BGP protocol [RFC4271] | that BGP SPF has with both the base BGP protocol [RFC4271] | |||
| (Section 2) and the BGP Link-State (BGP-LS) extensions [RFC7752] | (Section 2) and the BGP Link-State (BGP-LS) extensions [RFC7752] | |||
| skipping to change at page 12, line 10 ¶ | skipping to change at page 12, line 10 ¶ | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| The SPF algorithm inherits the values from the IGP Algorithm Types | The SPF algorithm inherits the values from the IGP Algorithm Types | |||
| registry [RFC8665]. Algorithm 0, (Shortest Path Algorithm (SPF) | registry [RFC8665]. Algorithm 0, (Shortest Path Algorithm (SPF) | |||
| based on link metric, is supported and described in Section 6.3. | based on link metric, is supported and described in Section 6.3. | |||
| Support for other algorithm types is beyond the scope of this | Support for other algorithm types is beyond the scope of this | |||
| specification. | specification. | |||
| When computing the SPF for a given BGP routing domain, only BGP nodes | When computing the SPF for a given BGP routing domain, only BGP nodes | |||
| advertising the SPF capability TLV with same SPF algorithm will be | advertising the SPF capability TLV with same SPF algorithm will be | |||
| included in the Shortest Path Tree (SPT). An implementation MAY | included in the Shortest Path Tree (SPT) Section 6.3. An | |||
| optionally log detection of a BGP node that has either not advertised | implementation MAY optionally log detection of a BGP node that has | |||
| the SPF capability TLV or is advertising the SPF capability TLV with | either not advertised the SPF capability TLV or is advertising the | |||
| an algorithm type other than 0. | SPF capability TLV with an algorithm type other than 0. | |||
| 5.2.1.2. BGP-LS-SPF Node NLRI Attribute SPF Status TLV | 5.2.1.2. BGP-LS-SPF Node NLRI Attribute SPF Status TLV | |||
| A BGP-LS Attribute TLV of the BGP-LS-SPF Node NLRI is defined to | A BGP-LS Attribute TLV of the BGP-LS-SPF Node NLRI is defined to | |||
| indicate the status of the node with respect to the BGP SPF | indicate the status of the node with respect to the BGP SPF | |||
| calculation. This will be used to rapidly take a node out of service | calculation. This will be used to rapidly take a node out of service | |||
| Section 6.5.2 or to indicate the node is not to be used for transit | Section 6.5.2 or to indicate the node is not to be used for transit | |||
| (i.e., non-local) traffic Section 6.3. If the SPF Status TLV is not | (i.e., non-local) traffic Section 6.3. If the SPF Status TLV is not | |||
| included with the Node NLRI, the node is considered to be up and is | included with the Node NLRI, the node is considered to be up and is | |||
| available for transit traffic. The SPF status is acted upon with the | available for transit traffic. The SPF status is acted upon with the | |||
| skipping to change at page 15, line 40 ¶ | skipping to change at page 15, line 40 ¶ | |||
| outside the range of defined values SHOULD be processed and announced | outside the range of defined values SHOULD be processed and announced | |||
| to other BGP speakers. However, a BGP speaker MUST not use the | to other BGP speakers. However, a BGP speaker MUST not use the | |||
| Status TLV in its SPF computation. An implementation MAY log this | Status TLV in its SPF computation. An implementation MAY log this | |||
| information for further analysis. | information for further analysis. | |||
| 5.2.3. IPv4/IPv6 Prefix NLRI Usage | 5.2.3. IPv4/IPv6 Prefix NLRI Usage | |||
| IPv4/IPv6 Prefix NLRI is advertised with a Local Node Descriptor and | IPv4/IPv6 Prefix NLRI is advertised with a Local Node Descriptor and | |||
| the prefix and length. The Prefix Descriptors field includes the IP | the prefix and length. The Prefix Descriptors field includes the IP | |||
| Reachability Information TLV (TLV 265) as described in [RFC7752]. | Reachability Information TLV (TLV 265) as described in [RFC7752]. | |||
| The prefix metric attribute TLV (TLV 1155) MUST be advertised. The | The Prefix Metric attribute TLV (TLV 1155) MUST be advertised. The | |||
| IGP Route Tag TLV (TLV 1153) MAY be advertised. The usage of other | IGP Route Tag TLV (TLV 1153) MAY be advertised. The usage of other | |||
| attribute TLVs is beyond the scope of this document. For loopback | attribute TLVs is beyond the scope of this document. For loopback | |||
| prefixes, the metric should be 0. For non-loopback prefixes, the | prefixes, the metric should be 0. For non-loopback prefixes, the | |||
| setting of the metric is a local matter and beyond the scope of this | setting of the metric is a local matter and beyond the scope of this | |||
| document. | document. | |||
| 5.2.3.1. BGP-LS-SPF Prefix NLRI Attribute SPF Status TLV | 5.2.3.1. BGP-LS-SPF Prefix NLRI Attribute SPF Status TLV | |||
| A BGP-LS Attribute TLV to BGP-LS-SPF Prefix NLRI is defined to | A BGP-LS Attribute TLV to BGP-LS-SPF Prefix NLRI is defined to | |||
| indicate the status of the prefix with respect to the BGP SPF | indicate the status of the prefix with respect to the BGP SPF | |||
| skipping to change at page 17, line 30 ¶ | skipping to change at page 17, line 30 ¶ | |||
| preserve the sequence number's strictly increasing property for the | preserve the sequence number's strictly increasing property for the | |||
| deployed life of the BGP speaker (including cold restarts). One | deployed life of the BGP speaker (including cold restarts). One | |||
| mechanism for accomplishing this would be to use the high-order 32 | 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 | bits of the sequence number as a wrap/boot count that is incremented | |||
| any time the BGP router loses its sequence number state or the low- | any time the BGP router loses its sequence number state or the low- | |||
| order 32 bits wrap. | order 32 bits wrap. | |||
| When incrementing the sequence number for each self-originated NLRI, | When incrementing the sequence number for each self-originated NLRI, | |||
| the sequence number should be treated as an unsigned 64-bit value. | the sequence number should be treated as an unsigned 64-bit value. | |||
| If the lower-order 32-bit value wraps, the higher-order 32-bit value | If the lower-order 32-bit value wraps, the higher-order 32-bit value | |||
| should be incremented and saved in non-volatile storage. If by some | should be incremented and saved in non-volatile storage. If a BGP- | |||
| chance the BGP-LS-SPF speaker is deployed long enough that there is a | LS-SPF speaker completely loses its sequence number state (e.g., the | |||
| possibility that the 64-bit sequence number may wrap or a BGP-LS-SPF | BGP speaker hardware is replaced or experiences a cold-start), the | |||
| speaker completely loses its sequence number state (e.g., the BGP | BGP NLRI selection rules (see Section 6.1) will insure convergence, | |||
| speaker hardware is replaced or experiences a cold-start), the BGP | ||||
| NLRI selection rules (see Section 6.1) will insure convergence, | ||||
| albeit not immediately. | albeit not immediately. | |||
| The Sequence-Number TLV is mandatory for BGP-LS-SPF NLRI. If the | The Sequence-Number TLV is mandatory for BGP-LS-SPF NLRI. If the | |||
| Sequence-Number TLV is not received then the corresponding Link NLRI | Sequence-Number TLV is not received then the corresponding Link NLRI | |||
| is considered as malformed and MUST be handled as 'Treat-as- | is considered as malformed and MUST be handled as 'Treat-as- | |||
| withdraw'. An implementation MAY log an error for further analysis. | withdraw'. An implementation MAY log an error for further analysis. | |||
| 5.3. NEXT_HOP Manipulation | 5.3. NEXT_HOP Manipulation | |||
| All BGP peers that support SPF extensions would locally compute the | All BGP peers that support SPF extensions would locally compute the | |||
| skipping to change at page 19, line 44 ¶ | skipping to change at page 19, line 44 ¶ | |||
| and stale NLRI will be replaced. The adjacent BGP speaker will | and stale NLRI will be replaced. The adjacent BGP speaker will | |||
| update their NLRI advertisements, hop by hop, until the BGP routing | update their NLRI advertisements, hop by hop, until the BGP routing | |||
| domain has converged. | domain has converged. | |||
| The modified SPF Decision Process performs an SPF calculation rooted | The modified SPF Decision Process performs an SPF calculation rooted | |||
| at the BGP speaker using the metrics from the Link Attribute IGP | at the BGP speaker using the metrics from the Link Attribute IGP | |||
| Metric TLV (1095) and the Prefix Attribute Prefix Metric TLV (1155) | Metric TLV (1095) and the Prefix Attribute Prefix Metric TLV (1155) | |||
| [RFC7752]. As a result, any other BGP attributes that would | [RFC7752]. As a result, any other BGP attributes that would | |||
| influence the BGP decision process defined in [RFC4271] including | influence the BGP decision process defined in [RFC4271] including | |||
| ORIGIN, MULTI_EXIT_DISC, and LOCAL_PREF attributes are ignored by the | ORIGIN, MULTI_EXIT_DISC, and LOCAL_PREF attributes are ignored by the | |||
| SPF algorithm. Furthermore, the NEXT_HOP attribute value is | SPF algorithm. The NEXT_HOP attribute is discussed in Section 5.3. | |||
| preserved but otherwise ignored during the SPF computation for BGP- | The AS_PATH and AS4_PATH [RFC6793] attributes are preserved and used | |||
| LS-SPF NLRIs. The AS_PATH and AS4_PATH [RFC6793] attributes are | for loop detection [RFC4271]. They are ignored during the SPF | |||
| preserved and used for loop detection [RFC4271]. They are ignored | computation for BGP-LS-SPF NRLIs. | |||
| during the SPF computation for BGP-LS-SPF NRLIs. | ||||
| 6.1.1. BGP Self-Originated NLRI | 6.1.1. BGP Self-Originated NLRI | |||
| Node, Link, or Prefix NLRI with Node Descriptors matching the local | Node, Link, or Prefix NLRI with Node Descriptors matching the local | |||
| BGP speaker are considered self-originated. When self-originated | BGP speaker are considered self-originated. When self-originated | |||
| NLRI is received and it doesn't match the local node's NLRI content | NLRI is received and it doesn't match the local node's NLRI content | |||
| (including sequence number), special processing is required. | (including sequence number), special processing is required. | |||
| o If a self-originated NLRI is received and the sequence number is | o If a self-originated NLRI is received and the sequence number is | |||
| more recent (i.e., greater than the local node's sequence number | more recent (i.e., greater than the local node's sequence number | |||
| skipping to change at page 20, line 51 ¶ | skipping to change at page 20, line 51 ¶ | |||
| single SPF computation or multiple SPF computations for separate AFs | single SPF computation or multiple SPF computations for separate AFs | |||
| is an implementation matter. Normally, IPv4 next-hops are calculated | is an implementation matter. Normally, IPv4 next-hops are calculated | |||
| for IPv4 prefixes and IPv6 next-hops are calculated for IPv6 | for IPv4 prefixes and IPv6 next-hops are calculated for IPv6 | |||
| prefixes. | prefixes. | |||
| 6.3. SPF Calculation based on BGP-LS-SPF NLRI | 6.3. SPF Calculation based on BGP-LS-SPF NLRI | |||
| This section details the BGP-LS-SPF local routing information base | This section details the BGP-LS-SPF local routing information base | |||
| (RIB) calculation. The router will use BGP-LS-SPF Node, Link, and | (RIB) calculation. The router will use BGP-LS-SPF Node, Link, and | |||
| Prefix NLRI to compute routes using the following algorithm. This | Prefix NLRI to compute routes using the following algorithm. This | |||
| calculation yields the set of routes associated with the BGP-LS | calculation yields the set of routes associated with the BGP SPF | |||
| domain. A router calculates the shortest-path tree using itself as | Routing Domain. A router calculates the shortest-path tree using | |||
| the root. Optimizations to the BGP-LS-SPF algorithm are possible but | itself as the root. Optimizations to the BGP-LS-SPF algorithm are | |||
| MUST yield the same set of routes. The algorithm below supports | possible but MUST yield the same set of routes. The algorithm below | |||
| Equal Cost Multi-Path (ECMP) routes. Weighted Unequal Cost Multi- | supports Equal Cost Multi-Path (ECMP) routes. Weighted Unequal Cost | |||
| Path routes are out of scope. The organization of this section owes | Multi-Path routes are out of scope. The organization of this section | |||
| heavily to section 16 of [RFC2328]. | owes heavily to section 16 of [RFC2328]. | |||
| The following abstract data structures are defined in order to | The following abstract data structures are defined in order to | |||
| specify the algorithm. | specify the algorithm. | |||
| o Local Route Information Base (LOC-RIB) - This routing table | o Local Route Information Base (LOC-RIB) - This routing table | |||
| contains reachability information (i.e., next hops) for all | contains reachability information (i.e., next hops) for all | |||
| prefixes (both IPv4 and IPv6) as well as BGP-LS-SPF node | prefixes (both IPv4 and IPv6) as well as BGP-LS-SPF node | |||
| reachability. Implementations may choose to implement this with | reachability. Implementations may choose to implement this with | |||
| separate RIBs for each address family and/or Prefix versus Node | separate RIBs for each address family and/or Prefix versus Node | |||
| reachability. It is synonymous with the Loc-RIB specified in | reachability. It is synonymous with the Loc-RIB specified in | |||
| [RFC4271]. | [RFC4271]. | |||
| o Global Routing Information Base (GLOBAL-RIB) - This is Routing | o Global Routing Information Base (GLOBAL-RIB) - This is Routing | |||
| Information Base (RIB) containing the current routes that are | Information Base (RIB) containing the current routes that are | |||
| installed in the router's forwarding plane. This is commonly | installed in the router's forwarding plane. This is commonly | |||
| referred to in networking parlance as "the RIB". | referred to in networking parlance as "the RIB". | |||
| o Link State NLRI Database (LSNDB) - Database of BGP-LS-SPF NLRI | o Link State NLRI Database (LSNDB) - Database of BGP-LS-SPF NLRI | |||
| that facilitates access to all Node, Link, and Prefix NLRI. | that facilitates access to all Node, Link, and Prefix NLRI. | |||
| o Candidate List (CAN-LIST) - This is a list of candidate Node | o Candidate List (CAN-LIST) - This is a list of candidate Node NLRIs | |||
| NLRIs. The list is sorted by the cost to reach the Node NLRI with | used during the BGP SPF calculation Section 6.3. The list is | |||
| the Node NLRI with the lowest reachability cost at the head of the | sorted by the cost to reach the Node NLRI with the Node NLRI with | |||
| list. This facilitates execution of the Dijkstra algorithm | the lowest reachability cost at the head of the list. This | |||
| Section 1.1 where the shortest paths between the local node and | facilitates execution of the Dijkstra algorithm Section 1.1 where | |||
| other nodes in graph area computed. The CAN-LIST is typically | the shortest paths between the local node and other nodes in graph | |||
| implemented as a heap but other data structures have been used. | area computed. The CAN-LIST is typically implemented as a heap | |||
| but other data structures have been used. | ||||
| The algorithm is comprised of the steps below: | The algorithm is comprised of the steps below: | |||
| 1. The current LOC-RIB is invalidated, and the CAN-LIST is | 1. The current LOC-RIB is invalidated, and the CAN-LIST is | |||
| initialized to empty. The LOC-RIB is rebuilt during the course | initialized to empty. The LOC-RIB is rebuilt during the course | |||
| of the SPF computation. The existing routing entries are | of the SPF computation. The existing routing entries are | |||
| preserved for comparison to determine changes that need to be | preserved for comparison to determine changes that need to be | |||
| made to the GLOBAL-RIB in step 6. | made to the GLOBAL-RIB in step 6. | |||
| 2. The computing router's Node NLRI is updated in the LOC-RIB with a | 2. The computing router's Node NLRI is updated in the LOC-RIB with a | |||
| cost of 0 and the Node NLRI is also added to the CAN-LIST. The | cost of 0 and the Node NLRI is also added to the CAN-LIST. The | |||
| next-hop list is set to the internal loopback next-hop. | next-hop list is set to the internal loopback next-hop. | |||
| 3. The Node NLRI with the lowest cost is removed from the candidate | 3. The Node NLRI with the lowest cost is removed from the candidate | |||
| list for processing. If the BGP-LS Node attribute includes an | list for processing. If the BGP-LS Node attribute doesn't | |||
| SPF Status TLV (Section 5.2.1.2) indicating the node is | include an SPF Capability TLV (Section 5.2.1.1, the Node NLRI is | |||
| unreachable, the Node NLRI is ignored and the next lowest cost | ignored and the next lowest cost Node NLRI is selected from | |||
| Node NLRI is selected from candidate list. The Node | candidate list. The If the BGP-LS Node attribute includes an SPF | |||
| corresponding to this NLRI will be referred to as the Current- | Status TLV (Section 5.2.1.1) indicating the node is unreachable, | |||
| Node. If the candidate list is empty, the SPF calculation has | the Node NLRI is ignored and the next lowest cost Node NLRI is | |||
| completed and the algorithm proceeds to step 6. | selected from candidate list. The Node corresponding to this | |||
| NLRI will be referred to as the Current-Node. If the candidate | ||||
| list is empty, the SPF calculation has completed and the | ||||
| algorithm proceeds to step 6. | ||||
| 4. All the Prefix NLRI with the same Node Identifiers as the | 4. All the Prefix NLRI with the same Node Identifiers as the | |||
| Current-Node will be considered for installation. The next- | Current-Node will be considered for installation. The next- | |||
| hop(s) for these Prefix NLRI are inherited from the Current-Node. | hop(s) for these Prefix NLRI are inherited from the Current-Node. | |||
| The cost for each prefix is the metric advertised in the Prefix | The cost for each prefix is the metric advertised in the Prefix | |||
| Attribute Prefix Metric TLV (1155) added to the cost to reach the | Attribute Prefix Metric TLV (1155) added to the cost to reach the | |||
| Current-Node. The following will be done for each Prefix NLRI | Current-Node. The following will be done for each Prefix NLRI | |||
| (referred to as the Current-Prefix): | (referred to as the Current-Prefix): | |||
| * If the BGP-LS Prefix attribute includes an SPF Status TLV | * If the BGP-LS Prefix attribute includes an SPF Status TLV | |||
| skipping to change at page 25, line 40 ¶ | skipping to change at page 25, line 44 ¶ | |||
| order to ensure the highest priority propagation and optimal | order to ensure the highest priority propagation and optimal | |||
| convergence. | convergence. | |||
| An IGP such as OSPF [RFC2328] will stop using the link as soon as the | An IGP such as OSPF [RFC2328] will stop using the link as soon as the | |||
| Router-LSA for one side of the link is received. With a BGP | Router-LSA for one side of the link is received. With a BGP | |||
| advertisement, the link would continue to be used until the last copy | advertisement, the link would continue to be used until the last copy | |||
| of the BGP-LS-SPF Link NLRI is withdrawn. In order to avoid this | of the BGP-LS-SPF Link NLRI is withdrawn. In order to avoid this | |||
| delay, the originator of the Link NLRI SHOULD advertise a more recent | delay, the originator of the Link NLRI SHOULD advertise a more recent | |||
| version with an increased Sequence Number TLV for the BGP-LS-SPF Link | version with an increased Sequence Number TLV for the BGP-LS-SPF Link | |||
| NLRI including the SPF Status TLV (Section 5.2.2.2) indicating the | NLRI including the SPF Status TLV (Section 5.2.2.2) indicating the | |||
| link is down with respect to BGP SPF. After some configurable period | link is down with respect to BGP SPF. The configurable | |||
| of time, which is an implementation dependent, e.g., 2-3 seconds, the | LinkStatusDownAdvertise timer controls the interval that the BGP-LS- | |||
| BGP-LS-SPF Link NLRI can be withdrawn with no consequence. If the | LINK NLRI is advertised with SPF Status indicating the link is down | |||
| link becomes available in that period, the originator of the BGP-LS- | prior to withdrawal. If the link becomes available in that period, | |||
| SPF LINK NLRI will simply advertise a more recent version of the BGP- | the originator of the BGP-LS-SPF LINK NLRI SHOULD advertise a more | |||
| LS-SPF Link NLRI without the SPF Status TLV in the BGP-LS Link | recent version of the BGP-LS-SPF Link NLRI without the SPF Status TLV | |||
| Attributes. | in the BGP-LS Link Attributes. The suggested default value for the | |||
| LinkStatusDownAdvertise timer is 2 seconds. | ||||
| Similarly, when a prefix becomes unreachable, a more recent version | Similarly, when a prefix becomes unreachable, a more recent version | |||
| of the BGP-LS-SPF Prefix NLRI will be advertised with the SPF Status | of the BGP-LS-SPF Prefix NLRI SHOULD be advertised with the SPF | |||
| TLV (Section 5.2.3.1) indicating the prefix is unreachable in the | Status TLV (Section 5.2.3.1) indicating the prefix is unreachable in | |||
| BGP-LS Prefix Attributes and the prefix will be considered | the BGP-LS Prefix Attributes and the prefix will be considered | |||
| unreachable with respect to BGP SPF. After some configurable period | unreachable with respect to BGP SPF. The configurable | |||
| of time, which is implementation dependent, e.g., 2-3 seconds, the | PrefixStatusDownAdvertise timer controls the interval that the BGP- | |||
| BGP-LS-SPF Prefix NLRI can be withdrawn with no consequence. If the | LS-Prefix NLRI is advertised with SPF Status indicating the prefix is | |||
| prefix becomes reachable in that period, the originator of the BGP- | unreachable prior to withdrawal. If the prefix becomes reachable in | |||
| LS-SPF Prefix NLRI will simply advertise a more recent version of the | that period, the originator of the BGP-LS-SPF Prefix NLRI SHOULD | |||
| BGP-LS-SPF Prefix NLRI without the SPF Status TLV in the BGP-LS | advertise a more recent version of the BGP-LS-SPF Prefix NLRI without | |||
| Prefix Attributes. | the SPF Status TLV in the BGP-LS Prefix Attributes. The suggested | |||
| default value for the PrefixStatusDownAdvertise timer is 2 seconds. | ||||
| 6.5.2. Node Failure Convergence | 6.5.2. Node Failure Convergence | |||
| With BGP without graceful restart [RFC4724], all the NLRI advertised | With BGP without graceful restart [RFC4724], all the NLRI advertised | |||
| by a node are implicitly withdrawn when a session failure is | by a node are implicitly withdrawn when a session failure is | |||
| detected. If fast failure detection such as BFD is utilized, and the | detected. If fast failure detection such as BFD is utilized, and the | |||
| node is on the fastest converging path, the most recent versions of | node is on the fastest converging path, the most recent versions of | |||
| BGP-LS-SPF NLRI may be withdrawn. This will result into an older | BGP-LS-SPF NLRI may be withdrawn. This will result into an older | |||
| version of the NLRI being used until the new versions arrive and, | version of the NLRI being used until the new versions arrive and, | |||
| potentially, unnecessary route flaps. Therefore, BGP-LS-SPF NLRI | potentially, unnecessary route flaps. For the BGP-LS-SPF SAFI, NLRI | |||
| SHOULD always be retained before being implicitly withdrawn for a | SHOULD NOT be implicitly withdrawn immediately to prevent such | |||
| configurable implementation-dependent interval, e.g., 2-3 seconds. | unnecessary route flaps. The configurable | |||
| This will not delay convergence since the adjacent nodes will detect | NLRIImplicitWithdrawalDelay timer controls the interval that NLRI is | |||
| the link failure and advertise a more recent NLRI indicating the link | retained prior to implicit withdrawal after a BGP SPF speaker has | |||
| is down with respect to BGP SPF (Section 6.5.1) and the BGP SPF | transitioned out of Established state. This will not delay | |||
| calculation will fail the bi-directional connectivity check | convergence since the adjacent nodes will detect the link failure and | |||
| Section 6.3. | advertise a more recent NLRI indicating the link is down with respect | |||
| to BGP SPF (Section 6.5.1) and the BGP SPF calculation will fail the | ||||
| bi-directional connectivity check Section 6.3. The suggested default | ||||
| value for the NLRIImplicitWithdrawalDelay timer is 2 seconds. | ||||
| 7. Error Handling | 7. Error Handling | |||
| This section describes the Error Handling actions, as described in | This section describes the Error Handling actions, as described in | |||
| [RFC7606], that are specific to SAFI BGP-LS-SPF BGP Update message | [RFC7606], that are specific to SAFI BGP-LS-SPF BGP Update message | |||
| processing. | processing. | |||
| 7.1. Processing of BGP-LS-SPF TLVs | 7.1. Processing of BGP-LS-SPF TLVs | |||
| When a BGP speaker receives a BGP Update containing a malformed Node | When a BGP speaker receives a BGP Update containing a malformed Node | |||
| End of changes. 15 change blocks. | ||||
| 69 lines changed or deleted | 76 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||