rfc9843v2.txt | rfc9843.txt | |||
---|---|---|---|---|
Internet Engineering Task Force (IETF) S. Hegde | Internet Engineering Task Force (IETF) S. Hegde | |||
Request for Comments: 9843 W. Britto | Request for Comments: 9843 W. Britto | |||
Category: Standards Track R. Shetty | Updates: 9350 R. Shetty | |||
ISSN: 2070-1721 Juniper Networks Inc. | Category: Standards Track Juniper Networks Inc. | |||
B. Decraene | ISSN: 2070-1721 B. Decraene | |||
Orange | Orange | |||
P. Psenak | P. Psenak | |||
Cisco Systems | Cisco Systems | |||
T. Li | T. Li | |||
Juniper Networks Inc. | Juniper Networks Inc. | |||
August 2025 | August 2025 | |||
IGP Flexible Algorithms: Bandwidth, Delay, Metrics, and Constraints | IGP Flexible Algorithms: Bandwidth, Delay, Metrics, and Constraints | |||
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, and high bandwidth traffic gets routed per the link | capacity, and high bandwidth traffic gets routed per the link | |||
capacity. Flexible Algorithms provide mechanisms to create | capacity. Flexible Algorithms provide mechanisms to create | |||
constraint-based paths in an IGP. This specification documents a | constraint-based paths in an IGP. This specification documents a | |||
generic metric-type and a set of bandwidth-related constraints to be | generic metric-type and a set of bandwidth-related constraints to be | |||
used in Flexible Algorithms. | used in Flexible Algorithms. | |||
This document updates RFC 9350. | ||||
Status of This Memo | Status of This Memo | |||
This is an Internet Standards Track document. | This is an Internet Standards Track document. | |||
This document is a product of the Internet Engineering Task Force | This document is a product of the Internet Engineering Task Force | |||
(IETF). It represents the consensus of the IETF community. It has | (IETF). It represents the consensus of the IETF community. It has | |||
received public review and has been approved for publication by the | received public review and has been approved for publication by the | |||
Internet Engineering Steering Group (IESG). Further information on | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | Internet Standards is available in Section 2 of RFC 7841. | |||
skipping to change at line 151 ¶ | skipping to change at line 153 ¶ | |||
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. However, if 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 that have specific semantics and | introduces standard metric-types that have specific semantics and | |||
require standardization. This document also specifies user-defined | require standardization. This document also specifies user-defined | |||
metric-types where specifics are not defined so that administrators | metric-types where specifics are not defined so that administrators | |||
are free to assign semantics as they see fit. | are free to assign semantics as they see fit. | |||
Section 3 defines additional FAD [RFC9350] constraints that allow the | Section 3 defines additional FAD [RFC9350] constraints that allow the | |||
network administrator to preclude the use of low bandwidth links or | network administrator to preclude the use of low bandwidth links or | |||
high delay links. In Section 4, this document specifies a new | high delay links. In Section 4, this document specifies a new | |||
bandwidth-based metric-type to be used with Flex-Algorithm and other | bandwidth-based metric-type to be used with Flex-Algorithm and other | |||
applications. | applications. | |||
skipping to change at line 437 ¶ | skipping to change at line 439 ¶ | |||
implementation vary the advertised administrative groups based on | implementation vary the advertised administrative groups based on | |||
bandwidth, but this seems unnecessarily complex and expressing this | bandwidth, but this seems unnecessarily complex and expressing this | |||
requirement as a direct constraint on the topology seems simpler. | requirement as a direct constraint on the topology seems simpler. | |||
This is also advantageous if the minimum required bandwidth changes, | This is also advantageous if the minimum required bandwidth changes, | |||
as this constraint would provide a single centralized, coordinated | as this constraint would provide a single centralized, coordinated | |||
point of control. | 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 value is below the FAD advertised | |||
Bandwidth value. | minimum 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 to | recovery mechanisms or satellite links. Mechanisms already exist 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. | |||
skipping to change at line 485 ¶ | skipping to change at line 487 ¶ | |||
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]. The units are | floating point format (32 bits) [IEEE754-2019]. The units are | |||
bytes per second. | bytes per second. | |||
The FAEMB sub-TLV MUST appear once at most 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 the FAEMB sub-TLV MUST be | The minimum bandwidth value advertised in the FAEMB sub-TLV MUST be | |||
compared with Maximum Link Bandwidth advertised in sub-sub-TLV 9 of | compared with maximum link bandwidth value advertised in sub-sub-TLV | |||
the ASLA sub-TLV [RFC9479]. If the L-flag is set in the ASLA sub- | 9 of the ASLA sub-TLV [RFC9479]. If the L-flag is set in the ASLA | |||
TLV, the Minimum bandwidth advertised in the FAEMB sub-TLV MUST be | sub-TLV, the minimum bandwidth value advertised in the FAEMB sub-TLV | |||
compared with the Maximum Link Bandwidth as advertised in the sub-TLV | MUST be compared with the maximum link bandwidth value as advertised | |||
9 of the TLVs 22/222/23/223/141 [RFC5305], as defined in Section 4.2 | in the sub-TLV 9 of the TLVs 22/222/23/223/141 [RFC5305], as defined | |||
of [RFC9479]. | in Section 4.2 of [RFC9479]. | |||
If the Maximum Link Bandwidth is lower than the Minimum Link | If the maximum link bandwidth value is lower than the minimum link | |||
Bandwidth advertised in the FAEMB sub-TLV, the link MUST be excluded | bandwidth value advertised in the FAEMB sub-TLV, the link MUST be | |||
from the Flex-Algorithm topology. If a link does not have the | excluded from the Flex-Algorithm topology. If a link does not have | |||
Maximum Link Bandwidth advertised but the FAD contains this sub-TLV, | the Maximum Link Bandwidth advertised but the FAD contains the FAEMB | |||
then that link MUST NOT be excluded from the topology based on the | sub-TLV, then that link MUST NOT be excluded from the topology based | |||
Minimum Bandwidth constraint. | on the 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 (FAEMD) sub-TLV 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 | |||
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 | | |||
skipping to change at line 532 ¶ | skipping to change at line 534 ¶ | |||
An 8-bit field indicating the total length, in octets, of the | An 8-bit field indicating the total length, in octets, 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. | |||
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 the FAEMD sub-TLV MUST be | The maximum link delay value advertised in the FAEMD sub-TLV MUST be | |||
compared with Min Unidirectional Link Delay advertised in sub-sub-TLV | compared with Min Unidirectional Link Delay advertised in sub-sub-TLV | |||
34 of the ASLA sub-TLV [RFC9479]. If the L-flag is set in the ASLA | 34 of the ASLA sub-TLV [RFC9479]. If the L-flag is set in the ASLA | |||
sub-TLV, the Maximum link delay advertised in the FAEMD sub-TLV MUST | sub-TLV, the maximum link delay value advertised in the FAEMD sub-TLV | |||
be compared with Min Unidirectional Link Delay as advertised by the | MUST be compared with Min Unidirectional Link Delay as advertised by | |||
sub-TLV 34 of the TLVs 22/222/23/223/141 [RFC8570], as defined in | the sub-TLV 34 of the TLVs 22/222/23/223/141 [RFC8570], as defined in | |||
Section 4.2 of [RFC9479]. | 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 the 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 the FAEMD | |||
TLV, then that link MUST NOT be excluded from the topology based on | sub-TLV, then that link MUST NOT be excluded from the topology based | |||
the Maximum Delay constraint. | on 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 (FAEMB) sub-TLV 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 | |||
skipping to change at line 586 ¶ | skipping to change at line 588 ¶ | |||
floating point format (32 bits)[IEEE754-2019]. The units are | floating point format (32 bits)[IEEE754-2019]. The units are | |||
bytes per second. | 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 the FAEMB sub-TLV. If the link bandwidth is lower than the | in the FAEMB sub-TLV. If the link bandwidth value is lower than the | |||
Minimum bandwidth advertised in the FAEMB sub-TLV, the link MUST be | Minimum Bandwidth advertised in the FAEMB sub-TLV, the link MUST be | |||
excluded from 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 the FAEMB sub-TLV, then that link MUST be included in | |||
topology and proceed to apply further pruning rules for the link. | the 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 (FAEMD) sub-TLV 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 | | |||
skipping to change at line 633 ¶ | skipping to change at line 635 ¶ | |||
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. | |||
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 the ASLA sub-TLV [RFC9492] MUST be compared against the | Delay of the ASLA sub-TLV [RFC9492] MUST be compared against the | |||
Maximum delay advertised in the FAEMD sub-TLV. If the Min | Maximum Delay advertised in the FAEMD sub-TLV. If the Min | |||
Unidirectional Link Delay is higher than the Maximum delay advertised | Unidirectional Link Delay is higher than the Maximum Delay advertised | |||
in the FAEMD sub-TLV, the link MUST be excluded from the Flex- | in the FAEMD sub-TLV, the link MUST be excluded from the Flex- | |||
Algorithm topology. If the Min/Max Unidirectional Link Delay is not | Algorithm topology. If the Min/Max Unidirectional Link Delay is not | |||
advertised for a link but the FAD contains this sub-TLV, then that | advertised for a link but the FAD contains this sub-TLV, then that | |||
link MUST NOT be excluded from the topology based on the Maximum | link MUST NOT be excluded from the topology based on the Maximum | |||
Delay constraint. | 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 | |||
End of changes. 13 change blocks. | ||||
34 lines changed or deleted | 36 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |