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.