| rfc9843v1.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 | September 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 to be standardized. This document also specifies user- | require standardization. This document also specifies user-defined | |||
| defined metric-types where specifics are not defined so that | metric-types where specifics are not defined so that administrators | |||
| administrators are free to assign semantics as they see fit. | are free to assign semantics as they see fit. | |||
| In Section 4, this document specifies a new bandwidth-based metric | ||||
| type to be used with Flex-Algorithm and other applications. | ||||
| 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. | high delay links. Section 4 specifies a new bandwidth-based metric- | |||
| type to be used with Flex-Algorithm and other applications. | ||||
| 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 | |||
| skipping to change at line 186 ¶ | skipping to change at line 187 ¶ | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in | "OPTIONAL" in this document are to be interpreted as described in | |||
| BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 2. Generic Metric Advertisement | 2. Generic Metric Advertisement | |||
| IS-IS [RFC1195] and OSPF [RFC2328] advertise a metric for each link | IS-IS [RFC1195] and OSPF [RFC2328] advertise a metric for each link | |||
| in 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 Unidirectional Link Delay is defined in [RFC8570] and [RFC7471]. | |||
| [RFC7471]. Other metrics, such as jitter, reliability, and fiscal | Other metrics, such as jitter, reliability, and fiscal cost may be | |||
| cost may be helpful, depending on the traffic class. Rather than | helpful, depending on the traffic class. Rather than attempt to | |||
| attempt to enumerate all possible metrics of interest, this document | enumerate all possible metrics of interest, this document specifies a | |||
| specifies a generic mechanism for advertising metrics. | 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 has been assigned | and a value for the metric. The metric-type field has been assigned | |||
| in the "IGP Metric-Type" IANA registry. Metric types 0-127 are | in the "IGP Metric-Type" IANA registry. Metric-types 0-127 are | |||
| standard metric types as assigned by IANA. This document further | standard metric-types as assigned by IANA. This document further | |||
| specifies a user-defined metric type space of metric types 128-255. | specifies a user-defined metric-type space of metric-types 128-255. | |||
| These are user defined and can be assigned by an operator for local | They can be assigned by an operator for local use. | |||
| use. | ||||
| Implementations MUST support sending and receiving generic metric | Implementations MUST support sending and receiving a 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 TLV 22 and Extended Link Opaque Link State Advertisements | |||
| generic metric by an individual application is subject to the same | (LSAs) [RFC7684] and TE-LSAs. The usage of a generic metric by an | |||
| rules that apply to other link attributes as defined in [RFC3630], | individual application is subject to the same rules that apply to | |||
| [RFC5305], [RFC9479], [RFC9492], and [RFC9350]. | other link attributes as defined in [RFC3630], [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 TLVs | |||
| 22/222/23/223/141 [RFC9479] | 22/222/23/223/141 [RFC9479] | |||
| g. TLV 25 (L2 Bundle Member Attributes) [RFC8668]. Marked as "y(s)" | g. TLV 25 (L2 Bundle Member Attributes) [RFC8668]. Marked as "y(s)" | |||
| (shareable among bundle members). | (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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 1: IS-IS Generic Metric Sub-TLV | Figure 1: IS-IS Generic Metric Sub-TLV | |||
| skipping to change at line 260 ¶ | skipping to change at line 259 ¶ | |||
| An 8-bit field assigned by IANA (17). This value uniquely | An 8-bit field assigned by IANA (17). This value uniquely | |||
| identifies the Generic Metric TLV. | identifies the Generic Metric TLV. | |||
| Length (1 octet): | Length (1 octet): | |||
| 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 TLV, the Length is set to 4. | subsequent fields. For this TLV, the Length is set to 4. | |||
| Metric-Type (1 octet): | Metric-Type (1 octet): | |||
| An 8-bit field specifying the type of metric. The value is taken | An 8-bit field specifying the type of metric. The value is taken | |||
| from the "IGP Metric-Type" registry maintained by IANA. The | from the "IGP Metric-Type" registry maintained by IANA. The | |||
| metric type may be any value that is indicated as allowed in the | metric-type may be any value that is indicated as allowed in the | |||
| Generic Metric sub-TLV by the "IGP Metric-Type" registry. | Generic Metric sub-TLV by the "IGP Metric-Type" registry. | |||
| Value (3 octets): | Value (3 octets): | |||
| A 24-bit unsigned integer representing the metric value. The | A 24-bit unsigned integer representing the metric value. The | |||
| valid range is from 0 to 16,777,215 (0xFFFFFF). | 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 | only once for a link when advertised in TLVs 22, 222, 23, 223, and | |||
| 141. When the Generic Metric sub-TLV is advertised in ASLA, each | 141. When the Generic Metric sub-TLV is advertised in ASLA, each | |||
| metric type MUST be advertised only once per-application for a link. | metric-type MUST be advertised only once per-application for a link. | |||
| If there are multiple Generic Metric sub-TLVs advertised for a link | If there are multiple Generic Metric sub-TLVs advertised for a link | |||
| for the same metric type (and the same application in case of ASLA) | for the same metric-type (and the same application in case of ASLA) | |||
| in one or more received Link State Protocol Data Units (LSPDUs), | in one or more received Link State Protocol Data Units (LSPDUs), | |||
| advertisement in the lowest-numbered fragment MUST be used, and the | advertisement in the lowest-numbered fragment MUST be used, and the | |||
| subsequent instances MUST be ignored. | 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 Min | legacy advertisement mechanisms exist (e.g., the IGP Metric, the Min | |||
| 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 a 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 Section 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 (type 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 (type 2) of OSPFv2 Inter-AS-TE-v2 LSA | |||
| [RFC5392]. | [RFC5392]. | |||
| c. sub-TLV of TE Link TLV (2) of OSPFv3 Intra-Area-TE-LSA [RFC5329]. | c. sub-TLV of TE Link TLV (type 2) of OSPFv3 Intra-Area-TE-LSA | |||
| [RFC5329]. | ||||
| d. sub-TLV of TE Link TLV (2) of OSPFv3 Inter-AS-TE-v3 LSA | d. sub-TLV of TE Link TLV (type 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, types 25/36/34, is eight octets in | The Generic Metric sub-TLV, types 25/36/34, is 8 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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| skipping to change at line 354 ¶ | skipping to change at line 353 ¶ | |||
| A 16-bit field assigned by IANA (25/36/34). This value uniquely | A 16-bit field assigned by IANA (25/36/34). This value uniquely | |||
| identifies the Generic Metric TLV. | identifies the Generic Metric TLV. | |||
| Length (2 octets): | Length (2 octets): | |||
| A 16-bit field indicating the total length, in octets, of the | A 16-bit field indicating the total length, in octets, of the | |||
| subsequent fields. For this TLV, the Length is set to 8. | subsequent fields. For this TLV, the Length is set to 8. | |||
| Metric-Type (1 octet): | Metric-Type (1 octet): | |||
| An 8-bit field specifying the type of metric. The value is taken | An 8-bit field specifying the type of metric. The value is taken | |||
| from the "IGP Metric-Type" registry maintained by IANA. The | from the "IGP Metric-Type" registry maintained by IANA. The | |||
| metric type may be any value that is indicated as allowed in the | metric-type may be any value that is indicated as allowed in the | |||
| Generic Metric sub-TLV by the "IGP Metric-Type" registry. | Generic Metric sub-TLV by the "IGP Metric-Type" registry. | |||
| Reserved (3 octets): | Reserved (3 octets): | |||
| Must set to zero by the sender and must be ignored by the | MUST set to zero by the sender and MUST be ignored by the | |||
| receiver. | receiver. | |||
| Value (4 octets): | Value (4 octets): | |||
| A 32-bit unsigned integer representing the metric value. The | A 32-bit unsigned integer representing the metric value. The | |||
| valid range is from 0 to 4,294,967,295 (0xFFFFFFFF). | 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 | |||
| the Generic Metric sub-TLV is advertised as a sub-TLV of ASLA, it | the Generic Metric sub-TLV is advertised as a sub-TLV of ASLA, it | |||
| MUST be advertised only once per application for a link. If there | MUST be advertised only once per application for a link. If there | |||
| are multiple Generic Metric sub-TLVs advertised for a link for the | are multiple Generic Metric sub-TLVs advertised for a link for the | |||
| same metric type (and the same application in case of ASLA) in one or | same metric-type (and the same application in case of ASLA) in one or | |||
| more received LSAs, advertisement in the lowest-numbered LSA MUST be | more received LSAs, advertisement in the lowest-numbered LSA MUST be | |||
| used, 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 Min | legacy advertisement mechanisms exist (e.g., the IGP Metric, the Min | |||
| 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 a 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 Section 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 Algorithm 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-Algorithm by specifying the metric | Generic Metric can be used by Flex-Algorithm by specifying the | |||
| type in the Flexible Algorithm Definitions. When Flex-Algorithm is | metric-type in the Flexible Algorithm Definitions. When Flex- | |||
| used in a multi-area network, [RFC9350] defines the Flexible | Algorithm is used in a multi-area network, [RFC9350] defines the | |||
| Algorithm Prefix Metric (FAPM) sub-TLV that carries the Flexible- | Flexible Algorithm Prefix Metric (FAPM) sub-TLV that carries the | |||
| Algorithm-specific metric. Metrics carried in FAPM will be equal to | Flexible-Algorithm-specific metric. Metrics carried in FAPM will be | |||
| the metric to reach the prefix for that Flex-Algorithm in its source | equal to the metric to reach the prefix for that Flex-Algorithm in | |||
| area or domain (source area from the Area Border Router (ABR) | its source area or domain (source area from the Area Border Router | |||
| perspective). When Flex-Algorithm uses Generic Metric, the same | (ABR) perspective). When Flex-Algorithm uses Generic Metric, the | |||
| procedures as described in Section 13 of [RFC9350] are used to send | same procedures as described in Section 13 of [RFC9350] are used to | |||
| and process the FAPM sub-TLV. | send 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 low bandwidth link is constant, constraining the | |||
| through the use of administrative groups. However, when a Layer 3 | topology to avoid those links can already be achieved through the use | |||
| link is actually a collection of Layer 2 links (Link Aggregation | of administrative groups. However, when a Layer 3 link is actually a | |||
| Group (LAG) / Layer 2 Bundle), the link bandwidth will vary based on | collection of Layer 2 links (Link Aggregation Group (LAG) / Layer 2 | |||
| the set of active constituent links. This could be automated by | Bundle), the link bandwidth will vary based on the set of active | |||
| having an implementation vary the advertised administrative groups | constituent links. This could be automated by having an | |||
| based on bandwidth, but this seems unnecessarily complex and | implementation vary the advertised administrative groups based on | |||
| expressing this requirement as a direct constraint on the topology | bandwidth, but this seems unnecessarily complex and expressing this | |||
| seems simpler. This is also advantageous if the minimum required | requirement as a direct constraint on the topology seems simpler. | |||
| bandwidth changes, as this constraint would provide a single | This is also advantageous if the minimum required bandwidth changes, | |||
| centralized, coordinated point of control. | 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 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 482 ¶ | skipping to change at line 482 ¶ | |||
| 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 TLV 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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Max Link Delay | | | Max Link Delay | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 4: IS-IS FAEMD Sub-TLV | Figure 4: IS-IS FAEMD Sub-TLV | |||
| where: | where: | |||
| Type (1 octet): | Type (1 octet): | |||
| An 8-bit field assigned by IANA (7). This value uniquely | An 8-bit field assigned by IANA (7). 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, 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 TLV 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 583 ¶ | skipping to change at line 583 ¶ | |||
| 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 618 ¶ | skipping to change at line 618 ¶ | |||
| Type (2 octets): | Type (2 octets): | |||
| A 16-bit field assigned by IANA (7). This value uniquely | A 16-bit field assigned by IANA (7). 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, of the | A 16-bit field indicating the total length, in octets, 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 be set to zero by the sender and must be ignored by the | MUST be set to zero by the sender and MUST be ignored by the | |||
| 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. | |||
| 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 | |||
| 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. The Bandwidth Metric is a link attribute and | link advertisements. The Bandwidth Metric is a link attribute, and | |||
| for the advertisement and processing of this attribute for Flex- | it MUST follow Section 12 of [RFC9350] for its advertisement and | |||
| Algorithm, MUST follow Section 12 of [RFC9350]. | processing during Flex-Algorithm calculation. | |||
| 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 that are designed to be highly regular and that follow | Networks that are designed to be highly regular and that follow | |||
| uniform 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 [SR-LOOP-AVOID] or any other mechanism as described in | described in [SR-LOOP-AVOID] or any other mechanism as described in | |||
| the framework [RFC5715] can be used to avoid micro-loops when the | the framework [RFC5715] can be used to avoid micro-loops when the | |||
| skipping to change at line 695 ¶ | skipping to change at line 695 ¶ | |||
| 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 | |||
| skipping to change at line 836 ¶ | skipping to change at line 836 ¶ | |||
| 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: | G-flag: | |||
| When set, Interface Group Mode MUST be used to derive total link | When set, Interface Group Mode MUST be used to derive total link | |||
| bandwidth. Unassigned bits MUST be set to zero. | bandwidth. Unassigned bits MUST be set to zero and MUST be | |||
| ignored by the receiver. | ||||
| Reference Bandwidth (4 octets): | Reference Bandwidth (4 octets): | |||
| A 32-bit field with Bandwidth encoded in IEEE floating point | A 32-bit field with Bandwidth encoded in IEEE floating point | |||
| format [IEEE754-2019]. The units are bytes per second. | format [IEEE754-2019]. The units are bytes per second. | |||
| Granularity Bandwidth (4 octets): | Granularity Bandwidth (4 octets): | |||
| A 32-bit field with Bandwidth encoded in IEEE floating point | A 32-bit field with Bandwidth encoded in IEEE floating point | |||
| format [IEEE754-2019]. The units are bytes per second. | format [IEEE754-2019]. 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, | |||
| skipping to change at line 868 ¶ | skipping to change at line 869 ¶ | |||
| 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 a Bandwidth metric type is | If a Generic Metric sub-TLV with a Bandwidth metric-type is | |||
| advertised for a link, the Flex-Algorithm calculation MUST use the | advertised for a link, the Flex-Algorithm calculation MUST use the | |||
| advertised Bandwidth Metric and MUST NOT use the automatically | advertised Bandwidth Metric and MUST NOT use the automatically | |||
| derived metric for that link. In case of Interface Group Mode, if | derived metric for that link. | |||
| all the parallel links have been advertised with the Bandwidth | ||||
| Metric, the individual link Bandwidth Metric MUST be used. If only | In case of Interface Group Mode, the following rules apply to | |||
| some links among the parallel links have the Bandwidth Metric | parallel links: | |||
| advertisement, the Bandwidth Metric for such links MUST be ignored, | ||||
| and automatic Metric calculation MUST be used to derive link metric. | * If all the parallel links have been advertised with the Bandwidth | |||
| Metric: | ||||
| The individual link Bandwidth Metric MUST be used. | ||||
| * If only some links among the parallel links have advertised the | ||||
| Bandwidth Metric: | ||||
| - The Bandwidth Metric for such links MUST be ignored. | ||||
| - Automatic metric calculation MUST be used to derive the 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 Threshold 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 | |||
| skipping to change at line 927 ¶ | skipping to change at line 939 ¶ | |||
| where: | where: | |||
| Type (1 octet): | Type (1 octet): | |||
| An 8-bit field assigned by IANA (9). This value uniquely | An 8-bit field assigned by IANA (9). This value uniquely | |||
| identifies the IS-IS FADBT sub-TLV. | identifies the IS-IS FADBT sub-TLV. | |||
| Length (1 octet): | Length (1 octet): | |||
| 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 calculated as | subsequent fields. For this sub-TLV, the Length is calculated as | |||
| (1+n*7). Here, N is equal to the number of Threshold Metrics | (1+N*7). Here, N is equal to the number of Threshold Metrics | |||
| specified. n MUST be greater than or equal to 1. | specified. N MUST be greater than or equal to 1. | |||
| Flags (1 octet): | Flags (1 octet): | |||
| 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 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 and | |||
| MUST be ignored by the receiver. | ||||
| Unassigned bits MUST be set to zero. | ||||
| Following is the staircase bandwidth threshold and associated metric | Following is the staircase bandwidth threshold and associated metric | |||
| values. | values. | |||
| Bandwidth Threshold 1 (4 octets): | Bandwidth Threshold 1 (4 octets): | |||
| Minimum Link Bandwidth is encoded in IEEE floating point format | Minimum Link Bandwidth is encoded in IEEE floating point format | |||
| (32 bits)[IEEE754-2019]. The units are bytes per second. | (32 bits)[IEEE754-2019]. The units are bytes per second. | |||
| Threshold Metric 1 (3 octets): | Threshold Metric 1 (3 octets): | |||
| Metric value range (1 - 16,777,215 (0xFFFFFF)) | Metric value range (1 - 16,777,215 (0xFFFFFF)) | |||
| Bandwidth Threshold n (4 octets): | Bandwidth Threshold N (4 octets): | |||
| Maximum Link Bandwidth is encoded in IEEE floating point format | Maximum Link Bandwidth is encoded in IEEE floating point format | |||
| (32 bits)[IEEE754-2019]. The units are bytes per second. | (32 bits)[IEEE754-2019]. The units are bytes per second. | |||
| Threshold Metric n (3 octets): | Threshold Metric N (3 octets): | |||
| Metric value range (1 - 16,777,215 (0xFFFFFF)) | Metric value range (1 - 16,777,215 (0xFFFFFF)) | |||
| When the G-flag is set, the cumulative bandwidth of the parallel | When the G-flag is set, the cumulative bandwidth of the parallel | |||
| links is computed as described in Section 4.1.1.2. If the G-flag is | links is computed as described in Section 4.1.1.2. If the G-flag is | |||
| not set, the advertised Maximum Link Bandwidth is used. | not set, the advertised Maximum Link Bandwidth is used. | |||
| The assignment of the Bandwidth Metric based on computed link | The assignment of the Bandwidth Metric based on computed link | |||
| bandwidth is described below. | 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 | |||
| skipping to change at line 1020 ¶ | skipping to change at line 1031 ¶ | |||
| 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 of these sub-TLVs are advertised in the same FAD for a | If both of these sub-TLVs are advertised in the same FAD for a | |||
| Flexible 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, the following rules apply to | |||
| advertised with the Bandwidth Metric, the individual link Bandwidth | parallel links: | |||
| Metric MUST be used. If only some links among the parallel links | ||||
| have advertised the Bandwidth Metric, the Bandwidth Metric for such | * If all the parallel links have been advertised with the Bandwidth | |||
| links MUST be ignored and automatic Metric calculation MUST be used | Metric: | |||
| to derive the link metric. | ||||
| The individual link Bandwidth Metric MUST be used. | ||||
| * If only some links among the parallel links have advertised the | ||||
| Bandwidth Metric: | ||||
| - The Bandwidth Metric for such links MUST be ignored. | ||||
| - Automatic metric calculation MUST be used 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 (FADRB) sub-TLV | The Flexible Algorithm Definition Reference Bandwidth (FADRB) sub-TLV | |||
| is a sub-TLV of the OSPF FAD TLV. It has the following format: | is a 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 1070 ¶ | skipping to change at line 1090 ¶ | |||
| A 16-bit field indicating the total length, in octets, of the | A 16-bit field indicating the total length, in octets, of the | |||
| subsequent fields. For this sub-TLV, Length is set to 14. | subsequent fields. For this sub-TLV, Length is set to 14. | |||
| Flags (1 octet): | Flags (1 octet): | |||
| 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 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 and | |||
| MUST be ignored by the receiver. | ||||
| Unassigned bits MUST be set to zero. | ||||
| Reference Bandwidth (4 octets): | Reference Bandwidth (4 octets): | |||
| Bandwidth encoded in 32 bits in IEEE floating point format | Bandwidth encoded in 32 bits in IEEE floating point format | |||
| [IEEE754-2019]. The units are in bytes per second. | [IEEE754-2019]. The units are in bytes per second. | |||
| Granularity Bandwidth (4 octets): | Granularity Bandwidth (4 octets): | |||
| Bandwidth encoded in 32 bits in IEEE floating point format | Bandwidth encoded in 32 bits in IEEE floating point format | |||
| [IEEE754-2019]. The units are in bytes per second. | [IEEE754-2019]. The units are in 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, | |||
| skipping to change at line 1106 ¶ | skipping to change at line 1125 ¶ | |||
| Modulus of operation is defined as a remainder value when two numbers | Modulus of operation is defined as a remainder value when two numbers | |||
| are divided. | 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 | 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 OSPF FADRB sub-TLV, the sub-TLV MUST | Reference Bandwidth field in the OSPF FADRB sub-TLV, the sub-TLV MUST | |||
| be ignored. If a Generic Metric sub-TLV with Bandwidth metric type | be ignored. If a Generic Metric sub-TLV with Bandwidth metric-type | |||
| is 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 | |||
| skipping to change at line 1179 ¶ | skipping to change at line 1198 ¶ | |||
| octets. Here, N is equal to the number of Threshold Metrics | octets. Here, N is equal to the number of Threshold Metrics | |||
| specified. N MUST be greater than or equal to 1. | specified. N MUST be greater than or equal to 1. | |||
| Flags (1 octet): | Flags (1 octet): | |||
| 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 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 and | |||
| MUST be ignored by the receiver. | ||||
| Unassigned bits MUST be set to zero. | ||||
| Following is the staircase bandwidth threshold and associated metric | Following is the staircase bandwidth threshold and associated metric | |||
| values. | values. | |||
| Bandwidth Threshold 1 (4 octets): | Bandwidth Threshold 1 (4 octets): | |||
| Minimum Link Bandwidth is encoded in IEEE floating point format | Minimum Link Bandwidth is encoded in IEEE floating point format | |||
| (32 bits)[IEEE754-2019]. The units are bytes per second. | (32 bits)[IEEE754-2019]. The units are bytes per second. | |||
| Threshold Metric 1 (4 octets): | Threshold Metric 1 (4 octets): | |||
| Metric value range (1 - 4,294,967,296 (0xFFFFFFFF)) | Metric value range (1 - 4,294,967,296 (0xFFFFFFFF)) | |||
| skipping to change at line 1261 ¶ | skipping to change at line 1279 ¶ | |||
| 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 sub-TLV MUST be | sub-TLV. If it appears more than once, the OSPF FAD sub-TLV MUST be | |||
| ignored 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 case 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 link | The individual link Bandwidth Metric MUST be used for each 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. | |||
| skipping to change at line 1298 ¶ | skipping to change at line 1316 ¶ | |||
| 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 | advertised for the link as described in Section 4, it MUST be | |||
| used during the Flex-Algorithm calculation. | used during the Flex-Algorithm calculation. | |||
| 2. If the Generic Metric sub-TLV with Bandwidth metric type is not | 2. If the Generic Metric sub-TLV with Bandwidth metric-type is not | |||
| advertised for the link and the winning FAD for the Flex- | advertised for the link and the winning FAD for the Flex- | |||
| Algorithm does not specify the automatic bandwidth metric | Algorithm does not specify the automatic Bandwidth metric | |||
| calculation (as defined in Section 4.1), the link is treated as | calculation (as defined in Section 4.1), the link is treated as | |||
| if the Bandwidth Metric is not available for the link. | if the Bandwidth Metric is not available for the link. | |||
| 3. If the Generic Metric sub-TLV with Bandwidth metric type is not | 3. If the Generic Metric sub-TLV with Bandwidth metric-type is not | |||
| advertised for the link and the winning FAD (Section 5.3 of | advertised for the link and the winning FAD (Section 5.3 of | |||
| [RFC9350]) for the Flex-Algorithm specifies the automatic | [RFC9350]) for the Flex-Algorithm specifies the automatic | |||
| bandwidth metric calculation (as defined in Section 4.1), the | Bandwidth metric calculation (as defined in Section 4.1), the | |||
| Bandwidth Metric MUST be automatically calculated per the | Bandwidth Metric MUST be automatically calculated per the | |||
| procedures defined in Section 4.1. If the Link Bandwidth is not | procedures defined in Section 4.1. If the Link Bandwidth is not | |||
| advertised for a link, the link MUST be pruned for the Flex- | advertised for a link, the link MUST be pruned for the Flex- | |||
| Algorithm calculations. | Algorithm calculations. | |||
| 4. In ISIS, for Flex-Algorithm purposes, the Link Bandwidth is | 4. In IS-IS, for Flex-Algorithm purposes, the Link Bandwidth is | |||
| advertised as a sub-sub-TLV 9 of the Flex-Algorithm-specific ASLA | 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 | 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] | Flex-Algorithm in sub-TLV 9 of TLVs 22/222/23/223/141 [RFC5305] | |||
| together with the L-flag set in the Flex-Algorithm-specific ASLA | together with the L-flag set in the Flex-Algorithm-specific ASLA | |||
| advertisement. In the absence of both of these advertisements, | advertisement. In the absence of both of these advertisements, | |||
| the bandwidth of the link is not available for Flex-Algorithm | the bandwidth of the link is not available for Flex-Algorithm | |||
| purposes. | purposes. | |||
| 6. Calculation of Flex-Algorithm Paths | 6. Calculation of Flex-Algorithm Paths | |||
| The following two new additional rules are added to the existing | The following two new additional rules are added to the existing | |||
| rules in the Flex-Algorithm calculations specified in Section 13 of | rules in the Flex-Algorithm calculations specified in Section 13 of | |||
| [RFC9350]: | [RFC9350]: | |||
| skipping to change at line 1451 ¶ | skipping to change at line 1469 ¶ | |||
| Type: 9 | Type: 9 | |||
| Description: IS-IS Bandwidth Threshold | Description: IS-IS Bandwidth Threshold | |||
| Reference: RFC 9843, Section 4.1.3.2 | 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 | |||
| The "OSPF Flexible Algorithm Definition TLV Sub-TLVs" registry is | The "OSPF Flexible Algorithm Definition TLV Sub-TLVs" registry is | |||
| part of the "Open Shortest Path First (OSPF) Parameters" registry | part of the "Open Shortest Path First (OSPF) Parameters" registry | |||
| group. | group. | |||
| Bit Number: 6 | Type: 6 | |||
| Description: OSPF Exclude Minimum Bandwidth | Description: OSPF Exclude Minimum Bandwidth | |||
| Reference: RFC 9843, Section 3.2.1 | Reference: RFC 9843, Section 3.2.1 | |||
| Bit Number: 7 | Type: 7 | |||
| Description: OSPF Exclude Maximum Delay | Description: OSPF Exclude Maximum Delay | |||
| Reference: RFC 9843, Section 3.2.2 | Reference: RFC 9843, Section 3.2.2 | |||
| Bit Number: 8 | Type: 8 | |||
| Description: OSPF Reference Bandwidth | Description: OSPF Reference Bandwidth | |||
| Reference: RFC 9843, Section 4.1.4.1 | Reference: RFC 9843, Section 4.1.4.1 | |||
| Bit Number: 9 | Type: 9 | |||
| Description: OSPF Bandwidth Threshold | Description: OSPF Bandwidth Threshold | |||
| Reference: RFC 9843, Section 4.1.4.2 | 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 | |||
| The "IS-IS Sub-TLVs for TLVs Advertising Neighbor Information" | The "IS-IS Sub-TLVs for TLVs Advertising Neighbor Information" | |||
| registry is part of the "IS-IS TLV Codepoints" registry group. | registry is part of the "IS-IS TLV Codepoints" registry group. | |||
| Type: 17 | Type: 17 | |||
| Description: Generic Metric | Description: Generic Metric | |||
| End of changes. 81 change blocks. | ||||
| 163 lines changed or deleted | 181 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||