rfc9667.original | rfc9667.txt | |||
---|---|---|---|---|
Internet Engineering Task Force T. Li, Ed. | Internet Engineering Task Force (IETF) T. Li, Ed. | |||
Internet-Draft Juniper Networks | Request for Comments: 9667 Juniper Networks | |||
Intended status: Experimental P. Psenak, Ed. | Category: Experimental P. Psenak, Ed. | |||
Expires: 7 October 2024 Cisco Systems, Inc. | ISSN: 2070-1721 Cisco Systems, Inc. | |||
H. Chen | H. Chen | |||
Futurewei | Futurewei | |||
L. Jalil | L. Jalil | |||
Verizon | Verizon | |||
S. Dontula | S. Dontula | |||
ATT | AT&T | |||
5 April 2024 | October 2024 | |||
Dynamic Flooding on Dense Graphs | Dynamic Flooding on Dense Graphs | |||
draft-ietf-lsr-dynamic-flooding-18 | ||||
Abstract | Abstract | |||
Routing with link state protocols in dense network topologies can | Routing with link-state protocols in dense network topologies can | |||
result in sub-optimal convergence times due to the overhead | result in suboptimal convergence times due to the overhead associated | |||
associated with flooding. This can be addressed by decreasing the | with flooding. This can be addressed by decreasing the flooding | |||
flooding topology so that it is less dense. | topology so that it is less dense. | |||
This document discusses the problem in some depth and an | This document discusses the problem in some depth and an | |||
architectural solution. Specific protocol changes for IS-IS, OSPFv2, | architectural solution. Specific protocol changes for IS-IS, OSPFv2, | |||
and OSPFv3 are described in this document. | and OSPFv3 are described in this document. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This document is not an Internet Standards Track specification; it is | |||
provisions of BCP 78 and BCP 79. | published for examination, experimental implementation, and | |||
evaluation. | ||||
Internet-Drafts are working documents of the Internet Engineering | ||||
Task Force (IETF). Note that other groups may also distribute | ||||
working documents as Internet-Drafts. The list of current Internet- | ||||
Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | This document defines an Experimental Protocol for the Internet | |||
and may be updated, replaced, or obsoleted by other documents at any | community. This document is a product of the Internet Engineering | |||
time. It is inappropriate to use Internet-Drafts as reference | Task Force (IETF). It represents the consensus of the IETF | |||
material or to cite them other than as "work in progress." | community. It has received public review and has been approved for | |||
publication by the Internet Engineering Steering Group (IESG). Not | ||||
all documents approved by the IESG are candidates for any level of | ||||
Internet Standard; see Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on 7 October 2024. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
https://www.rfc-editor.org/info/rfc9667. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2024 IETF Trust and the persons identified as the | Copyright (c) 2024 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
in the Revised BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 5 | 1.1. Requirements Language | |||
2. Problem Statement . . . . . . . . . . . . . . . . . . . . . . 5 | 2. Problem Statement | |||
3. Solution Requirements . . . . . . . . . . . . . . . . . . . . 5 | 3. Solution Requirements | |||
4. Dynamic Flooding . . . . . . . . . . . . . . . . . . . . . . 6 | 4. Dynamic Flooding | |||
4.1. Applicability . . . . . . . . . . . . . . . . . . . . . . 7 | 4.1. Applicability | |||
4.2. Leader election . . . . . . . . . . . . . . . . . . . . . 8 | 4.2. Leader Election | |||
4.3. Computing the Flooding Topology . . . . . . . . . . . . . 9 | 4.3. Computing the Flooding Topology | |||
4.4. Topologies on Complete Bipartite Graphs . . . . . . . . . 10 | 4.4. Topologies on Complete Bipartite Graphs | |||
4.4.1. A Minimal Flooding Topology . . . . . . . . . . . . . 10 | 4.4.1. A Minimal Flooding Topology | |||
4.4.2. Xia Topologies . . . . . . . . . . . . . . . . . . . 10 | 4.4.2. Xia Topologies | |||
4.4.3. Optimization . . . . . . . . . . . . . . . . . . . . 11 | 4.4.3. Optimization | |||
4.5. Encoding the Flooding Topology . . . . . . . . . . . . . 11 | 4.5. Encoding the Flooding Topology | |||
4.6. Advertising the Local Edges Enabled for Flooding . . . . 12 | 4.6. Advertising the Local Edges Enabled for Flooding | |||
5. Protocol Elements . . . . . . . . . . . . . . . . . . . . . . 12 | 5. Protocol Elements | |||
5.1. IS-IS TLVs . . . . . . . . . . . . . . . . . . . . . . . 13 | 5.1. IS-IS TLVs | |||
5.1.1. IS-IS Area Leader Sub-TLV . . . . . . . . . . . . . . 13 | 5.1.1. IS-IS Area Leader Sub-TLV | |||
5.1.2. IS-IS Dynamic Flooding Sub-TLV . . . . . . . . . . . 14 | 5.1.2. IS-IS Dynamic Flooding Sub-TLV | |||
5.1.3. IS-IS Area Node IDs TLV . . . . . . . . . . . . . . . 15 | 5.1.3. IS-IS Area Node IDs TLV | |||
5.1.4. IS-IS Flooding Path TLV . . . . . . . . . . . . . . . 16 | 5.1.4. IS-IS Flooding Path TLV | |||
5.1.5. IS-IS Flooding Request TLV . . . . . . . . . . . . . 17 | 5.1.5. IS-IS Flooding Request TLV | |||
5.1.6. IS-IS LEEF Advertisement . . . . . . . . . . . . . . 18 | 5.1.6. IS-IS LEEF Advertisement | |||
5.2. OSPF LSAs and TLVs . . . . . . . . . . . . . . . . . . . 18 | 5.2. OSPF LSAs and TLVs | |||
5.2.1. OSPF Area Leader Sub-TLV . . . . . . . . . . . . . . 19 | 5.2.1. OSPF Area Leader Sub-TLV | |||
5.2.2. OSPF Dynamic Flooding Sub-TLV . . . . . . . . . . . . 20 | 5.2.2. OSPF Dynamic Flooding Sub-TLV | |||
5.2.3. OSPFv2 Dynamic Flooding Opaque LSA . . . . . . . . . 20 | 5.2.3. OSPFv2 Dynamic Flooding Opaque LSA | |||
5.2.4. OSPFv3 Dynamic Flooding LSA . . . . . . . . . . . . . 22 | 5.2.4. OSPFv3 Dynamic Flooding LSA | |||
5.2.5. OSPF Area Router ID TLVs . . . . . . . . . . . . . . 22 | 5.2.5. OSPF Area Router ID TLVs | |||
5.2.5.1. OSPFv2 Area Router ID TLV . . . . . . . . . . . . 23 | 5.2.5.1. OSPFv2 Area Router ID TLV | |||
5.2.5.2. OSPFv3 Area Router ID TLV . . . . . . . . . . . . 24 | 5.2.5.2. OSPFv3 Area Router ID TLV | |||
5.2.6. OSPF Flooding Path TLV . . . . . . . . . . . . . . . 26 | 5.2.6. OSPF Flooding Path TLV | |||
5.2.7. OSPF Flooding Request Bit . . . . . . . . . . . . . . 27 | 5.2.7. OSPF Flooding Request Bit | |||
5.2.8. OSPF LEEF Advertisement . . . . . . . . . . . . . . . 28 | 5.2.8. OSPF LEEF Advertisement | |||
6. Behavioral Specification . . . . . . . . . . . . . . . . . . 29 | 6. Behavioral Specification | |||
6.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 29 | 6.1. Terminology | |||
6.2. Flooding Topology . . . . . . . . . . . . . . . . . . . . 29 | 6.2. Flooding Topology | |||
6.3. Leader Election . . . . . . . . . . . . . . . . . . . . . 30 | 6.3. Leader Election | |||
6.4. Area Leader Responsibilities . . . . . . . . . . . . . . 30 | 6.4. Area Leader Responsibilities | |||
6.5. Distributed Flooding Topology Calculation . . . . . . . . 30 | 6.5. Distributed Flooding Topology Calculation | |||
6.6. Use of LANs in the Flooding Topology . . . . . . . . . . 31 | 6.6. Use of LANs in the Flooding Topology | |||
6.6.1. Use of LANs in Centralized mode . . . . . . . . . . . 31 | 6.6.1. Use of LANs in Centralized Mode | |||
6.6.2. Use of LANs in Distributed Mode . . . . . . . . . . . 31 | 6.6.2. Use of LANs in Distributed Mode | |||
6.6.2.1. Partial flooding on a LAN in IS-IS . . . . . . . 31 | 6.6.2.1. Partial Flooding on a LAN in IS-IS | |||
6.6.2.2. Partial Flooding on a LAN in OSPF . . . . . . . . 32 | 6.6.2.2. Partial Flooding on a LAN in OSPF | |||
6.7. Flooding Behavior . . . . . . . . . . . . . . . . . . . . 33 | 6.7. Flooding Behavior | |||
6.8. Treatment of Topology Events . . . . . . . . . . . . . . 33 | 6.8. Treatment of Topology Events | |||
6.8.1. Temporary Addition of Links to the Flooding | 6.8.1. Temporary Addition of Links to the Flooding Topology | |||
Topology . . . . . . . . . . . . . . . . . . . . . . 34 | 6.8.2. Local Link Addition | |||
6.8.2. Local Link Addition . . . . . . . . . . . . . . . . . 34 | 6.8.3. Node Addition | |||
6.8.3. Node Addition . . . . . . . . . . . . . . . . . . . . 35 | 6.8.4. Failures of Links Not on the Flooding Topology | |||
6.8.4. Failures of Links Not on the Flooding Topology . . . 35 | 6.8.5. Failures of Links On the Flooding Topology | |||
6.8.5. Failures of Links On the Flooding Topology . . . . . 36 | 6.8.6. Node Deletion | |||
6.8.6. Node Deletion . . . . . . . . . . . . . . . . . . . . 36 | 6.8.7. Local Link Addition to the Flooding Topology | |||
6.8.7. Local Link Addition to the Flooding Topology . . . . 36 | 6.8.8. Local Link Deletion from the Flooding Topology | |||
6.8.8. Local Link Deletion from the Flooding Topology . . . 37 | 6.8.9. Treatment of Disconnected Adjacent Nodes | |||
6.8.9. Treatment of Disconnected Adjacent Nodes . . . . . . 37 | 6.8.10. Failure of the Area Leader | |||
6.8.10. Failure of the Area Leader . . . . . . . . . . . . . 37 | 6.8.11. Recovery from Multiple Failures | |||
6.8.11. Recovery from Multiple Failures . . . . . . . . . . . 38 | 6.8.12. Rate-Limiting Temporary Flooding | |||
6.8.12. Rate-Limiting Temporary Flooding . . . . . . . . . . 38 | 7. IANA Considerations | |||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 39 | 7.1. IS-IS | |||
7.1. IS-IS . . . . . . . . . . . . . . . . . . . . . . . . . . 39 | 7.2. OSPF | |||
7.2. OSPF . . . . . . . . . . . . . . . . . . . . . . . . . . 40 | 7.2.1. OSPF Dynamic Flooding LSA TLVs Registry | |||
7.2.1. OSPF Dynamic Flooding LSA TLVs Registry . . . . . . . 42 | 7.2.2. OSPF Link Attributes Sub-TLV Bit Values Registry | |||
7.2.2. OSPF Link Attributes Sub-TLV Bit Values Registry . . 42 | 7.3. IGP | |||
7.3. IGP . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 | 8. Security Considerations | |||
8. Security Considerations . . . . . . . . . . . . . . . . . . . 44 | 9. References | |||
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 44 | 9.1. Normative References | |||
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 44 | 9.2. Informative References | |||
10.1. Normative References . . . . . . . . . . . . . . . . . . 44 | Acknowledgements | |||
10.2. Informative References . . . . . . . . . . . . . . . . . 46 | Authors' Addresses | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 47 | ||||
1. Introduction | 1. Introduction | |||
In recent years, there has been increased focus on how to address the | In recent years, there has been increased focus on how to address the | |||
dynamic routing of networks that have a bipartite (a.k.a., spine-leaf | dynamic routing of networks that have a bipartite (also known as | |||
or leaf-spine), Clos [Clos], or Fat Tree [Leiserson] topology. | spine-leaf or leaf-spine), Clos [Clos], or Fat-tree [Leiserson] | |||
Conventional Interior Gateway Protocols (IGPs, i.e., IS-IS | topology. Conventional Interior Gateway Protocols (IGPs; i.e., IS-IS | |||
[ISO10589], OSPFv2 [RFC2328], and OSPFv3 [RFC5340]) under-perform, | [ISO10589], OSPFv2 [RFC2328], and OSPFv3 [RFC5340]) underperform, | |||
redundantly flooding information throughout the dense topology, | redundantly flooding information throughout the dense topology. This | |||
leading to overloaded control plane inputs and thereby creating | leads to overloaded control plane inputs and thereby create | |||
operational issues. For practical considerations, network architects | operational issues. For practical considerations, network architects | |||
have resorted to applying unconventional techniques to address the | have resorted to applying unconventional techniques to address the | |||
problem, e.g., applying BGP in the data center [RFC7938]. However | problem, e.g., applying BGP in the data center [RFC7938]. However, | |||
some feel that using an Exterior Gateway Protocol as an IGP is sub- | some network architects feel that using an Exterior Gateway Protocol | |||
optimal, if only due to the configuration overhead. | (EGP) as an IGP is suboptimal, perhaps only because of the | |||
configuration overhead. | ||||
The primary issue that is demonstrated when conventional IGPs are | The primary issue that is demonstrated when conventional IGPs are | |||
applied is the poor reaction of the network to topology changes. | applied is the poor reaction of the network to topology changes. | |||
Normal link state routing protocols rely on a flooding algorithm for | Normal link-state routing protocols rely on a flooding algorithm for | |||
state distribution within an area. In a dense topology, this | state distribution within an area. In a dense topology, this | |||
flooding algorithm is highly redundant, resulting in unnecessary | flooding algorithm is highly redundant and results in unnecessary | |||
overhead. Each node in the topology receives each link state update | overhead. Each node in the topology receives each link state update | |||
multiple times. Ultimately, all of the redundant copies will be | multiple times. Ultimately, all of the redundant copies will be | |||
discarded, but only after they have reached the control plane and | discarded, but only after they have reached the control plane and | |||
been processed. This creates issues because significant link state | have been processed. This creates issues because significant Link | |||
database updates can become queued behind many redundant copies of | State Database (LSDB) updates can become queued behind many redundant | |||
another update. This delays convergence as the link state database | copies of another update. This delays convergence as the LSDB does | |||
does not stabilize promptly. | not stabilize promptly. | |||
In a real-world implementation, the packet queues leading to the | In a real-world implementation, the packet queues leading to the | |||
control-plane are necessarily of finite size, so if the flooding rate | control plane are necessarily of finite size, so if the flooding rate | |||
exceeds the update processing rate for long enough, then the control | exceeds the update processing rate for long enough, then the control | |||
plane will be obligated to drop incoming updates. If these lost | plane will be obligated to drop incoming updates. If these lost | |||
updates are of significance, this will further delay the | updates are of significance, this will further delay the | |||
stabilization of the link state database and the convergence of the | stabilization of the LSDB and the convergence of the network. | |||
network. | ||||
This is not a new problem. Historically, when routing protocols have | This is not a new problem. Historically, when routing protocols have | |||
been deployed in networks where the underlying topology is a complete | been deployed in networks where the underlying topology is a complete | |||
graph, there have been similar issues. This was more common when the | graph, there have been similar issues. This was more common when the | |||
underlying link-layer fabric presented the network layer with a full | underlying link-layer fabric presented the network layer with a full | |||
mesh of virtual connections. This was addressed by reducing the | mesh of virtual connections. This was addressed by reducing the | |||
flooding topology through IS-IS Mesh Groups [RFC2973], but this | flooding topology through IS-IS Mesh Groups [RFC2973], but this | |||
approach requires careful configuration of the flooding topology. | approach requires careful configuration of the flooding topology. | |||
Thus, the root problem is not limited to massively scalable data | Thus, the root problem is not limited to massively scalable data | |||
centers. It exists with any dense topology at scale. | centers. It exists with any dense topology at scale. | |||
Link state routing protocols were conceived when links were very | Link-state routing protocols were conceived when links were very | |||
expensive and topologies were sparse. The fact that those same | expensive and topologies were sparse. The fact that those same | |||
designs are sub-optimal in a dense topology should not come as a huge | designs are suboptimal in a dense topology should not come as a huge | |||
surprise. Technology has progressed to the point where links are | surprise. Technology has progressed to the point where links are | |||
cheap and common. This represents a complete reversal in the | cheap and common. This represents a complete reversal in the | |||
economic fundamentals of network engineering. The original designs | economic fundamentals of network engineering. The original designs | |||
are to be commended for continuing to provide correct operation to | are to be commended for continuing to provide correct operation to | |||
this point, and optimizations for operation in today's environment | this point and optimizations for operation in today's environment are | |||
are to be expected. | to be expected. | |||
1.1. Requirements Language | 1.1. Requirements Language | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. These words may also appear in this | capitals, as shown here. | |||
document in lower case as plain English words, absent their normative | ||||
meanings. | These words may also appear in this document in lower case as plain | |||
English words without their normative meanings. | ||||
2. Problem Statement | 2. Problem Statement | |||
In a dense topology, the flooding algorithm that is the heart of | In a dense topology, the flooding algorithm that is the heart of | |||
conventional link state routing protocols causes a great deal of | conventional link-state routing protocols causes a great deal of | |||
redundant messaging. This is exacerbated by scale. While the | redundant messaging. This is exacerbated by scale. While the | |||
protocol can survive this combination, the redundant messaging is | protocol can survive this combination, the redundant messaging is | |||
unnecessary overhead and delays convergence. Thus, the problem is to | unnecessary overhead and delays convergence. Thus, the problem is | |||
provide routing in dense, scalable topologies with rapid convergence. | how to provide routing in dense, scalable topologies with rapid | |||
convergence. | ||||
3. Solution Requirements | 3. Solution Requirements | |||
A solution to this problem must then meet the following requirements: | A solution to this problem must meet the following requirements: | |||
Requirement 1: Provide a dynamic routing solution. Reachability | Requirement 1: Provide a dynamic routing solution. Reachability | |||
must be restored after any topology change. | must be restored after any topology change. | |||
Requirement 2: Provide a significant improvement in convergence. | Requirement 2: Provide a significant improvement in convergence. | |||
Requirement 3: The solution should address a variety of dense | Requirement 3: The solution should address a variety of dense | |||
topologies. Just addressing a complete bipartite | topologies. Just addressing a complete bipartite | |||
topology such as K5,8 is insufficient. [Bondy] | topology such as K5,8 is insufficient (see [Bondy]). | |||
Multi-stage Clos topologies must also be addressed, | Multi-stage Clos topologies must also be addressed, | |||
as well as topologies that are slight variants. | as well as topologies that are slight variants. | |||
Addressing complete graphs is a good demonstration of | Addressing complete graphs is a good demonstration of | |||
generality. | generality. | |||
Requirement 4: There must be no single point of failure. The loss | Requirement 4: There must be no single point of failure. The loss | |||
of any link or node should not unduly hinder | of any link or node should not unduly hinder | |||
convergence. | convergence. | |||
Requirement 5: The workload for flooding should be evenly | Requirement 5: The workload for flooding should be evenly | |||
skipping to change at page 6, line 13 ¶ | skipping to change at line 249 ¶ | |||
dense subgraph not operate in a radically different | dense subgraph not operate in a radically different | |||
manner than the remainder of the topology. While | manner than the remainder of the topology. While | |||
some operational differences are permissible, they | some operational differences are permissible, they | |||
should be minimized. Any change to any node outside | should be minimized. Any change to any node outside | |||
of the dense subgraph is not acceptable. These | of the dense subgraph is not acceptable. These | |||
situations occur when massively scaled data centers | situations occur when massively scaled data centers | |||
are part of an overall larger wide-area network. | are part of an overall larger wide-area network. | |||
Having a second protocol operating just on this | Having a second protocol operating just on this | |||
subgraph would add much more complexity at the edge | subgraph would add much more complexity at the edge | |||
of the subgraph where the two protocols would have to | of the subgraph where the two protocols would have to | |||
inter-operate. | interoperate. | |||
4. Dynamic Flooding | 4. Dynamic Flooding | |||
The combination of a dense topology and flooding on the physical | The combination of a dense topology and flooding on the physical | |||
topology is sub-optimal for network scaling. However, if the | topology is suboptimal for network scaling. However, if the flooding | |||
flooding topology is decoupled from the physical topology and | topology is decoupled from the physical topology and restricted to a | |||
restricted to a greatly reduced portion of that topology, the result | greatly reduced portion of that topology, the result can be efficient | |||
can be efficient flooding and all of the resilience of existing | flooding and the resilience of existing protocols. A node that | |||
protocols. A node that supports flooding on the decoupled flooding | supports flooding on the decoupled flooding topology is said to | |||
topology is said to support dynamic flooding. | support dynamic flooding. | |||
With dynamic flooding, the flooding topology is computed within an | With dynamic flooding, the flooding topology is computed within an | |||
IGP area with the dense topology either centrally on an elected node, | IGP area with the dense topology either centrally on an elected node, | |||
termed the Area Leader, or in a distributed manner on all nodes that | termed the Area Leader, or in a distributed manner on all nodes that | |||
are supporting Dynamic Flooding. If the flooding topology is | are supporting dynamic flooding. If the flooding topology is | |||
computed centrally, it is encoded into and distributed as part of the | computed centrally, it is encoded into and distributed as part of the | |||
normal link state database. This is the centralized mode of | normal LSDB. This is the centralized mode of operation. If the | |||
operation. If the flooding topology is computed in a distributed | flooding topology is computed in a distributed fashion, this is the | |||
fashion, this is the distributed mode of operation. Nodes within | distributed mode of operation. Nodes within such an IGP area would | |||
such an IGP area would only flood on the flooding topology. On links | only flood on the flooding topology. On links outside of the | |||
outside of the flooding topology, normal database synchronization | flooding topology, normal database synchronization mechanisms, i.e., | |||
mechanisms (i.e., OSPF database exchange, IS-IS Complete Sequence | OSPF database exchange and IS-IS Complete Sequence Number PDUs | |||
Number Protocol Data Units (CSNPs)) would apply, but flooding may | (CSNPs), would apply, but flooding may not. The detailed behavior of | |||
not. Details are described in Section 6. New link state information | the nodes participating in IGP is described in Section 6. New link- | |||
that arrives from outside of the flooding topology suggests that the | state information that arrives from outside of the flooding topology | |||
sender has no flooding topology information or that it is operating | suggests that the sender has no flooding topology information or that | |||
on old information about the flooding topology. In these cases, the | it is operating on old information about the flooding topology. In | |||
new link state information should be flooded on the flooding topology | these cases, the new link-state information should be flooded on the | |||
as well. | flooding topology as well. | |||
The flooding topology covers the full set of nodes within the area, | The flooding topology covers the full set of nodes within the area, | |||
but excludes some of the links that standard flooding would employ. | but excludes some of the links that standard flooding would employ. | |||
Since the flooding topology is computed before topology changes, the | Since the flooding topology is computed before topology changes, the | |||
effort required to compute it does not factor into the convergence | effort required to compute it does not factor into the convergence | |||
time and can be done when the topology is stable. The speed of the | time and can be done when the topology is stable. In the case of | |||
computation and its distribution, in the case of centralized mode, is | centralized mode, the speed of the computation and its distribution | |||
not a significant issue. | is not a significant issue. | |||
Graph theory defines the 'degree' of a node to be the number of edges | Graph theory defines the "degree" of a node to be the number of edges | |||
that are attached to the node. To keep the flooding workload | that are attached to the node. To keep the flooding workload | |||
scalable and distributed, there should be no nodes in the flooding | scalable and distributed, there should be no nodes in the flooding | |||
topology that have a much higher degree than other nodes. | topology that have a much higher degree than other nodes. | |||
If a node does not have any flooding topology information when it | If a node does not have any flooding topology information when it | |||
receives new link state information, it should flood according to | receives new link-state information, it should flood according to | |||
standard flooding rules. This situation will occur when the dense | standard flooding rules. This situation will occur when the dense | |||
topology is first established but is unlikely to recur. | topology is first established but is unlikely to recur. | |||
Link state protocols are intentionally designed to be asynchronous, | Link-state protocols are intentionally designed to be asynchronous | |||
with nodes acting independently. During the flooding process, | with nodes acting independently. During the flooding process, | |||
different nodes will have different information, resulting in | different nodes will have different information, resulting in | |||
transient conditions that can temporarily produce suboptimal | transient conditions that can temporarily produce suboptimal | |||
forwarding. These periods of transient conditions are known as | forwarding. These periods of transient conditions are known as | |||
'transients.' | "transients." | |||
When centralized mode is used and if, during a transient, there are | When centralized mode is used and if there are multiple flooding | |||
multiple flooding topologies being advertised, then nodes should | topologies being advertised during a transient, then nodes should | |||
flood link state updates on all of the flooding topologies. Each | flood link-state updates on all of the flooding topologies. Each | |||
node should locally evaluate the election of the Area Leader for the | node should locally evaluate the election of the Area Leader for the | |||
IGP area and first flood on its flooding topology. The rationale | IGP area and first flood on its flooding topology. The rationale | |||
behind this is straightforward: if there is a transient and there has | behind this is straightforward: if there is a transient and there has | |||
been a recent change in Area Leader, then propagating topology | been a recent change in Area Leader, then propagating topology | |||
information promptly along the most likely flooding topology should | information promptly along the most likely flooding topology should | |||
be the priority. | be the priority. | |||
During transients, loops may form in the flooding topology. This is | During transients, loops may form in the flooding topology. This is | |||
not problematic, as the standard flooding rules would cause duplicate | not problematic, as the standard flooding rules would cause duplicate | |||
updates to be ignored. Similarly, during transients, the flooding | updates to be ignored. Similarly, during transients, the flooding | |||
skipping to change at page 7, line 47 ¶ | skipping to change at line 331 ¶ | |||
4.1. Applicability | 4.1. Applicability | |||
In a complete graph, this approach is appealing because it | In a complete graph, this approach is appealing because it | |||
drastically decreases the flooding topology without the manual | drastically decreases the flooding topology without the manual | |||
configuration of mesh groups. By controlling the diameter of the | configuration of mesh groups. By controlling the diameter of the | |||
flooding topology, as well as the maximum node degree in the flooding | flooding topology, as well as the maximum node degree in the flooding | |||
topology, convergence time goals can be met, and the stability of the | topology, convergence time goals can be met, and the stability of the | |||
control plane can be assured. | control plane can be assured. | |||
Similarly, in a massively scaled data center, where there are many | Similarly, in a massively scaled data center (where there are many | |||
opportunities for redundant flooding, this mechanism ensures that | opportunities for redundant flooding), this mechanism guarantees that | |||
flooding is redundant, with each leaf and spine well connected, while | flooding is redundant, with each leaf and spine well connected, while | |||
ensuring that no update takes too many hops and that no node shares | ensuring that no update takes too many hops and that no node shares | |||
an undue portion of the flooding effort. | an undue portion of the flooding effort. | |||
In a network where only a portion of the nodes support Dynamic | In a network where only a portion of the nodes support dynamic | |||
Flooding, the remaining nodes will continue to perform standard | flooding, the remaining nodes will continue to perform standard | |||
flooding. This is not an issue for correctness, as no node can | flooding. This is not an issue for correctness, as no node can | |||
become isolated. | become isolated. | |||
Flooding that is initiated by nodes that support Dynamic Flooding | Flooding that is initiated by nodes that support dynamic flooding | |||
will remain within the flooding topology until it reaches a legacy | will remain within the flooding topology until it reaches a legacy | |||
node, where standard flooding is resumed. Standard flooding will be | node, where standard flooding is resumed. Standard flooding will be | |||
bounded by nodes supporting Dynamic Flooding, which can help limit | bounded by nodes supporting dynamic flooding, which can help limit | |||
the propagation of unnecessary flooding. Whether or not the network | the propagation of unnecessary flooding. Whether or not the network | |||
can remain stable in this condition is very dependent on the number | can remain stable in this condition is very dependent on the number | |||
and location of the nodes that support Dynamic Flooding. | and location of the nodes that support dynamic flooding. | |||
During incremental deployment of dynamic flooding, an area will | During incremental deployment of dynamic flooding, an area will | |||
consist of one or more sets of connected nodes that support dynamic | consist of one or more sets of connected nodes that support dynamic | |||
flooding and one or more sets of connected nodes that do not, i.e., | flooding and one or more sets of connected nodes that do not, i.e., | |||
nodes that support standard flooding. The flooding topology is the | nodes that support standard flooding. The flooding topology is the | |||
union of these sets of nodes. Each set of nodes that does not | union of these sets of nodes. Each set of nodes that does not | |||
support dynamic flooding needs to be part of the flooding topology | support dynamic flooding needs to be part of the flooding topology | |||
and such a set of nodes may provide connectivity between two or more | and such a set of nodes may provide connectivity between two or more | |||
sets of nodes that support dynamic flooding. | sets of nodes that support dynamic flooding. | |||
4.2. Leader election | 4.2. Leader Election | |||
A single node within the dense topology is elected as an Area Leader. | A single node within the dense topology is elected as an Area Leader. | |||
A generalization of the mechanisms used in existing Designated Router | A generalization of the mechanisms used in existing Designated Router | |||
(OSPF) or Designated Intermediate-System (IS-IS) elections is used | (OSPF) or Designated Intermediate-System (IS-IS) elections is used | |||
for leader election. The elected node is known as the Area Leader. | for leader election. The elected node is known as the Area Leader. | |||
In the case of centralized mode, the Area Leader is responsible for | In the case of centralized mode, the Area Leader is responsible for | |||
computing and distributing the flooding topology. When a new Area | computing and distributing the flooding topology. When a new Area | |||
Leader is elected and has distributed new flooding topology | Leader is elected and has distributed new flooding topology | |||
information, then any prior Area Leaders should withdraw any of their | information, then any prior Area Leaders should withdraw any of their | |||
flooding topology information from their link state database entries. | flooding topology information from their LSDB entries. | |||
In the case of distributed mode, the distributed algorithm advertised | In the case of distributed mode, the distributed algorithm advertised | |||
by the Area Leader MUST be used by all nodes that participate in | by the Area Leader MUST be used by all nodes that participate in | |||
Dynamic Flooding. | dynamic flooding. | |||
Not every node needs to be a candidate to be the Area Leader within | Not every node needs to be a candidate to be the Area Leader within | |||
an area, as a single candidate is sufficient for correct operation. | an area, as a single candidate is sufficient for correct operation. | |||
For redundancy, however, it is strongly RECOMMENDED that there be | However, for redundancy, it is strongly RECOMMENDED that there be | |||
multiple candidates. | multiple candidates. | |||
4.3. Computing the Flooding Topology | 4.3. Computing the Flooding Topology | |||
There is a great deal of flexibility in how the flooding topology may | There is a great deal of flexibility in how the flooding topology may | |||
be computed. For resilience, it needs to at least contain a cycle of | be computed. For resilience, it needs to at least contain a cycle of | |||
all nodes in the dense subgraph. However, additional links could be | all nodes in the dense subgraph. However, additional links could be | |||
added to decrease the convergence time. The trade-off between the | added to decrease the convergence time. The trade-off between the | |||
density of the flooding topology and the convergence time is a matter | density of the flooding topology and the convergence time is a matter | |||
for further study. The exact algorithm for computing the flooding | for further study. The exact algorithm for computing the flooding | |||
topology in the case of the centralized computation need not be | topology in the case of the centralized computation need not be | |||
standardized, as it is not an interoperability issue. Only the | standardized, as it is not an interoperability issue. Only the | |||
encoding of the resultant topology needs to be documented. In the | encoding of the resultant topology needs to be documented. In the | |||
case of distributed mode, all nodes in the IGP area need to use the | case of distributed mode, all nodes in the IGP area need to use the | |||
same algorithm to compute the flooding topology. It is possible to | same algorithm to compute the flooding topology. It is possible to | |||
use private algorithms to compute flooding topology, so long as all | use private algorithms to compute flooding topology, so long as all | |||
nodes in the IGP area use the same algorithm. | nodes in the IGP area use the same algorithm. | |||
While the flooding topology should be a covering cycle, it need not | While the flooding topology should be a covering cycle, it need not | |||
be a Hamiltonian cycle where each node appears only once. In fact, | be a Hamiltonian cycle where each node appears only once. In fact, | |||
in many relevant topologies, this will not be possible, e.g., K5,8. | in many relevant topologies, this will not be possible (e.g., K5,8). | |||
This is fortunate, as computing a Hamiltonian cycle is known to be | This is fortunate, as computing a Hamiltonian cycle is known to be | |||
NP-complete. | NP-complete. | |||
A simple algorithm to compute the topology for a complete bipartite | A simple algorithm to compute the topology for a complete bipartite | |||
graph is to simply select unvisited nodes on each side of the graph | graph is to simply select unvisited nodes on each side of the graph | |||
until both sides are completely visited. If the numbers of nodes on | until both sides are completely visited. If the numbers of nodes on | |||
each side of the graph are unequal, then revisiting nodes on the less | each side of the graph are unequal, then revisiting nodes on the less | |||
populated side of the graph will be inevitable. This algorithm can | populated side of the graph will be inevitable. This algorithm can | |||
run in O(N) time, so it is quite efficient. | run in O(N) time, so it is quite efficient. | |||
While a simple cycle is adequate for correctness and resiliency, it | While a simple cycle is adequate for correctness and resiliency, it | |||
may not be optimal for convergence. At scale, a cycle may have a | may not be optimal for convergence. At scale, a cycle may have a | |||
diameter that is half the number of nodes in the graph. This could | diameter that is half the number of nodes in the graph. This could | |||
cause an undue delay in link state update propagation. Therefore it | cause an undue delay in link-state update propagation. Therefore, it | |||
may be useful to have a bound on the diameter of the flooding | may be useful to have a bound on the diameter of the flooding | |||
topology. Introducing more links into the flooding topology would | topology. Introducing more links into the flooding topology would | |||
reduce the diameter but at the trade-off of possibly adding redundant | reduce the diameter but at the trade-off of possibly adding redundant | |||
messaging. The optimal trade-off between convergence time and graph | messaging. The optimal trade-off between convergence time and graph | |||
diameter is for further study. | diameter is for further study. | |||
Similarly, if additional redundancy is added to the flooding | Similarly, if additional redundancy is added to the flooding | |||
topology, specific nodes in that topology may end up with a very high | topology, specific nodes in that topology may end up with a very high | |||
degree. This could result in overloading the control plane of those | degree. This could result in overloading the control plane of those | |||
nodes, resulting in poor convergence. Thus, it may be preferable to | nodes, resulting in poor convergence. Thus, it may be preferable to | |||
skipping to change at page 10, line 19 ¶ | skipping to change at line 443 ¶ | |||
4.4. Topologies on Complete Bipartite Graphs | 4.4. Topologies on Complete Bipartite Graphs | |||
Complete bipartite graph topologies have become popular for data | Complete bipartite graph topologies have become popular for data | |||
center applications and are commonly called leaf-spine or spine-leaf | center applications and are commonly called leaf-spine or spine-leaf | |||
topologies. This section discusses some flooding topologies that are | topologies. This section discusses some flooding topologies that are | |||
of particular interest in these networks. | of particular interest in these networks. | |||
4.4.1. A Minimal Flooding Topology | 4.4.1. A Minimal Flooding Topology | |||
A Minimal Flooding Topology on a complete bipartite graph is one in | A minimal flooding topology on a complete bipartite graph is one in | |||
which the topology is connected and each node has at least degree | which the topology is connected and each node has at least degree | |||
two. This is of interest because it guarantees that the flooding | two. This is of interest because it guarantees that the flooding | |||
topology has no single point of failure. | topology has no single point of failure. | |||
In practice, this implies that every leaf node in the flooding | In practice, this implies that every leaf node in the flooding | |||
topology will have a degree of two. As there are usually more leaves | topology will have a degree of two. As there are usually more leaves | |||
than spines, the degree of the spines will be higher, but the load on | than spines, the degree of the spines will be higher, but the load on | |||
the individual spines can be evenly distributed. | the individual spines can be evenly distributed. | |||
This type of flooding topology is also of interest because it scales | This type of flooding topology is also of interest because it scales | |||
well. As the number of leaves increases, it is possible to construct | well. As the number of leaves increases, it is possible to construct | |||
flooding topologies that perform well. Specifically, for N spines | flooding topologies that perform well. Specifically, for N spines | |||
and M leaves, if M >= N(N/2-1), then there is a flooding topology | and M leaves, if M >= N(N/2-1), then there is a flooding topology | |||
that has a diameter of four. | that has a diameter of 4. | |||
4.4.2. Xia Topologies | 4.4.2. Xia Topologies | |||
A Xia Topology on a complete bipartite graph is one in which all | A Xia topology on a complete bipartite graph is one in which all | |||
spine nodes are bi-connected through leaves with degree two, but the | spine nodes are biconnected through leaves with degree two, but the | |||
remaining leaves all have degree one and are evenly distributed | remaining leaves all have degree one and are evenly distributed | |||
across the spines. | across the spines. | |||
Constructively, one can create a Xia topology by iterating through | Constructively, one can create a Xia topology by iterating through | |||
the spines. Each spine can be connected to the next spine by | the spines. Each spine can be connected to the next spine by | |||
selecting any unused leaf. Since leaves are connected to all spines, | selecting any unused leaf. Since leaves are connected to all spines, | |||
all leaves will have a connection to both the first and second spine | all leaves will have a connection to both the first and second spine | |||
and one can therefore choose any leaf without loss of generality. | and one can therefore choose any leaf without loss of generality. | |||
Continuing this iteration across all of the spines, selecting a new | Continuing this iteration across all of the spines, selecting a new | |||
leaf at each iteration, will result in a path that connects all | leaf at each iteration will result in a path that connects all | |||
spines. Adding one more leaf between the last and first spine will | spines. Adding one more leaf between the last and first spine will | |||
produce a cycle of N spines and N leaves. | produce a cycle of N spines and N leaves. | |||
At this point, M-N leaves remain unconnected. These can be | At this point, M-N leaves remain unconnected. These can be | |||
distributed evenly across the remaining spines, connected by a single | distributed evenly across the remaining spines and connected by a | |||
link. | single link. | |||
Xia topologies represent a compromise that trades off increased risk | Xia topologies represent a compromise that trades off increased risk | |||
and decreased performance for lower flooding amplification. Xia | and decreased performance for lower flooding amplification. Xia | |||
topologies will have a larger diameter. For M spines, the diameter | topologies will have a larger diameter. For M spines, the diameter | |||
will be M + 2. | will be M + 2. | |||
In a Xia topology, some leaves are singly connected. This represents | In a Xia topology, some leaves are singly connected. This represents | |||
a risk in that in some failures, convergence may be delayed. | a risk in that convergence may be delayed in some failures. However, | |||
However, there may be some alternate behaviors that can be employed | there may be some alternate behaviors that can be employed to | |||
to mitigate these risks. If a leaf node sees that its single link on | mitigate these risks. If a leaf node sees that its single link on | |||
the flooding topology has failed, it can compensate by performing a | the flooding topology has failed, it can compensate by performing a | |||
database synchronization check with a different spine. Similarly, if | database synchronization check with a different spine. Similarly, if | |||
a leaf determines that its connected spine on the flooding topology | a leaf determines that its connected spine on the flooding topology | |||
has failed, it can compensate by performing a database | has failed, it can compensate by performing a database | |||
synchronization check with a different spine. In both of these | synchronization check with a different spine. In both of these | |||
cases, the synchronization check is intended to ameliorate any delays | cases, the synchronization check is intended to ameliorate any delays | |||
in link state propagation due to the fragmentation of the flooding | in link-state propagation due to the fragmentation of the flooding | |||
topology. | topology. | |||
The benefit of this topology is that flooding load is easily | The benefit of this topology is that flooding load is easily | |||
understood. Each node in the spine cycle will never receive an | understood. Each node in the spine cycle will never receive an | |||
update more than twice. For M leaves and N spines, a spine never | update more than twice. For M leaves and N spines, a spine never | |||
transmits more than (M/N +1) updates. | transmits more than (M/N +1) updates. | |||
4.4.3. Optimization | 4.4.3. Optimization | |||
If two nodes are adjacent in the flooding topology and there is a set | If two nodes are adjacent in the flooding topology and there is a set | |||
of parallel links between them, then any given update MUST be flooded | of parallel links between them, then any given update MUST be flooded | |||
over only one of those links. The selection of the specific link is | over only one of those links. The selection of the specific link is | |||
implementation-specific. | implementation-specific. | |||
4.5. Encoding the Flooding Topology | 4.5. Encoding the Flooding Topology | |||
There are a variety of ways that the flooding topology could be | There are a variety of ways that the flooding topology could be | |||
encoded efficiently. If the topology was only a cycle, a simple list | encoded efficiently. If the topology was only a cycle, a simple list | |||
of the nodes in the topology would suffice. However, this is | of the nodes in the topology would suffice. However, this is | |||
insufficiently flexible as it would require a slightly different | insufficiently flexible, as it would require a slightly different | |||
encoding scheme as soon as a single additional link is added. | encoding scheme as soon as a single additional link is added. | |||
Instead, this document chooses to encode the flooding topology as a | Instead, this document chooses to encode the flooding topology as a | |||
set of intersecting paths, where each path is a set of connected | set of intersecting paths, where each path is a set of connected | |||
links. | links. | |||
Advertisement of the flooding topology includes support for multi- | Advertisement of the flooding topology includes support for multi- | |||
access broadcast LANs. When a LAN is included in the flooding | access broadcast LANs. When a LAN is included in the flooding | |||
topology, all edges between the LAN and nodes connected to the LAN | topology, all edges between the LAN and nodes connected to the LAN | |||
are assumed to be part of the flooding topology. To reduce the size | are assumed to be part of the flooding topology. To reduce the size | |||
of the flooding topology advertisement, explicit advertisement of | of the flooding topology advertisement, explicit advertisement of | |||
these edges is optional. Note that this may result in the | these edges is optional. Note that this may result in the | |||
possibility of "hidden nodes" or "stealth nodes" which are part of | possibility of "hidden nodes" or "stealth nodes", which are part of | |||
the flooding topology but are not explicitly mentioned in the | the flooding topology but are not explicitly mentioned in the | |||
flooding topology advertisements. These hidden nodes can be found by | flooding topology advertisements. These hidden nodes can be found by | |||
examination of the Link State database where connectivity between a | examination of the LSDB where connectivity between a LAN and nodes | |||
LAN and nodes connected to the LAN is fully specified. | connected to the LAN is fully specified. | |||
Note that while all nodes MUST be part of the advertised flooding | Note that while all nodes MUST be part of the advertised flooding | |||
topology, not all multi-access LANs need to be included. Only those | topology, not all multi-access LANs need to be included. Only those | |||
LANs which are part of the flooding topology need to be included in | LANs that are part of the flooding topology need to be included in | |||
the advertised flooding topology. | the advertised flooding topology. | |||
Other encodings are certainly possible. This document has attempted | Other encodings are certainly possible. This document has attempted | |||
to make a useful trade-off between simplicity, generality, and space. | to make a useful trade-off between simplicity, generality, and space. | |||
4.6. Advertising the Local Edges Enabled for Flooding | 4.6. Advertising the Local Edges Enabled for Flooding | |||
Correct operation of the flooding topology requires that all nodes | Correct operation of the flooding topology requires that all nodes | |||
which participate in the flooding topology choose local links for | that participate in the flooding topology choose local links for | |||
flooding which are part of the calculated flooding topology. Failure | flooding that are part of the calculated flooding topology. Failure | |||
to do so could result in an unexpected partition of the flooding | to do so could result in an unexpected partition of the flooding | |||
topology and/or sub-optimal flooding reduction. As an aid to | topology and/or suboptimal flooding reduction. As an aid to | |||
diagnosing problems when dynamic flooding is in use, this document | diagnosing problems when dynamic flooding is in use, this document | |||
defines a means of advertising what local edges are enabled for | defines a means of advertising the Local Edges Enabled for Flooding | |||
flooding (LEEF). The protocol-specific encodings are defined in | (LEEF). The protocol-specific encodings are defined in Sections | |||
Sections 5.1.6 and 5.2.8. | 5.1.6 and 5.2.8. | |||
The following guidelines apply: | The following guidelines apply: | |||
Advertisement of LEEFs is optional. | * Advertisement of LEEF is optional. | |||
As the flooding topology is defined in terms of edges (i.e., pairs | * As the flooding topology is defined in terms of edges (i.e., pairs | |||
of nodes) and not in terms of links, in cases where parallel | of nodes) and not in terms of links, the advertisement SHOULD | |||
adjacencies to the same neighbor exist, the advertisement SHOULD | indicate that all such links have been enabled in cases where | |||
indicate that all such links have been enabled. | parallel adjacencies to the same neighbor exist. | |||
LEEF advertisements MUST NOT include edges enabled for temporary | * LEEF advertisements MUST NOT include edges enabled for temporary | |||
flooding (Section 6.7). | flooding (Section 6.7). | |||
LEEF advertisements MUST NOT be used either when calculating a | * LEEF advertisements MUST NOT be used either when calculating a | |||
flooding topology or when determining what links to add | flooding topology or when determining what links to add | |||
temporarily to the flooding topology when the flooding topology is | temporarily to the flooding topology when the flooding topology is | |||
temporarily partitioned. | temporarily partitioned. | |||
5. Protocol Elements | 5. Protocol Elements | |||
5.1. IS-IS TLVs | 5.1. IS-IS TLVs | |||
The following TLVs/sub-TLVs are added to IS-IS: | The following TLVs/sub-TLVs are added to IS-IS: | |||
1. A sub-TLV that an IS may include in its Link State Protocol Data | 1. A sub-TLV that an IS may include in its Link State PDU (LSP) to | |||
Unit (LSP) to indicate its preference for becoming the Area | indicate its preference for becoming the Area Leader. | |||
Leader. | ||||
2. A sub-TLV that an IS may include in its LSP to indicate that it | 2. A sub-TLV that an IS may include in its LSP to indicate that it | |||
supports Dynamic Flooding and the algorithms that it supports for | supports dynamic flooding and the algorithms that it supports for | |||
distributed mode, if any. | distributed mode, if any. | |||
3. A TLV to advertise the list of system IDs that compose the | 3. A TLV to advertise the list of system IDs that compose the | |||
flooding topology for the area. A system ID is an identifier for | flooding topology for the area. A system ID is an identifier for | |||
a node. | a node. | |||
4. A TLV to advertise a path that is part of the flooding topology. | 4. A TLV to advertise a path that is part of the flooding topology. | |||
5. A TLV that requests flooding from the adjacent node. | 5. A TLV that requests flooding from the adjacent node. | |||
5.1.1. IS-IS Area Leader Sub-TLV | 5.1.1. IS-IS Area Leader Sub-TLV | |||
The Area Leader Sub-TLV allows a system to: | The IS-IS Area Leader Sub-TLV allows a system to: | |||
1. Indicate its eligibility and priority for becoming the Area | 1. Indicate its eligibility and priority for becoming the Area | |||
Leader. | Leader. | |||
2. Indicate whether centralized or distributed mode is to be used to | 2. Indicate whether centralized or distributed mode is to be used to | |||
compute the flooding topology in the area. | compute the flooding topology in the area. | |||
3. Indicate the algorithm identifier for the algorithm that is used | 3. Indicate the algorithm identifier for the algorithm that is used | |||
to compute the flooding topology in distributed mode. | to compute the flooding topology in distributed mode. | |||
Intermediate Systems (nodes) that are not advertising this Sub-TLV | Intermediate Systems (nodes) that are not advertising this sub-TLV | |||
are not eligible to become the Area Leader. | are not eligible to become the Area Leader. | |||
The Area Leader is the node with the numerically highest Area Leader | The Area Leader is the node with the numerically highest Area Leader | |||
priority in the area. In the event of ties, the node with the | priority in the area. In the event of ties, the node with the | |||
numerically highest system ID is the Area Leader. Due to transients | numerically highest system ID is the Area Leader. Due to transients | |||
during database flooding, different nodes may not agree on the Area | during database flooding, different nodes may not agree on the Area | |||
Leader. This is not problematic, as subsequent flooding will cause | Leader. This is not problematic, as subsequent flooding will cause | |||
the entire area to converge. | the entire area to converge. | |||
The Area Leader Sub-TLV is advertised as a Sub-TLV of the IS-IS | The IS-IS Area Leader Sub-TLV is advertised as a sub-TLV of the IS-IS | |||
Router Capability TLV-242 that is defined in [RFC7981] and has the | Router Capability TLV (242) [RFC7981] and has the following format: | |||
following format: | ||||
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 | Length | Priority | Algorithm | | | Type | Length | Priority | Algorithm | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Type: TBD1 | Figure 1: IS-IS Area Leader Sub-TLV | |||
Length: 2 | Type: 27 | |||
Priority: 0-255, unsigned integer. Determination of the priority | Length: 2 octets | |||
is outside of the scope of this document. | ||||
Algorithm: a numeric identifier in the range 0-255 that identifies | Priority: 0-255, unsigned integer. Determination of the priority is | |||
outside of the scope of this document. | ||||
Algorithm: A numeric identifier in the range 0-255 that identifies | ||||
the algorithm used to calculate the flooding topology. The | the algorithm used to calculate the flooding topology. The | |||
following values are defined: | following values are defined: | |||
- 0: Centralized computation by the Area Leader. | 0: Centralized computation by the Area Leader. | |||
- 1-127: Standardized distributed algorithms. | 1-127: Standardized distributed algorithms. | |||
- 128-254: Private distributed algorithms. Individual values are | 128-254: Private distributed algorithms. Individual values are | |||
to be assigned according to the "Private Use" policy defined in | to be assigned according to the "Private Use" policy defined in | |||
[RFC8126] (see Section 7.3). | Section 4.1 of [RFC8126] (see Section 7.3). | |||
- 255: Reserved | 255: Reserved | |||
5.1.2. IS-IS Dynamic Flooding Sub-TLV | 5.1.2. IS-IS Dynamic Flooding Sub-TLV | |||
The Dynamic Flooding Sub-TLV allows a system to: | The IS-IS Dynamic Flooding Sub-TLV allows a system to: | |||
1. Indicate that it supports Dynamic Flooding. This is indicated by | 1. Indicate that it supports dynamic flooding. This is indicated by | |||
the advertisement of this Sub-TLV. | the advertisement of this sub-TLV. | |||
2. Indicate the set of algorithms that it supports. | 2. Indicate the set of algorithms that it supports. | |||
In incremental deployments, understanding which nodes support Dynamic | In incremental deployments, understanding which nodes support dynamic | |||
Flooding can be used to optimize the flooding topology. In | flooding can be used to optimize the flooding topology. In | |||
distributed mode, knowing the capabilities of the nodes can allow the | distributed mode, knowing the capabilities of the nodes can allow the | |||
Area Leader to select the optimal algorithm. | Area Leader to select the optimal algorithm. | |||
The Dynamic Flooding Sub-TLV is advertised as a Sub-TLV of the IS-IS | The IS-IS Dynamic Flooding Sub-TLV is advertised as a sub-TLV of the | |||
Router Capability TLV (242) [RFC7981] and has the following format: | IS-IS Router Capability TLV (242) [RFC7981] and has the following | |||
format: | ||||
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 | Length | Algorithm... | | | Type | Length | Algorithm... | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Type: TBD7 | Figure 2: IS-IS Dynamic Flooding Sub-TLV | |||
Length: 1-255; number of Algorithms | Type: 28 | |||
Algorithm: numeric identifiers in the range 0-255 that identify | Length: 1-255 octets; number of Algorithms | |||
the algorithm used to calculate the flooding topology, as | ||||
described in Section 5.1.1. | Algorithm: Numeric identifiers in the range 0-255 that identify the | |||
algorithm used to calculate the flooding topology as described in | ||||
Section 5.1.1. | ||||
5.1.3. IS-IS Area Node IDs TLV | 5.1.3. IS-IS Area Node IDs TLV | |||
The IS-IS Area Node IDs TLV is only used in centralized mode. | The IS-IS Area Node IDs TLV is only used in centralized mode. | |||
The Area Node IDs TLV is used by the Area Leader to enumerate the | The IS-IS Area Node IDs TLV is used by the Area Leader to enumerate | |||
Node IDs (System ID + pseudo-node ID) that it has used in computing | the node IDs (System ID + pseudonode ID) that it has used in | |||
the area flooding topology. Conceptually, the Area Leader creates a | computing the area flooding topology. Conceptually, the Area Leader | |||
list of node IDs for all nodes in the area (including pseudo-nodes | creates a list of node IDs for all nodes in the area (including | |||
for all LANs in the topology), assigning an index to each node, | pseudonodes for all LANs in the topology) and assigns an index to | |||
starting with index 0. Indices are implicitly assigned sequentially, | each node, starting with index 0. Indices are implicitly assigned | |||
with the index of the first node being the Starting Index and each | sequentially, with the index of the first node being the Starting | |||
subsequent node's index is the previous node's index + 1. | Index and each subsequent node's index is the previous node's index + | |||
1. | ||||
Because the space in a single TLV is limited, more than one TLV may | Because the space in a single TLV is limited, more than one TLV may | |||
be required to encode all of the node IDs in the area. This TLV may | be required to encode all of the node IDs in the area. This TLV may | |||
be present in multiple LSPs. | be present in multiple LSPs. | |||
The format of the Area Node IDs TLV is: | The IS-IS Area Node IDs TLV has the following format: | |||
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 | Length | Starting Index | | | Type | Length | Starting Index | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|L| Reserved | Node IDs ... | |L| Reserved | Node IDs ... | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Node IDs continued .... | Node IDs continued .... | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Type: TBD2 | Figure 3: IS-IS Area Node IDs TLV | |||
Length: 3 + ((System ID Length + 1) * (number of node IDs)) | Type: 17 | |||
Starting index: The index of the first node ID that appears in | ||||
this TLV. | ||||
L (Last): This bit is set if the index of the last node ID that | Length: 3 + ((System ID Length + 1) * (number of node IDs)) in | |||
octets | ||||
Starting Index: The index of the first node ID that appears in this | ||||
TLV. | ||||
L (Last): This bit is set if the index of the last node ID that | ||||
appears in this TLV is equal to the last index in the full list of | appears in this TLV is equal to the last index in the full list of | |||
node IDs for the area. | node IDs for the area. | |||
Node IDs: A concatenated list of node IDs for the area | Node IDs: A concatenated list of node IDs for the area. | |||
If there are multiple IS-IS Area Node IDs TLVs with the L-bit set | If multiple IS-IS Area Node IDs TLVs with the L bit set are | |||
advertised by the same node, the TLV which specifies the smaller | advertised by the same node, the TLV that specifies the smaller | |||
maximum index is used and the other TLV(s) with L-bit set are | maximum index is used and the other TLVs with the L bit set are | |||
ignored. TLVs which specify node IDs with indices greater than that | ignored. TLVs that specify node IDs with indices greater than that | |||
specified by the TLV with the L-bit set are also ignored. | specified by the TLV with the L bit set are also ignored. | |||
5.1.4. IS-IS Flooding Path TLV | 5.1.4. IS-IS Flooding Path TLV | |||
The IS-IS Flooding Path TLV is only used in centralized mode. | The IS-IS Flooding Path TLV is only used in centralized mode. | |||
The Flooding Path TLV is used to denote a path in the flooding | The IS-IS Flooding Path TLV is used to denote a path in the flooding | |||
topology. The goal is an efficient encoding of the links of the | topology. The goal is an efficient encoding of the links of the | |||
topology. A single link is a simple case of a path that only covers | topology. A single link is a simple case of a path that only covers | |||
two nodes. A connected path may be described as a sequence of | two nodes. A connected path may be described as a sequence of | |||
indices: (I1, I2, I3, ...), denoting a link from the system with | indices (I1, I2, I3, ...), denoting a link from the system with index | |||
index 1 to the system with index 2, a link from the system with index | 1 to the system with index 2, a link from the system with index 2 to | |||
2 to the system with index 3, and so on. | the system with index 3, and so on. | |||
If a path exceeds the size that can be stored in a single TLV, then | If a path exceeds the size that can be stored in a single TLV, then | |||
the path may be distributed across multiple TLVs by the replication | the path may be distributed across multiple TLVs by the replication | |||
of a single system index. | of a single system index. | |||
Complex topologies that are not a single path can be described using | Complex topologies that are not a single path can be described using | |||
multiple TLVs. | multiple TLVs. | |||
The Flooding Path TLV contains a list of system indices relative to | The IS-IS Flooding Path TLV contains a list of system indices | |||
the systems advertised through the Area Node IDs TLV. At least 2 | relative to the systems advertised through the IS-IS Area Node IDs | |||
indices must be included in the TLV. Due to the length restriction | TLV. At least 2 indices must be included in the TLV. Due to the | |||
of TLVs, this TLV can contain at most 126 system indices. | length restriction of TLVs, this TLV can contain 126 system indices | |||
at most. | ||||
The Flooding Path TLV has the format: | The IS-IS Flooding Path TLV has the following format: | |||
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 | Length | Starting Index | | | Type | Length | Starting Index | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Index 2 | Additional indices ... | | Index 2 | Additional indices ... | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Type: TBD3 | ||||
Length: 2 * (number of indices in the path) | Figure 4: IS-IS Flooding Path TLV | |||
Starting index: The index of the first system in the path. | Type: 18 | |||
Index 2: The index of the next system in the path. | Length: 2 * (number of indices in the path) in octets | |||
Additional indices (optional): A sequence of additional indices to | Starting Index: The index of the first system in the path. | |||
Index 2: The index of the next system in the path. | ||||
Additional indices (optional): A sequence of additional indices to | ||||
systems along the path. | systems along the path. | |||
5.1.5. IS-IS Flooding Request TLV | 5.1.5. IS-IS Flooding Request TLV | |||
The Flooding Request TLV allows a system to request an adjacent node | The IS-IS Flooding Request TLV allows a system to request an adjacent | |||
to enable flooding towards it on a specific link in the case where | node to enable flooding towards it on a specific link in the case | |||
the connection to the adjacent node is not part of the existing | where the connection to the adjacent node is not part of the existing | |||
flooding topology. | flooding topology. | |||
A node that supports Dynamic Flooding MAY include the Flooding | A node that supports dynamic flooding MAY include the IS-IS Flooding | |||
Request TLV in its Intermediate System to Intermediate System Hello | Request TLV in its IS-IS Hello (IIH) Protocol Data Units (PDUs). | |||
(IIH) Protocol Data Units (PDUs). | ||||
The Flooding Request TLV has the format: | The IS-IS Flooding Request TLV has the following format: | |||
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 | Length | Levels | Scope | | | Type | Length | Levels | Scope | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ... | | | ... | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Type: TBD9 | Figure 5: IS-IS Flooding Request TLV | |||
Length: 1 + number of advertised Flooding Scopes | Type: 19 | |||
Levels: the level(s) for which flooding is requested. Levels are | Length: 1 + number of advertised flooding scopes in octets | |||
Levels: The levels for which flooding is requested. Levels are | ||||
encoded as the circuit type as specified in IS-IS [ISO10589] | encoded as the circuit type as specified in IS-IS [ISO10589] | |||
Scope (8 bits): Flooding Scope for which the flooding is requested | Scope (8 bits): Flooding scope for which the flooding is requested | |||
as defined in the LSP Flooding Scope Identifier Registry as | as defined in the LSP Flooding Scope Identifier Registry as | |||
created by [RFC7356]. Inclusion of flooding scopes is optional | created by [RFC7356]. Inclusion of flooding scopes is optional | |||
and is only necessary if [RFC7356] is supported. Multiple | and is only necessary if [RFC7356] is supported. Multiple | |||
flooding scopes MAY be included. Values are restricted to the | flooding scopes MAY be included. Values are restricted to the | |||
range 0..127. | range 0..127. | |||
Circuit Flooding Scope MUST NOT be sent in the Flooding Request TLV | Circuit flooding scope MUST NOT be sent in the Flooding Request TLV | |||
and MUST be ignored if received. | and MUST be ignored if received. | |||
When the TLV is received in a level-specific LAN-Hello PDU (L1-LAN- | When the TLV is received in a level-specific LAN-Hello PDU (L1-LAN- | |||
IIH or L2-LAN-IIH), only levels that match the PDU type are valid. | IIH or L2-LAN-IIH), only levels that match the PDU type are valid. | |||
Levels that do not match the PDU type MUST be ignored on receipt. | Levels that do not match the PDU type MUST be ignored on receipt. | |||
When the TLV is received in a Point-to-Point Hello (P2P-IIH), only | When the TLV is received in a Point-to-Point Hello (P2P-IIH), only | |||
levels that are supported by the established adjacency are valid. | levels that are supported by the established adjacency are valid. | |||
Levels that are not supported by the adjacency MUST be ignored on | Levels that are not supported by the adjacency MUST be ignored on | |||
receipt. | receipt. | |||
If flooding was disabled on the received link due to Dynamic | If flooding was disabled on the received link due to dynamic | |||
Flooding, then flooding MUST be temporarily enabled over the link for | flooding, then flooding MUST be temporarily enabled over the link for | |||
the specified Circuit Type(s) and Flooding Scope(s) received in the | the specified Circuit Types and flooding scopes received in the in | |||
in the Flooding Request TLV. Flooding MUST be enabled until the | the IS-IS Flooding Request TLV. Flooding MUST be enabled until the | |||
Circuit Type or Flooding Scope is no longer advertised in the | Circuit Type or Flooding Scope is no longer advertised in the IS-IS | |||
Flooding Request TLV or the TLV no longer appears in IIH PDUs | Flooding Request TLV or the TLV no longer appears in IIH PDUs | |||
received on the link. | received on the link. | |||
When flooding is temporarily enabled on the link for any Circuit Type | When flooding is temporarily enabled on the link for any Circuit Type | |||
or Flooding Scope due to receiving the Flooding Request TLV, the | or Flooding Scope due to receiving the IS-IS Flooding Request TLV, | |||
receiver MUST perform standard database synchronization for the | the receiver MUST perform standard database synchronization for the | |||
corresponding Circuit Type(s) and Flooding Scope(s) on the link. In | corresponding Circuit Types and flooding scopes on the link. In the | |||
the case of IS-IS, this results in setting the Send Routeing Message | case of IS-IS, this results in setting the Send Routeing Message | |||
(SRM) flag for all related LSPs on the link and sending CSNPs. | (SRM) flag for all related LSPs on the link and sending CSNPs. | |||
So long as the Flooding Request TLV is being received, flooding MUST | So long as the IS-IS Flooding Request TLV is being received, flooding | |||
NOT be disabled for any of the Circuit Types or Flooding Scopes | MUST NOT be disabled for any of the Circuit Types or flooding scopes | |||
present in the Flooding Request TLV, even if the connection between | present in the IS-IS Flooding Request TLV, even if the connection | |||
the neighbors is removed from the flooding topology. Flooding for | between the neighbors is removed from the flooding topology. | |||
such Circuit Types or Flooding Scopes MUST continue on the link and | Flooding for such Circuit Types or flooding scopes MUST continue on | |||
be considered temporarily enabled. | the link and be considered temporarily enabled. | |||
5.1.6. IS-IS LEEF Advertisement | 5.1.6. IS-IS LEEF Advertisement | |||
In support of advertising which edges are currently enabled in the | In support of advertising which edges are currently enabled in the | |||
flooding topology, an implementation MAY indicate that a link is part | flooding topology, an implementation MAY indicate that a link is part | |||
of the flooding topology by advertising a bit-value in the Link | of the flooding topology by advertising a bit value in the Link | |||
Attributes sub-TLV defined by [RFC5029]. | Attributes sub-TLV defined by [RFC5029]. | |||
The following bit-value is defined by this document: | The following bit-value is defined by this document: | |||
Local Edge Enabled for Flooding (LEEF) - suggested value 4 (to be | Local Edge Enabled for Flooding (LEEF): 0x4 | |||
assigned by IANA) | ||||
5.2. OSPF LSAs and TLVs | 5.2. OSPF LSAs and TLVs | |||
This section defines new LSAs and TLVs for both OSPFv2 and OSPFv3. | This section defines new Link State Advertisements (LSAs) and TLVs | |||
for both OSPFv2 and OSPFv3. | ||||
The following LSAs and TLVs/sub-TLVs are added to OSPFv2/OSPFv3: | The following LSAs and TLVs/sub-TLVs are added to OSPFv2/OSPFv3: | |||
1. A TLV that is used to advertise the preference for becoming the | 1. A TLV that is used to advertise the preference for becoming the | |||
Area Leader. | Area Leader. | |||
2. A TLV that is used to indicate the support for Dynamic Flooding | 2. A TLV that is used to indicate the support for dynamic flooding | |||
and the algorithms that the advertising node supports for | and the algorithms that the advertising node supports for | |||
distributed mode, if any. | distributed mode, if any. | |||
3. An OSPFv2 Opaque LSA and OSPFv3 LSA to advertise the flooding | 3. An OSPFv2 Opaque LSA and OSPFv3 LSA to advertise the flooding | |||
topology for centralized mode. | topology for centralized mode. | |||
4. A TLV to advertise the list of Router IDs that comprise the | 4. A TLV to advertise the list of Router IDs that comprise the | |||
flooding topology for the area. | flooding topology for the area. | |||
5. A TLV to advertise a path that is part of the flooding topology. | 5. A TLV to advertise a path that is part of the flooding topology. | |||
6. A bit in the LLS Type 1 Extended Options and Flags that requests | 6. A bit in the Link-Local Singaling (LLS) Type 1 Extended Options | |||
flooding from the adjacent node. | and Flags that requests flooding from the adjacent node. | |||
5.2.1. OSPF Area Leader Sub-TLV | 5.2.1. OSPF Area Leader Sub-TLV | |||
The usage of the OSPF Area Leader Sub-TLV is identical to IS-IS and | The usage of the OSPF Area Leader Sub-TLV is identical to that of the | |||
is described in Section 5.1.1. | IS-IS Area Leader Sub-TLV described in Section 5.1.1. | |||
The OSPF Area Leader Sub-TLV is used by both OSPFv2 and OSPFv3. | The OSPF Area Leader Sub-TLV is used by both OSPFv2 and OSPFv3. | |||
The OSPF Area Leader Sub-TLV is advertised as a top-level TLV of the | The OSPF Area Leader Sub-TLV is advertised as a top-level TLV of the | |||
RI LSA that is defined in [RFC7770] and has the following format: | Router Information (RI) LSA that is defined in [RFC7770] and has the | |||
following format: | ||||
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 | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Priority | Algorithm | Reserved | | | Priority | Algorithm | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Type: TBD4 | Figure 6: OSPF Area Leader Sub-TLV | |||
Length: 4 octets | Type: 17 | |||
Priority: 0-255, unsigned integer | Length: 4 octets | |||
Algorithm: As defined in Section 5.1.1. | Priority: 0-255, unsigned integer | |||
Algorithm: As defined in Section 5.1.1. | ||||
5.2.2. OSPF Dynamic Flooding Sub-TLV | 5.2.2. OSPF Dynamic Flooding Sub-TLV | |||
The usage of the OSPF Dynamic Flooding Sub-TLV is identical to IS-IS | The usage of the OSPF Dynamic Flooding Sub-TLV is identical to that | |||
and is described in Section 5.1.2. | of the IS-IS Dynamic Flooding Sub-TLV described in Section 5.1.2. | |||
The OSPF Dynamic Flooding Sub-TLV is used by both OSPFv2 and OSPFv3. | The OSPF Dynamic Flooding Sub-TLV is used by both OSPFv2 and OSPFv3. | |||
The OSPF Dynamic Flooding Sub-TLV is advertised as a top-level TLV of | The OSPF Dynamic Flooding Sub-TLV is advertised as a top-level TLV of | |||
the RI LSA that is defined in [RFC7770] and has the following format: | the RI LSA that is defined in [RFC7770] and has the following format: | |||
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 | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Algorithm ... | | | | Algorithm ... | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Type: TBD8 | Figure 7: OSPF Dynamic Flooding Sub-TLV | |||
Length: Number of Algorithms | Type: 18 | |||
Algorithm: As defined in Section 5.1.1. | Length: Number of Algorithms in octets | |||
Algorithm: As defined in Section 5.1.1. | ||||
5.2.3. OSPFv2 Dynamic Flooding Opaque LSA | 5.2.3. OSPFv2 Dynamic Flooding Opaque LSA | |||
The OSPFv2 Dynamic Flooding Opaque LSA is only used in centralized | The OSPFv2 Dynamic Flooding Opaque LSA is only used in centralized | |||
mode. | mode. | |||
The OSPFv2 Dynamic Flooding Opaque LSA is used to advertise | The OSPFv2 Dynamic Flooding Opaque LSA is used to advertise | |||
additional data related to dynamic flooding in OSPFv2. OSPFv2 Opaque | additional data related to dynamic flooding in OSPFv2. OSPFv2 Opaque | |||
LSAs are described in [RFC5250]. | LSAs are described in [RFC5250]. | |||
Multiple OSPFv2 Dynamic Flooding Opaque LSAs can be advertised by an | Multiple OSPFv2 Dynamic Flooding Opaque LSAs can be advertised by an | |||
OSPFv2 router. The flooding scope of the OSPFv2 Dynamic Flooding | OSPFv2 router. The flooding scope of the OSPFv2 Dynamic Flooding | |||
Opaque LSA is area-local. | Opaque LSA is area-local. | |||
The format of the OSPFv2 Dynamic Flooding Opaque LSA is as follows: | The format of the OSPFv2 Dynamic Flooding Opaque LSA is as follows: | |||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| LS age | Options | LS Type | | | LS age | Options | LS Type | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| TBD5 | Opaque ID | | | 10 | Opaque ID | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Advertising Router | | | Advertising Router | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| LS sequence number | | | LS sequence number | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| LS checksum | Length | | | LS checksum | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
+- TLVs -+ | +- TLVs -+ | |||
| ... | | | ... | | |||
Figure 1: OSPFv2 Dynamic Flooding Opaque LSA | Figure 8: OSPFv2 Dynamic Flooding Opaque LSA | |||
The opaque type used by OSPFv2 Dynamic Flooding Opaque LSA is TBD. | The opaque type used by OSPFv2 Dynamic Flooding Opaque LSA is 10. | |||
The opaque type is used to differentiate the various types of OSPFv2 | The opaque type is used to differentiate the various types of OSPFv2 | |||
Opaque LSAs as described in section 3 of [RFC5250]. The LS Type is | Opaque LSAs as described in Section 3 of [RFC5250]. The LS Type is | |||
10. The LSA Length field [RFC2328] represents the total length (in | 10. The LSA Length field [RFC2328] represents the total length (in | |||
octets) of the Opaque LSA including the LSA header and all TLVs | octets) of the Opaque LSA including the LSA header and all TLVs | |||
(including padding). | (including padding). | |||
The Opaque ID field is an arbitrary value used to maintain multiple | The Opaque ID field is an arbitrary value used to maintain multiple | |||
Dynamic Flooding Opaque LSAs. For OSPFv2 Dynamic Flooding Opaque | Dynamic Flooding Opaque LSAs. For OSPFv2 Dynamic Flooding Opaque | |||
LSAs, the Opaque ID has no semantic significance other than to | LSAs, the Opaque ID has no semantic significance other than to | |||
differentiate Dynamic Flooding Opaque LSAs originated from the same | differentiate Dynamic Flooding Opaque LSAs originated from the same | |||
OSPFv2 router. | OSPFv2 router. | |||
The format of the TLVs within the body of the OSPFv2 Dynamic Flooding | The format of the TLVs within the body of the OSPFv2 Dynamic Flooding | |||
Opaque LSA is the same as the format used by the Traffic Engineering | Opaque LSA is the same as the format used by the Traffic Engineering | |||
Extensions to OSPF [RFC3630]. | Extensions to OSPF [RFC3630]. | |||
The Length field defines the length of the value portion in octets | The Length field defines the length of the value portion in octets | |||
(thus a TLV with no value portion would have a length of 0). The TLV | (thus a TLV with no value portion would have a length of 0 octets). | |||
is padded to a 4-octet alignment; padding is not included in the | The TLV is padded to a 4-octet alignment; padding is not included in | |||
length field (so a 3-octet value would have a length of 3, but the | the length field (so a 3-octet value would have a length of 3 octets, | |||
total size of the TLV would be 8 octets). Nested TLVs are also | but the total size of the TLV would be 8 octets). Nested TLVs are | |||
32-bit aligned. For example, a 1-octet value would have the length | also 32-bit aligned. For example, a 1-octet value would have the | |||
field set to 1, and 3 octets of padding would be added to the end of | length field set to 1, and 3 octets of padding would be added to the | |||
the value portion of the TLV. The padding is composed of zeros. | end of the value portion of the TLV. The padding is composed of | |||
zeros. | ||||
5.2.4. OSPFv3 Dynamic Flooding LSA | 5.2.4. OSPFv3 Dynamic Flooding LSA | |||
The OSPFv3 Dynamic Flooding Opaque LSA is only used in centralized | The OSPFv3 Dynamic Flooding Opaque LSA is only used in centralized | |||
mode. | mode. | |||
The OSPFv3 Dynamic Flooding LSA is used to advertise additional data | The OSPFv3 Dynamic Flooding LSA is used to advertise additional data | |||
related to dynamic flooding in OSPFv3. | related to dynamic flooding in OSPFv3. | |||
The OSPFv3 Dynamic Flooding LSA has a function code of TBD. The | The OSPFv3 Dynamic Flooding LSA has a function code of 16. The | |||
flooding scope of the OSPFv3 Dynamic Flooding LSA is area-local. The | flooding scope of the OSPFv3 Dynamic Flooding LSA is area-local. The | |||
U bit will be set indicating that the OSPFv3 Dynamic Flooding LSA | U bit will be set indicating that the OSPFv3 Dynamic Flooding LSA | |||
should be flooded even if it is not understood. The Link State ID | should be flooded even if it is not understood. The Link State ID | |||
(LSID) value for this LSA is the Instance ID. OSPFv3 routers MAY | (LSID) value for this LSA is the Instance ID. OSPFv3 routers MAY | |||
advertise multiple OSPFv3 Dynamic Flooding Opaque LSAs in each area. | advertise multiple OSPFv3 Dynamic Flooding Opaque LSAs in each area. | |||
The format of the OSPFv3 Dynamic Flooding LSA is as follows: | The format of the OSPFv3 Dynamic Flooding LSA is as follows: | |||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| LS age |1|0|1| TBD6 | | | LS age |1|0|1| 16 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Link State ID | | | Link State ID | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Advertising Router | | | Advertising Router | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| LS sequence number | | | LS sequence number | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| LS checksum | Length | | | LS checksum | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
+- TLVs -+ | +- TLVs -+ | |||
| ... | | | ... | | |||
Figure 2: OSPFv3 Dynamic Flooding LSA | Figure 9: OSPFv3 Dynamic Flooding LSA | |||
5.2.5. OSPF Area Router ID TLVs | 5.2.5. OSPF Area Router ID TLVs | |||
In OSPF, TLVs are defined to advertise indices associated with nodes | In OSPF, TLVs are defined to advertise indices associated with nodes | |||
and Broadcast/NBMA networks. Due to identifier differences between | and Broadcast / Non-Broadcast Multi-Access (NBMA) networks. Due to | |||
OSPFv2 and OSPFv3, two different TLVs are defined as described in the | identifier differences between OSPFv2 and OSPFv3, two different TLVs | |||
following sub-sections. | are defined as described in the following sub-sections. | |||
The OSPF Area Router ID TLVs are used by the Area Leader to enumerate | The OSPF Area Router ID TLVs are used by the Area Leader to enumerate | |||
the Router IDs that it has used in computing the flooding topology. | the Router IDs that it has used in computing the flooding topology. | |||
This includes the identifiers associated with Broadcast/NBMA networks | This includes the identifiers associated with Broadcast/NBMA networks | |||
as defined for Network LSAs. Conceptually, the Area Leader creates a | as defined for Network LSAs. Conceptually, the Area Leader creates a | |||
list of Router IDs for all routers in the area, assigning an index to | list of Router IDs for all routers in the area and assigns an index | |||
each router, starting with index 0. Indices are implicitly assigned | to each router, starting with index 0. Indices are implicitly | |||
sequentially, with the index of the first node being the Starting | assigned sequentially, with the index of the first node being the | |||
Index and each subsequent node's index is the previous node's index + | Starting Index and each subsequent node's index is the previous | |||
1. | node's index + 1. | |||
5.2.5.1. OSPFv2 Area Router ID TLV | 5.2.5.1. OSPFv2 Area Router ID TLV | |||
This TLV is a top-level TLV of the OSPFv2 Dynamic Flooding Opaque | This TLV is a top-level TLV of the OSPFv2 Dynamic Flooding Opaque | |||
LSA. | LSA. | |||
Because the space in a single OSPFv2 opaque LSA is limited, more than | Because the space in a single OSPFv2 opaque LSA is limited, more than | |||
one LSA may be required to encode all of the Router IDs in the area. | one LSA may be required to encode all of the Router IDs in the area. | |||
This TLV MAY be advertised in multiple OSPFv2 Dynamic Flooding Opaque | This TLV MAY be advertised in multiple OSPFv2 Dynamic Flooding Opaque | |||
LSAs so that all Router IDs can be advertised. | LSAs so that all Router IDs can be advertised. | |||
The format of the Area Router IDs TLV is: | The OSPFv2 Area Router IDs TLV has the following format: | |||
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 | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Starting Index |L| Flags | Reserved | | | Starting Index |L| Flags | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
+- OSPFv2 Router ID TLV Entry -+ | +- OSPFv2 Router ID TLV Entry -+ | |||
| ... | | | ... | | |||
Figure 3: OSPFv2 Area Router IDs TLV | Figure 10: OSPFv2 Area Router IDs TLV | |||
TLV Type: 1 | Type: 1 | |||
TLV Length: 4 + sum of the lengths of all TLV entries | Length: 4 + sum of the lengths of all TLV entries in octets | |||
Starting index: The index of the first Router/Designated Router ID | Starting Index: The index of the first Router/Designated Router ID | |||
that appears in this TLV. | that appears in this TLV. | |||
L (Last): This bit is set if the index of the last Router/ | L (Last): This bit is set if the index of the last Router/Designated | |||
Designated ID that appears in this TLV is equal to the last index | Router ID that appears in this TLV is equal to the last index in | |||
in the full list of Router IDs for the area. | the full list of Router IDs for the area. | |||
OSPFv2 Router ID TLV Entries: A concatenated list of Router ID TLV | OSPFv2 Router ID TLV Entries: A concatenated list of Router ID TLV | |||
Entries for the area. | Entries for the area. | |||
If there are multiple OSPFv2 Area Router ID TLVs with the L-bit set | If multiple OSPFv2 Area Router ID TLVs with the L bit set are | |||
advertised by the same router, the TLV which specifies the smaller | advertised by the same router, the TLV that specifies the smaller | |||
maximum index is used and the other TLV(s) with L-bit set are | maximum index is used and the other TLVs with L bit set are ignored. | |||
ignored. TLVs which specify Router IDs with indices greater than | TLVs that specify Router IDs with indices greater than that specified | |||
that specified by the TLV with the L-bit set are also ignored. | by the TLV with the L bit set are also ignored. | |||
Each entry in the OSPFv2 Area Router IDs TLV represents either a node | Each entry in the OSPFv2 Area Router IDs TLV represents either a node | |||
or a Broadcast/NBMA network identifier. An entry has the following | or a Broadcast/NBMA network identifier. An entry has the following | |||
format: | format: | |||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ID Type | Number of IDs | Reserved | | | ID Type | Number of IDs | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
+- Originating Router ID/DR Address -+ | +- Originating Router ID/DR Address -+ | |||
| ... | | | ... | | |||
Figure 4: OSPFv2 Router IDs TLV Entry | Figure 11: OSPFv2 Router IDs TLV Entry | |||
ID Type: 1 octet. The following values are defined: | ID Type: 1 octet. The following values are defined: | |||
- 1 - Router | 1: Router | |||
- 2 - Designated Router | 2: Designated Router | |||
Number of IDs: 2 octets | Number of IDs: 2 octets | |||
Reserved: 1 octet, MUST be transmitted as 0 and MUST be ignored on | Reserved: 1 octet. MUST be transmitted as 0 and MUST be ignored on | |||
receipt | receipt. | |||
Originating Router ID/DR Address:(4 * Number of IDs) octets as | Originating Router ID/DR Address: (4 * Number of IDs) octets as | |||
indicated by the ID Type | indicated by the ID Type. | |||
5.2.5.2. OSPFv3 Area Router ID TLV | 5.2.5.2. OSPFv3 Area Router ID TLV | |||
This TLV is a top-level TLV of the OSPFv3 Dynamic Flooding LSA. | This TLV is a top-level TLV of the OSPFv3 Dynamic Flooding LSA. | |||
Because the space in a single OSPFv3 Dynamic Flooding LSA is limited, | Because the space in a single OSPFv3 Dynamic Flooding LSA is limited, | |||
more than one LSA may be required to encode all of the Router IDs in | more than one LSA may be required to encode all of the Router IDs in | |||
the area. This TLV MAY be advertised in multiple OSPFv3 Dynamic | the area. This TLV MAY be advertised in multiple OSPFv3 Dynamic | |||
Flooding Opaque LSAs so that all Router IDs can be advertised. | Flooding Opaque LSAs so that all Router IDs can be advertised. | |||
The format of the OSPFv3 Area Router IDs TLV is: | The OSPFv3 Area Router IDs TLV has the following format: | |||
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 | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Starting Index |L| Flags | Reserved | | | Starting Index |L| Flags | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
+- OSPFv3 Router ID TLV Entry -+ | +- OSPFv3 Router ID TLV Entry -+ | |||
| ... | | | ... | | |||
Figure 5: OSPFv3 Area Router IDs TLV | Figure 12: OSPFv3 Area Router IDs TLV | |||
TLV Type: 1 | Type: 1 | |||
TLV Length: 4 + sum of the lengths of all TLV entries | Length: 4 + sum of the lengths of all TLV entries in octets | |||
Starting index: The index of the first Router/Designated Router ID | Starting Index: The index of the first Router/Designated Router ID | |||
that appears in this TLV. | that appears in this TLV. | |||
L (Last): This bit is set if the index of the last Router/ | L (Last): This bit is set if the index of the last Router/Designated | |||
Designated Router ID that appears in this TLV is equal to the last | Router ID that appears in this TLV is equal to the last index in | |||
index in the full list of Router IDs for the area. | the full list of Router IDs for the area. | |||
OSPFv3 Router ID TLV Entries: A concatenated list of Router ID TLV | OSPFv3 Router ID TLV Entries: A concatenated list of Router ID TLV | |||
Entries for the area. | Entries for the area. | |||
If there are multiple OSPFv3 Area Router ID TLVs with the L-bit set | If multiple OSPFv3 Area Router ID TLVs with the L bit set are | |||
advertised by the same router, the TLV which specifies the smaller | advertised by the same router the TLV that specifies the smaller | |||
maximum index is used and the other TLV(s) with L-bit set are | maximum index is used and the other TLVs with L bit set are ignored. | |||
ignored. TLVs which specify Router IDs with indices greater than | TLVs that specify Router IDs with indices greater than that specified | |||
that specified by the TLV with the L-bit set are also ignored. | by the TLV with the L bit set are also ignored. | |||
Each entry in the OSPFv3 Area Router IDs TLV represents either a | Each entry in the OSPFv3 Area Router IDs TLV represents either a | |||
router or a Broadcast/NBMA network identifier. An entry has the | router or a Broadcast/NBMA network identifier. An entry has the | |||
following format: | following format: | |||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ID Type | Number of IDs | Reserved | | | ID Type | Number of IDs | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
+- Originating ID Entry -+ | +- Originating ID Entry -+ | |||
| ... | | | ... | | |||
Figure 6: OSPFv3 Router ID TLV Entry | Figure 13: OSPFv3 Router ID TLV Entry | |||
ID Type - 1 octet. The following values are defined: | ID Type: 1 octet. The following values are defined: | |||
- 1 - Router | 1: Router | |||
- 2 - Designated Router | 2: Designated Router | |||
Number of IDs - 2 octets | Number of IDs: 2 octets | |||
Reserved - 1 octet, MUST be transmitted as 0 and MUST be ignored | Reserved: 1 octet. MUST be transmitted as 0 and MUST be ignored on | |||
on receipt | receipt. | |||
The Originating ID Entry takes one of the following forms, depending | The Originating ID Entry takes one of the following forms, depending | |||
on the ID Type. | on the ID Type. | |||
For a Router: | For a Router: | |||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Originating Router ID | | | Originating Router ID | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
The length of the Originating ID Entry is (4 * Number of IDs) octets. | The length of the Originating ID Entry is (4 * Number of IDs) octets. | |||
For a Designated Router: | For a Designated Router: | |||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Originating Router ID | | | Originating Router ID | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Interface ID | | | Interface ID | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
The length of the Originating ID Entry is (8 * Number of IDs) octets | The length of the Originating ID Entry is (8 * Number of IDs) octets. | |||
5.2.6. OSPF Flooding Path TLV | 5.2.6. OSPF Flooding Path TLV | |||
The OSPF Flooding Path TLV is a top-level TLV of the OSPFv2 Dynamic | The OSPF Flooding Path TLV is a top-level TLV of the OSPFv2 Dynamic | |||
Flooding Opaque LSAs and OSPFv3 Dynamic Flooding LSA. | Flooding Opaque LSAs and OSPFv3 Dynamic Flooding LSA. | |||
The usage of the OSPF Flooding Path TLV is identical to IS-IS and is | The usage of the OSPF Flooding Path TLV is identical to that of the | |||
described in Section 5.1.4. | IS-IS Flooding Path TLV described in Section 5.1.4. | |||
The OSPF Flooding Path TLV contains a list of Router ID indices | The OSPF Flooding Path TLV contains a list of Router ID indices | |||
relative to the Router IDs advertised through the OSPF Area Router | relative to the Router IDs advertised through the OSPF Area Router | |||
IDs TLV. At least 2 indices must be included in the TLV. | IDs TLV. At least 2 indices must be included in the TLV. | |||
Multiple OSPF Flooding Path TLVs can be advertised in a single OSPFv2 | Multiple OSPF Flooding Path TLVs can be advertised in a single OSPFv2 | |||
Dynamic Flooding Opaque LSA or OSPFv3 Dynamic Flooding LSA. OSPF | Dynamic Flooding Opaque LSA or OSPFv3 Dynamic Flooding LSA. OSPF | |||
Flooding Path TLVs can also be advertised in multiple OSPFv2 Dynamic | Flooding Path TLVs can also be advertised in multiple OSPFv2 Dynamic | |||
Flooding Opaque LSAs or OSPFv3 Dynamic Flooding LSA, if they all can | Flooding Opaque LSAs or OSPFv3 Dynamic Flooding LSAs if they all | |||
not fit in a single LSA. | cannot fit in a single LSA. | |||
The Flooding Path TLV has the format: | The OSPF Flooding Path TLV has the following format: | |||
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 | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Starting Index | Index 2 | | | Starting Index | Index 2 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
+- Additional Indices -+ | +- Additional Indices -+ | |||
| ... | | | ... | | |||
Figure 7: OSPF Flooding Path TLV | Figure 14: OSPF Flooding Path TLV | |||
TLV Type: 2 | Type: 2 | |||
TLV Length: 2 * (number of indices in the path) | Length: 2 * (number of indices in the path) in octets | |||
Starting index: The index of the first Router ID in the path. | Starting Index: The index of the first Router ID in the path. | |||
Index 2: The index of the next Router ID in the path. | Index 2: The index of the next Router ID in the path. | |||
Additional indices (optional): A sequence of additional indices to | Additional indices (optional): A sequence of additional indices to | |||
Router IDs along the path. | Router IDs along the path. | |||
5.2.7. OSPF Flooding Request Bit | 5.2.7. OSPF Flooding Request Bit | |||
A single new option bit, the Flooding Request (FR) bit, is defined in | A single new option bit, the Flooding Request (FR) bit, is defined in | |||
the LLS Type 1 Extended Options and Flags field [RFC5613]. The FR | the LLS Type 1 Extended Options and Flags field [RFC5613]. The FR | |||
bit allows a router to request an adjacent node to enable flooding | bit allows a router to request an adjacent node to enable flooding | |||
towards it on a specific link in the case where the connection to the | towards it on a specific link in the case where the connection to the | |||
adjacent node is not part of the current flooding topology. | adjacent node is not part of the current flooding topology. | |||
A node that supports Dynamic Flooding MAY include the FR bit in its | A node that supports dynamic flooding MAY include the FR bit in its | |||
OSPF LLS Extended Options and Flags TLV. | OSPF LLS Extended Options and Flags TLV. | |||
If the FR bit is signaled for a link on which flooding was disabled | If the FR bit is signaled for a link on which flooding was disabled | |||
due to Dynamic Flooding, then flooding MUST be temporarily enabled | due to dynamic flooding, then flooding MUST be temporarily enabled | |||
over the link. Flooding MUST be enabled until the FR bit is no | over the link. Flooding MUST be enabled until the FR bit is no | |||
longer advertised in the OSPF LLS Extended Options and Flags TLV or | longer advertised in the OSPF LLS Extended Options and Flags TLV or | |||
the OSPF LLS Extended Options and Flags TLV no longer appear in the | the OSPF LLS Extended Options and Flags TLV no longer appears in the | |||
OSPF Hellos. | OSPF Hellos. | |||
When flooding is temporarily enabled on the link for any area due to | When flooding is temporarily enabled on the link for any area due to | |||
receiving the FR bit in the OSPF LLS Extended Options and Flags TLV, | receiving the FR bit in the OSPF LLS Extended Options and Flags TLV, | |||
the receiver MUST perform standard database synchronization for the | the receiver MUST perform standard database synchronization for the | |||
area corresponding to the link. If the adjacency is already in the | area corresponding to the link. If the adjacency is already in the | |||
FULL state, the mechanism specified in [RFC4811] MUST be used for | FULL state, the mechanism specified in [RFC4811] MUST be used for | |||
database resynchronization. | database resynchronization. | |||
So long as the FR bit is being received in the OSPF LLS Extended | So long as the FR bit is being received in the OSPF LLS Extended | |||
Options and Flags TLV for a link, flooding MUST NOT be disabled on | Options and Flags TLV for a link, flooding MUST NOT be disabled on | |||
the link even if the connection between the neighbors is removed from | the link, even if the connection between the neighbors is removed | |||
the flooding topology. Flooding MUST continue on the link and be | from the flooding topology. Flooding MUST continue on the link and | |||
considered as temporarily enabled. | be considered as temporarily enabled. | |||
5.2.8. OSPF LEEF Advertisement | 5.2.8. OSPF LEEF Advertisement | |||
In support of advertising the specific edges that are currently | In support of advertising the specific edges that are currently | |||
enabled in the flooding topology, an implementation MAY indicate that | enabled in the flooding topology, an implementation MAY indicate that | |||
a link is part of the flooding topology. The OSPF Link Attributes | a link is part of the flooding topology. The OSPF Link Attributes | |||
Bits TLV is defined to support this advertisement. | Bits TLV is defined to support this advertisement. | |||
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 | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Link Attribute Bits | | | Link Attribute Bits | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
+- Additional Link Attribute Bits -+ | +- Additional Link Attribute Bits -+ | |||
| ... | | | ... | | |||
Figure 8: OSPF Link Attributes Bits TLV | Figure 15: OSPF Link Attributes Bits TLV | |||
Type: TBD and specific to OSPFv2 and OSPFv3 | Type: 21 (for OSPFv2) or 10 (for OSPFv3) | |||
Length: Size of the Link Attribute Bits in octets. It MUST be a | Length: Size of the Link Attribute Bits in octets. It MUST be a | |||
multiple of 4 octets. | multiple of 4 octets. | |||
The following bits are defined: | The following bits are defined: | |||
Bit #0: - Local Edge Enabled for Flooding (LEEF) | Bit #0: Local Edge Enabled for Flooding (LEEF) | |||
OSPF Link-attribute Bits TLV appears as: | OSPF Link-attribute Bits TLV appears as: | |||
1. A sub-TLV of the OSPFv2 Extended Link TLV [RFC7684] | 1. A sub-TLV of the OSPFv2 Extended Link TLV [RFC7684]. | |||
2. A sub-TLV of the OSPFv3 Router-Link TLV [RFC8362] | 2. A sub-TLV of the OSPFv3 Router-Link TLV [RFC8362]. | |||
6. Behavioral Specification | 6. Behavioral Specification | |||
This section specifies the detailed behavior of the nodes | This section specifies the detailed behavior of the nodes | |||
participating in the IGP. | participating in the IGP. | |||
6.1. Terminology | 6.1. Terminology | |||
Some terminology to be used in the following sections: | Some terminology to be used in the following sections: | |||
A node is considered reachable if it is part of the connected | Reachable: A node is considered reachable if it is part of the | |||
network graph. Note that this is independent of any constraints | connected network graph. Note that this is independent of any | |||
that may be considered when performing IGP shortest-path tree | constraints that may be considered when performing IGP shortest- | |||
calculation (e.g., link metrics, overload bit state, etc.). The | path tree calculation, e.g., link metrics, overload bit state, | |||
two-way connectivity check MUST be performed before including an | etc. The two-way connectivity check MUST be performed before | |||
edge in the connected network graph. | including an edge in the connected network graph. | |||
A node is connected to the flooding topology, if it has at least | Connected: A node is connected to the flooding topology if it has at | |||
one local link, which is part of the flooding topology. | least one local link, which is part of the flooding topology. | |||
A node is disconnected from the flooding topology when it is not | Disconnected: A node is disconnected from the flooding topology when | |||
connected to the flooding topology. | it is not connected to the flooding topology. | |||
Current flooding topology - The latest version of the flooding | Current flooding topology: The latest version of the flooding | |||
topology that has been received (in the case of centralized mode) | topology that has been received (in the case of centralized mode) | |||
or calculated locally (in the case of distributed mode). | or calculated locally (in the case of distributed mode). | |||
6.2. Flooding Topology | 6.2. Flooding Topology | |||
The flooding topology MUST include all reachable nodes in the area. | The flooding topology MUST include all reachable nodes in the area. | |||
If a node's reachability changes, the flooding topology MUST be | If a node's reachability changes, the flooding topology MUST be | |||
recalculated. In centralized mode, the Area Leader MUST advertise a | recalculated. In centralized mode, the Area Leader MUST advertise a | |||
new flooding topology. | new flooding topology. | |||
If a node becomes disconnected from the current flooding topology but | If a node becomes disconnected from the current flooding topology but | |||
is still reachable, then a new flooding topology MUST be calculated. | is still reachable, then a new flooding topology MUST be calculated. | |||
In centralized mode, the Area Leader MUST advertise the new flooding | In centralized mode, the Area Leader MUST advertise the new flooding | |||
topology. | topology. | |||
The flooding topology SHOULD be bi-connected to provide network | The flooding topology SHOULD be biconnected to provide network | |||
resiliency, but this does incur some amount of redundant flooding. | resiliency, but this does incur some amount of redundant flooding. | |||
Xia topologies (Section 4.4.2) are an example of an explicit decision | Xia topologies (Section 4.4.2) are an example of an explicit decision | |||
to sacrifice resiliency to avoid redundancy. | to sacrifice resiliency to avoid redundancy. | |||
6.3. Leader Election | 6.3. Leader Election | |||
Any capable node MAY advertise its eligibility to become the Area | Any capable node MAY advertise its eligibility to become the Area | |||
Leader. | Leader. | |||
Nodes that are not reachable are not eligible to become the Area | Nodes that are not reachable are not eligible to become the Area | |||
Leader. Nodes that do not advertise their eligibility to become the | Leader. Nodes that do not advertise their eligibility to become the | |||
Area Leader are not eligible. Amongst the eligible nodes, the node | Area Leader are not eligible. Amongst the eligible nodes, the node | |||
with the numerically highest priority is the Area Leader. If | with the numerically highest priority is the Area Leader. If | |||
multiple nodes all have the highest priority, then the node with the | multiple nodes all have the highest priority, then the node with the | |||
numerically highest system identifier in the case of IS-IS, or | numerically highest system identifier (in the case of IS-IS) or | |||
Router-ID in the case of OSPFv2 and OSPFv3 is the Area Leader. | Router ID (in the case of OSPFv2 and OSPFv3) is the Area Leader. | |||
6.4. Area Leader Responsibilities | 6.4. Area Leader Responsibilities | |||
If the Area Leader operates in centralized mode, it MUST advertise | If the Area Leader operates in centralized mode, it MUST advertise | |||
algorithm 0 in its Area Leader Sub-TLV. For Dynamic Flooding to be | algorithm 0 in its Area Leader Sub-TLV. For dynamic flooding to be | |||
enabled, it also MUST compute and advertise a flooding topology for | enabled, it also MUST compute and advertise a flooding topology for | |||
the area. The Area Leader may update the flooding topology at any | the area. The Area Leader may update the flooding topology at any | |||
time, however, it should not destabilize the network with undue or | time. However, it should not destabilize the network with undue or | |||
overly frequent topology changes. If the Area Leader operates in | overly frequent topology changes. If the Area Leader operates in | |||
centralized mode and needs to advertise a new flooding topology, it | centralized mode and needs to advertise a new flooding topology, it | |||
floods the new flooding topology on both the new and old flooding | floods the new flooding topology on both the new and old flooding | |||
topologies. | topologies. | |||
If the Area Leader operates in distributed mode, it MUST advertise a | If the Area Leader operates in distributed mode, it MUST advertise a | |||
non-zero algorithm in its Area Leader Sub-TLV. | nonzero algorithm in its Area Leader Sub-TLV. | |||
When the Area Leader advertises algorithm 0 in its Area Leader Sub- | When the Area Leader advertises algorithm 0 in its Area Leader Sub- | |||
TLV and does not advertise a flooding topology, Dynamic Flooding is | TLV and does not advertise a flooding topology, dynamic flooding is | |||
disabled for the area. Note this applies whether the Area Leader | disabled for the area. Note this applies whether the Area Leader | |||
intends to operate in centralized mode or distributed mode. | intends to operate in centralized mode or distributed mode. | |||
Note that once Dynamic Flooding is enabled, disabling it risks | Note that once dynamic flooding is enabled, disabling it risks | |||
destabilizing the network due to the issues discussed in Section 1. | destabilizing the network due to the issues discussed in Section 1. | |||
6.5. Distributed Flooding Topology Calculation | 6.5. Distributed Flooding Topology Calculation | |||
If the Area Leader advertises a non-zero algorithm in its Area Leader | If the Area Leader advertises a nonzero algorithm in its Area Leader | |||
Sub-TLV, all nodes in the area that support Dynamic Flooding and | Sub-TLV, all nodes in the area that support dynamic flooding and | |||
support the algorithm advertised by the Area Leader MUST compute the | support the algorithm advertised by the Area Leader MUST compute the | |||
flooding topology based on the Area Leader's advertised algorithm. | flooding topology based on the Area Leader's advertised algorithm. | |||
Nodes that do not support the advertised algorithm MUST continue to | Nodes that do not support the advertised algorithm MUST continue to | |||
use standard IS-IS/OSPF flooding mechanisms. Nodes that do not | use standard IS-IS/OSPF flooding mechanisms. Nodes that do not | |||
support the flooding algorithm advertised by the Area Leader MUST be | support the flooding algorithm advertised by the Area Leader MUST be | |||
considered as Dynamic Flooding incapable nodes by the Area Leader. | considered as dynamic flooding incapable nodes by the Area Leader. | |||
If the value of the algorithm advertised by the Area Leader is from | If the value of the algorithm advertised by the Area Leader is from | |||
the range 128-254 (private distributed algorithms), it is the | the range 128-254 (private distributed algorithms), it is the | |||
responsibility of the network operator to guarantee that all nodes in | responsibility of the network operator to guarantee that all nodes in | |||
the area agree on the dynamic flooding algorithm corresponding to the | the area agree on the dynamic flooding algorithm corresponding to the | |||
advertised value. | advertised value. | |||
6.6. Use of LANs in the Flooding Topology | 6.6. Use of LANs in the Flooding Topology | |||
The use of LANs in the flooding topology differs depending on whether | The use of LANs in the flooding topology differs depending on whether | |||
the area is operating in centralized mode or distributed mode. | the area is operating in centralized mode or distributed mode. | |||
6.6.1. Use of LANs in Centralized mode | 6.6.1. Use of LANs in Centralized Mode | |||
As specified in Section 4.5, when a LAN is advertised as part of the | As specified in Section 4.5, when a LAN is advertised as part of the | |||
flooding topology, all nodes connected to the LAN are assumed to be | flooding topology, all nodes connected to the LAN are assumed to be | |||
using the LAN as part of the flooding topology. This assumption is | using the LAN as part of the flooding topology. This assumption is | |||
made to reduce the size of the Flooding Topology advertisement. | made to reduce the size of the flooding topology advertisement. | |||
6.6.2. Use of LANs in Distributed Mode | 6.6.2. Use of LANs in Distributed Mode | |||
In distributed mode, the flooding topology is NOT advertised, | In distributed mode, the flooding topology is NOT advertised; thus, | |||
therefore the space consumed to advertise it is not a concern. It is | the space consumed to advertise it is not a concern. Therefore, it | |||
therefore possible to assign only a subset of the nodes connected to | is possible to assign only a subset of the nodes connected to the LAN | |||
the LAN to use the LAN as part of the flooding topology. Doing so | to use the LAN as part of the flooding topology. Doing so may | |||
may further optimize flooding by reducing the amount of redundant | further optimize flooding by reducing the amount of redundant | |||
flooding on a LAN. However, support of flooding by a subset of the | flooding on a LAN. However, support of flooding by a subset of the | |||
nodes connected to a LAN requires some modest, but backward- | nodes connected to a LAN requires some modest but backward-compatible | |||
compatible, changes in the way flooding is performed on a LAN. | changes in the way flooding is performed on a LAN. | |||
6.6.2.1. Partial flooding on a LAN in IS-IS | 6.6.2.1. Partial Flooding on a LAN in IS-IS | |||
The Designated Intermediate System (DIS) for a LAN MUST use the | The Designated Intermediate System (DIS) for a LAN MUST use the | |||
standard flooding behavior. | standard flooding behavior. | |||
Non-DIS nodes whose connection to the LAN is included in the flooding | Non-DIS nodes whose connection to the LAN is included in the flooding | |||
topology MUST use the standard flooding behavior. | topology MUST use the standard flooding behavior. | |||
Non-DIS nodes whose connection to the LAN is NOT included in the | Non-DIS nodes whose connection to the LAN is NOT included in the | |||
flooding topology behave as follows: | flooding topology behave as follows: | |||
* Received CSNPs from the DIS are ignored. | * Received CSNPs from the DIS are ignored. | |||
* Partial Sequence Number Protocol Data Units (PSNPs) are NOT | * Partial Sequence Number PDUs (PSNPs) are NOT originated on the | |||
originated on the LAN. | LAN. | |||
* An LSP received on the LAN that is newer than the corresponding | * An LSP that is received on the LAN and is newer than the | |||
LSP present in the LSPDB is retained and flooded on all local | corresponding LSP present in the Link State PDU Database (LSPDB) | |||
circuits which are part of the flooding topology (i.e., do not | is retained and flooded on all local circuits that are part of the | |||
discard newer LSPs simply because they were received on a LAN | flooding topology (i.e., do not discard newer LSPs simply because | |||
which the receiving node is not using for flooding). | they were received on a LAN that the receiving node is not using | |||
for flooding). | ||||
* An LSP received on the LAN which is older or the same as the | * An LSP received on the LAN that is older or the same as the | |||
corresponding LSP in the LSPDB is silently discarded. | corresponding LSP in the LSPDB is silently discarded. | |||
* LSPs received on links other than the LAN are NOT flooded on the | * LSPs received on links other than the LAN are NOT flooded on the | |||
LAN. | LAN. | |||
NOTE: If any node connected to the LAN requests the enablement of | NOTE: If any node connected to the LAN requests the enablement of | |||
temporary flooding, all nodes MUST revert to the standard flooding | temporary flooding, all nodes MUST revert to the standard flooding | |||
behavior on the LAN. | behavior on the LAN. | |||
6.6.2.2. Partial Flooding on a LAN in OSPF | 6.6.2.2. Partial Flooding on a LAN in OSPF | |||
skipping to change at page 32, line 44 ¶ | skipping to change at line 1508 ¶ | |||
* LSAs received on the LAN are acknowledged to the DR/BDR. | * LSAs received on the LAN are acknowledged to the DR/BDR. | |||
* LSAs received on interfaces other than the LAN are NOT flooded on | * LSAs received on interfaces other than the LAN are NOT flooded on | |||
the LAN. | the LAN. | |||
NOTE: If any node connected to the LAN requests the enablement of | NOTE: If any node connected to the LAN requests the enablement of | |||
temporary flooding, all nodes revert to the standard flooding | temporary flooding, all nodes revert to the standard flooding | |||
behavior. | behavior. | |||
NOTE: The sending of LSA Acks by nodes NOT using the LAN as part of | NOTE: The sending of LSA Acknowledgements by nodes NOT using the LAN | |||
the flooding topology eliminates the need for changes on the part of | as part of the flooding topology eliminates the need for changes on | |||
the DR/BDR, which might include nodes that do not support the dynamic | the part of the DR/BDR, which might include nodes that do not support | |||
flooding algorithm. | the dynamic flooding algorithm. | |||
6.7. Flooding Behavior | 6.7. Flooding Behavior | |||
Nodes that support Dynamic Flooding MUST use the flooding topology | Nodes that support dynamic flooding MUST use the flooding topology | |||
for flooding when possible, and MUST NOT revert to standard flooding | for flooding when possible and MUST NOT revert to standard flooding | |||
when a valid flooding topology is available. | when a valid flooding topology is available. | |||
In some cases, a node that supports Dynamic Flooding may need to add | In some cases, a node that supports dynamic flooding may need to add | |||
a local link(s) to the flooding topology temporarily, even though the | local links to the flooding topology temporarily, even though the | |||
link(s) is not part of the calculated flooding topology. This is | links are not part of the calculated flooding topology. This is | |||
termed "temporary flooding" and is discussed in Section 6.8.1. | termed "temporary flooding" and is discussed in Section 6.8.1. | |||
In distributed mode, the flooding topology is calculated locally. In | In distributed mode, the flooding topology is calculated locally. In | |||
centralized mode, the flooding topology is advertised in the area | centralized mode, the flooding topology is advertised in the area | |||
link state database. Received link state updates, whether received | LSDB. Received link-state updates, whether received on a link that | |||
on a link that is in the flooding topology or on a link that is not | is in the flooding topology or on a link that is not in the flooding | |||
in the flooding topology, MUST be flooded on all links that are in | topology, MUST be flooded on all links that are in the flooding | |||
the flooding topology, except for the link on which the update was | topology except for the link on which the update was received. | |||
received. | ||||
In centralized mode, new information in the form of new paths or new | In centralized mode, new information in the form of new paths or new | |||
node ID assignments can be received at any time. This may replace | node ID assignments can be received at any time. This may replace | |||
some or all of the existing information about the flooding topology. | some or all of the existing information about the flooding topology. | |||
There may be transient conditions where the information that a node | There may be transient conditions where the information that a node | |||
has is inconsistent or incomplete. If a node detects that its | has is inconsistent or incomplete. If a node detects that its | |||
current information is inconsistent, then the node may wait for an | current information is inconsistent, then the node may wait for an | |||
implementation-specific amount of time, expecting more information to | implementation-specific amount of time, expecting more information to | |||
arrive that will provide a consistent, complete view of the flooding | arrive that will provide a consistent, complete view of the flooding | |||
topology. | topology. | |||
skipping to change at page 33, line 46 ¶ | skipping to change at line 1553 ¶ | |||
should add those and begin flooding on those adjacencies immediately. | should add those and begin flooding on those adjacencies immediately. | |||
If a node determines that adjacencies are to be removed from the | If a node determines that adjacencies are to be removed from the | |||
flooding topology, then it should wait for an implementation-specific | flooding topology, then it should wait for an implementation-specific | |||
amount of time before acting on that information. This serves to | amount of time before acting on that information. This serves to | |||
ensure that new information is flooded promptly and completely, | ensure that new information is flooded promptly and completely, | |||
allowing all nodes to receive updates in a timely fashion. | allowing all nodes to receive updates in a timely fashion. | |||
6.8. Treatment of Topology Events | 6.8. Treatment of Topology Events | |||
This section explicitly considers a variety of different topological | This section explicitly considers a variety of different topological | |||
events in the network and how Dynamic Flooding should address them. | events in the network and how dynamic flooding should address them. | |||
6.8.1. Temporary Addition of Links to the Flooding Topology | 6.8.1. Temporary Addition of Links to the Flooding Topology | |||
In some cases, a node that supports Dynamic Flooding may need to add | ||||
a local link(s) to the flooding topology temporarily, even though the | ||||
link(s) is not part of the calculated flooding topology. This is | ||||
referred to as "temporary flooding" on the link. | ||||
When temporary flooding is enabled on the link, the flooding needs to | When temporary flooding is enabled on the link, the flooding needs to | |||
be enabled in both directions on the link. To achieve that, the | be enabled in both directions. To achieve that, the following steps | |||
following steps MUST be performed: | MUST be performed: | |||
The Link State Database needs to be re-synchronised on the link. | * The LSDB needs to be resynchronised on the link. This is done | |||
This is done using the standard protocol mechanisms. In the case | using the standard protocol mechanisms. In the case of IS-IS, | |||
of IS-IS, this results in setting the SRM bit for all LSPs on the | this results in setting the SRM bit for all LSPs on the circuit | |||
circuit and sending a complete set of CSNPs on the link. In OSPF, | and sending a complete set of CSNPs on the link. In OSPF, the | |||
the mechanism specified in [RFC4811] is used. | mechanism specified in [RFC4811] is used. | |||
Flooding is enabled locally on the link. | * Flooding is enabled locally on the link. | |||
Flooding is requested from the neighbor using the mechanism | * Flooding is requested from the neighbor using the mechanism | |||
specified in section Section 5.1.5 or Section 5.2.7. | specified in Sections 5.1.5 or 5.2.7. | |||
The request for temporary flooding MUST be withdrawn on the link when | The request for temporary flooding MUST be withdrawn on the link when | |||
all of the following conditions are met: | all of the following conditions are met: | |||
The node itself is connected to the current flooding topology. | * The node itself is connected to the current flooding topology. | |||
The adjacent node is connected to the current flooding topology. | * The adjacent node is connected to the current flooding topology. | |||
Any change in the flooding topology MUST result in an evaluation of | Any change in the flooding topology MUST result in an evaluation of | |||
the above conditions for any link on which temporary flooding was | the above conditions for any link on which temporary flooding was | |||
enabled. | enabled. | |||
Temporary flooding is stopped on the link when both adjacent nodes | Temporary flooding is stopped on the link when both adjacent nodes | |||
stop requesting temporary flooding on the link. | stop requesting temporary flooding on the link. | |||
6.8.2. Local Link Addition | 6.8.2. Local Link Addition | |||
If a local link is added to the topology, the protocol will form a | If a local link is added to the topology, the protocol will form a | |||
normal adjacency on the link and update the appropriate link state | normal adjacency on the link and update the appropriate LSAs for the | |||
advertisements for the nodes on either end of the link. These link | nodes on either end of the link. These link state updates will be | |||
state updates will be flooded on the flooding topology. | flooded on the flooding topology. | |||
In centralized mode, the Area Leader, upon receiving these updates, | In centralized mode, the Area Leader may choose to retain the | |||
may choose to retain the existing flooding topology or may choose to | existing flooding topology or modify the flooding topology upon | |||
modify the flooding topology. If the Area Leader decides to change | receiving these updates. If the Area Leader decides to change the | |||
the flooding topology, it will update the flooding topology in the | flooding topology, it will update the flooding topology in the LSDB | |||
link state database and flood it using the new flooding topology. | and flood it using the new flooding topology. | |||
In distributed mode, any change in the topology, including the link | In distributed mode, any change in the topology, including the link | |||
addition, MUST trigger the flooding topology recalculation. This is | addition, MUST trigger the flooding topology recalculation. This is | |||
done to ensure that all nodes converge to the same flooding topology, | done to ensure that all nodes converge to the same flooding topology, | |||
regardless of the time of the calculation. | regardless of the time of the calculation. | |||
Temporary flooding MUST be enabled on the newly added local link, as | Temporary flooding MUST be enabled on the newly added local link as | |||
long as at least one of the following conditions are met: | long as at least one of the following conditions are met: | |||
The node on which the local link was added is not connected to the | * The node on which the local link was added is not connected to the | |||
current flooding topology. | current flooding topology. | |||
The new adjacent node is not connected to the current flooding | * The new adjacent node is not connected to the current flooding | |||
topology. | topology. | |||
Note that in this case there is no need to perform a database | Note that in this case there is no need to perform a database | |||
synchronization as part of the enablement of the temporary flooding, | synchronization as part of the enablement of the temporary flooding | |||
because it was part of the adjacency bring-up itself. | because it was part of the adjacency bring-up itself. | |||
If multiple local links are added to the topology before the flooding | If multiple local links are added to the topology before the flooding | |||
topology is updated, temporary flooding MUST be enabled on a subset | topology is updated, temporary flooding MUST be enabled on a subset | |||
of these links per the conditions discussed in Section 6.8.12. | of these links per the conditions discussed in Section 6.8.12. | |||
6.8.3. Node Addition | 6.8.3. Node Addition | |||
If a node is added to the topology, then at least one link is also | If a node is added to the topology, then at least one link is also | |||
added to the topology. Section 6.8.2 applies. | added to the topology. Section 6.8.2 applies. | |||
A node that has a large number of neighbors is at risk of introducing | A node that has a large number of neighbors is at risk of introducing | |||
a local flooding storm if all neighbors are brought up at once and | a local flooding storm if all neighbors are brought up at once and | |||
temporary flooding is enabled on all links simultaneously. The most | temporary flooding is enabled on all links simultaneously. The most | |||
robust way to address this is to limit the rate of initial adjacency | robust way to address this is to limit the rate of initial adjacency | |||
formation following bootup. This reduces unnecessary redundant | formation following bootup. This reduces unnecessary redundant | |||
flooding as part of initial database synchronization and minimizes | flooding as part of initial database synchronization and minimizes | |||
the need for temporary flooding as it allows time for the new node to | the need for temporary flooding, as it allows time for the new node | |||
be added to the flooding topology after only a small number of | to be added to the flooding topology after only a small number of | |||
adjacencies have been formed. | adjacencies have been formed. | |||
In the event a node elects to bring up a large number of adjacencies | In the event a node elects to bring up a large number of adjacencies | |||
simultaneously, a significant amount of redundant flooding may be | simultaneously, a significant amount of redundant flooding may be | |||
introduced as multiple neighbors of the new node enable temporary | introduced as multiple neighbors of the new node enable temporary | |||
flooding to the new node which initially is not part of the flooding | flooding to the new node, which initially is not part of the flooding | |||
topology. | topology. | |||
6.8.4. Failures of Links Not on the Flooding Topology | 6.8.4. Failures of Links Not on the Flooding Topology | |||
If a link that is not part of the flooding topology fails, then the | If a link that is not part of the flooding topology fails, then the | |||
adjacent nodes will update their link state advertisements and flood | adjacent nodes will update their LSAs and flood them on the flooding | |||
them on the flooding topology. | topology. | |||
In centralized mode, the Area Leader, upon receiving these updates, | In centralized mode, the Area Leader may choose to retain the | |||
may choose to retain the existing flooding topology or may choose to | existing flooding topology or modify the flooding topology upon | |||
modify the flooding topology. If it elects to change the flooding | receiving these updates. If it elects to change the flooding | |||
topology, it will update the flooding topology in the link state | topology, it will update the flooding topology in the LSDB and flood | |||
database and flood it using the new flooding topology. | it using the new flooding topology. | |||
In distributed mode, any change in the topology, including the | In distributed mode, any change in the topology, including the | |||
failure of the link that is not part of the flooding topology MUST | failure of the link that is not part of the flooding topology, MUST | |||
trigger the flooding topology recalculation. This is done to ensure | trigger the flooding topology recalculation. This is done to ensure | |||
that all nodes converge to the same flooding topology, regardless of | that all nodes converge to the same flooding topology, regardless of | |||
the time of the calculation. | the time of the calculation. | |||
6.8.5. Failures of Links On the Flooding Topology | 6.8.5. Failures of Links On the Flooding Topology | |||
If there is a failure on the flooding topology, the adjacent nodes | If there is a failure on the flooding topology, the adjacent nodes | |||
will update their link state advertisements and flood them. If the | will update their LSAs and flood them. If the original flooding | |||
original flooding topology is bi-connected, the flooding topology | topology is biconnected, the flooding topology should still be | |||
should still be connected despite a single failure. | connected despite a single failure. | |||
If the failed local link represented the only connection to the | If the failed local link represented the only connection to the | |||
flooding topology on the node where the link failed, the node MUST | flooding topology on the node where the link failed, the node MUST | |||
enable temporary flooding on a subset of its local links. This | enable temporary flooding on a subset of its local links. This | |||
allows the node to send its updated link state advertisement(s) and | allows the node to send its updated LSAs and receive link-state | |||
also, keep receiving link state updates from other nodes in the | updates from other nodes in the network before the new flooding | |||
network before the new flooding topology is calculated and | topology is calculated and distributed (in the case of centralized | |||
distributed (in the case of centralized mode). | mode). | |||
In centralized mode, the Area Leader will notice the change in the | In centralized mode, the Area Leader will notice the change in the | |||
flooding topology, recompute the flooding topology, and flood it | flooding topology, recompute the flooding topology, and flood it | |||
using the new flooding topology. | using the new flooding topology. | |||
In distributed mode, all nodes supporting dynamic flooding will | In distributed mode, all nodes supporting dynamic flooding will | |||
notice the change in the topology and recompute the new flooding | notice the change in the topology and recompute the new flooding | |||
topology. | topology. | |||
6.8.6. Node Deletion | 6.8.6. Node Deletion | |||
skipping to change at page 36, line 52 ¶ | skipping to change at line 1695 ¶ | |||
If a node is deleted from the topology, then at least one link is | If a node is deleted from the topology, then at least one link is | |||
also removed from the topology. Section 6.8.4 and Section 6.8.5 | also removed from the topology. Section 6.8.4 and Section 6.8.5 | |||
apply. | apply. | |||
6.8.7. Local Link Addition to the Flooding Topology | 6.8.7. Local Link Addition to the Flooding Topology | |||
If the flooding topology changes and a local link that was not part | If the flooding topology changes and a local link that was not part | |||
of the flooding topology is now part of the flooding topology, then | of the flooding topology is now part of the flooding topology, then | |||
the node MUST: | the node MUST: | |||
Re-synchronize the Link State Database over the link. This is | * Resynchronize the LSDB over the link. This is done using the | |||
done using the standard protocol mechanisms. In the case of IS- | standard protocol mechanisms. In the case of IS-IS, this requires | |||
IS, this requires sending a complete set of CSNPs. In OSPF, the | sending a complete set of CSNPs. In OSPF, the mechanism specified | |||
mechanism specified in [RFC4811] is used. | in [RFC4811] is used. | |||
Make the link part of the flooding topology and start flooding on | * Make the link part of the flooding topology and start flooding on | |||
it. | it. | |||
6.8.8. Local Link Deletion from the Flooding Topology | 6.8.8. Local Link Deletion from the Flooding Topology | |||
If the flooding topology changes and a local link that was part of | If the flooding topology changes and a local link that was part of | |||
the flooding topology is no longer part of the flooding topology, | the flooding topology is no longer part of the flooding topology, | |||
then the node MUST remove the link from the flooding topology. | then the node MUST remove the link from the flooding topology. | |||
The node MUST keep flooding on such link for a limited amount of time | The node MUST keep flooding on such link for a limited amount of time | |||
to allow other nodes to migrate to the new flooding topology. | to allow other nodes to migrate to the new flooding topology. | |||
If the removed local link represented the only connection to the | If the removed local link represented the only connection to the | |||
flooding topology on the node, the node MUST enable temporary | flooding topology on the node, the node MUST enable temporary | |||
flooding on a subset of its local links. This allows the node to | flooding on a subset of its local links. This allows the node to | |||
send its updated link state advertisement(s) and also keep receiving | send its updated LSAs and receive link-state updates from other nodes | |||
link state updates from other nodes in the network before the new | in the network before the new flooding topology is calculated and | |||
flooding topology is calculated and distributed (in the case of | distributed (in the case of centralized mode). | |||
centralized mode). | ||||
6.8.9. Treatment of Disconnected Adjacent Nodes | 6.8.9. Treatment of Disconnected Adjacent Nodes | |||
Every time there is a change in the flooding topology, a node MUST | Every time there is a change in the flooding topology, a node MUST | |||
check if any adjacent nodes are disconnected from the current | check if any adjacent nodes are disconnected from the current | |||
flooding topology. Temporary flooding MUST be enabled towards a | flooding topology. Temporary flooding MUST be enabled towards a | |||
subset of the disconnected nodes per the discussion in Section 6.8.12 | subset of the disconnected nodes per Sections 6.8.12 and 6.7. | |||
and Section 6.7. | ||||
6.8.10. Failure of the Area Leader | 6.8.10. Failure of the Area Leader | |||
The failure of the Area Leader can be detected by observing that it | The failure of the Area Leader can be detected by observing that it | |||
is no longer reachable. In this case, the Area Leader election | is no longer reachable. In this case, the Area Leader election | |||
process is repeated and a new Area Leader is elected. | process is repeated and a new Area Leader is elected. | |||
To minimize disruption to Dynamic Flooding if the Area Leader becomes | To minimize disruption to dynamic flooding if the Area Leader becomes | |||
unreachable, the node that has the second-highest priority for | unreachable, the node that has the second-highest priority for | |||
becoming Area Leader (including the system identifier/Router-ID tie- | becoming Area Leader (including the system identifier / Router ID | |||
breaker if necessary) SHOULD advertise the same algorithm in its Area | tiebreaker if necessary) SHOULD advertise the same algorithm in its | |||
Leader Sub-TLV as the Area Leader and (in centralized mode) SHOULD | Area Leader Sub-TLV as the Area Leader and (in centralized mode) | |||
advertise a flooding topology. This SHOULD be done even when the | SHOULD advertise a flooding topology. This SHOULD be done even when | |||
Area Leader is reachable. | the Area Leader is reachable. | |||
In centralized mode, the new Area Leader will compute a new flooding | In centralized mode, the new Area Leader will compute a new flooding | |||
topology and flood it using the new flooding topology. To minimize | topology and flood it using the new flooding topology. To minimize | |||
disruption, the new flooding topology SHOULD have as much in common | disruption, the new flooding topology SHOULD have as much in common | |||
as possible with the old flooding topology. This will minimize the | as possible with the old flooding topology. This will minimize the | |||
risk of over-flooding. | risk of excess flooding with the new flooding topology. | |||
In the distributed mode, the new flooding topology will be calculated | In the distributed mode, the new flooding topology will be calculated | |||
on all nodes that support the algorithm that is advertised by the new | on all nodes that support the algorithm that is advertised by the new | |||
Area Leader. Nodes that do not support the algorithm advertised by | Area Leader. Nodes that do not support the algorithm advertised by | |||
the new Area Leader will no longer participate in Dynamic Flooding | the new Area Leader will no longer participate in dynamic flooding | |||
and will revert to standard flooding. | and will revert to standard flooding. | |||
6.8.11. Recovery from Multiple Failures | 6.8.11. Recovery from Multiple Failures | |||
In the event of multiple failures on the flooding topology, it may | In the event of multiple failures on the flooding topology, it may | |||
become partitioned. The nodes that remain active on the edges of the | become partitioned. The nodes that remain active on the edges of the | |||
flooding topology partitions will recognize this and will try to | flooding topology partitions will recognize this and will try to | |||
repair the flooding topology locally by enabling temporary flooding | repair the flooding topology locally by enabling temporary flooding | |||
towards the nodes that they consider disconnected from the flooding | towards the nodes that they consider disconnected from the flooding | |||
topology until a new flooding topology becomes connected again. | topology until a new flooding topology becomes connected again. | |||
Nodes, where local failure was detected, update their link state | Nodes, where local failure was detected, update their LSAs and flood | |||
advertisements and flood them on the remainder of the flooding | them on the remainder of the flooding topology. | |||
topology. | ||||
In centralized mode, the Area Leader will notice the change in the | In centralized mode, the Area Leader will notice the change in the | |||
flooding topology, recompute the flooding topology, and flood it | flooding topology, recompute the flooding topology, and flood it | |||
using the new flooding topology. | using the new flooding topology. | |||
In distributed mode, all nodes that actively participate in Dynamic | In distributed mode, all nodes that actively participate in dynamic | |||
Flooding will compute the new flooding topology. | flooding will compute the new flooding topology. | |||
Note that this is very different from the area partition because | Note that this is very different from the area partition because | |||
there is still a connected network graph between the nodes in the | there is still a connected network graph between the nodes in the | |||
area. The area may remain connected and forwarding may still be | area. The area may remain connected and forwarding may still be | |||
functioning correctly. | functioning correctly. | |||
6.8.12. Rate-Limiting Temporary Flooding | 6.8.12. Rate-Limiting Temporary Flooding | |||
As discussed in the previous sections, some events require the | As discussed in the previous sections, some events require the | |||
introduction of temporary flooding on edges that are not part of the | introduction of temporary flooding on edges that are not part of the | |||
skipping to change at page 39, line 18 ¶ | skipping to change at line 1801 ¶ | |||
It is recommended that a node rate limit the number of edges on which | It is recommended that a node rate limit the number of edges on which | |||
it chooses to enable temporary flooding. Initial values for the | it chooses to enable temporary flooding. Initial values for the | |||
number of edges on which to enable temporary flooding and the rate at | number of edges on which to enable temporary flooding and the rate at | |||
which additional edges may subsequently be enabled is left as an | which additional edges may subsequently be enabled is left as an | |||
implementation decision. | implementation decision. | |||
7. IANA Considerations | 7. IANA Considerations | |||
7.1. IS-IS | 7.1. IS-IS | |||
This document requests the following code points from the "IS-IS Sub- | The following code points have been assigned in the "IS-IS Sub-TLVs | |||
TLVs for IS-IS Router CAPABILITY TLV" registry (IS-IS TLV 242). | for IS-IS Router CAPABILITY TLV" registry (IS-IS TLV 242). | |||
Type: TBD1 | ||||
Description: IS-IS Area Leader Sub-TLV | ||||
Reference: This document (Section 5.1.1) | ||||
Type: TBD7 | ||||
Description: IS-IS Dynamic Flooding Sub-TLV | ||||
Reference: This document (Section 5.1.2) | ||||
This document requests that IANA allocate and assign code points from | ||||
the "IS-IS Top-Level TLV Codepoints" registry. One for each of the | ||||
following TLVs: | ||||
Type: TBD2 | ||||
Description: IS-IS Area System IDs TLV | ||||
Reference: This document (Section 5.1.3) | ||||
Type: TBD3 | +======+========================+==========================+ | |||
| Type | Description | Reference | | ||||
+======+========================+==========================+ | ||||
| 27 | IS-IS Area Leader | RFC 9667 (Section 5.1.1) | | ||||
+------+------------------------+--------------------------+ | ||||
| 28 | IS-IS Dynamic Flooding | RFC 9667 (Section 5.1.2) | | ||||
+------+------------------------+--------------------------+ | ||||
Description: IS-IS Flooding Path TLV | Table 1 | |||
Reference: This document (Section 5.1.4) | IANA has assigned code points from the "IS-IS Top-Level TLV | |||
Codepoints" registry, one for each of the following TLVs: | ||||
Type: TBD9 | +======+========================+==========================+ | |||
| Type | Description | Reference | | ||||
+======+========================+==========================+ | ||||
| 17 | IS-IS Area Node IDs | RFC 9667 (Section 5.1.3) | | ||||
+------+------------------------+--------------------------+ | ||||
| 18 | IS-IS Flooding Path | RFC 9667 (Section 5.1.4) | | ||||
+------+------------------------+--------------------------+ | ||||
| 19 | IS-IS Flooding Request | RFC 9667 (Section 5.1.5) | | ||||
+------+------------------------+--------------------------+ | ||||
Description: IS-IS Flooding Request TLV | Table 2 | |||
Reference: This document (Section 5.1.5) | ||||
This document requests that IANA extend the "IS-IS Neighbor Link- | IANA has extended the "IS-IS Neighbor Link-Attribute Bit Values" | |||
Attribute Bit Values" registry to contain a "L2BM" column that | registry to contain an "L2BM" column that indicates if a bit may | |||
indicates if a bit may appear in an L2 Bundle Member Attributes TLV. | appear in an L2 Bundle Member Attributes TLV. All existing rows have | |||
All existing rows should have the value "N" for "L2BM". The | the value "N" for "L2BM". The following explanatory note has been | |||
following explanatory note should be added to the registry: | added to the registry: | |||
| The "L2BM" column indicates applicability to the L2 Bundle Member | | The "L2BM" column indicates applicability to the L2 Bundle Member | |||
| Attributes TLV. The options for the "L2BM" column are: | | Attributes TLV. The options for the "L2BM" column are: | |||
| | | | |||
| Y - This bit MAY appear in the L2 Bundle Member Attributes TLV. | | Y - This bit MAY appear in the L2 Bundle Member Attributes TLV. | |||
| | | | |||
| N - This bit MUST NOT appear in the L2 Bundle Member Attributes | | N - This bit MUST NOT appear in the L2 Bundle Member Attributes | |||
| TLV. | | TLV. | |||
This document requests that IANA allocate a new bit-value from the | IANA has allocated a new bit-value from the "IS-IS Neighbor Link- | |||
"IS-IS Neighbor Link-Attribute Bit Values" registry. | Attribute Bit Values" registry. | |||
Value: 0x4 (suggested, to be assigned by IANA) | ||||
L2BM: N | ||||
Name: Local Edge Enabled for Flooding (LEEF) | +=======+======+========================================+===========+ | |||
| Value | L2BM | Name | Reference | | ||||
+=======+======+========================================+===========+ | ||||
| 0x4 | N | Local Edge Enabled | RFC 9667 | | ||||
| | | for Flooding (LEEF) | | | ||||
+-------+------+----------------------------------------+-----------+ | ||||
Reference: This document | Table 3 | |||
7.2. OSPF | 7.2. OSPF | |||
This document requests the following code points from the "OSPF | The following code points have been assigned in the "OSPF Router | |||
Router Information (RI) TLVs" registry: | Information (RI) TLVs" registry: | |||
Type: TBD4 | ||||
Description: OSPF Area Leader Sub-TLV | ||||
Reference: This document (Section 5.2.1) | ||||
Type: TBD8 | ||||
Description: OSPF Dynamic Flooding Sub-TLV | +=======+=======================+==========================+ | |||
| Value | TLV Name | Reference | | ||||
+=======+=======================+==========================+ | ||||
| 17 | OSPF Area Leader | RFC 9667 (Section 5.2.1) | | ||||
+-------+-----------------------+--------------------------+ | ||||
| 18 | OSPF Dynamic Flooding | RFC 9667 (Section 5.2.2) | | ||||
+-------+-----------------------+--------------------------+ | ||||
Reference: This document (Section 5.2.2) | Table 4 | |||
This document requests the following code point from the "Opaque | The following code points have been assigned in the "Opaque Link- | |||
Link-State Advertisements (LSA) Option Types" registry: | State Advertisements (LSA) Option Types" registry: | |||
Type: TBD5 | +=======+====================================+=================+ | |||
Description: OSPFv2 Dynamic Flooding Opaque LSA | | Value | Opaque Type | Reference | | |||
+=======+====================================+=================+ | ||||
| 10 | OSPFv2 Dynamic Flooding Opaque LSA | RFC 9667 | | ||||
| | | (Section 5.2.3) | | ||||
+-------+------------------------------------+-----------------+ | ||||
Reference: This document (Section 5.2.3) | Table 5 | |||
This document requests the following code point from the "OSPFv3 LSA | The following code point has been assigned in the "OSPFv3 LSA | |||
Function Codes" registry: | Function Codes" registry: | |||
Type: TBD6 | +=======+=============================+==========================+ | |||
| Value | LSA Function Code Name | Reference | | ||||
Description: OSPFv3 Dynamic Flooding LSA | +=======+=============================+==========================+ | |||
| 16 | OSPFv3 Dynamic Flooding LSA | RFC 9667 (Section 5.2.4) | | ||||
Reference: This document (Section 5.2.4) | +-------+-----------------------------+--------------------------+ | |||
This document requests a new bit in the "LLS Type 1 Extended Options | ||||
and Flags" registry: | ||||
Bit Position: TBD10 | ||||
Description: Flooding Request bit | ||||
Reference: This document (Section 5.2.7) | ||||
This document requests the following code point from the "OSPFv2 | Table 6 | |||
Extended Link TLV Sub-TLVs" registry: | ||||
Type: TBD11 | IANA has assigned a new bit in the "LLS Type 1 Extended Options and | |||
Flags" registry: | ||||
Description: OSPFv2 Link Attributes Bits Sub-TLV | +==============+======================+==========================+ | |||
| Bit Position | Description | Reference | | ||||
+==============+======================+==========================+ | ||||
| 0x00000020 | Flooding Request bit | RFC 9667 (Section 5.2.7) | | ||||
+--------------+----------------------+--------------------------+ | ||||
Reference: This document (Section 5.2.8) | Table 7 | |||
L2 Bundle Member Attributes (L2BM): Y | The following code point has been assigned in the "OSPFv2 Extended | |||
Link TLV Sub-TLVs" registry: | ||||
This document requests the following code point from the "OSPFv3 | +======+========================+===========+===================+ | |||
Extended LSA Sub-TLVs" registry: | | Type | Description | Reference | L2 Bundle Member | | |||
| | | | Attributes (L2BM) | | ||||
+======+========================+===========+===================+ | ||||
| 21 | OSPFv2 Link Attributes | RFC 9667 | Y | | ||||
| | Bits Sub-TLV | (Section | | | ||||
| | | 5.2.8) | | | ||||
+------+------------------------+-----------+-------------------+ | ||||
Type: TBD12 | Table 8 | |||
Description: OSPFv3 Link Attributes Bits Sub-TLV | The following code point has been assigned in the "OSPFv3 Extended | |||
LSA Sub-TLVs" registry: | ||||
Reference: This document (Section 5.2.8) | +======+========================+===========+===================+ | |||
| Type | Description | Reference | L2 Bundle Member | | ||||
| | | | Attributes (L2BM) | | ||||
+======+========================+===========+===================+ | ||||
| 10 | OSPFv3 Link Attributes | RFC 9667 | Y | | ||||
| | Bits Sub-TLV | (Section | | | ||||
| | | 5.2.8) | | | ||||
+------+------------------------+-----------+-------------------+ | ||||
L2 Bundle Member Attributes (L2BM): Y | Table 9 | |||
7.2.1. OSPF Dynamic Flooding LSA TLVs Registry | 7.2.1. OSPF Dynamic Flooding LSA TLVs Registry | |||
This specification also requests a new registry - "OSPF Dynamic | A new registry has been created: "OSPF Dynamic Flooding LSA TLVs". | |||
Flooding LSA TLVs". New values can be allocated via IETF Review or | New values can be allocated via IETF Review or IESG Approval. | |||
IESG Approval. | ||||
The "OSPF Dynamic Flooding LSA TLVs" registry will define top-level | ||||
TLVs for the OSPFv2 Dynamic Flooding Opaque LSA and OSPFv3 Dynamic | ||||
Flooding LSAs. It should be added to the "Open Shortest Path First | ||||
(OSPF) Parameters" registries group. | ||||
The following initial values are allocated: | ||||
Type: 0 | ||||
Description: Reserved | ||||
Reference: This document | ||||
Type: 1 | ||||
Description: OSPF Area Router IDs TLV | ||||
Reference: This document (Section 5.2.5) | The "OSPF Dynamic Flooding LSA TLVs" registry defines top-level TLVs | |||
for the OSPFv2 Dynamic Flooding Opaque LSA and OSPFv3 Dynamic | ||||
Flooding LSAs. It has been added to the "Open Shortest Path First | ||||
(OSPF) Parameters" registry group. | ||||
Type: 2 | The following initial values have been allocated: | |||
Description: OSPF Flooding Path TLV | +======+======================+==========================+ | |||
| Type | Description | Reference | | ||||
+======+======================+==========================+ | ||||
| 0 | Reserved | RFC 9667 | | ||||
+------+----------------------+--------------------------+ | ||||
| 1 | OSPF Area Router IDs | RFC 9667 (Section 5.2.5) | | ||||
+------+----------------------+--------------------------+ | ||||
| 2 | OSPF Flooding Path | RFC 9667 (Section 5.2.6) | | ||||
+------+----------------------+--------------------------+ | ||||
Reference: This document (Section 5.2.6) | Table 10 | |||
Types in the range 32768-33023 are for experimental use; these will | Types in the range 32768-33023 are Reserved for Experimental Use; | |||
not be registered with IANA, and MUST NOT be mentioned by RFCs. | these will not be registered with IANA and MUST NOT be mentioned by | |||
RFCs. | ||||
Types in the range 33024-65535 are not to be assigned at this time. | Types in the range 33024-65535 are Reserved. They are not to be | |||
Before any assignments can be made in the 33024-65535 range, there | assigned at this time. Before any assignments can be made in the | |||
MUST be an IETF specification that specifies IANA Considerations that | 33024-65535 range, there MUST be an IETF specification that specifies | |||
cover the range being assigned. | IANA Considerations that cover the range being assigned. | |||
7.2.2. OSPF Link Attributes Sub-TLV Bit Values Registry | 7.2.2. OSPF Link Attributes Sub-TLV Bit Values Registry | |||
This specification also requests a new registry - "OSPF Link | A new registry has been created: "OSPF Link Attributes Sub-TLV Bit | |||
Attributes Sub-TLV Bit Values". New values can be allocated via IETF | Values". New values can be allocated via IETF Review or IESG | |||
Review or IESG Approval. | Approval. | |||
The "OSPF Link Attributes Sub-TLV Bit Values" registry defines Link | The "OSPF Link Attributes Sub-TLV Bit Values" registry defines Link | |||
Attribute bit-values for the OSPFv2 Link Attributes Sub-TLV and | Attribute bit-values for the OSPFv2 Link Attributes Sub-TLV and | |||
OSPFv3 Link Attributes Sub-TLV. It should be added to the "Open | OSPFv3 Link Attributes Sub-TLV. It has been added to the "Open | |||
Shortest Path First (OSPF) Parameters" registries group. This | Shortest Path First (OSPF) Parameters" registry group. This registry | |||
registry should contain a column "L2BM" that indicates if a bit may | contains a column "L2BM" that indicates if a bit may appear in an L2 | |||
appear in an L2 Bundle Member Attributes (L2BM) sub-TLV. The | Bundle Member Attributes (L2BM) Sub-TLV. The following explanatory | |||
following explanatory note should be added to the registry: | note has been added to the registry: | |||
| The "L2BM" column indicates applicability to the L2 Bundle Member | | The "L2BM" column indicates applicability to the L2 Bundle Member | |||
| Attributes sub-TLV. The options for the "L2BM" column are: | | Attributes sub-TLV. The options for the "L2BM" column are: | |||
| | | | |||
| Y - This bit MAY appear in the L2 Bundle Member Attributes sub- | | Y - This bit MAY appear in the L2 Bundle Member Attributes sub- | |||
| TLV. | | TLV. | |||
| | | | |||
| N - This bit MUST NOT appear in the L2 Bundle Member Attributes | | N - This bit MUST NOT appear in the L2 Bundle Member Attributes | |||
| sub-TLV. | | sub-TLV. | |||
The following initial value is allocated: | The following initial value is allocated: | |||
Bit Number: 0 | +========+=====================+===========+===================+ | |||
| Bit | Description | Reference | L2 Bundle Member | | ||||
Description: Local Edge Enabled for Flooding(LEEF) | | Number | | | Attributes (L2BM) | | |||
+========+=====================+===========+===================+ | ||||
Reference: This document (Section 5.2.8) | | 0 | Local Edge Enabled | RFC 9667 | N | | |||
| | for Flooding (LEEF) | (Section | | | ||||
| | | 5.2.8) | | | ||||
+--------+---------------------+-----------+-------------------+ | ||||
L2 Bundle Member Attributes (L2BM): N | Table 11 | |||
7.3. IGP | 7.3. IGP | |||
IANA is requested to set up a registry called "IGP Algorithm Type For | IANA has created a registry called "IGP Algorithm Type For Computing | |||
Computing Flooding Topology" under the existing "Interior Gateway | Flooding Topology" in the existing "Interior Gateway Protocol (IGP) | |||
Protocol (IGP) Parameters" IANA registry. | Parameters" registry group. | |||
The registration policy for this registry is Expert Review. | The registration policy for this registry is Expert Review. | |||
Values in this registry come from the range 0-255. | Values in this registry come from the range 0-255. | |||
The initial values in the IGP Algorithm Type For Computing Flooding | The initial values in the "IGP Algorithm Type For Computing Flooding | |||
Topology registry are: | Topology" registry are as follows: | |||
0: Reserved for centralized mode. | ||||
1-127: Individual values are to be assigned according to the | ||||
"Expert Review" policy defined in [RFC8126]. The designated | ||||
experts should require a clear, public specification of the | ||||
algorithm and comply with [RFC7370]. | ||||
128-254: Reserved for private use. | +=========+==================================================+ | |||
| Value | Description | | ||||
+=========+==================================================+ | ||||
| 0 | Reserved for centralized mode | | ||||
+---------+--------------------------------------------------+ | ||||
| 1-127 | Unassigned. Individual values are to be | | ||||
| | assigned according to the "Expert Review" policy | | ||||
| | defined in [RFC8126]. The designated experts | | ||||
| | should require a clear, public specification of | | ||||
| | the algorithm and comply with [RFC7370]. | | ||||
+---------+--------------------------------------------------+ | ||||
| 128-254 | Reserved for Private Use | | ||||
+---------+--------------------------------------------------+ | ||||
| 255 | Reserved | | ||||
+---------+--------------------------------------------------+ | ||||
255: Reserved. | Table 12 | |||
8. Security Considerations | 8. Security Considerations | |||
This document introduces no new security issues. Security of routing | This document introduces no new security issues. Security of routing | |||
within a domain is already addressed as part of the routing protocols | within a domain is already addressed as part of the routing protocols | |||
themselves. This document proposes no changes to those security | themselves. This document proposes no changes to those security | |||
architectures. | architectures. | |||
An attacker could become the Area Leader and introduce a flawed | An attacker could become the Area Leader and introduce a flawed | |||
flooding algorithm into the network thus compromising the operation | flooding algorithm into the network thus compromising the operation | |||
of the protocol. Authentication methods as described in [RFC5304] | of the protocol. Authentication methods as described in [RFC5304] | |||
and [RFC5310] for IS-IS, [RFC2328] and [RFC7474] for OSPFv2 and | and [RFC5310] for IS-IS, [RFC2328] and [RFC7474] for OSPFv2, and | |||
[RFC5340] and [RFC4552] for OSPFv3 SHOULD be used to prevent such | [RFC5340] and [RFC4552] for OSPFv3 SHOULD be used to prevent such | |||
attacks. | attacks. | |||
9. Acknowledgements | 9. References | |||
The authors would like to thank Sarah Chen, Tony Przygienda, Dave | ||||
Cooper, Gyan Mishra, and Les Ginsberg for their contribution to this | ||||
work. The authors would also like to thank Arista Networks for | ||||
supporting the development of this technology. | ||||
The authors would like to thank Zeqing (Fred) Xia, Naiming Shen, Adam | ||||
Sweeney, Acee Lindem, and Olufemi Komolafe for their helpful | ||||
comments. | ||||
The authors would like to thank Tom Edsall for initially introducing | ||||
them to the problem. | ||||
Advertising Local Edges Enabled for Flooding (LEEF) is based on an | ||||
idea proposed by Huaimo Chen, Mehmet Toy, Yi Yang, Aijun Wang, Xufeng | ||||
Liu, Yanhe Fan, and Lei Liu. We wish to thank them for their | ||||
contribution. | ||||
10. References | ||||
10.1. Normative References | 9.1. Normative References | |||
[ISO10589] ISO, "Intermediate System to Intermediate System Intra- | [ISO10589] ISO, "Information technology — Telecommunications and | |||
Domain Routing Exchange Protocol for use in Conjunction | information exchange between systems — Intermediate System | |||
with the Protocol for Providing the Connectionless-mode | to Intermediate System intra-domain routeing information | |||
Network Service (ISO 8473)", ISO/IEC 10589:2002, October | exchange protocol for use in conjunction with the protocol | |||
2002. | for providing the connectionless-mode network service (ISO | |||
8473)", Second Edition, ISO/IEC 10589:2002, November 2002, | ||||
<https://www.iso.org/standard/30932.html>. | ||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, | [RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, | |||
DOI 10.17487/RFC2328, April 1998, | DOI 10.17487/RFC2328, April 1998, | |||
<https://www.rfc-editor.org/info/rfc2328>. | <https://www.rfc-editor.org/info/rfc2328>. | |||
skipping to change at page 46, line 29 ¶ | skipping to change at line 2136 ¶ | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
[RFC8362] Lindem, A., Roy, A., Goethals, D., Reddy Vallem, V., and | [RFC8362] Lindem, A., Roy, A., Goethals, D., Reddy Vallem, V., and | |||
F. Baker, "OSPFv3 Link State Advertisement (LSA) | F. Baker, "OSPFv3 Link State Advertisement (LSA) | |||
Extensibility", RFC 8362, DOI 10.17487/RFC8362, April | Extensibility", RFC 8362, DOI 10.17487/RFC8362, April | |||
2018, <https://www.rfc-editor.org/info/rfc8362>. | 2018, <https://www.rfc-editor.org/info/rfc8362>. | |||
10.2. Informative References | 9.2. Informative References | |||
[Bondy] Bondy, J. A. and U. S. R. Murty, "Graph Theory With | [Bondy] Bondy, J. A. and U. S. R. Murty, "Graph Theory With | |||
Applications", 1976, | Applications", Elsevier Science Publishing Co., Inc., | |||
ISBN 0-444-19451-7, 1976, | ||||
<https://www.zib.de/groetschel/teaching/WS1314/ | <https://www.zib.de/groetschel/teaching/WS1314/ | |||
BondyMurtyGTWA.pdf>. ISBN 0-444-19451-7 | BondyMurtyGTWA.pdf>. | |||
[Clos] Clos, C., "A Study of Non-Blocking Switching Networks", | [Clos] Clos, C., "A study of non-blocking switching networks", | |||
The Bell System Technical Journal Vol. 32(2), DOI | The Bell System Technical Journal, Volume 32, Issue 2, pp. | |||
10.1002/j.1538-7305.1953.tb01433.x, March 1953, | 406-424, DOI 10.1002/j.1538-7305.1953.tb01433.x, March | |||
<http://dx.doi.org/10.1002/j.1538-7305.1953.tb01433.x>. | 1953, | |||
<https://doi.org/10.1002/j.1538-7305.1953.tb01433.x>. | ||||
[Leiserson] | [Leiserson] | |||
Leiserson, C. E., "Fat-Trees: Universal Networks for | Leiserson, C. E., "Fat-trees: Universal networks for | |||
Hardware-Efficient Supercomputing", IEEE Transactions on | hardware-efficient supercomputing", IEEE Transactions on | |||
Computers 34(10):892-901, 1985. | Computers, Volume C-34, Issue 10, pp. 892-901, | |||
DOI 10.1109/TC.1985.6312192, October 1985, | ||||
<https://doi.org/10.1109/TC.1985.6312192>. | ||||
[RFC2973] Balay, R., Katz, D., and J. Parker, "IS-IS Mesh Groups", | [RFC2973] Balay, R., Katz, D., and J. Parker, "IS-IS Mesh Groups", | |||
RFC 2973, DOI 10.17487/RFC2973, October 2000, | RFC 2973, DOI 10.17487/RFC2973, October 2000, | |||
<https://www.rfc-editor.org/info/rfc2973>. | <https://www.rfc-editor.org/info/rfc2973>. | |||
[RFC3630] Katz, D., Kompella, K., and D. Yeung, "Traffic Engineering | [RFC3630] Katz, D., Kompella, K., and D. Yeung, "Traffic Engineering | |||
(TE) Extensions to OSPF Version 2", RFC 3630, | (TE) Extensions to OSPF Version 2", RFC 3630, | |||
DOI 10.17487/RFC3630, September 2003, | DOI 10.17487/RFC3630, September 2003, | |||
<https://www.rfc-editor.org/info/rfc3630>. | <https://www.rfc-editor.org/info/rfc3630>. | |||
skipping to change at page 47, line 24 ¶ | skipping to change at line 2180 ¶ | |||
[RFC7370] Ginsberg, L., "Updates to the IS-IS TLV Codepoints | [RFC7370] Ginsberg, L., "Updates to the IS-IS TLV Codepoints | |||
Registry", RFC 7370, DOI 10.17487/RFC7370, September 2014, | Registry", RFC 7370, DOI 10.17487/RFC7370, September 2014, | |||
<https://www.rfc-editor.org/info/rfc7370>. | <https://www.rfc-editor.org/info/rfc7370>. | |||
[RFC7938] Lapukhov, P., Premji, A., and J. Mitchell, Ed., "Use of | [RFC7938] Lapukhov, P., Premji, A., and J. Mitchell, Ed., "Use of | |||
BGP for Routing in Large-Scale Data Centers", RFC 7938, | BGP for Routing in Large-Scale Data Centers", RFC 7938, | |||
DOI 10.17487/RFC7938, August 2016, | DOI 10.17487/RFC7938, August 2016, | |||
<https://www.rfc-editor.org/info/rfc7938>. | <https://www.rfc-editor.org/info/rfc7938>. | |||
Acknowledgements | ||||
The authors would like to thank Sarah Chen, Tony Przygienda, Dave | ||||
Cooper, Gyan Mishra, and Les Ginsberg for their contributions to this | ||||
work. The authors would also like to thank Arista Networks for | ||||
supporting the development of this technology. | ||||
The authors would like to thank Zeqing (Fred) Xia, Naiming Shen, Adam | ||||
Sweeney, Acee Lindem, and Olufemi Komolafe for their helpful | ||||
comments. | ||||
The authors would like to thank Tom Edsall for initially introducing | ||||
them to the problem. | ||||
Advertising Local Edges Enabled for Flooding (LEEF) is based on an | ||||
idea proposed by Huaimo Chen, Mehmet Toy, Yi Yang, Aijun Wang, Xufeng | ||||
Liu, Yanhe Fan, and Lei Liu. The authors wish to thank them for | ||||
their contributions. | ||||
Authors' Addresses | Authors' Addresses | |||
Tony Li (editor) | Tony Li (editor) | |||
Juniper Networks | Juniper Networks | |||
1133 Innovation Way | 1133 Innovation Way | |||
Sunnyvale, California 94089 | Sunnyvale, California 94089 | |||
United States of America | United States of America | |||
Email: tony.li@tony.li | Email: tony.li@tony.li | |||
Peter Psenak (editor) | Peter Psenak (editor) | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
Eurovea Centre, Central 3 | Eurovea Centre, Central 3 | |||
Pribinova Street 10 | Pribinova Street 10 | |||
81109 Bratislava | 81109 Bratislava | |||
Slovakia | Slovakia | |||
Email: ppsenak@cisco.com | Email: ppsenak@cisco.com | |||
Huaimo Chen | Huaimo Chen | |||
Futurewei | Futurewei | |||
Boston, MA, | Boston, Massachusetts | |||
United States of America | United States of America | |||
Email: hchen.ietf@gmail.com | Email: hchen.ietf@gmail.com | |||
Luay Jalil | Luay Jalil | |||
Verizon | Verizon | |||
Richardson, Texas 75081 | Richardson, Texas 75081 | |||
United States of America | United States of America | |||
Email: luay.jalil@verizon.com | Email: luay.jalil@verizon.com | |||
Srinath Dontula | Srinath Dontula | |||
ATT | AT&T | |||
200 S Laurel Ave | 200 S Laurel Ave | |||
Middletown, New Jersey 07748 | Middletown, New Jersey 07748 | |||
United States of America | United States of America | |||
Email: sd947e@att.com | Email: sd947e@att.com | |||
End of changes. 312 change blocks. | ||||
863 lines changed or deleted | 894 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |