rfc9843.original | rfc9843.txt | |||
---|---|---|---|---|
LSR S. Hegde | Internet Engineering Task Force (IETF) S. Hegde | |||
Internet-Draft W. Britto | Request for Comments: 9843 W. Britto | |||
Intended status: Standards Track R. Shetty | Category: Standards Track R. Shetty | |||
Expires: 17 August 2025 Juniper Networks Inc. | ISSN: 2070-1721 Juniper Networks Inc. | |||
B. Decraene | B. Decraene | |||
Orange | Orange | |||
P. Psenak | P. Psenak | |||
Cisco Systems | Cisco Systems | |||
T. Li | T. Li | |||
Juniper Networks Inc. | Juniper Networks Inc. | |||
13 February 2025 | August 2025 | |||
IGP Flexible Algorithms: Bandwidth, Delay, Metrics and Constraints | IGP Flexible Algorithms: Bandwidth, Delay, Metrics, and Constraints | |||
draft-ietf-lsr-flex-algo-bw-con-22 | ||||
Abstract | Abstract | |||
Many networks configure the IGP link metric relative to the link | Many networks configure the IGP link metric relative to the link | |||
capacity. High bandwidth traffic gets routed as per the link | capacity, and high bandwidth traffic gets routed per the link | |||
capacity. Flexible algorithms [RFC9350]provide mechanisms to create | capacity. Flexible Algorithms provide mechanisms to create | |||
constraint based paths in an IGP. This draft documents a generic | constraint-based paths in an IGP. This specification documents a | |||
metric type and set of bandwidth related constraints to be used in | generic metric type and a set of bandwidth-related constraints to be | |||
Flexible Algorithms. | used in Flexible Algorithms. | |||
Requirements Language | ||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | ||||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | ||||
"OPTIONAL" in this document are to be interpreted as described in BCP | ||||
14, [RFC2119], [RFC8174] when, and only when, they appear in all | ||||
capitals, as shown here. | ||||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
provisions of BCP 78 and BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | This document is a product of the Internet Engineering Task Force | |||
Task Force (IETF). Note that other groups may also distribute | (IETF). It represents the consensus of the IETF community. It has | |||
working documents as Internet-Drafts. The list of current Internet- | received public review and has been approved for publication by the | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | Information about the current status of this document, any errata, | |||
and may be updated, replaced, or obsoleted by other documents at any | and how to provide feedback on it may be obtained at | |||
time. It is inappropriate to use Internet-Drafts as reference | https://www.rfc-editor.org/info/rfc9843. | |||
material or to cite them other than as "work in progress." | ||||
This Internet-Draft will expire on 17 August 2025. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2025 IETF Trust and the persons identified as the | Copyright (c) 2025 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
in the Revised BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
2. Generic Metric Advertisement . . . . . . . . . . . . . . . . 5 | 1.1. Requirements Language | |||
2.1. IS-IS Generic Metric Sub-TLV . . . . . . . . . . . . . . 5 | 2. Generic Metric Advertisement | |||
2.2. OSPF Generic Metric Sub-TLV . . . . . . . . . . . . . . . 7 | 2.1. IS-IS Generic Metric Sub-TLV | |||
2.3. Generic Metric applicability to Flexible Algorithms | 2.2. OSPF Generic Metric Sub-TLV | |||
Multi-domain/Multi-area networks . . . . . . . . . . . . 9 | 2.3. Generic Metric Applicability to Flexible Algorithm | |||
3. FAD constraint Sub-TLVs . . . . . . . . . . . . . . . . . . . 10 | Multi-Domain/Multi-Area Networks | |||
3.1. IS-IS FAD constraint Sub-TLVs . . . . . . . . . . . . . . 10 | 3. FAD Constraint Sub-TLVs | |||
3.1.1. IS-IS Exclude Minimum Bandwidth sub-TLV . . . . . . . 10 | 3.1. IS-IS FAD Constraint Sub-TLVs | |||
3.1.2. IS-IS Exclude Maximum Delay Sub-TLV . . . . . . . . . 11 | 3.1.1. IS-IS Exclude Minimum Bandwidth Sub-TLV | |||
3.2. OSPF FAD constraint Sub-TLVs . . . . . . . . . . . . . . 12 | 3.1.2. IS-IS Exclude Maximum Delay Sub-TLV | |||
3.2.1. OSPF Exclude Minimum Bandwidth Sub-TLV . . . . . . . 13 | 3.2. OSPF FAD Constraint Sub-TLVs | |||
3.2.2. OSPF Exclude Maximum Delay Sub-TLV . . . . . . . . . 14 | 3.2.1. OSPF Exclude Minimum Bandwidth Sub-TLV | |||
4. Bandwidth Metric Advertisement . . . . . . . . . . . . . . . 15 | 3.2.2. OSPF Exclude Maximum Delay Sub-TLV | |||
4.1. Automatic Metric Calculation . . . . . . . . . . . . . . 15 | 4. Bandwidth Metric Advertisement | |||
4.1.1. Automatic Metric Calculation Modes . . . . . . . . . 16 | 4.1. Automatic Metric Calculation | |||
4.1.2. Automatic Metric Calculation Methods . . . . . . . . 17 | 4.1.1. Automatic Metric Calculation Modes | |||
4.1.3. IS-IS FAD constraint Sub-TLVs for automatic metric | 4.1.2. Automatic Metric Calculation Methods | |||
calculation . . . . . . . . . . . . . . . . . . . . . 18 | 4.1.3. IS-IS FAD Constraint Sub-TLVs for Automatic Metric | |||
4.1.4. OSPF FAD constraint Sub-TLVs for automatic metric | Calculation | |||
calculation . . . . . . . . . . . . . . . . . . . . . 23 | 4.1.4. OSPF FAD Constraint Sub-TLVs for Automatic Metric | |||
5. Bandwidth metric considerations . . . . . . . . . . . . . . . 29 | Calculation | |||
6. Calculation of Flex-Algorithm paths . . . . . . . . . . . . . 29 | 5. Bandwidth Metric Considerations | |||
7. Backward Compatibility . . . . . . . . . . . . . . . . . . . 30 | 6. Calculation of Flex-Algorithm Paths | |||
8. Security Considerations . . . . . . . . . . . . . . . . . . . 30 | 7. Backward Compatibility | |||
9. Operational Considerations . . . . . . . . . . . . . . . . . 30 | 8. Security Considerations | |||
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 31 | 9. Operational Considerations | |||
10.1. IGP Metric-Type Registry . . . . . . . . . . . . . . . . 31 | 10. IANA Considerations | |||
10.1. IGP Metric-Type Registry | ||||
10.2. IS-IS Sub-Sub-TLVs for Flexible Algorithm Definition | 10.2. IS-IS Sub-Sub-TLVs for Flexible Algorithm Definition | |||
Sub-TLV . . . . . . . . . . . . . . . . . . . . . . . . 31 | Sub-TLV | |||
10.3. OSPF Sub-TLVs for Flexible Algorithm Definition Sub-TLV | ||||
10.3. OSPF Sub-TLVs for Flexible Algorithm Definition | 10.4. IS-IS Sub-TLVs for TLVs Advertising Neighbor Information | |||
Sub-TLV . . . . . . . . . . . . . . . . . . . . . . . . 32 | 10.5. Sub-Sub-TLV Codepoints for Application-Specific Link | |||
10.4. IS-IS Sub-TLVs for TLVs Advertising Neighbor | Attributes | |||
Information . . . . . . . . . . . . . . . . . . . . . . 33 | 10.6. OSPFv2 Extended Link TLV Sub-TLVs | |||
10.5. Sub-sub-TLV Codepoints for Application-Specific Link | 10.7. Types for Sub-TLVs of TE Link TLV (Value 2) | |||
Attributes . . . . . . . . . . . . . . . . . . . . . . . 33 | 10.8. OSPFv3 Extended-LSA Sub-TLVs | |||
10.6. OSPFv2 Extended Link TLV Sub-TLVs . . . . . . . . . . . 33 | 11. References | |||
10.7. Types for Sub-TLVs of TE Link TLV (Value 2) . . . . . . 33 | 11.1. Normative References | |||
10.8. OSPFv3 Extended-LSA Sub-TLVs . . . . . . . . . . . . . . 34 | 11.2. Informative References | |||
11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 34 | Appendix A. Updated List of Rules for Pruning Links in | |||
12. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 34 | Flex-Algorithm Topology | |||
13. APPENDIX . . . . . . . . . . . . . . . . . . . . . . . . . . 34 | Acknowledgements | |||
13.1. Updated list of rules for pruning links in Flex-algorithm | Contributors | |||
topology . . . . . . . . . . . . . . . . . . . . . . . . 34 | Authors' Addresses | |||
14. References . . . . . . . . . . . . . . . . . . . . . . . . . 35 | ||||
14.1. Normative References . . . . . . . . . . . . . . . . . . 35 | ||||
14.2. Informative References . . . . . . . . . . . . . . . . . 37 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 38 | ||||
1. Introduction | 1. Introduction | |||
High bandwidth traffic such as residential Internet traffic and | High bandwidth traffic such as residential Internet traffic and | |||
machine-to-machine elephant flows benefit from using high capacity | machine-to-machine elephant flows benefit from using high capacity | |||
links. Accordingly, many network operators define a link's metric | links. Accordingly, many network operators define a link's metric | |||
relative to its capacity to help direct traffic to higher bandwidth | relative to its capacity to help direct traffic to higher bandwidth | |||
links, but this is no guarantee that lower bandwidth links will be | links, but this is no guarantee that lower bandwidth links will be | |||
avoided, especially in failure scenarios. To ensure that elephant | avoided, especially in failure scenarios. To ensure that elephant | |||
flows are only placed on high capacity links, it would be useful to | flows are only placed on high capacity links, it would be useful to | |||
explicitly exclude the high throughput traffic from utilizing links | explicitly exclude the high throughput traffic from utilizing links | |||
below a certain capacity. Flex-Algorithm [RFC9350] provides a | below a certain capacity. Flex-Algorithm [RFC9350] provides a | |||
mechanism to create constrained paths by defining a set of parameters | mechanism to create constrained paths by defining a set of parameters | |||
consisting of calculation-type, metric-type, and a set of | consisting of calculation-type, metric-type, and a set of | |||
constraints. In this document, we define further extensions to Flex- | constraints. In this document, we define further extensions to the | |||
Algorithm Definition (FAD) that will allow operators additional | Flexible Algorithm Definition (FAD) that will allow operators | |||
control over their traffic flows, especially with respect to | additional control over their traffic flows, especially with respect | |||
bandwidth constraints. | to bandwidth constraints. | |||
Historically, IGPs have done path computation by minimizing the sum | Historically, IGPs have done path computation by minimizing the sum | |||
of the link metrics along the path from source to destination. While | of the link metrics along the path from source to destination. While | |||
the metric has been administratively defined, implementations have | the metric has been administratively defined, implementations have | |||
defaulted to a metric that is inversely proportional to link | defaulted to a metric that is inversely proportional to link | |||
bandwidth. This has driven traffic to higher bandwidth links and has | bandwidth. This has driven traffic to higher bandwidth links and has | |||
required manual metric manipulation to achieve the desired loading of | required manual metric manipulation to achieve the desired loading of | |||
the network. | the network. | |||
Over time, with the addition of different traffic types, the need for | Over time, with the addition of different traffic types, the need for | |||
skipping to change at page 4, line 17 ¶ | skipping to change at line 145 ¶ | |||
operational costs and thus may want a metric that reflects the actual | operational costs and thus may want a metric that reflects the actual | |||
fiscal costs of using a link. Other traffic may require low jitter, | fiscal costs of using a link. Other traffic may require low jitter, | |||
leading to an entirely different set of metrics. With Flex- | leading to an entirely different set of metrics. With Flex- | |||
Algorithm, all of these different metrics, and more, could be used | Algorithm, all of these different metrics, and more, could be used | |||
concurrently on the same network. | concurrently on the same network. | |||
In some circumstances, path computation constraints, such as | In some circumstances, path computation constraints, such as | |||
administrative groups, can be used to ensure that traffic avoids | administrative groups, can be used to ensure that traffic avoids | |||
particular portions of the network. These strict constraints are | particular portions of the network. These strict constraints are | |||
appropriate when there is an absolute requirement to avoid parts of | appropriate when there is an absolute requirement to avoid parts of | |||
the topology, even in failure conditions. If, however, the | the topology, even in failure conditions. However, if the | |||
requirement is less strict, then using a high metric in a portion of | requirement is less strict, then using a high metric in a portion of | |||
the topology may be more appropriate. | the topology may be more appropriate. | |||
This document defines a family of generic metrics that can advertise | This document defines a family of generic metrics that can advertise | |||
various types of administratively assigned metrics. This document | various types of administratively assigned metrics. This document | |||
proposes standard metric-types which have specific semantics and | proposes standard metric-types that have specific semantics and | |||
require to be standardized. This document also specifies user | require to be standardized. This document also specifies user- | |||
defined metric-types where specifics are not defined, so that | defined metric-types where specifics are not defined so that | |||
administrators are free to assign semantics as they see fit. | administrators are free to assign semantics as they see fit. | |||
In Section 4, this document specifies a new bandwidth based metric | In Section 4, this document specifies a new bandwidth-based metric | |||
type to be used with Flex-Algorithm and other applications. | type to be used with Flex-Algorithm and other applications. | |||
Section 3 defines additional Flexible Algorithm Definition (FAD) | Section 3 defines additional FAD [RFC9350] constraints that allow the | |||
[RFC9350] constraints that allow the network administrator to | network administrator to preclude the use of low bandwidth links or | |||
preclude the use of low bandwidth links or high delay links. | high delay links. | |||
Section 4.1 defines mechanisms to automatically calculate link | Section 4.1 defines mechanisms to automatically calculate link | |||
metrics based on the parameters defined in the FAD and the advertised | metrics based on the parameters defined in the FAD and the advertised | |||
Maximum Link Bandwidth of each link. This is advantageous because | Maximum Link Bandwidth of each link. This is advantageous because | |||
administrators can change their criteria for metric assignment | administrators can change their criteria for metric assignment | |||
centrally, without individual modification of each link metric | centrally, without individual modification of each link metric | |||
throughout the network. The procedures described in this document | throughout the network. The procedures described in this document | |||
are intended to assign a metric to a link based on the total link | are intended to assign a metric to a link based on the total link | |||
capacity and they are not intended to update the metric based on | capacity, and they are not intended to update the metric based on | |||
actual traffic flow. Thus, the procedures described in this document | actual traffic flow. Thus, the procedures described in this document | |||
are not a replacement to the capability of a PCE [RFC4655] which has | are not a replacement to the capability of a PCE [RFC4655], which has | |||
a dynamic view of the network and provides real-time bandwidth | a dynamic view of the network and provides real-time bandwidth | |||
management or a distributed bandwidth management protocol. | management or a distributed bandwidth management protocol. | |||
1.1. Requirements Language | ||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | ||||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | ||||
"OPTIONAL" in this document are to be interpreted as described in | ||||
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | ||||
capitals, as shown here. | ||||
2. Generic Metric Advertisement | 2. Generic Metric Advertisement | |||
IS-IS [RFC1195]and OSPF [RFC2328] advertise a metric for each link in | IS-IS [RFC1195] and OSPF [RFC2328] advertise a metric for each link | |||
their respective link state advertisements. Multiple metric types | in their respective link state advertisements. Multiple metric types | |||
are already supported. Administratively assigned metrics are | are already supported. Administratively assigned metrics are | |||
described in the original OSPF and IS-IS specifications. The Traffic | described in the original OSPF and IS-IS specifications. The Traffic | |||
Engineering Default Metric is defined in [RFC5305] and [RFC3630] and | Engineering Default Metric is defined in [RFC5305] and [RFC3630], and | |||
the Min Unidirectional delay metric is defined in [RFC8570] and | the Min Unidirectional delay metric is defined in [RFC8570] and | |||
[RFC7471]. Other metrics, such as jitter, reliability, and fiscal | [RFC7471]. Other metrics, such as jitter, reliability, and fiscal | |||
cost may be helpful, depending on the traffic class. Rather than | cost may be helpful, depending on the traffic class. Rather than | |||
attempt to enumerate all possible metrics of interest, this document | attempt to enumerate all possible metrics of interest, this document | |||
specifies a generic mechanism for advertising metrics. | specifies a generic mechanism for advertising metrics. | |||
Each generic metric advertisement is on a per-link and per-metric | Each generic metric advertisement is on a per-link and per-metric- | |||
type basis. The metric advertisement consists of a metric type field | type basis. The metric advertisement consists of a metric type field | |||
and a value for the metric. The metric type field is assigned by the | and a value for the metric. The metric type field has been assigned | |||
"IGP Metric-Type" IANA registry. Metric types 0-127 are standard | in the "IGP Metric-Type" IANA registry. Metric types 0-127 are | |||
metric types as assigned by IANA. This document further specifies a | standard metric types as assigned by IANA. This document further | |||
user-defined metric type space of metric types 128-255. These are | specifies a user-defined metric type space of metric types 128-255. | |||
user defined and can be assigned by an operator for local use. | These are user defined and can be assigned by an operator for local | |||
use. | ||||
Implementations MUST support sending and receiving generic metric | Implementations MUST support sending and receiving generic metric | |||
sub-TLV in Application Specific Link Attributes (ASLA)encodings as | sub-TLV in Application-Specific Link Attributes (ASLA) encodings as | |||
well as in the TLV 22/extended link LSA/TE-LSAs. The usage of a | well as in the TLV 22/extended link LSA/TE-LSAs. The usage of a | |||
generic metric by an individual application is subject to the same | generic metric by an individual application is subject to the same | |||
rules that apply to other link attributes as defined in [RFC3630], | rules that apply to other link attributes as defined in [RFC3630], | |||
[RFC5305], [RFC9479], [RFC9492] and [RFC9350]. | [RFC5305], [RFC9479], [RFC9492], and [RFC9350]. | |||
2.1. IS-IS Generic Metric Sub-TLV | 2.1. IS-IS Generic Metric Sub-TLV | |||
The IS-IS Generic Metric sub-TLV specifies the link metric for a | The IS-IS Generic Metric sub-TLV specifies the link metric for a | |||
given metric type. Typically, this metric is assigned by a network | given metric type. Typically, this metric is assigned by a network | |||
administrator. The Generic Metric sub-TLV is advertised in the TLVs/ | administrator. The Generic Metric sub-TLV is advertised in the TLVs/ | |||
sub-TLVs below: | sub-TLVs below: | |||
a. TLV-22 (Extended IS reachability) [RFC5305] | a. TLV 22 (Extended IS reachability) [RFC5305] | |||
b. TLV-222 (MT-ISN) [RFC5120] | b. TLV 222 (MT-ISN) [RFC5120] | |||
c. TLV-23 (IS Neighbor Attribute) [RFC5311] | c. TLV 23 (IS Neighbor Attribute) [RFC5311] | |||
d. TLV-223 (MT IS Neighbor Attribute) [RFC5311] | d. TLV 223 (MT IS Neighbor Attribute) [RFC5311] | |||
e. TLV-141 (inter-AS reachability information) [RFC9346] | e. TLV 141 (Inter-AS Reachability Information) [RFC9346] | |||
f. sub-TLV 16 (Application-Specific Link Attributes (ASLA)) of TLV | f. sub-TLV 16 (Application-Specific Link Attributes (ASLA)) of TLV | |||
22/222/23/223/141 [RFC9479] | 22/222/23/223/141 [RFC9479] | |||
g. TLV 25 (L2 Bundle Member Attributes) [RFC8668] Marked as | ||||
"y(s)" (shareable among bundle members) | ||||
The Generic Metric sub-TLV, type TBD1 (IANA), and is six octets in | g. TLV 25 (L2 Bundle Member Attributes) [RFC8668]. Marked as "y(s)" | |||
length. | (shareable among bundle members). | |||
The Generic Metric sub-TLV, type 17, is 6 octets in length. | ||||
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 | metric-type | | | Type | Length | metric-type | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Value | | | Value | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Type (1 octet): | Figure 1: IS-IS Generic Metric Sub-TLV | |||
An 8-bit field assigned by IANA (To Be Determined as TBD1). | ||||
This value uniquely identifies the Generic Metric TLV. | ||||
Length (1 octet): | where: | |||
An 8-bit field indicating the total length, in octets, | ||||
of the subsequent fields. For this TLV, the Length is set to 4. | ||||
Metric-Type (1 octet): | Type (1 octet): | |||
An 8-bit field specifying the type of metric. | An 8-bit field assigned by IANA (17). This value uniquely | |||
The value is taken from the "IGP Metric-Type" | identifies the Generic Metric TLV. | |||
registry maintained by IANA. The metric type may | ||||
be any value which is indicated as allowed | ||||
in the generic metric sub-TLV by the | ||||
IGP Metric-Type Registry. | ||||
Value (3 octets): | Length (1 octet): | |||
A 24-bit unsigned integer representing the metric value. | An 8-bit field indicating the total length, in octets, of the | |||
The valid range is from 0 to 16,777,215 (0xFFFFFF). | subsequent fields. For this TLV, the Length is set to 4. | |||
Figure 1: IS-IS Generic Metric Sub-TLV | Metric-Type (1 octet): | |||
An 8-bit field specifying the type of metric. The value is taken | ||||
from the "IGP Metric-Type" registry maintained by IANA. The | ||||
metric type may be any value that is indicated as allowed in the | ||||
Generic Metric sub-TLV by the "IGP Metric-Type" registry. | ||||
Value (3 octets): | ||||
A 24-bit unsigned integer representing the metric value. The | ||||
valid range is from 0 to 16,777,215 (0xFFFFFF). | ||||
The Generic Metric sub-TLV MAY be advertised multiple times. For a | The Generic Metric sub-TLV MAY be advertised multiple times. For a | |||
particular metric type, the Generic Metric sub-TLV MUST be advertised | particular metric type, the Generic Metric sub-TLV MUST be advertised | |||
only once for a link when advertised in TLV 22, 222, 23, 223 and 141. | only once for a link when advertised in TLV 22, 222, 23, 223, and | |||
When Generic metric sub-TLV is advertised in ASLA, each metric type | 141. When the Generic Metric sub-TLV is advertised in ASLA, each | |||
MUST be advertised only once per-application for a link. If there | metric type MUST be advertised only once per-application for a link. | |||
are multiple Generic Metric sub-TLVs advertised for a link for the | If there are multiple Generic Metric sub-TLVs advertised for a link | |||
same metric type (and same application in case of ASLA) in one or | for the same metric type (and the same application in case of ASLA) | |||
more received LSPDUs, advertisement in the lowest numbered fragment | in one or more received Link State Protocol Data Units (LSPDUs), | |||
MUST be used and the subsequent instances MUST be ignored. | advertisement in the lowest-numbered fragment MUST be used, and the | |||
subsequent instances MUST be ignored. | ||||
For a link, if the metric type corresponds to a metric type for which | For a link, if the metric type corresponds to a metric type for which | |||
legacy advertisement mechanisms exist (e.g., the IGP metric, the | legacy advertisement mechanisms exist (e.g., the IGP Metric, the Min | |||
Minimum Unidirectional Link Delay, or the Traffic Engineering Default | Unidirectional Link Delay, or the Traffic Engineering Default | |||
Metric), the legacy metric types MUST be utilized from the existing | Metric), the legacy metric types MUST be utilized from the existing | |||
TLV or sub-TLVs. If a Generic Metric advertises a legacy metric, it | TLV or sub-TLVs. If a Generic Metric advertises a legacy metric, it | |||
MUST be ignored. . | MUST be ignored. | |||
A metric value of 0xFFFFFF is considered as maximum link metric and a | A metric value of 0xFFFFFF is considered a maximum link metric, and a | |||
link having this metric value MUST be used during Flex-algorithm | link having this metric value MUST be used during Flex-Algorithm | |||
calculations as a last resort link as described in sec 15.3 of | calculations as a last resort link as described in Section 15.3 of | |||
[RFC9350]. A link can be made unusable by Flex-algorithm by leaving | [RFC9350]. A link can be made unusable by Flex-Algorithm by leaving | |||
out Generic metric advertisement of the particular metric-type that | out Generic Metric advertisement of the particular metric-type that | |||
the Flex-algorithm uses as described in [RFC9350]. | the Flex-Algorithm uses, as described in [RFC9350]. | |||
During the router maintenance activity, the Generic Metric for all | During the router maintenance activity, the Generic Metric for all | |||
the links on the node MAY be set to a maximum value of 16,777,215 | the links on the node MAY be set to a maximum value of 16,777,215 | |||
(0xFFFFFF), as it is the maximum usable link metric for the Flex- | (0xFFFFFF), as it is the maximum usable link metric for the Flex- | |||
algorithm calculations. | Algorithm calculations. | |||
2.2. OSPF Generic Metric Sub-TLV | 2.2. OSPF Generic Metric Sub-TLV | |||
The OSPF Generic Metric sub-TLV specifies the link metric for a given | The OSPF Generic Metric sub-TLV specifies the link metric for a given | |||
metric type. Typically, this metric is assigned by a network | metric type. Typically, this metric is assigned by a network | |||
administrator. The Generic Metric sub-TLV is advertised in the TLVs | administrator. The Generic Metric sub-TLV is advertised in the TLVs | |||
below: | below: | |||
a. sub-TLV of TE Link TLV (2) of OSPF TE LSA [RFC3630]. | a. sub-TLV of TE Link TLV (2) of OSPF TE LSA [RFC3630]. | |||
b. sub-TLV of TE Link TLV (2) of OSPFv2 Inter-AS-TE-v2 LSA | b. sub-TLV of TE Link TLV (2) of OSPFv2 Inter-AS-TE-v2 LSA | |||
[RFC5392]. | [RFC5392]. | |||
c. sub-TLV of TE Link TLV (2) of OSPFv3 Intra-Area-TE-LSA | c. sub-TLV of TE Link TLV (2) of OSPFv3 Intra-Area-TE-LSA [RFC5329]. | |||
[RFC5329]. | ||||
d. sub-TLV of TE Link TLV (2) of OSPFv3 Inter-AS-TE-v3 LSA | d. sub-TLV of TE Link TLV (2) of OSPFv3 Inter-AS-TE-v3 LSA | |||
[RFC5392]. | [RFC5392]. | |||
e. sub-TLV of Application-Specific Link Attributes (ASLA) sub-TLV | e. sub-TLV of Application-Specific Link Attributes (ASLA) sub-TLV | |||
[RFC9492] of the OSPFv2 Extended Link TLV [RFC7684]. | [RFC9492] of the OSPFv2 Extended Link TLV [RFC7684]. | |||
f. sub-TLV of Application-Specific Link Attributes (ASLA) sub-TLV | f. sub-TLV of Application-Specific Link Attributes (ASLA) sub-TLV | |||
[RFC9492] of the OSPFv3 Router-Link TLV [RFC8362]. | [RFC9492] of the OSPFv3 Router-Link TLV [RFC8362]. | |||
g. sub-TLV of the OSPFv2 L2 Bundle Member Attributes sub-TLV | g. sub-TLV of the OSPFv2 L2 Bundle Member Attributes sub-TLV | |||
[RFC9356]. | [RFC9356]. | |||
h. sub-TLV of the OSPFv3 L2 Bundle Member Attributes sub-TLV | h. sub-TLV of the OSPFv3 L2 Bundle Member Attributes sub-TLV | |||
[RFC9356]. | [RFC9356]. | |||
The Generic Metric sub-TLV, type TBD21/TBD22/TB23 (IANA), and is | The Generic Metric sub-TLV, types 25/36/34, is eight octets in | |||
eight octets in length. | length. | |||
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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| metric-type | Reserved (MBZ) | | | metric-type | Reserved (MBZ) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Value | | | Value | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Type (2 octets): | Figure 2: OSPF Generic Metric Sub-TLV | |||
A 16-bit field assigned by IANA (To Be Determined as TBD21/TBD22/TBD23). | ||||
This value uniquely identifies the Generic Metric TLV. | ||||
Length (2 octets): | where: | |||
A 16-bit field indicating the total length, in octets, | ||||
of the subsequent fields. For this TLV, the Length is set to 8. | ||||
Metric-Type (1 octet): | Type (2 octets): | |||
An 8-bit field specifying the type of metric. | A 16-bit field assigned by IANA (25/36/34). This value uniquely | |||
The value is taken from the "IGP Metric-Type" | identifies the Generic Metric TLV. | |||
registry maintained by IANA. The metric type | ||||
may be any value which is indicated as allowed | ||||
in the generic metric sub-TLV by the | ||||
IGP Metric-Type Registry. | ||||
Reserved (3 octets): | Length (2 octets): | |||
Must set to zero by sender and | A 16-bit field indicating the total length, in octets, of the | |||
must be ignored by receiver. | subsequent fields. For this TLV, the Length is set to 8. | |||
Value (4 octets): | Metric-Type (1 octet): | |||
A 32-bit unsigned integer representing the metric value. | An 8-bit field specifying the type of metric. The value is taken | |||
The valid range is from 0 to 4,294,967,295(0xFFFFFFFF). | from the "IGP Metric-Type" registry maintained by IANA. The | |||
metric type may be any value that is indicated as allowed in the | ||||
Generic Metric sub-TLV by the "IGP Metric-Type" registry. | ||||
Figure 2: OSPF Generic Metric Sub-TLV | Reserved (3 octets): | |||
Must set to zero by the sender and must be ignored by the | ||||
receiver. | ||||
Value (4 octets): | ||||
A 32-bit unsigned integer representing the metric value. The | ||||
valid range is from 0 to 4,294,967,295 (0xFFFFFFFF). | ||||
The Generic Metric sub-TLV MAY be advertised multiple times. For a | The Generic Metric sub-TLV MAY be advertised multiple times. For a | |||
particular metric type, the Generic Metric sub-TLV MUST be advertised | particular metric type, the Generic Metric sub-TLV MUST be advertised | |||
only once for a link when advertised as (a) through (d) above. When | only once for a link when advertised as (a) through (d) above. When | |||
Generic Metric sub-TLV is advertised as sub-TLV of ASLA, it MUST be | the Generic Metric sub-TLV is advertised as a sub-TLV of ASLA, it | |||
advertised only once per-application for a link. If there are | MUST be advertised only once per application for a link. If there | |||
multiple Generic Metric sub-TLVs advertised for a link for the same | are multiple Generic Metric sub-TLVs advertised for a link for the | |||
metric type (and same application in case of ASLA) in one or more | same metric type (and the same application in case of ASLA) in one or | |||
received LSAs, advertisement in the lowest numbered LSA MUST be used | more received LSAs, advertisement in the lowest-numbered LSA MUST be | |||
and the subsequent instances MUST be ignored. | used, and the subsequent instances MUST be ignored. | |||
For a link, if the metric type corresponds to a metric type for which | For a link, if the metric type corresponds to a metric type for which | |||
legacy advertisement mechanisms exist (e.g., the IGP metric, the | legacy advertisement mechanisms exist (e.g., the IGP Metric, the Min | |||
Minimum Unidirectional Link Delay, or the Traffic Engineering Default | Unidirectional Link Delay, or the Traffic Engineering Default | |||
Metric), the legacy metric types MUST be utilized from the existing | Metric), the legacy metric types MUST be utilized from the existing | |||
TLV or sub-TLVs. If a Generic Metric advertises a legacy metric, it | TLV or sub-TLVs. If a Generic Metric advertises a legacy metric, it | |||
MUST be ignored. | MUST be ignored. | |||
A metric value of 0xFFFFFFFF is considered as maximum link metric and | A metric value of 0xFFFFFFFF is considered a maximum link metric, and | |||
a link having this metric value MUST be used during Flex-algorithm | a link having this metric value MUST be used during Flex-Algorithm | |||
calculations as a last resort link as described in sec 15.3 of | calculations as a last resort link, as described in Section 15.3 of | |||
[RFC9350]. | [RFC9350]. | |||
A link can be made unusable by Flex-algorithm by leaving out Generic | A link can be made unusable by Flex-Algorithm by leaving out Generic | |||
metric advertisement of the particular metric-type that the Flex- | Metric advertisement of the particular metric-type that the Flex- | |||
algorithm uses as described in [RFC9350]. | Algorithm uses, as described in [RFC9350]. | |||
During the router maintenance activity, the Generic Metric for all | During the router maintenance activity, the Generic Metric for all | |||
the links on the node MAY be set to a maximum value of 4,294,967,295 | the links on the node MAY be set to a maximum value of 4,294,967,295 | |||
((0xFFFFFFFF), as it is the maximum usable link metric for the Flex- | (0xFFFFFFFF), as it is the maximum usable link metric for the Flex- | |||
algorithm calculations. | Algorithm calculations. | |||
2.3. Generic Metric applicability to Flexible Algorithms Multi-domain/ | 2.3. Generic Metric Applicability to Flexible Algorithm Multi-Domain/ | |||
Multi-area networks | Multi-Area Networks | |||
Generic Metric can be used by Flex-Algorithms by specifying the | Generic Metric can be used by Flex-Algorithm by specifying the metric | |||
metric type in the Flexible Algorithm Definitions. When Flex- | type in the Flexible Algorithm Definitions. When Flex-Algorithm is | |||
Algorithms is used in a multi-area network, [RFC9350] defines the | used in a multi-area network, [RFC9350] defines the Flexible | |||
Flexible Algorithm Prefix Metric (FAPM) sub-TLV that carries the | Algorithm Prefix Metric (FAPM) sub-TLV that carries the Flexible- | |||
Flexible-Algorithm-specific metric. Metrics carried in FAPM will be | Algorithm-specific metric. Metrics carried in FAPM will be equal to | |||
equal to the metric to reach the prefix for that Flex-Algorithm in | the metric to reach the prefix for that Flex-Algorithm in its source | |||
its source area or domain (source area from the ABR perspective). | area or domain (source area from the Area Border Router (ABR) | |||
When Flex-Algorithm uses Generic metric, the same procedures as | perspective). When Flex-Algorithm uses Generic Metric, the same | |||
described in section 13 of [RFC9350] are used to send and process | procedures as described in Section 13 of [RFC9350] are used to send | |||
FAPM sub-TLV. | and process the FAPM sub-TLV. | |||
3. FAD constraint Sub-TLVs | 3. FAD Constraint Sub-TLVs | |||
Large high throughput flows are referred to as "elephant flows". | Large high throughput flows are referred to as "elephant flows". | |||
Directing an elephant flow down a low-bandwidth link might congest | Directing an elephant flow down a low-bandwidth link might congest | |||
the link and cause other critical application traffic flowing on the | the link and cause other critical application traffic flowing on the | |||
link to drop. Thus, in the context of Flex-Algorithm, it would be | link to drop. Thus, in the context of Flex-Algorithm, it would be | |||
useful to be able to constrain the topology to only those links | useful to be able to constrain the topology to only those links | |||
capable of supporting a minimum amount of bandwidth. | capable of supporting a minimum amount of bandwidth. | |||
If the capacity of a link is constant, this can already be achieved | If the capacity of a link is constant, this can already be achieved | |||
through the use of administrative groups. However, when a layer-3 | through the use of administrative groups. However, when a Layer 3 | |||
link is actually a collection of layer-2 links (LAG/layer-2 Bundle), | link is actually a collection of Layer 2 links (Link Aggregation | |||
the link bandwidth will vary based on the set of active constituent | Group (LAG) / Layer 2 Bundle), the link bandwidth will vary based on | |||
links. This could be automated by having an implementation vary the | the set of active constituent links. This could be automated by | |||
advertised administrative groups based on bandwidth, but this seems | having an implementation vary the advertised administrative groups | |||
unnecessarily complex and expressing this requirement as a direct | based on bandwidth, but this seems unnecessarily complex and | |||
constraint on the topology seems simpler. This is also advantageous | expressing this requirement as a direct constraint on the topology | |||
if the minimum required bandwidth changes, as this constraint would | seems simpler. This is also advantageous if the minimum required | |||
provide a single centralized, coordinated point of control. | bandwidth changes, as this constraint would provide a single | |||
centralized, coordinated point of control. | ||||
To satisfy this requirement, this document defines an Exclude Minimum | To satisfy this requirement, this document defines an Exclude Minimum | |||
Bandwidth constraint. When this constraint is advertised in a FAD, a | Bandwidth constraint. When this constraint is advertised in a FAD, a | |||
link will be pruned from the Flex-Algorithm topology if the link's | link will be pruned from the Flex-Algorithm topology if the link's | |||
advertised Maximum Link Bandwidth is below the advertised Minimum | advertised Maximum Link Bandwidth is below the advertised Minimum | |||
Bandwidth value. | Bandwidth value. | |||
Similarly, this document defines an Exclude Maximum Link Delay | Similarly, this document defines an Exclude Maximum Link Delay | |||
constraint. Applications, such as High-Frequency Trading are | constraint. Applications, such as High-Frequency Trading are | |||
sensitive to link delays and may perform poorly in networks prone to | sensitive to link delays and may perform poorly in networks prone to | |||
delay variability, such as those with transparent Layer 2 link | delay variability, such as those with transparent Layer 2 link | |||
recovery mechanisms or satellite links.". Mechanisms already exist | recovery mechanisms or satellite links. Mechanisms already exist to | |||
to measure the link delay dynamically and advertise it in the IGP. | measure the link delay dynamically and advertise it in the IGP. | |||
Networks that employ dynamic link-delay measurement, may want to | Networks that employ dynamic link-delay measurement, may want to | |||
exclude links that have a delay over a given threshold. | exclude links that have a delay over a given threshold. | |||
3.1. IS-IS FAD constraint Sub-TLVs | 3.1. IS-IS FAD Constraint Sub-TLVs | |||
3.1.1. IS-IS Exclude Minimum Bandwidth sub-TLV | 3.1.1. IS-IS Exclude Minimum Bandwidth Sub-TLV | |||
IS-IS Flex-Algorithm Exclude Minimum Bandwidth sub-TLV (FAEMB) is a | IS-IS Flex-Algorithm Exclude Minimum Bandwidth (FAEMB) sub-TLV is a | |||
sub-TLV of the IS-IS FAD sub-TLV. It has the following format: | sub-TLV of the IS-IS FAD sub-TLV. It 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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Min Bandwidth | | | Min Bandwidth | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 3: IS-IS FAEMB Sub-TLV | ||||
where: | where: | |||
Type (1 octet): | Type (1 octet): | |||
An 8-bit field assigned by IANA (To Be Determined as TBD3). | An 8-bit field assigned by IANA (6). This value uniquely | |||
This value uniquely identifies the FAEMB sub-TLV. | identifies the FAEMB sub-TLV. | |||
Length (1 octet): | Length (1 octet): | |||
An 8-bit field indicating the total length, in octets, | An 8-bit field indicating the total length, in octets, of the | |||
of the subsequent fields. For this sub-TLV, the Length is set to 4. | subsequent fields. For this sub-TLV, the Length is set to 4. | |||
Min Bandwidth (4 octets): | Min Bandwidth (4 octets): | |||
A 32-bit field specifying the link bandwidth encoded in IEEE | A 32-bit field specifying the link bandwidth encoded in IEEE | |||
floating point format (32 bits)[IEEE754-2019]. | floating point format (32 bits) [IEEE754-2019]. The units are | |||
The units are bytes-per-second. | bytes per second. | |||
Figure 3: IS-IS FAEMB Sub-TLV | ||||
The FAEMB sub-TLV MUST appear at most once in the FAD sub-TLV. If it | The FAEMB sub-TLV MUST appear once at most in the FAD sub-TLV. If it | |||
appears more than once, the IS-IS FAD sub-TLV MUST be ignored by the | appears more than once, the IS-IS FAD sub-TLV MUST be ignored by the | |||
receiver. | receiver. | |||
The Minimum bandwidth advertised in FAEMB sub-TLV MUST be compared | The Minimum bandwidth advertised in the FAEMB sub-TLV MUST be | |||
with Maximum Link Bandwidth advertised in sub-sub-TLV 9 of ASLA sub- | compared with Maximum Link Bandwidth advertised in sub-sub-TLV 9 of | |||
TLV [RFC9479]. If L-Flag is set in the ASLA sub-TLV, the Minimum | the ASLA sub-TLV [RFC9479]. If the L-flag is set in the ASLA sub- | |||
bandwidth advertised in FAEMB sub-TLV MUST be compared with Maximum | TLV, the Minimum bandwidth advertised in the FAEMB sub-TLV MUST be | |||
Link Bandwidth as advertised in the sub-TLV 9 of the TLV | compared with the Maximum Link Bandwidth as advertised in the sub-TLV | |||
22/222/23/223/141 [RFC5305] as defined in [RFC9479] Section 4.2. | 9 of the TLV 22/222/23/223/141 [RFC5305], as defined in Section 4.2 | |||
of [RFC9479]. | ||||
If the Maximum Link Bandwidth is lower than the Minimum link | If the Maximum Link Bandwidth is lower than the Minimum Link | |||
bandwidth advertised in FAEMB sub-TLV, the link MUST be excluded from | Bandwidth advertised in the FAEMB sub-TLV, the link MUST be excluded | |||
the Flex-Algorithm topology. If a link does not have the Maximum | from the Flex-Algorithm topology. If a link does not have the | |||
Link Bandwidth advertised but the FAD contains this sub-TLV, then | Maximum Link Bandwidth advertised but the FAD contains this sub-TLV, | |||
that link MUST NOT be excluded from the topology based on the Minimum | then that link MUST NOT be excluded from the topology based on the | |||
Bandwidth constraint. | Minimum Bandwidth constraint. | |||
3.1.2. IS-IS Exclude Maximum Delay Sub-TLV | 3.1.2. IS-IS Exclude Maximum Delay Sub-TLV | |||
IS-IS Flex-Algorithm Exclude Maximum Delay sub-TLV (FAEMD) is a sub- | IS-IS Flex-Algorithm Exclude Maximum Delay (FAEMD) sub-TLV is a sub- | |||
TLV of the IS-IS FAD sub-TLV. It has the following format. | TLV of the IS-IS FAD sub-TLV. It has the following format: | |||
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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Type | Length | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Max Link Delay | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
Figure 4: IS-IS FAEMD Sub-TLV | ||||
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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Type | Length | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Max Link Delay | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
where: | where: | |||
Type (1 octet): | Type (1 octet): | |||
An 8-bit field assigned by IANA (To Be Determined as TBD4). | An 8-bit field assigned by IANA (7). This value uniquely | |||
This value uniquely identifies the FAEMD sub-TLV. | identifies the FAEMD sub-TLV. | |||
Length (1 octet): | Length (1 octet): | |||
An 8-bit field indicating the total length, in octets, | An 8-bit field indicating the total length, in octets, of the | |||
of the subsequent fields. For this sub-TLV, the Length is set to 3. | subsequent fields. For this sub-TLV, the Length is set to 3. | |||
Max link delay (3 octets): | Max Link Delay (3 octets): | |||
A 24-bit field specifying the Maximum link delay in microseconds. | A 24-bit field specifying the Maximum link delay in microseconds. | |||
Figure 4: IS-IS FAEMD Sub-TLV | ||||
The FAEMD sub-TLV MUST appear only once in the FAD sub-TLV. If it | The FAEMD sub-TLV MUST appear only once in the FAD sub-TLV. If it | |||
appears more than once, the IS-IS FAD sub-TLV MUST be ignored by the | appears more than once, the IS-IS FAD sub-TLV MUST be ignored by the | |||
receiver. | receiver. | |||
The Maximum link delay advertised in FAEMD sub-TLV MUST be compared | The Maximum link delay advertised in the FAEMD sub-TLV MUST be | |||
with Min Unidirectional Link Delay advertised in sub-sub-TLV 34 of | compared with Min Unidirectional Link Delay advertised in sub-sub-TLV | |||
ASLA sub-TLV [RFC9479]. If the L-Flag is set in the ASLA sub-TLV, | 34 of the ASLA sub-TLV [RFC9479]. If the L-flag is set in the ASLA | |||
the Maximum link delay advertised in FAEMD sub-TLV MUST be compared | sub-TLV, the Maximum link delay advertised in the FAEMD sub-TLV MUST | |||
with Min Unidirectional Link Delay as advertised by the sub-TLV 34 of | be compared with Min Unidirectional Link Delay as advertised by the | |||
the TLV 22/222/23/223/141 [RFC8570] as defined in [RFC9479] | sub-TLV 34 of the TLV 22/222/23/223/141 [RFC8570], as defined in | |||
Section 4.2. | Section 4.2 of [RFC9479]. | |||
If the Min Unidirectional Link Delay value is higher than the Maximum | If the Min Unidirectional Link Delay value is higher than the Maximum | |||
link delay advertised in FAEMD sub-TLV, the link MUST be excluded | link delay advertised in the FAEMD sub-TLV, the link MUST be excluded | |||
from the Flex-Algorithm topology. If a link does not have the Min | from the Flex-Algorithm topology. If a link does not have the Min | |||
Unidirectional Link Delay advertised but the FAD contains this sub- | Unidirectional Link Delay advertised but the FAD contains this sub- | |||
TLV, then that link MUST NOT be excluded from the topology based on | TLV, then that link MUST NOT be excluded from the topology based on | |||
the Maximum Delay constraint. | the Maximum Delay constraint. | |||
3.2. OSPF FAD constraint Sub-TLVs | 3.2. OSPF FAD Constraint Sub-TLVs | |||
3.2.1. OSPF Exclude Minimum Bandwidth Sub-TLV | 3.2.1. OSPF Exclude Minimum Bandwidth Sub-TLV | |||
OSPF Flex-Algorithm Exclude Minimum Bandwidth sub-TLV (FAEMB) is a | OSPF Flex-Algorithm Exclude Minimum Bandwidth (FAEMB) sub-TLV is a | |||
sub-TLV of the OSPF FAD TLV. It has the following format: | sub-TLV of the OSPF FAD TLV. It 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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Min Bandwidth | | | Min Bandwidth | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | ||||
Type (2 octets): | Figure 5: OSPF FAEMB Sub-TLV | |||
A 16-bit field assigned by IANA (To Be Determined as TBD5). | ||||
This value uniquely identifies the OSPF FAEMB sub-TLV. | ||||
Length (2 octets): | where: | |||
A 16-bit field indicating the total length, in octets, | ||||
of the subsequent fields. For this sub-TLV, the Length is set to 4. | ||||
Min Bandwidth (4 octets): | Type (2 octets): | |||
A 32-bit field specifying the link bandwidth encoded in | A 16-bit field assigned by IANA (6). This value uniquely | |||
IEEE floating point format (32 bits)[IEEE754-2019]. | identifies the OSPF FAEMB sub-TLV. | |||
The units are bytes-per-second. | ||||
Figure 5: OSPF FAEMB Sub-TLV | Length (2 octets): | |||
A 16-bit field indicating the total length, in octets, of the | ||||
subsequent fields. For this sub-TLV, the Length is set to 4. | ||||
Min Bandwidth (4 octets): | ||||
A 32-bit field specifying the link bandwidth encoded in IEEE | ||||
floating point format (32 bits)[IEEE754-2019]. The units are | ||||
bytes per second. | ||||
The FAEMB sub-TLV MUST only appear once in the FAD sub-TLV. If it | The FAEMB sub-TLV MUST only appear once in the FAD sub-TLV. If it | |||
appears more than once, the OSPF FAD TLV MUST be ignored by the | appears more than once, the OSPF FAD TLV MUST be ignored by the | |||
receiver. | receiver. | |||
The Maximum Link Bandwidth as advertised in the Extended Link TLV in | The Maximum Link Bandwidth as advertised in the Extended Link TLV in | |||
the Extended Link Opaque LSA in OSPFv2 [RFC7684] or as a sub-TLV of | the Extended Link Opaque LSA in OSPFv2 [RFC7684] or as a sub-TLV of | |||
the Router-Link TLV of the E-Router-LSA Router-Link TLV in OSPFv3 | the Router-Link TLV of the E-Router-LSA Router-Link TLV in OSPFv3 | |||
[RFC8362] MUST be compared against the Minimum bandwidth advertised | [RFC8362] MUST be compared against the Minimum bandwidth advertised | |||
in FAEMB sub-TLV. If the link bandwidth is lower than the Minimum | in the FAEMB sub-TLV. If the link bandwidth is lower than the | |||
bandwidth advertised in FAEMB sub-TLV, the link MUST be excluded from | Minimum bandwidth advertised in the FAEMB sub-TLV, the link MUST be | |||
the Flex-Algorithm topology. | excluded from the Flex-Algorithm topology. | |||
If a link does not have the Maximum Link Bandwidth advertised but the | If a link does not have the Maximum Link Bandwidth advertised but the | |||
FAD contains this sub-TLV, then that link MUST be included in the | FAD contains this sub-TLV, then that link MUST be included in the | |||
topology and proceed to apply further pruning rules for the link. | topology and proceed to apply further pruning rules for the link. | |||
3.2.2. OSPF Exclude Maximum Delay Sub-TLV | 3.2.2. OSPF Exclude Maximum Delay Sub-TLV | |||
The OSPF Flex-Algorithm Exclude Maximum Delay sub-TLV (FAEMD) is a | The OSPF Flex-Algorithm Exclude Maximum Delay (FAEMD) sub-TLV is a | |||
sub-TLV of the OSPF FAD TLV. It has the following format. | sub-TLV of the OSPF FAD TLV. It 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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| RESERVED | Max link Delay | | | RESERVED | Max Link Delay | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 6: OSPF FAEMD Sub-TLV | ||||
where: | where: | |||
Type (2 octets): | Type (2 octets): | |||
A 16-bit field assigned by IANA (To Be Determined as TBD6). | A 16-bit field assigned by IANA (7). This value uniquely | |||
This value uniquely identifies the OSPF FAEMD sub-TLV. | identifies the OSPF FAEMD sub-TLV. | |||
Length (2 octets): | Length (2 octets): | |||
A 16-bit field indicating the total length, in octets, | A 16-bit field indicating the total length, in octets, of the | |||
of the subsequent fields. For this sub-TLV, the Length is set to 4. | subsequent fields. For this sub-TLV, the Length is set to 4. | |||
Reserved (1 octet): | Reserved (1 octet): | |||
Must set to zero by sender and | Must be set to zero by the sender and must be ignored by the | |||
must be ignored by receiver. | receiver. | |||
Max link delay (3 octets): | Max Link Delay (3 octets): | |||
A 24-bit field specifying the Maximum link delay in microseconds. | A 24-bit field specifying the Maximum link delay in microseconds. | |||
Figure 6: OSPF FAEMD Sub-TLV | ||||
The FAEMD sub-TLV MUST only appear once in the OSPF FAD TLV. If it | The FAEMD sub-TLV MUST only appear once in the OSPF FAD TLV. If it | |||
appears more than once, the OSPF FAD TLV MUST be ignored by the | appears more than once, the OSPF FAD TLV MUST be ignored by the | |||
receiver. | receiver. | |||
The Min Delay value advertised via the Min/Max Unidirectional Link | The Min Delay value advertised via the Min/Max Unidirectional Link | |||
Delay of ASLA sub-TLV [RFC9492], MUST be compared against the Maximum | Delay of the ASLA sub-TLV [RFC9492] MUST be compared against the | |||
delay advertised in the FAEMD sub-TLV. If the Min Unidirectional | Maximum delay advertised in the FAEMD sub-TLV. If the Min | |||
Link Delay is higher than the Maximum delay advertised in the FAEMD | Unidirectional Link Delay is higher than the Maximum delay advertised | |||
sub-TLV, the link MUST be excluded from the Flex-Algorithm topology. | in the FAEMD sub-TLV, the link MUST be excluded from the Flex- | |||
If the Min/Max Unidirectional Link Delay is not advertised for a link | Algorithm topology. If the Min/Max Unidirectional Link Delay is not | |||
but the FAD contains this sub-TLV,then then that link MUST NOT be | advertised for a link but the FAD contains this sub-TLV, then that | |||
excluded from the topology based on the Maximum Delay constraint. | link MUST NOT be excluded from the topology based on the Maximum | |||
Delay constraint. | ||||
4. Bandwidth Metric Advertisement | 4. Bandwidth Metric Advertisement | |||
Historically, IGP implementations have made default metric | Historically, IGP implementations have made default metric | |||
assignments based on link bandwidth. This has proven to be useful, | assignments based on link bandwidth. This has proven to be useful | |||
but has suffered from having different defaults across | but has suffered from having different defaults across | |||
implementations and from the rapid growth of link bandwidths. With | implementations and from the rapid growth of link bandwidths. With | |||
Flex-Algorithm, the network administrator can define a function that | Flex-Algorithm, the network administrator can define a function that | |||
will produce a metric for each link and have each node automatically | will produce a metric for each link and have each node automatically | |||
compute each link's metric based on its bandwidth. | compute each link's metric based on its bandwidth. | |||
This document defines a standard metric type for this purpose called | This document defines a standard metric type for this purpose called | |||
the "Bandwidth Metric". The Bandwidth Metric MAY be advertised in | the "Bandwidth Metric". The Bandwidth Metric MAY be advertised in | |||
the Generic Metric sub-TLV with the metric type set to "Bandwidth | the Generic Metric sub-TLV with the metric type set to "Bandwidth | |||
Metric". IS-IS and OSPF will advertise this type of metric in their | Metric". IS-IS and OSPF will advertise this type of metric in their | |||
link advertisements. Bandwidth metric is a link attribute and for | link advertisements. The Bandwidth Metric is a link attribute and | |||
the advertisement and processing of this attribute for Flex- | for the advertisement and processing of this attribute for Flex- | |||
algorithm, MUST follow the section 12 of [RFC9350] | Algorithm, MUST follow Section 12 of [RFC9350]. | |||
Flex-Algorithm uses this metric type by specifying the bandwidth | Flex-Algorithm uses this metric type by specifying the bandwidth | |||
metric as the metric type in a FAD TLV. A FAD TLV may also specify | metric as the metric type in a FAD TLV. A FAD TLV may also specify | |||
an automatic computation of the bandwidth metric based on a link's | an automatic computation of the bandwidth metric based on a link's | |||
advertised bandwidth. An explicit advertisement of a link's | advertised bandwidth. An explicit advertisement of a link's | |||
bandwidth metric using the Generic Metric sub-TLV overrides this | bandwidth metric using the Generic Metric sub-TLV overrides this | |||
automatic computation. The automatic bandwidth metric calculation | automatic computation. The automatic bandwidth metric calculation | |||
sub-TLVs are advertised in the FAD TLV and these parameters are | sub-TLVs are advertised in the FAD TLV, and these parameters are | |||
applicable to applications such as Flex-algorithm that make use of | applicable to applications such as Flex-Algorithm that make use of | |||
the FAD TLV. | the FAD TLV. | |||
4.1. Automatic Metric Calculation | 4.1. Automatic Metric Calculation | |||
Networks which are designed to be highly regular and follow uniform | Networks that are designed to be highly regular and that follow | |||
metric assignment may want to simplify their operations by | uniform metric assignment may want to simplify their operations by | |||
automatically calculating the bandwidth metric. When a FAD | automatically calculating the bandwidth metric. When a FAD | |||
advertises the metric type as Bandwidth Metric and the link does not | advertises the metric type as Bandwidth Metric and the link does not | |||
have the Bandwidth Metric advertised, automatic metric derivation can | have the Bandwidth Metric advertised, automatic metric derivation can | |||
be used with additional FAD constraint advertisement as described in | be used with additional FAD constraint advertisement as described in | |||
this section. | this section. | |||
If a link's bandwidth changes, then the delay in learning about the | If a link's bandwidth changes, then the delay in learning about the | |||
change may create the possibility of micro-loops in the topology. | change may create the possibility of micro-loops in the topology. | |||
This is no different from the IGP's susceptibility to micro-loops | This is no different from the IGP's susceptibility to micro-loops | |||
during a metric change. The micro-loop avoidance procedures | during a metric change. The micro-loop avoidance procedures | |||
described in [I-D.bashandy-rtgwg-segment-routing-uloop] or any other | described in [SR-LOOP-AVOID] or any other mechanism as described in | |||
mechanism as described in the framework [RFC5715] can be used to | the framework [RFC5715] can be used to avoid micro-loops when the | |||
avoid micro-loops when the automatic metric calculation is deployed. | automatic metric calculation is deployed. | |||
Computing the metric between adjacent systems based on bandwidth | Computing the metric between adjacent systems based on bandwidth | |||
becomes more complex in the case of parallel adjacencies. If there | becomes more complex in the case of parallel adjacencies. If there | |||
are parallel adjacencies between systems, then the bandwidth between | are parallel adjacencies between systems, then the bandwidth between | |||
the systems is the sum of the bandwidth of the parallel links. This | the systems is the sum of the bandwidth of the parallel links. This | |||
is somewhat more complex to deal with, so there is an optional mode | is somewhat more complex to deal with, so there is an optional mode | |||
for computing the aggregate bandwidth. | for computing the aggregate bandwidth. | |||
4.1.1. Automatic Metric Calculation Modes | 4.1.1. Automatic Metric Calculation Modes | |||
4.1.1.1. Simple Mode | 4.1.1.1. Simple Mode | |||
In simple mode, the Maximum Link Bandwidth of a single layer-3 link | In simple mode, the Maximum Link Bandwidth of a single Layer 3 link | |||
is used to derive the metric. This mode is suitable for deployments | is used to derive the metric. This mode is suitable for deployments | |||
that do not use parallel layer-3 links. In this case, the | that do not use parallel Layer 3 links. In this case, the | |||
computation of the metric is straightforward. If a layer-3 link is | computation of the metric is straightforward. If a Layer 3 link is | |||
composed of a layer-2 bundle, then the link bandwidth is the sum of | composed of a Layer 2 bundle, then the link bandwidth is the sum of | |||
the bandwidths of the working components and may vary with layer-2 | the bandwidths of the working components and may vary with Layer 2 | |||
link failures. | link failures. | |||
4.1.1.2. Interface Group Mode | 4.1.1.2. Interface Group Mode | |||
The simple mode of metric calculation may not work well when there | The simple mode of metric calculation may not work well when there | |||
are multiple parallel layer-3 interfaces between two nodes. Ideally, | are multiple parallel Layer 3 interfaces between two nodes. Ideally, | |||
the metric between two systems should be the same given the same | the metric between two systems should be the same given the same | |||
bandwidth, whether the bandwidth is provided by parallel layer-2 | bandwidth, whether the bandwidth is provided by parallel Layer 2 | |||
links or parallel layer-3 links. To address this, in Interface Group | links or parallel Layer 3 links. To address this, in Interface Group | |||
Mode, nodes MUST compute the aggregate bandwidth of all parallel | Mode, nodes MUST compute the aggregate bandwidth of all parallel | |||
adjacencies, MUST derive the metric based on the aggregate bandwidth, | adjacencies, MUST derive the metric based on the aggregate bandwidth, | |||
and MUST apply the resulting metric to each of the parallel | and MUST apply the resulting metric to each of the parallel | |||
adjacencies. Note that a single elephant flow is normally pinned to | adjacencies. Note that a single elephant flow is normally pinned to | |||
a single layer-3 interface. If the single layer-3 link bandwidth is | a single Layer 3 interface. If the single Layer 3 link bandwidth is | |||
not sufficient for any single elephant flow, the mechanisms to solve | not sufficient for any single elephant flow, the mechanisms to solve | |||
this issue are outside the scope of this document. | this issue are outside the scope of this document. | |||
A------B====C====F====D | A------B====C====F====D | |||
| | | | | | |||
------E------- | ------E------- | |||
Figure 7: Parallel interfaces | Figure 7: Parallel Interfaces | |||
For example, in the above diagram, there are two parallel links | For example, in the above diagram, there are two parallel links | |||
between B->C, C->F, F->D. Let us assume the link bandwidth is | between B->C, C->F, F->D. Let us assume the link bandwidth is | |||
uniform 10Gbps on all links. When bandwidth is used to derive the | uniform 10 Gbps on all links. When bandwidth is used to derive the | |||
metric for the links, the metric for each link will be the same. | metric for the links, the metric for each link will be the same. | |||
Traffic from B to D will be forwarded B->E->D as the metric will be | Traffic from B to D will be forwarded as B->E->D because the metric | |||
lower. Since the bandwidth is higher on the B->C->F->D path, the | will be lower. Since the bandwidth is higher on the B->C->F->D path, | |||
metric for that path should be lower than the B->E->D path to attract | the metric for that path should be lower than the B->E->D path to | |||
the traffic on B->C->F->D path. Interface Group Mode should be | attract the traffic on the B->C->F->D path. Interface Group Mode | |||
preferred in cases where there are parallel layer-3 links. | should be preferred in cases where there are parallel Layer 3 links. | |||
In the interface group mode, every node MUST identify the set of | In the Interface Group Mode, every node MUST identify the set of | |||
parallel links between a pair of nodes based on IGP link | parallel links between a pair of nodes based on IGP link | |||
advertisements and MUST consider cumulative bandwidth of the parallel | advertisements and MUST consider cumulative bandwidth of the parallel | |||
links while arriving at the metric of each link. | links while arriving at the metric of each link. | |||
The parallel layer-3 links between two nodes may not have the same | The parallel Layer 3 links between two nodes may not have the same | |||
bandwidth. In such cases the method described in interface group | bandwidth. In such cases, the method described in Interface Group | |||
mode will result in same metric being used for all the parallel links | Mode will result in the same metric being used for all the parallel | |||
which may cause undesired load-balancing on the links. In such | links, which may cause undesired load balancing on the links. In | |||
cases, a device may locally apply load-balancing factor relative to | such cases, a device may locally apply a load-balancing factor | |||
the link bandwidth on the ECMP nexthops. The load-balancing | relative to the link bandwidth on the ECMP next hops. The load- | |||
mechanisms are outside the scope of this document. | balancing mechanisms are outside the scope of this document. | |||
4.1.2. Automatic Metric Calculation Methods | 4.1.2. Automatic Metric Calculation Methods | |||
In automatic metric calculation for simple and interface group mode, | In automatic metric calculation for simple and Interface Group Mode, | |||
Maximum Link Bandwidth of the links is used to derive the metric. | Maximum Link Bandwidth of the links is used to derive the metric. | |||
There are two types of automatic metric derivation methods. | There are two types of automatic metric derivation methods. | |||
1. Reference bandwidth method | 1. Reference bandwidth method | |||
2. Bandwidth thresholds method | 2. Bandwidth thresholds method | |||
4.1.2.1. Reference Bandwidth method | 4.1.2.1. Reference Bandwidth Method | |||
In many networks, the metric is inversely proportional to the link | In many networks, the metric is inversely proportional to the link | |||
bandwidth. The administrator or implementation selects a reference | bandwidth. The administrator or implementation selects a reference | |||
bandwidth and the metric is derived by dividing the reference | bandwidth and the metric is derived by dividing the reference | |||
bandwidth by the advertised Maximum Link Bandwidth. Advertising the | bandwidth by the advertised Maximum Link Bandwidth. Advertising the | |||
reference bandwidth in the FAD constraints allows the metric | reference bandwidth in the FAD constraints allows the metric | |||
computation to be done on every node for each link. The metric is | computation to be done on every node for each link. The metric is | |||
computed using reference bandwidth and the advertised link bandwidth. | computed using reference bandwidth and the advertised link bandwidth. | |||
Centralized control of this reference bandwidth simplifies management | Centralized control of this reference bandwidth simplifies management | |||
in the case that the reference bandwidth changes. In order to ensure | in the case where the reference bandwidth changes. In order to | |||
that small bandwidth changes do not change the link metric, it is | ensure that small bandwidth changes do not change the link metric, it | |||
useful to define the granularity of the bandwidth that is of | is useful to define the granularity of the bandwidth that is of | |||
interest. The link bandwidth will be truncated to this granularity | interest. The link bandwidth will be truncated to this granularity | |||
before deriving the metric. | before deriving the metric. | |||
For example, | For example, | |||
reference bandwidth = 1000G | reference bandwidth = 1000G | |||
Granularity = 20G | Granularity = 20G | |||
The derived metric is 10 for link bandwidth in the range 100G to | The derived metric is 10 for link bandwidth in the range 100G to | |||
119G | 119G | |||
4.1.2.2. Bandwidth Thresholds method | 4.1.2.2. Bandwidth Thresholds Method | |||
The reference bandwidth approach described above provides a uniform | The reference bandwidth approach described above provides a uniform | |||
metric value for a range of link bandwidths. In certain cases there | metric value for a range of link bandwidths. In certain cases, there | |||
may be a need to define non-proportional metric values for the | may be a need to define non-proportional metric values for the | |||
varying ranges of link bandwidth. For example, bandwidths from 10G | varying ranges of link bandwidth. For example, bandwidths from 10G | |||
to 30G are assigned metric value 100, bandwidth from 30G to 70G get a | to 30G are assigned metric value 100, bandwidth from 30G to 70G are | |||
metric value of 50, and bandwidths greater than 70G have a metric of | assigned a metric value of 50, and bandwidths greater than 70G have a | |||
10. In order to support this, a staircase mapping based on bandwidth | metric of 10. In order to support this, a staircase mapping based on | |||
thresholds is supported in the FAD. This advertisement contains a | bandwidth thresholds is supported in the FAD. This advertisement | |||
set of threshold values and associated metrics. | contains a set of threshold values and associated metrics. | |||
4.1.3. IS-IS FAD constraint Sub-TLVs for automatic metric calculation | 4.1.3. IS-IS FAD Constraint Sub-TLVs for Automatic Metric Calculation | |||
4.1.3.1. Reference Bandwidth Sub-TLV | 4.1.3.1. Reference Bandwidth Sub-TLV | |||
This section provides FAD constraint advertisement details for the | This section provides FAD constraint advertisement details for the | |||
reference bandwidth method of metric calculation as described in | reference bandwidth method of metric calculation, as described in | |||
Section 4.1.2.1. The Flexible Algorithm Definition Reference | Section 4.1.2.1. The Flexible Algorithm Definition Reference | |||
Bandwidth sub-TLV (FADRB sub-TLV) is a sub-TLV of the IS-IS FAD sub- | Bandwidth (FADRB) sub-TLV is a sub-TLV of the IS-IS FAD sub-TLV. It | |||
TLV. It has the following format: | 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 | Flags | | | Type | Length | Flags | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Reference Bandwidth | | | Reference Bandwidth | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Granularity Bandwidth | | | Granularity Bandwidth | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 8: IS-IS FADRB Sub-TLV | ||||
where: | where: | |||
Type (1 octet): | Type (1 octet): | |||
An 8-bit field assigned by IANA (To Be Determined as TBD7). | An 8-bit field assigned by IANA (8). This value uniquely | |||
This value uniquely identifies the IS-IS FADRB sub-TLV. | identifies the IS-IS FADRB sub-TLV. | |||
Length (1 octet): | Length (1 octet): | |||
An 8-bit field indicating the total length, in octets, | An 8-bit field indicating the total length, in octets, of the | |||
of the subsequent fields. For this sub-TLV, the Length is set to 9. | subsequent fields. For this sub-TLV, the Length is set to 9. | |||
Flags (1 octet): | Flags (1 octet): | |||
An 8-bit field containing flags. | An 8-bit field containing flags. | |||
0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
|G| | | |G| | | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
G-flag: When set, Interface Group Mode MUST be used to | G-flag: | |||
derive total link bandwidth. | When set, Interface Group Mode MUST be used to derive total link | |||
Unassigned bits MUST be set to zero. | bandwidth. Unassigned bits MUST be set to zero. | |||
Reference Bandwidth (4 octets): | Reference Bandwidth (4 octets): | |||
A 32-bit field with Bandwidth encoded in | A 32-bit field with Bandwidth encoded in IEEE floating point | |||
IEEE floating point format [IEEE754-2019]. | format [IEEE754-2019]. The units are bytes per second. | |||
The units are bytes-per-second. | ||||
Granularity Bandwidth (4 octets): | Granularity Bandwidth (4 octets): | |||
A 32-bit field with Bandwidth encoded in | A 32-bit field with Bandwidth encoded in IEEE floating point | |||
IEEE floating point format [IEEE754-2019]. | format [IEEE754-2019]. The units are bytes per second. | |||
The units are bytes-per-second. | ||||
When granularity_bw is less than or equal to Total_link_bandwidth | When granularity_bw is less than or equal to Total_link_bandwidth, | |||
then: | ||||
Metric calculation: (Reference_bandwidth) / | Metric calculation: (Reference_bandwidth) / (Total_link_bandwidth - | |||
(Total_link_bandwidth - | (Modulus of(Total_link_bandwidth, granularity_bw))) | |||
(Modulus of(Total_link_bandwidth, | ||||
granularity_bw))) | ||||
When granularity_bw is greater than Total_link_bandwidth | When granularity_bw is greater than Total_link_bandwidth, then: | |||
Metric calculation: Reference_bandwidth / | ||||
Total_link_bandwidth | ||||
The division used here is integer division. | Metric calculation: Reference_bandwidth / Total_link_bandwidth | |||
Modulus of operation is defined as a remainder | ||||
value when two numbers are divided. | ||||
Figure 8: IS-IS FADRB Sub-TLV | The division used here is integer division. Modulus of operation is | |||
defined as a remainder value when two numbers are divided. | ||||
The Granularity Bandwidth value ensures that the metric does not | The Granularity Bandwidth value ensures that the metric does not | |||
change when there is a small change in the link bandwidth. The IS-IS | change when there is a small change in the link bandwidth. The IS-IS | |||
FADRB sub-TLV MUST NOT appear more than once in an IS-IS FAD sub-TLV. | FADRB sub-TLV MUST NOT appear more than once in an IS-IS FAD sub-TLV. | |||
If it appears more than once, the IS-IS FAD sub-TLV MUST be ignored | If it appears more than once, the IS-IS FAD sub-TLV MUST be ignored | |||
by the receiver. The value advertised in the Reference Bandwidth | by the receiver. The value advertised in the Reference Bandwidth | |||
field MUST be non-zero. If a zero value is advertised in the | field MUST be non-zero. If a zero value is advertised in the | |||
Reference Bandwidth Field in the IS-IS FADRB sub-TLV, the sub-TLV | Reference Bandwidth field in the IS-IS FADRB sub-TLV, the sub-TLV | |||
MUST be ignored. | MUST be ignored. | |||
If a Generic Metric sub-TLV with Bandwidth metric type is advertised | If a Generic Metric sub-TLV with a Bandwidth metric type is | |||
for a link, the Flex-Algorithm calculation MUST use the advertised | advertised for a link, the Flex-Algorithm calculation MUST use the | |||
Bandwidth Metric, and MUST NOT use the automatically derived metric | advertised Bandwidth Metric and MUST NOT use the automatically | |||
for that link. In case of Interface Group Mode, if all the parallel | derived metric for that link. In case of Interface Group Mode, if | |||
links have been advertised with the Bandwidth Metric, The individual | all the parallel links have been advertised with the Bandwidth | |||
link Bandwidth Metric MUST be used. If only some links among the | Metric, the individual link Bandwidth Metric MUST be used. If only | |||
parallel links have the Bandwidth Metric advertisement, the Bandwidth | some links among the parallel links have the Bandwidth Metric | |||
Metric for such links MUST be ignored and automatic Metric | advertisement, the Bandwidth Metric for such links MUST be ignored, | |||
calculation MUST be used to derive link metric. | and automatic Metric calculation MUST be used to derive link metric. | |||
If the calculated metric evaluates to zero, a metric of 1 MUST be | If the calculated metric evaluates to zero, a metric of 1 MUST be | |||
used. | used. | |||
If the calculated metric evaluates to a number greater than 0xFFFFFF, | If the calculated metric evaluates to a number greater than 0xFFFFFF, | |||
it is set to 0xFFFFFF. | it is set to 0xFFFFFF. | |||
4.1.3.2. Bandwidth Thresholds Sub-TLV | 4.1.3.2. Bandwidth Threshold Sub-TLV | |||
This section provides FAD constraint advertisement details for the | This section provides FAD constraint advertisement details for the | |||
Bandwidth Thresholds method of metric calculation as described in | Bandwidth Thresholds method of metric calculation as described in | |||
Section 4.1.2.2. The Flexible Algorithm Definition Bandwidth | Section 4.1.2.2. The Flexible Algorithm Definition Bandwidth | |||
Threshold sub-TLV (FADBT sub-TLV) is a sub-TLV of the IS-IS FAD sub- | Threshold (FADBT) sub-TLV is a sub-TLV of the IS-IS FAD sub-TLV. It | |||
TLV. It has the following format: | 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 | Flags | | | Type | Length | Flags | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Bandwidth Threshold 1 | | | Bandwidth Threshold 1 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Threshold Metric 1 | | | Threshold Metric 1 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
skipping to change at page 21, line 13 ¶ | skipping to change at line 916 ¶ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
..... | ..... | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Threshold Metric N-1 | | | Threshold Metric N-1 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Bandwidth Threshold N | | | Bandwidth Threshold N | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Threshold Metric N | | | Threshold Metric N | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | Figure 9: IS-IS FADBT Sub-TLV | |||
Type (1 octet): | where: | |||
An 8-bit field assigned by IANA (To Be Determined as TBD8). | ||||
This value uniquely identifies the IS-IS FADBT sub-TLV. | ||||
Length (1 octet): | Type (1 octet): | |||
An 8-bit field indicating the total length, in octets, | An 8-bit field assigned by IANA (9). This value uniquely | |||
of the subsequent fields. For this sub-TLV, | identifies the IS-IS FADBT sub-TLV. | |||
the Length is calculated as (1+n*7). Here n is equal | ||||
to number of Threshold Metrics specified. | ||||
n MUST be greater than or equal to 1 | ||||
Flags (1 octet): | Length (1 octet): | |||
An 8-bit field indicating the total length, in octets, of the | ||||
subsequent fields. For this sub-TLV, the Length is calculated as | ||||
(1+n*7). Here, N is equal to the number of Threshold Metrics | ||||
specified. n MUST be greater than or equal to 1. | ||||
0 1 2 3 4 5 6 7 | Flags (1 octet): | |||
+-+-+-+-+-+-+-+-+ | 0 1 2 3 4 5 6 7 | |||
|G| | | | | +-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+ | |G| | | | | |||
+-+-+-+-+-+-+-+-+ | ||||
G-flag: when set, interface group Mode MUST be used to derive | G-flag: When set, Interface Group Mode MUST be used to derive | |||
total link bandwidth. | total link bandwidth. | |||
Unassigned bits MUST be set to zero. | ||||
Staircase bandwidth threshold and associated metric values. | Unassigned bits MUST be set to zero. | |||
Bandwidth Threshold 1 (4 octets): | Following is the staircase bandwidth threshold and associated metric | |||
Minimum Link Bandwidth is encoded in in | values. | |||
IEEE floating point format (32 bits)[IEEE754-2019]. | ||||
The units are bytes-per-second. | ||||
Threshold Metric 1 (3 octets): | Bandwidth Threshold 1 (4 octets): | |||
Metric value range (1 - 16,777,215 (0xFFFFFF)) | Minimum Link Bandwidth is encoded in IEEE floating point format | |||
(32 bits)[IEEE754-2019]. The units are bytes per second. | ||||
Bandwidth Threshold n (4 octets): | Threshold Metric 1 (3 octets): | |||
Maximum Link Bandwidth is encoded in | Metric value range (1 - 16,777,215 (0xFFFFFF)) | |||
IEEE floating point format (32 bits)[IEEE754-2019]. | ||||
The units are bytes-per-second. | ||||
Threshold Metric n (3 octest) : | Bandwidth Threshold n (4 octets): | |||
Metric value range (1 - 16,777,215 (0xFFFFFF)) | Maximum Link Bandwidth is encoded in IEEE floating point format | |||
(32 bits)[IEEE754-2019]. The units are bytes per second. | ||||
Figure 9: IS-IS FADBT Sub-TLV | Threshold Metric n (3 octets): | |||
Metric value range (1 - 16,777,215 (0xFFFFFF)) | ||||
When G-flag is set, the cumulative bandwidth of the parallel links is | When the G-flag is set, the cumulative bandwidth of the parallel | |||
computed as described in Section 4.1.1.2. If G-flag is not set, the | links is computed as described in Section 4.1.1.2. If the G-flag is | |||
advertised Maximum Link Bandwidth is used. | not set, the advertised Maximum Link Bandwidth is used. | |||
Assignment of Bandwidth Metric Based on Computed Link Bandwidth: | The assignment of the Bandwidth Metric based on computed link | |||
bandwidth is described below. | ||||
The Bandwidth Metric for a link during the Flex-Algorithm Shortest | The Bandwidth Metric for a link during the Flex-Algorithm Shortest | |||
Path First (SPF) calculation MUST be assigned according to the | Path First (SPF) calculation MUST be assigned according to the | |||
following rules: | following rules: | |||
1. When the computed link bandwidth is less than Bandwidth | 1. When the computed link bandwidth is less than Bandwidth Threshold | |||
Threshold 1: | 1: | |||
- The Bandwidth Metric MUST be set to the maximum metric value of | The Bandwidth Metric MUST be set to the maximum metric value of | |||
4,261,412,864. | 4,261,412,864. | |||
2. When the computed link bandwidth is greater than or equal to | 2. When the computed link bandwidth is greater than or equal to | |||
Bandwidth Threshold 1 and less than Bandwidth Threshold 2: | Bandwidth Threshold 1 and less than Bandwidth Threshold 2: | |||
- The Bandwidth Metric MUST be set to Threshold Metric 1. | The Bandwidth Metric MUST be set to Threshold Metric 1. | |||
3. When the computed link bandwidth is greater than or equal to | 3. When the computed link bandwidth is greater than or equal to | |||
Bandwidth Threshold 2 and less than Bandwidth Threshold 3: | Bandwidth Threshold 2 and less than Bandwidth Threshold 3: | |||
- The Bandwidth Metric MUST be set to Threshold Metric 2. | The Bandwidth Metric MUST be set to Threshold Metric 2. | |||
4. In general, for all integer values of X such that 1 ≤ X < N: | 4. In general, for all integer values of X such that 1 ≤ X < N: | |||
- When the computed link bandwidth is greater than or equal to | When the computed link bandwidth is greater than or equal to | |||
Bandwidth Threshold X and less than Bandwidth Threshold X+1: | Bandwidth Threshold X and less than Bandwidth Threshold X+1: | |||
- The Bandwidth Metric MUST be set to Threshold Metric X. | The Bandwidth Metric MUST be set to Threshold Metric X. | |||
5. When the computed link bandwidth is greater than or equal to | 5. When the computed link bandwidth is greater than or equal to | |||
Bandwidth Threshold N: | Bandwidth Threshold N: | |||
- The Bandwidth Metric MUST be set to Threshold Metric N. | The Bandwidth Metric MUST be set to Threshold Metric N. | |||
Notes: | Notes: | |||
The term Bandwidth Threshold X refers to a predefined threshold | * The term "Bandwidth Threshold X" refers to a predefined threshold | |||
value corresponding to the index X. | value corresponding to the index X. | |||
The term Threshold Metric X refers to the metric value associated | * The term "Threshold Metric X" refers to the metric value | |||
with Bandwidth Threshold X. | associated with Bandwidth Threshold X. | |||
N represents the total number of bandwidth thresholds defined in | * N represents the total number of bandwidth thresholds defined in | |||
the system. | the system. | |||
Implementations MUST ensure that these rules are consistently applied | Implementations MUST ensure that these rules are consistently applied | |||
to maintain interoperability and optimal path computation within the | to maintain interoperability and optimal path computation within the | |||
network. | network. | |||
The IS-IS FADBT sub-TLV MUST NOT appear more than once in an IS-IS | The IS-IS FADBT sub-TLV MUST NOT appear more than once in an IS-IS | |||
FAD sub-TLV. If it appears more than once, the IS-IS FAD sub-TLV | FAD sub-TLV. If it appears more than once, the IS-IS FAD sub-TLV | |||
MUST be ignored by the receiver. | MUST be ignored by the receiver. | |||
A FAD MUST NOT contain both the FADBT sub-TLV and the FADRB sub-TLV. | A FAD MUST NOT contain both the FADBT sub-TLV and the FADRB sub-TLV. | |||
If both these sub-TLVs are advertised in the same FAD for a Flexible | If both of these sub-TLVs are advertised in the same FAD for a | |||
Algorithm, the FAD MUST be ignored by the receiver. | Flexible Algorithm, the FAD MUST be ignored by the receiver. | |||
If a Generic Metric sub-TLV with Bandwidth metric type is advertised | If a Generic Metric sub-TLV with Bandwidth metric type is advertised | |||
for a link, the Flex-Algorithm calculation MUST use the Bandwidth | for a link, the Flex-Algorithm calculation MUST use the Bandwidth | |||
Metric advertised on the link, and MUST NOT use the automatically | Metric advertised on the link and MUST NOT use the automatically | |||
derived metric for that link. | derived metric for that link. | |||
In case of Interface Group Mode, if all the parallel links have been | In case of Interface Group Mode, if all the parallel links have been | |||
advertised with the Bandwidth Metric, The individual link Bandwidth | advertised with the Bandwidth Metric, the individual link Bandwidth | |||
Metric MUST be used. If only some links among the parallel links | Metric MUST be used. If only some links among the parallel links | |||
have the Bandwidth Metric advertisement, the Bandwidth Metric for | have advertised the Bandwidth Metric, the Bandwidth Metric for such | |||
such links MUST be ignored and automatic Metric calculation MUST be | links MUST be ignored and automatic Metric calculation MUST be used | |||
used to derive link metric. | to derive the link metric. | |||
4.1.4. OSPF FAD constraint Sub-TLVs for automatic metric calculation | 4.1.4. OSPF FAD Constraint Sub-TLVs for Automatic Metric Calculation | |||
4.1.4.1. Reference Bandwidth Sub-TLV | 4.1.4.1. Reference Bandwidth Sub-TLV | |||
The Flexible Algorithm Definition Reference Bandwidth sub-TLV (FADRB | The Flexible Algorithm Definition Reference Bandwidth (FADRB) sub-TLV | |||
sub-TLV) is a sub-TLV of the OSPF FAD TLV. It has the following | is a sub-TLV of the OSPF FAD TLV. It 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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Flags | Reserved | | | Flags | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Reference Bandwidth | | | Reference Bandwidth | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Granularity Bandwidth | | | Granularity Bandwidth | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | Figure 10: OSPF FADRB Sub-TLV | |||
Type (2 octets): | where: | |||
A 16-bit field assigned by IANA (To Be Determined as TBD9). | ||||
This value uniquely identifies the OSPF FADRB sub-TLV. | ||||
Length (2 octets): | Type (2 octets): | |||
A 16-bit field indicating the total length, in octets, | A 16-bit field assigned by IANA (8). This value uniquely | |||
of the subsequent fields. For this sub-TLV, Length is set to 14. | identifies the OSPF FADRB sub-TLV. | |||
Flags (1 octet): | Length (2 octets): | |||
A 16-bit field indicating the total length, in octets, of the | ||||
subsequent fields. For this sub-TLV, Length is set to 14. | ||||
0 1 2 3 4 5 6 7 | Flags (1 octet): | |||
+-+-+-+-+-+-+-+-+ | 0 1 2 3 4 5 6 7 | |||
|G| | | | | +-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+ | |G| | | | | |||
+-+-+-+-+-+-+-+-+ | ||||
G-flag: When set, Interface Group Mode MUST be used | G-flag: When set, Interface Group Mode MUST be used to derive | |||
to derive total link bandwidth. | total link bandwidth. | |||
Unassigned bits MUST be set to zero. | ||||
Reference Bandwidth (4 octets): | Unassigned bits MUST be set to zero. | |||
Bandwidth encoded in 32 bits in | ||||
IEEE floating point format [IEEE754-2019]. | ||||
The units are in bytes per second. | ||||
Granularity Bandwidth (4 octets): | ||||
Bandwidth encoded in 32 bits in | ||||
IEEE floating point format [IEEE754-2019]. | ||||
The units are in bytes per second. | ||||
When granularity_bw is less than or equal to Total_link_bandwidth | Reference Bandwidth (4 octets): | |||
Bandwidth encoded in 32 bits in IEEE floating point format | ||||
[IEEE754-2019]. The units are in bytes per second. | ||||
Metric calculation: (Reference_bandwidth) / | Granularity Bandwidth (4 octets): | |||
(Total_link_bandwidth - | Bandwidth encoded in 32 bits in IEEE floating point format | |||
(Modulus of(Total_link_bandwidth, | [IEEE754-2019]. The units are in bytes per second. | |||
granularity_bw))) | ||||
When granularity_bw is greater than Total_link_bandwidth | When granularity_bw is less than or equal to Total_link_bandwidth, | |||
then: | ||||
Metric calculation: Reference_bandwidth/ | Metric calculation: | |||
Total_link_bandwidth | (Reference_bandwidth) / (Total_link_bandwidth - (Modulus | |||
of(Total_link_bandwidth, granularity_bw))) | ||||
The division used here is integer division. | When granularity_bw is greater than Total_link_bandwidth, then: | |||
Modulus of operation is defined as a remainder | Metric calculation: | |||
value when two numbers are divided. | Reference_bandwidth/ Total_link_bandwidth | |||
Figure 10: OSPF FADRB Sub-TLV | The division used here is integer division. | |||
Modulus of operation is defined as a remainder value when two numbers | ||||
are divided. | ||||
The Granularity Bandwidth value is used to ensure that the metric | The Granularity Bandwidth value is used to ensure that the metric | |||
does not change when there is a small change in the link bandwidth. | does not change when there is a small change in the link bandwidth. | |||
The OSPF FADRB sub-TLV MUST NOT appear more than once in an OSPF FAD | The OSPF FADRB sub-TLV MUST NOT appear more than once in an OSPF FAD | |||
TLV. If it appears more than once, the OSPF FAD TLV MUST be ignored | TLV. If it appears more than once, the OSPF FAD TLV MUST be ignored | |||
by the receiver.The value advertised in the Reference Bandwidth field | by the receiver. The value advertised in the Reference Bandwidth | |||
MUST be non-zero. If a zero value is advertised in the Reference | field MUST be non-zero. If a zero value is advertised in the | |||
Bandwidth Field in the OSPF FADRB sub-TLV, the sub-TLV MUST be | Reference Bandwidth field in the OSPF FADRB sub-TLV, the sub-TLV MUST | |||
ignored. If a Generic Metric sub-TLV with Bandwidth metric type is | be ignored. If a Generic Metric sub-TLV with Bandwidth metric type | |||
advertised for a link, the Flex-Algorithm calculation MUST use the | is advertised for a link, the Flex-Algorithm calculation MUST use the | |||
advertised Bandwidth Metric on the link, and MUST NOT use the | advertised Bandwidth Metric on the link and MUST NOT use the | |||
automatically derived metric for that link. In the case of Interface | automatically derived metric for that link. In the case of Interface | |||
Group Mode, the following procedures apply: | Group Mode, the following procedures apply: | |||
When all parallel links have advertised the Bandwidth Metric: The | * When all parallel links have advertised the Bandwidth Metric: The | |||
individual link Bandwidth Metric MUST be used for each link. | individual link Bandwidth Metric MUST be used for each link. | |||
When only a subset of the parallel links have advertised the | * When only a subset of the parallel links have advertised the | |||
Bandwidth Metric: The Bandwidth Metric advertisements for those | Bandwidth Metric: The Bandwidth Metric advertisements for those | |||
links MUST be ignored. In this scenario, automatic metric | links MUST be ignored. In this scenario, automatic metric | |||
calculation MUST be used to derive the link metrics for all | calculation MUST be used to derive the link metrics for all | |||
parallel links. | parallel links. | |||
If the calculated metric evaluates to zero, a metric of 1 MUST be | If the calculated metric evaluates to zero, a metric of 1 MUST be | |||
used. | used. | |||
If the calculated metric evaluates to a number greater than | If the calculated metric evaluates to a number greater than | |||
0xFFFFFFFF, it is set to 0xFFFFFFFF. | 0xFFFFFFFF, it is set to 0xFFFFFFFF. | |||
4.1.4.2. Bandwidth Threshold Sub-TLV | 4.1.4.2. Bandwidth Threshold Sub-TLV | |||
The Flexible Algorithm Definition Bandwidth Thresholds sub-TLV (FADBT | The Flexible Algorithm Definition Bandwidth Threshold (FADBT) sub-TLV | |||
sub-TLV) is a sub-TLV of the OSPF FAD TLV. It has the following | is a sub-TLV of the OSPF FAD TLV. It 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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Flags | Reserved | | | Flags | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Bandwidth Threshold 1 | | | Bandwidth Threshold 1 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Threshold Metric 1 | | | Threshold Metric 1 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Bandwidth Threshold 2 | | | Bandwidth Threshold 2 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Threshold Metric 2 | | | Threshold Metric 2 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Bandwidth Threshold 3 | | | Bandwidth Threshold 3 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
..... | ..... | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Threshold Metric N-1 | | | Threshold Metric N-1 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Bandwidth Threshold N | | | Bandwidth Threshold N | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Threshold Metric N | | | Threshold Metric N | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | Figure 11: OSPF FADBT Sub-TLV | |||
Type (2 octets): | ||||
A 16-bit field assigned by IANA (To Be Determined as TBD10). | ||||
This value uniquely identifies the OSPF FADBT sub-TLV. | ||||
Length (2 octets): | where: | |||
A 16-bit field indicating the total length, in octets, | ||||
of the subsequent fields. For this sub-TLV, Length is set | ||||
2 + N*8 octets. Here N is equal to number of | ||||
Threshold Metrics specified. N MUST be greater than or equal to 1. | ||||
Flags (1 octet): | Type (2 octets): | |||
A 16-bit field assigned by IANA (9). This value uniquely | ||||
identifies the OSPF FADBT sub-TLV. | ||||
0 1 2 3 4 5 6 7 | Length (2 octets): | |||
+-+-+-+-+-+-+-+-+ | A 16-bit field indicating the total length, in octets, of the | |||
|G| | | subsequent fields. For this sub-TLV, Length is set to 2 + N*8 | |||
+-+-+-+-+-+-+-+-+ | octets. Here, N is equal to the number of Threshold Metrics | |||
specified. N MUST be greater than or equal to 1. | ||||
G-flag: when set, interface group Mode MUST be used to | Flags (1 octet): | |||
derive total link bandwidth. | 0 1 2 3 4 5 6 7 | |||
Unassigned bits MUST be set to zero. | +-+-+-+-+-+-+-+-+ | |||
|G| | | ||||
+-+-+-+-+-+-+-+-+ | ||||
Staircase bandwidth threshold and associated metric values. | G-flag: When set, Interface Group Mode MUST be used to derive | |||
total link bandwidth. | ||||
Bandwidth Threshold 1 (4 octets): | Unassigned bits MUST be set to zero. | |||
Minimum Link Bandwidth is encoded | ||||
in IEEE floating point format (32 bits)[IEEE754-2019]. | ||||
The units are bytes per second. | ||||
Threshold Metric 1 (4 octets): | Following is the staircase bandwidth threshold and associated metric | |||
values. | ||||
Metric value range (1 - 4,294,967,296 (0xFFFFFFFF)) | Bandwidth Threshold 1 (4 octets): | |||
Minimum Link Bandwidth is encoded in IEEE floating point format | ||||
(32 bits)[IEEE754-2019]. The units are bytes per second. | ||||
Bandwidth Threshold N (4 octets): | Threshold Metric 1 (4 octets): | |||
Maximum Link Bandwidth is encoded | Metric value range (1 - 4,294,967,296 (0xFFFFFFFF)) | |||
in IEEE floating point format (32 bits)[IEEE754-2019]. | ||||
The units are bytes per second. | ||||
Threshold Metric N (4 octets): | Bandwidth Threshold N (4 octets): | |||
Metric value range (1 - 4,294,967,296 (0xFFFFFFFF)) | Maximum Link Bandwidth is encoded in IEEE floating point format | |||
(32 bits)[IEEE754-2019]. The units are bytes per second. | ||||
Figure 11: OSPF FADBT Sub-TLV | Threshold Metric N (4 octets): | |||
Metric value range (1 - 4,294,967,296 (0xFFFFFFFF)) | ||||
When G-flag is set, the cumulative bandwidth of the parallel links is | When the G-flag is set, the cumulative bandwidth of the parallel | |||
computed as described in Section 4.1.1.2. If G-flag is not set, the | links is computed as described in Section 4.1.1.2. If the G-flag is | |||
advertised Maximum Link Bandwidth is used. | not set, the advertised Maximum Link Bandwidth is used. | |||
Assignment of Bandwidth Metric Based on Computed Link Bandwidth: | The assignment of the Bandwidth Metric based on computed link | |||
bandwidth is described below. | ||||
The Bandwidth Metric for a link during the Flex-Algorithm Shortest | During the Flex-Algorithm SPF calculation, the Bandwidth Metric for a | |||
Path First (SPF) calculation MUST be assigned according to the | link MUST be assigned according to the following rules: | |||
following rules: | ||||
1. When the computed link bandwidth is less than Bandwidth | 1. When the computed link bandwidth is less than Bandwidth Threshold | |||
Threshold 1: | 1: | |||
- The Bandwidth Metric MUST be set to the maximum metric value of | The Bandwidth Metric MUST be set to the maximum metric value of | |||
4,294,967,296. | 4,294,967,296. | |||
2. When the computed link bandwidth is greater than or equal to | 2. When the computed link bandwidth is greater than or equal to | |||
Bandwidth Threshold 1 and less than Bandwidth Threshold 2: | Bandwidth Threshold 1 and less than Bandwidth Threshold 2: | |||
- The Bandwidth Metric MUST be set to Threshold Metric 1. | The Bandwidth Metric MUST be set to Threshold Metric 1. | |||
3. When the computed link bandwidth is greater than or equal to | 3. When the computed link bandwidth is greater than or equal to | |||
Bandwidth Threshold 2 and less than Bandwidth Threshold 3: | Bandwidth Threshold 2 and less than Bandwidth Threshold 3: | |||
- The Bandwidth Metric MUST be set to Threshold Metric 2. | The Bandwidth Metric MUST be set to Threshold Metric 2. | |||
4. In general, for all integer values of X where 1 ≤X < N: | 4. In general, for all integer values of X where 1 ≤X < N: | |||
- When the computed link bandwidth is greater than or equal to | When the computed link bandwidth is greater than or equal to | |||
Bandwidth Threshold X and less than Bandwidth Threshold X+1: | Bandwidth Threshold X and less than Bandwidth Threshold X+1: | |||
- The Bandwidth Metric MUST be set to Threshold Metric X. | The Bandwidth Metric MUST be set to Threshold Metric X. | |||
5. When the computed link bandwidth is greater than or equal to | 5. When the computed link bandwidth is greater than or equal to | |||
Bandwidth Threshold N: | Bandwidth Threshold N: | |||
- The Bandwidth Metric MUST be set to Threshold Metric N. | The Bandwidth Metric MUST be set to Threshold Metric N. | |||
Notes: | Notes: | |||
Bandwidth Threshold X refers to the predefined bandwidth threshold | * Bandwidth Threshold X refers to the predefined bandwidth threshold | |||
corresponding to index X. | corresponding to index X. | |||
Threshold Metric X is the metric value associated with Bandwidth | * Threshold Metric X is the metric value associated with Bandwidth | |||
Threshold X. | Threshold X. | |||
N represents the total number of bandwidth thresholds defined in | * N represents the total number of bandwidth thresholds defined in | |||
the system. | the system. | |||
Implementations MUST consistently apply these rules to ensure | Implementations MUST consistently apply these rules to ensure | |||
accurate path computations and maintain interoperability within the | accurate path computations and maintain interoperability within the | |||
network. | network. | |||
The OSPF FADBT sub-TLV MUST NOT appear more than once in an OSPF FAD | The OSPF FADBT sub-TLV MUST NOT appear more than once in an OSPF FAD | |||
sub-TLV. If it appears more than once, the OSPF FAD MUST be ignored | sub-TLV. If it appears more than once, the OSPF FAD sub-TLV MUST be | |||
by the receiver. | ignored by the receiver. | |||
A FAD MUST NOT contain both the FADBT sub-TLV and the FADRB sub-TLV. | A FAD MUST NOT contain both the FADBT sub-TLV and the FADRB sub-TLV. | |||
If both these sub-TLVs are advertised in the same FAD for a Flexible | If both these sub-TLVs are advertised in the same FAD for a Flexible | |||
Algorithm, the FAD MUST be ignored by the receiver. | Algorithm, the FAD MUST be ignored by the receiver. | |||
If a Generic Metric sub-TLV with Bandwidth metric type is advertised | If a Generic Metric sub-TLV with Bandwidth metric type is advertised | |||
for a link, the Flex-Algorithm calculation MUST use the Bandwidth | for a link, the Flex-Algorithm calculation MUST use the Bandwidth | |||
Metric advertised on the link, and MUST NOT use the automatically | Metric advertised on the link and MUST NOT use the automatically | |||
derived metric for that link. | derived metric for that link. | |||
Metric Assignment in Interface Group Mode: | Metric Assignment in Interface Group Mode: | |||
When a link does not have a configured Bandwidth Metric, the | When a link does not have a configured Bandwidth Metric, the | |||
automatically derived metric MUST be used for that link. | automatically derived metric MUST be used for that link. | |||
In the context of Interface Group Mode, the following rules apply to | In the context of Interface Group Mode, the following rules apply to | |||
parallel links: | parallel links: | |||
If all parallel links have advertised the Bandwidth Metric: | * If all parallel links have advertised the Bandwidth Metric: | |||
- The individual link Bandwidth Metrics MUST be used for each | The individual link Bandwidth Metrics MUST be used for each link | |||
link during path computation. | during path computation. | |||
If only some of the parallel links have advertised the Bandwidth | * If only some of the parallel links have advertised the Bandwidth | |||
Metric: | Metric: | |||
- The Bandwidth Metric advertisements for those links MUST be | - The Bandwidth Metric advertisements for those links MUST be | |||
ignored. | ignored. | |||
- Automatic metric calculation MUST be used to derive the link | - Automatic metric calculation MUST be used to derive the link | |||
metrics for all parallel links. | metrics for all parallel links. | |||
This approach ensures consistent metric calculation and avoids | This approach ensures consistent metric calculation and avoids | |||
discrepancies caused by partial Bandwidth Metric advertisements among | discrepancies caused by partial Bandwidth Metric advertisements among | |||
parallel links. | parallel links. | |||
5. Bandwidth metric considerations | 5. Bandwidth Metric Considerations | |||
This section specifies the rules of deriving the Bandwidth Metric if | This section specifies the rules of deriving the Bandwidth Metric if | |||
and only if the winning FAD for the Flex-Algorithm specifies the | and only if the winning FAD for the Flex-Algorithm specifies the | |||
metric-type as "Bandwidth Metric". | metric-type as "Bandwidth Metric". | |||
1. If the Generic Metric sub-TLV with Bandwidth metric type is | 1. If the Generic Metric sub-TLV with Bandwidth metric type is | |||
advertised for the link as described in Section 4, it MUST be used | advertised for the link as described in Section 4, it MUST be | |||
during the Flex-Algorithm calculation. | used during the Flex-Algorithm calculation. | |||
2. If the Generic Metric sub-TLV with Bandwidth metric type is | ||||
not advertised for the link and the winning FAD for the Flex- | ||||
Algorithm does not specify the automatic bandwidth metric | ||||
calculation (as defined in Section 4.1 ), the link is treated as | ||||
if the Bandwidth Metric is not available for the link. | ||||
3. If the Generic Metric sub-TLV with Bandwidth metric type is | 2. If the Generic Metric sub-TLV with Bandwidth metric type is not | |||
not advertised for the link and the winning FAD (sec 5.3 [RFC9350] | advertised for the link and the winning FAD for the Flex- | |||
for the Flex-Algorithm specifies the automatic bandwidth metric | Algorithm does not specify the automatic bandwidth metric | |||
calculation (as defined in Section 4.1), the Bandwidth Metric | calculation (as defined in Section 4.1), the link is treated as | |||
metric MUST be automatically calculated as per the procedures | if the Bandwidth Metric is not available for the link. | |||
defined in Section 4.1. If the Link Bandwidth is not advertised | ||||
for a link, the link MUST be pruned for the Flex-Algorithm | ||||
calculations. | ||||
4.In ISIS the Link Bandwidth for Flex-Algorithm purposes is | 3. If the Generic Metric sub-TLV with Bandwidth metric type is not | |||
advertised as a sub-sub-TLV 9 of the Flex-algorithm specific ASLA | advertised for the link and the winning FAD (Section 5.3 of | |||
sub-TLV. It is also possible to advertise the link bandwidth or | [RFC9350]) for the Flex-Algorithm specifies the automatic | |||
Flex-Algorithm, in sub-TLV 9 of TLV 22/222/23/223/141 [RFC5305], | bandwidth metric calculation (as defined in Section 4.1), the | |||
together with the L-Flag set in the Flex-Algorithm specific ASLA | Bandwidth Metric MUST be automatically calculated per the | |||
advertisement. In the absence of both of these advertisements, | procedures defined in Section 4.1. If the Link Bandwidth is not | |||
the bandwidth of the link is not available for Flex-Algorithm | advertised for a link, the link MUST be pruned for the Flex- | |||
purposes. | Algorithm calculations. | |||
6. Calculation of Flex-Algorithm paths | 4. In ISIS, for Flex-Algorithm purposes, the Link Bandwidth is | |||
advertised as a sub-sub-TLV 9 of the Flex-Algorithm-specific ASLA | ||||
sub-TLV. It is also possible to advertise the link bandwidth or | ||||
Flex-Algorithm in sub-TLV 9 of TLV 22/222/23/223/141 [RFC5305] | ||||
together with the L-flag set in the Flex-Algorithm-specific ASLA | ||||
advertisement. In the absence of both of these advertisements, | ||||
the bandwidth of the link is not available for Flex-Algorithm | ||||
purposes. | ||||
Two new additional rules are added to the existing rules in the Flex- | 6. Calculation of Flex-Algorithm Paths | |||
Algorithm calculations specified in Section 13 of [RFC9350]. | ||||
6. Check if any exclude FAEMB rule is part of the Flex-Algorithm | The following two new additional rules are added to the existing | |||
definition. If such exclude rule exists and the link has Maximum | rules in the Flex-Algorithm calculations specified in Section 13 of | |||
Link Bandwidth advertised, check if the link bandwidth satisfies | [RFC9350]: | |||
the FAEMB rule. If the link does not satisfy the FAEMB rule, the | ||||
link MUST be pruned from the Flex-Algorithm computation. | ||||
7. Check if any exclude FAEMD rule is part of the Flex-Algorithm | | 6. Check if any exclude FAEMB rule is part of the Flex-Algorithm | |||
definition. If such exclude rule exists and the link has Min | | definition. If such exclude rule exists and the link has | |||
Unidirectional link delay advertised, check if the link delay | | Maximum Link Bandwidth advertised, check if the link bandwidth | |||
satisfies the FAEMD rule. If the link does not satisfy the FAEMD | | satisfies the FAEMB rule. If the link does not satisfy the | |||
rule, the link MUST be pruned from the Flex-Algorithm computation. | | FAEMB rule, the link MUST be pruned from the Flex-Algorithm | |||
| computation. | ||||
| | ||||
| 7. Check if any exclude FAEMD rule is part of the Flex-Algorithm | ||||
| definition. If such exclude rule exists and the link has Min | ||||
| Unidirectional link delay advertised, check if the link delay | ||||
| satisfies the FAEMD rule. If the link does not satisfy the | ||||
| FAEMD rule, the link MUST be pruned from the Flex-Algorithm | ||||
| computation. | ||||
7. Backward Compatibility | 7. Backward Compatibility | |||
This extension brings no new backward-compatibility issues. This | This extension brings no new backward-compatibility issues. This | |||
document defines new FAD constraints in Section 3 Section 4.1.3 and | document defines new FAD constraints in Sections 3, 4.1.3, and 4.1.4. | |||
Section 4.1.4. As described in [RFC9350], any node that does not | As described in [RFC9350], any node that does not understand sub-TLVs | |||
understand sub-TLVs in a FAD TLV, stops participation in the | in a FAD TLV stops participation in the corresponding Flex-Algorithm. | |||
corresponding Flex-Algorithm. The new extensions can be deployed | The new extensions can be deployed among the nodes that are upgraded | |||
among the nodes that are upgraded to understand the new extensions | to understand the new extensions without affecting the nodes that are | |||
without affecting the nodes that are not upgraded. This document | not upgraded. This document also defines a new metric advertisement | |||
also defines a new metric advertisement as described in Section 2. | as described in Section 2. As per Section 13 of [RFC9350], when the | |||
As per Section 13 of [RFC9350], the links that do not advertise the | links do not advertise the metric-type specified by the selected FAD, | |||
metric-type specified by the selected FAD, the link is pruned from | the link is pruned from Flex-Algorithm calculations. The new metric- | |||
Flex-Algorithm calculations. The new metric-types and the Flex- | types and Flex-Algorithms using the new metric-types can be deployed | |||
Algorithms using new metric-types can be deployed in the network | in the network without affecting existing deployment. | |||
without affecting existing deployment. | ||||
8. Security Considerations | 8. Security Considerations | |||
This document inherits security considerations from [RFC9350]. | This document inherits security considerations from [RFC9350]. | |||
9. Operational Considerations | 9. Operational Considerations | |||
Operational consideration defined in [RFC9350] generally apply to the | Operational considerations defined in [RFC9350] generally apply to | |||
extensions defined in this document as well. This document defines | the extensions defined in this document as well. This document | |||
metric-type range for user defined metrics. When user-defined | defines a metric-type range for user-defined metrics. When user- | |||
metrics are used in an inter-area or inter-level network, all the | defined metrics are used in an inter-area or inter-level network, all | |||
domains should assign same meaning to the particular metric-type. | the domains should assign same meaning to the particular metric-type. | |||
The YANG data models for Flex-Algorithm extensions are defined in | The YANG data models for Flex-Algorithm extensions are defined in | |||
documents [I-D.ietf-lsr-ospf-yang-augmentation-v1] and | documents [OSPF-AUGMENTATION] and [ISIS-AUGMENTATION]. | |||
[I-D.ietf-lsr-isis-yang-augmentation-v1] | ||||
Before the router goes into maintenance activity, the traffic needs | Before the router goes into maintenance activity, the traffic needs | |||
to be diverted away from the router. This is achieved by setting the | to be diverted away from the router. This is achieved by setting the | |||
overload bit or setting link metrics on the router to a high value. | overload bit or setting link metrics on the router to a high value. | |||
In case of Generic Metric, the link metrics can be set to Maximum | In case of Generic Metric, the link metrics can be set to a Maximum | |||
usable metric for OSPF and ISIS. The traffic will be diverted away | usable metric for OSPF and IS-IS. The traffic will be diverted away | |||
from the router to a shorter available path. If there are no | from the router to a shorter available path. If there are no | |||
alternate paths available, traffic will stay on the router as the | alternate paths available, traffic will stay on the router as the | |||
links are not removed from Flex-algorithm calculation when they are | links are not removed from the Flex-Algorithm calculation when they | |||
set to maximum metric as per [RFC9350] | are set to a maximum metric per [RFC9350]. | |||
10. IANA Considerations | 10. IANA Considerations | |||
10.1. IGP Metric-Type Registry | 10.1. IGP Metric-Type Registry | |||
IGP Metric-type Registry is updated to include another column | The "IGP Metric-Type" registry has been updated to include another | |||
specifying whether the particular metric-type is allowed in the | column specifying whether the particular metric-type is allowed in | |||
generic-metric sub-TLV or not. The range 128-255 is being redefined | the Generic Metric sub-TLV. The range 128-255 is redefined by this | |||
in this document as user-defined range and this range does not | document as a user-defined range, and this range does not require | |||
standards action. | Standards Action [RFC8126]. | |||
Type Description Reference Allowed in | ||||
generic-metric | ||||
---------------------------------------------------------------- | ||||
0 IGP Metric [RFC9350] No | ||||
Section 5.1 | ||||
1 Min Unidirectional [RFC9350] No | ||||
Link Delay as defined Section 5.1 | ||||
in [RFC8570, | ||||
Section 4.2],and | ||||
[RFC7471, Section 4.2] | ||||
2 Traffic Engineering Default [RFC9350] No | ||||
Metric as defined in Section 5.1 | ||||
[RFC5305,Section 3.7], | ||||
and [RFC3630, Section 2.5.5] | ||||
3(TBA) Bandwidth Metric this document yes | ||||
128-255(TBA) User defined metric this document yes | +=========+===========================+===========+================+ | |||
| Type | Description | Reference | Allowed in | | ||||
| | | | Generic-Metric | | ||||
+=========+===========================+===========+================+ | ||||
| 0 | IGP Metric | Section | No | | ||||
| | | 5.1 of | | | ||||
| | | [RFC9350] | | | ||||
+---------+---------------------------+-----------+----------------+ | ||||
| 1 | Min Unidirectional Link | Section | No | | ||||
| | Delay as defined in | 5.1 of | | | ||||
| | [RFC8570], Section 4.2 | [RFC9350] | | | ||||
| | and [RFC7471], | | | | ||||
| | Section 4.2 | | | | ||||
+---------+---------------------------+-----------+----------------+ | ||||
| 2 | Traffic Engineering | Section | No | | ||||
| | Default Metric as defined | 5.1 of | | | ||||
| | in [RFC5305], Section 3.7 | [RFC9350] | | | ||||
| | and Traffic Engineering | | | | ||||
| | Metric as defined in | | | | ||||
| | [RFC3630], Section 2.5.5 | | | | ||||
+---------+---------------------------+-----------+----------------+ | ||||
| 3 | Bandwidth Metric | RFC 9843 | Yes | | ||||
+---------+---------------------------+-----------+----------------+ | ||||
| 128-255 | Reserved for User-Defined | RFC 9843 | Yes | | ||||
| | Metric | | | | ||||
+---------+---------------------------+-----------+----------------+ | ||||
Figure 12: IANA IGP Metric-Type Registry | Table 1: IGP Metric-Type Registry | |||
10.2. IS-IS Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV | 10.2. IS-IS Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV | |||
IS-IS Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV is part | The "IS-IS Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV" | |||
of the “IS-IS TLV Codepoints” registry group. | registry is part of the "IS-IS TLV Codepoints" registry group. | |||
Type: 6(TBD3) | ||||
Description: IS-IS Exclude Minimum Bandwidth Sub-TLV | ||||
Reference: This document Section 3.1.1 | ||||
Type: 7 (TBD4) | ||||
Description: IS-IS Exclude Maximum Delay Sub-TLV | ||||
Reference: This document Section 3.1.2 | ||||
Type: 8 (TBD7) | ||||
Description: IS-IS Reference Bandwidth Sub-TLV | ||||
Reference: This document Section 4.1.3.1 | Type: 6 | |||
Description: IS-IS Exclude Minimum Bandwidth | ||||
Reference: RFC 9843, Section 3.1.1 | ||||
Type: 9(TBD8) | Type: 7 | |||
Description: IS-IS Exclude Maximum Delay | ||||
Reference: RFC 9843, Section 3.1.2 | ||||
Description: IS-IS Threshold Metric Sub-TLV | Type: 8 | |||
Description: IS-IS Reference Bandwidth | ||||
Reference: RFC 9843, Section 4.1.3.1 | ||||
Reference: This document Section 4.1.3.2 | Type: 9 | |||
Description: IS-IS Bandwidth Threshold | ||||
Reference: RFC 9843, Section 4.1.3.2 | ||||
10.3. OSPF Sub-TLVs for Flexible Algorithm Definition Sub-TLV | 10.3. OSPF Sub-TLVs for Flexible Algorithm Definition Sub-TLV | |||
OSPF Flexible Algorithm Definition TLV Sub-TLVs registry is part of | The "OSPF Flexible Algorithm Definition TLV Sub-TLVs" registry is | |||
the “Open Shortest Path First (OSPF) Parameters” registry group. | part of the "Open Shortest Path First (OSPF) Parameters" registry | |||
group. | ||||
Type:6 (TBD5) | ||||
Description: OSPF Exclude Minimum Bandwidth Sub-TLV | ||||
Reference: This document Section 3.2.1 | ||||
Type: 7(TBD6) | ||||
Description: OSPF Exclude Maximum Delay Sub-TLV | ||||
Reference: This document Section 3.2.2 | ||||
Type: 8(TBD9) | ||||
Description: OSPF Reference Bandwidth Sub-TLV | ||||
Reference: This document Section 4.1.4.1 | Bit Number: 6 | |||
Description: OSPF Exclude Minimum Bandwidth | ||||
Reference: RFC 9843, Section 3.2.1 | ||||
Type: 9 (TBD10) | Bit Number: 7 | |||
Description: OSPF Exclude Maximum Delay | ||||
Reference: RFC 9843, Section 3.2.2 | ||||
Description: OSPF Threshold Metric Sub-TLV | Bit Number: 8 | |||
Description: OSPF Reference Bandwidth | ||||
Reference: RFC 9843, Section 4.1.4.1 | ||||
Reference: This document Section 4.1.4.2 | Bit Number: 9 | |||
Description: OSPF Bandwidth Threshold | ||||
Reference: RFC 9843, Section 4.1.4.2 | ||||
10.4. IS-IS Sub-TLVs for TLVs Advertising Neighbor Information | 10.4. IS-IS Sub-TLVs for TLVs Advertising Neighbor Information | |||
IS-IS Sub-TLVs for TLVs Advertising Neighbor Information registry is | The "IS-IS Sub-TLVs for TLVs Advertising Neighbor Information" | |||
part of the “IS-IS TLV Codepoints” registry group | registry is part of the "IS-IS TLV Codepoints" registry group. | |||
Type:17 (TBD1) | ||||
Description: Generic metric | ||||
Reference: This document Section 2.1 | ||||
TLV 22,23,25, 141, 222 and 223 set to Y | ||||
10.5. Sub-sub-TLV Codepoints for Application-Specific Link Attributes | ||||
IS-IS Sub-sub-TLV Codepoints for Application-Specific Link Attributes | Type: 17 | |||
registry is part of the “IS-IS TLV Codepoints” registry group | Description: Generic Metric | |||
TLVs set to "Y": 22, 23, 25, 141, 222, and 223 | ||||
Reference: RFC 9843, Section 2.1 | ||||
Type: 17 (TBD1) | 10.5. Sub-Sub-TLV Codepoints for Application-Specific Link Attributes | |||
Description: Generic metric | The "IS-IS Sub-Sub-TLV Codepoints for Application-Specific Link | |||
Attributes" registry is part of the "IS-IS TLV Codepoints" registry | ||||
group. | ||||
Reference: This document Section 2.1 | Type: 17 | |||
Description: Generic Metric | ||||
Reference: RFC 9843, Section 2.1 | ||||
10.6. OSPFv2 Extended Link TLV Sub-TLVs | 10.6. OSPFv2 Extended Link TLV Sub-TLVs | |||
OSPFv2 Extended Link TLV Sub-TLVs registry is part of the “Open | The "OSPFv2 Extended Link TLV Sub-TLVs" registry is part of the "Open | |||
Shortest Path First v2 (OSPFv2) Parameters” registry group | Shortest Path First v2 (OSPFv2) Parameters" registry group. | |||
Type: 25(TBD21) | ||||
Description: Generic metric | ||||
Reference: This document Section 2.2 | ||||
L2BM set to Y | Value: 25 | |||
Description: Generic Metric | ||||
L2BM: Y | ||||
Reference: RFC 9843, Section 2.2 | ||||
10.7. Types for Sub-TLVs of TE Link TLV (Value 2) | 10.7. Types for Sub-TLVs of TE Link TLV (Value 2) | |||
Types for Sub-TLVs of TE Link TLV (Value 2) registry is part of the | The "Types for sub-TLVs of TE Link TLV (Value 2)" registry is part of | |||
“Open Shortest Path First (OSPF) Traffic Engineering TLVs” registry | the "Open Shortest Path First (OSPF) Traffic Engineering TLVs" | |||
group | registry group. | |||
Type: 36 (TBD22) | ||||
Description: Generic metric | ||||
Reference: This document Section 2.2 | Value: 36 | |||
Description: Generic Metric | ||||
Reference: RFC 9843, Section 2.2 | ||||
10.8. OSPFv3 Extended-LSA Sub-TLVs | 10.8. OSPFv3 Extended-LSA Sub-TLVs | |||
OSPFv3 Extended-LSA Sub-TLVs is part of the “Open Shortest Path First | The "OSPFv3 Extended-LSA Sub-TLVs" registry is part of the "Open | |||
v3 (OSPFv3) Parameters” registry group | Shortest Path First v3 (OSPFv3) Parameters" registry group. | |||
Type: 34 (TBD23) | ||||
Description: Generic metric | ||||
Reference: This document Section 2.2 | ||||
L2BM set to Y | ||||
11. Acknowledgements | ||||
Many thanks to Chris Bowers, Krzysztof Szarcowitz, Julian Lucek, Ram | ||||
Santhanakrishnan, Ketan Talaulikar and Acee Lindem for discussions | ||||
and inputs. | ||||
12. Contributors | ||||
1. Salih K A | ||||
Juniper Networks | ||||
salih@juniper.net | ||||
13. APPENDIX | ||||
13.1. Updated list of rules for pruning links in Flex-algorithm | ||||
topology | ||||
This section lists the entire set of rules to prune links from Flex- | ||||
Algorithm topology during Flexible-algorithm calculation. It | ||||
includes the original rules defined in Section 13 of [RFC9350] as | ||||
well as new additions proposed in this document. | ||||
For all links in the topology: | ||||
1. Check if any exclude Administrative Group rule is part of the | ||||
Flex-Algorithm Definition. If such exclude rule exists, check if | ||||
any color that is part of the exclude rule is also set on the | ||||
link. If such a color is set, the link MUST be pruned from the | ||||
computation. | ||||
2. Check if any exclude SRLG rule is part of the Flex-Algorithm | ||||
Definition. If such exclude rule exists, check if the link is | ||||
part of any SRLG that is a lso part of the SRLG exclude rule. If | ||||
the link is part of such SRLG, the link MUST be pruned from the | ||||
computation. | ||||
3. Check if any include-any Administrative Group rule is part of | ||||
the Flex-Algorithm Definition. If such include-any rule exists, | ||||
check if any color that is part of the include-any rule is also | ||||
set on the link. If no such color is set, the link MUST be pruned | ||||
from the computation. | ||||
4. Check if any include-all Administrative Group rule is part of | ||||
the Flex-Algorithm Definition. If such include-all rule exists, | ||||
check if all colors that are part of the include-all rule are also | ||||
set on the link. If all such colors are not set on the link, the | ||||
link MUST be pruned from the computation. | ||||
5. If the Flex-Algorithm Definition uses something other than the | ||||
IGP metric (Section 5 of [RFC9350]), and such metric is not | ||||
advertised for the particular link in a topology for which the | ||||
computation is done, such link MUST be pruned from the | ||||
computation. A metric of value 0 MUST NOT be assumed in such a | ||||
case. | ||||
6. Check if any exclude FAEMB rule is part of the Flex-Algorithm | ||||
definition. If such exclude rule exists and the link has Maximum | ||||
Link Bandwidth advertised, check if the link bandwidth satisfies | ||||
the FAEMB rule. If the link does not satisfy the FAEMB rule, the | ||||
link MUST be pruned from the Flex-Algorithm computation. | ||||
7. Check if any exclude FAEMD rule is part of the Flex-Algorithm | Value: 34 | |||
definition. If such exclude rule exists and the link has Min | Description: Generic Metric | |||
Unidirectional link delay advertised, check if the link delay | L2BM: Y | |||
satisfies the FAEMD rule. If the link does not satisfy the FAEMD | Reference: RFC 9843, Section 2.2 | |||
rule, the link MUST be pruned from the Flex-Algorithm computation. | ||||
14. References | 11. References | |||
14.1. Normative References | 11.1. Normative References | |||
[IEEE754] Institute of Electrical and Electronics Engineers, "IEEE | [IEEE754-2019] | |||
Standard for Floating-Point Arithmetic", IEEE 754-2019, | IEEE, "IEEE Standard for Floating-Point Arithmetic", IEEE | |||
DOI 10.1109/ieeestd.2019.8766229, 22 July 2019, | Std 754-2019, DOI 10.1109/ieeestd.2019.8766229, 22 July | |||
<https://ieeexplore.ieee.org/document/8766220>. | 2019, <https://doi.org/10.1109/ieeestd.2019.8766229>. | |||
[RFC1195] Callon, R., "Use of OSI IS-IS for routing in TCP/IP and | [RFC1195] Callon, R., "Use of OSI IS-IS for routing in TCP/IP and | |||
dual environments", RFC 1195, DOI 10.17487/RFC1195, | dual environments", RFC 1195, DOI 10.17487/RFC1195, | |||
December 1990, <https://www.rfc-editor.org/info/rfc1195>. | December 1990, <https://www.rfc-editor.org/info/rfc1195>. | |||
[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>. | |||
skipping to change at page 36, line 42 ¶ | skipping to change at line 1563 ¶ | |||
[RFC5392] Chen, M., Zhang, R., and X. Duan, "OSPF Extensions in | [RFC5392] Chen, M., Zhang, R., and X. Duan, "OSPF Extensions in | |||
Support of Inter-Autonomous System (AS) MPLS and GMPLS | Support of Inter-Autonomous System (AS) MPLS and GMPLS | |||
Traffic Engineering", RFC 5392, DOI 10.17487/RFC5392, | Traffic Engineering", RFC 5392, DOI 10.17487/RFC5392, | |||
January 2009, <https://www.rfc-editor.org/info/rfc5392>. | January 2009, <https://www.rfc-editor.org/info/rfc5392>. | |||
[RFC7684] Psenak, P., Gredler, H., Shakir, R., Henderickx, W., | [RFC7684] Psenak, P., Gredler, H., Shakir, R., Henderickx, W., | |||
Tantsura, J., and A. Lindem, "OSPFv2 Prefix/Link Attribute | Tantsura, J., and A. Lindem, "OSPFv2 Prefix/Link Attribute | |||
Advertisement", RFC 7684, DOI 10.17487/RFC7684, November | Advertisement", RFC 7684, DOI 10.17487/RFC7684, November | |||
2015, <https://www.rfc-editor.org/info/rfc7684>. | 2015, <https://www.rfc-editor.org/info/rfc7684>. | |||
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | ||||
Writing an IANA Considerations Section in RFCs", BCP 26, | ||||
RFC 8126, DOI 10.17487/RFC8126, June 2017, | ||||
<https://www.rfc-editor.org/info/rfc8126>. | ||||
[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>. | |||
[RFC8668] Ginsberg, L., Ed., Bashandy, A., Filsfils, C., Nanduri, | [RFC8668] Ginsberg, L., Ed., Bashandy, A., Filsfils, C., Nanduri, | |||
skipping to change at page 37, line 30 ¶ | skipping to change at line 1602 ¶ | |||
[RFC9479] Ginsberg, L., Psenak, P., Previdi, S., Henderickx, W., and | [RFC9479] Ginsberg, L., Psenak, P., Previdi, S., Henderickx, W., and | |||
J. Drake, "IS-IS Application-Specific Link Attributes", | J. Drake, "IS-IS Application-Specific Link Attributes", | |||
RFC 9479, DOI 10.17487/RFC9479, October 2023, | RFC 9479, DOI 10.17487/RFC9479, October 2023, | |||
<https://www.rfc-editor.org/info/rfc9479>. | <https://www.rfc-editor.org/info/rfc9479>. | |||
[RFC9492] Psenak, P., Ed., Ginsberg, L., Henderickx, W., Tantsura, | [RFC9492] Psenak, P., Ed., Ginsberg, L., Henderickx, W., Tantsura, | |||
J., and J. Drake, "OSPF Application-Specific Link | J., and J. Drake, "OSPF Application-Specific Link | |||
Attributes", RFC 9492, DOI 10.17487/RFC9492, October 2023, | Attributes", RFC 9492, DOI 10.17487/RFC9492, October 2023, | |||
<https://www.rfc-editor.org/info/rfc9492>. | <https://www.rfc-editor.org/info/rfc9492>. | |||
14.2. Informative References | 11.2. Informative References | |||
[I-D.bashandy-rtgwg-segment-routing-uloop] | ||||
Bashandy, A., Filsfils, C., Litkowski, S., Decraene, B., | ||||
Francois, P., and P. Psenak, "Loop avoidance using Segment | ||||
Routing", Work in Progress, Internet-Draft, draft- | ||||
bashandy-rtgwg-segment-routing-uloop-17, 29 June 2024, | ||||
<https://datatracker.ietf.org/doc/html/draft-bashandy- | ||||
rtgwg-segment-routing-uloop-17>. | ||||
[I-D.ietf-lsr-isis-yang-augmentation-v1] | [ISIS-AUGMENTATION] | |||
Lindem, A., Qu, Y., and S. Litkowski, "IS-IS YANG Model | Lindem, A., Qu, Y., and S. Litkowski, "IS-IS YANG Model | |||
Augmentations for Additional Features - Version 1", Work | Augmentations for Additional Features - Release 1", Work | |||
in Progress, Internet-Draft, draft-ietf-lsr-isis-yang- | in Progress, Internet-Draft, draft-ietf-lsr-isis-yang- | |||
augmentation-v1-08, 2 September 2024, | augmentation-v1-10, 6 July 2025, | |||
<https://datatracker.ietf.org/doc/html/draft-ietf-lsr- | <https://datatracker.ietf.org/doc/html/draft-ietf-lsr- | |||
isis-yang-augmentation-v1-08>. | isis-yang-augmentation-v1-10>. | |||
[I-D.ietf-lsr-ospf-yang-augmentation-v1] | [OSPF-AUGMENTATION] | |||
Lindem, A. and Y. Qu, "OSPF YANG Model Augmentations for | Lindem, A. and Y. Qu, "OSPF YANG Model Augmentations for | |||
Additional Features - Version 1", Work in Progress, | Additional Features - Release 1", Work in Progress, | |||
Internet-Draft, draft-ietf-lsr-ospf-yang-augmentation- | Internet-Draft, draft-ietf-lsr-ospf-yang-augmentation- | |||
v1-14, 27 December 2024, | v1-17, 6 July 2025, | |||
<https://datatracker.ietf.org/doc/html/draft-ietf-lsr- | <https://datatracker.ietf.org/doc/html/draft-ietf-lsr- | |||
ospf-yang-augmentation-v1-14>. | ospf-yang-augmentation-v1-17>. | |||
[RFC4655] Farrel, A., Vasseur, J.-P., and J. Ash, "A Path | [RFC4655] Farrel, A., Vasseur, J.-P., and J. Ash, "A Path | |||
Computation Element (PCE)-Based Architecture", RFC 4655, | Computation Element (PCE)-Based Architecture", RFC 4655, | |||
DOI 10.17487/RFC4655, August 2006, | DOI 10.17487/RFC4655, August 2006, | |||
<https://www.rfc-editor.org/info/rfc4655>. | <https://www.rfc-editor.org/info/rfc4655>. | |||
[RFC5120] Przygienda, T., Shen, N., and N. Sheth, "M-ISIS: Multi | [RFC5120] Przygienda, T., Shen, N., and N. Sheth, "M-ISIS: Multi | |||
Topology (MT) Routing in Intermediate System to | Topology (MT) Routing in Intermediate System to | |||
Intermediate Systems (IS-ISs)", RFC 5120, | Intermediate Systems (IS-ISs)", RFC 5120, | |||
DOI 10.17487/RFC5120, February 2008, | DOI 10.17487/RFC5120, February 2008, | |||
skipping to change at page 38, line 49 ¶ | skipping to change at line 1656 ¶ | |||
D., Drake, J., and Q. Wu, "IS-IS Traffic Engineering (TE) | D., Drake, J., and Q. Wu, "IS-IS Traffic Engineering (TE) | |||
Metric Extensions", RFC 8570, DOI 10.17487/RFC8570, March | Metric Extensions", RFC 8570, DOI 10.17487/RFC8570, March | |||
2019, <https://www.rfc-editor.org/info/rfc8570>. | 2019, <https://www.rfc-editor.org/info/rfc8570>. | |||
[RFC9346] Chen, M., Ginsberg, L., Previdi, S., and D. Xiaodong, "IS- | [RFC9346] Chen, M., Ginsberg, L., Previdi, S., and D. Xiaodong, "IS- | |||
IS Extensions in Support of Inter-Autonomous System (AS) | IS Extensions in Support of Inter-Autonomous System (AS) | |||
MPLS and GMPLS Traffic Engineering", RFC 9346, | MPLS and GMPLS Traffic Engineering", RFC 9346, | |||
DOI 10.17487/RFC9346, February 2023, | DOI 10.17487/RFC9346, February 2023, | |||
<https://www.rfc-editor.org/info/rfc9346>. | <https://www.rfc-editor.org/info/rfc9346>. | |||
[SR-LOOP-AVOID] | ||||
Bashandy, A., Filsfils, C., Litkowski, S., Decraene, B., | ||||
Francois, P., and P. Psenak, "Loop avoidance using Segment | ||||
Routing", Work in Progress, Internet-Draft, draft- | ||||
bashandy-rtgwg-segment-routing-uloop-17, 29 June 2024, | ||||
<https://datatracker.ietf.org/doc/html/draft-bashandy- | ||||
rtgwg-segment-routing-uloop-17>. | ||||
Appendix A. Updated List of Rules for Pruning Links in Flex-Algorithm | ||||
Topology | ||||
This section lists the entire set of rules to prune links from Flex- | ||||
Algorithm topology during Flexible Algorithm calculation. It | ||||
includes the original rules defined in Section 13 of [RFC9350] as | ||||
well as the new additions (rules 6 and 7) described in this document. | ||||
For all links in the topology: | ||||
1. Check if any exclude Administrative Group rule is part of the | ||||
Flex-Algorithm Definition. If such exclude rule exists, check if | ||||
any color that is part of the exclude rule is also set on the | ||||
link. If such a color is set, the link MUST be pruned from the | ||||
computation. | ||||
2. Check if any exclude SRLG rule is part of the Flex-Algorithm | ||||
Definition. If such exclude rule exists, check if the link is | ||||
part of any SRLG that is also part of the SRLG exclude rule. If | ||||
the link is part of such SRLG, the link MUST be pruned from the | ||||
computation. | ||||
3. Check if any include-any Administrative Group rule is part of the | ||||
Flex-Algorithm Definition. If such include-any rule exists, | ||||
check if any color that is part of the include-any rule is also | ||||
set on the link. If no such color is set, the link MUST be | ||||
pruned from the computation. | ||||
4. Check if any include-all Administrative Group rule is part of the | ||||
Flex-Algorithm Definition. If such include-all rule exists, | ||||
check if all colors that are part of the include-all rule are | ||||
also set on the link. If all such colors are not set on the | ||||
link, the link MUST be pruned from the computation. | ||||
5. If the Flex-Algorithm Definition uses something other than the | ||||
IGP metric (Section 5 of [RFC9350]), and such metric is not | ||||
advertised for the particular link in a topology for which the | ||||
computation is done, such link MUST be pruned from the | ||||
computation. A metric of value 0 MUST NOT be assumed in such a | ||||
case. | ||||
6. Check if any exclude FAEMB rule is part of the Flex-Algorithm | ||||
Definition. If such exclude rule exists and the link has Maximum | ||||
Link Bandwidth advertised, check if the link bandwidth satisfies | ||||
the FAEMB rule. If the link does not satisfy the FAEMB rule, the | ||||
link MUST be pruned from the Flex-Algorithm computation. | ||||
7. Check if any exclude FAEMD rule is part of the Flex-Algorithm | ||||
Definition. If such exclude rule exists and the link has Min | ||||
Unidirectional Link Delay advertised, check if the link delay | ||||
satisfies the FAEMD rule. If the link does not satisfy the FAEMD | ||||
rule, the link MUST be pruned from the Flex-Algorithm | ||||
computation. | ||||
Acknowledgements | ||||
Many thanks to Chris Bowers, Krzysztof Szarcowitz, Julian Lucek, Ram | ||||
Santhanakrishnan, Ketan Talaulikar, and Acee Lindem for discussions | ||||
and input. | ||||
Contributors | ||||
Salih K.A. | ||||
Juniper Networks | ||||
Email: salih@juniper.net | ||||
Authors' Addresses | Authors' Addresses | |||
Shraddha Hegde | Shraddha Hegde | |||
Juniper Networks Inc. | Juniper Networks Inc. | |||
Exora Business Park | Exora Business Park | |||
Bangalore 560103 | Bangalore 560103 | |||
KA | Karnataka | |||
India | India | |||
Email: shraddha@juniper.net | Email: shraddha@juniper.net | |||
William Britto A J | William Britto | |||
Juniper Networks Inc. | Juniper Networks Inc. | |||
Email: bwilliam@juniper.net | Email: bwilliam@juniper.net | |||
Rajesh Shetty | Rajesh Shetty | |||
Juniper Networks Inc. | Juniper Networks Inc. | |||
Email: mrajesh@juniper.net | Email: mrajesh@juniper.net | |||
Bruno Decraene | Bruno Decraene | |||
Orange | Orange | |||
Email: bruno.decraene@orange.com | Email: bruno.decraene@orange.com | |||
End of changes. 287 change blocks. | ||||
943 lines changed or deleted | 924 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |