IGP Flexible Algorithms: Bandwidth, Delay, Metrics, and Constraints
updated by
- rfc-9917 — IGP Flexible Algorithms Reverse Affinity Constraint
updates
- rfc-9350 — IGP Flexible Algorithm
Extracted elements (29)
A generic metric-type mechanism was chosen rather than enumerating all possible metrics (jitter, fiscal cost, reliability, etc.) so that operators can assign semantics to user-defined metric-types 128-255 locally. Standard metric-types 0-127 remain IANA-assigned to ensure interoperability across domains.
Bandwidth constraints for Flex-Algorithm are preferred over administrative groups for bandwidth-variable links (e.g., LAGs) because LAG bandwidth changes dynamically with Layer 2 link failures. A direct FAEMB constraint provides a single centralized control point instead of requiring implementations to automatically vary admin groups based on bandwidth.
Interface Group Mode is required because bandwidth-derived metrics on individual parallel Layer 3 links can incorrectly steer traffic away from a high-capacity multi-link bundle toward a single lower-capacity path. Aggregating bandwidth across parallel adjacencies corrects the metric to reflect true path capacity.
Per RFC 9350, any node that does not understand sub-TLVs in a FAD TLV stops participation in the corresponding Flex-Algorithm. New FAD constraints and metric-types defined in this document can therefore be deployed incrementally among upgraded nodes without affecting non-upgraded nodes.
A FAD MUST NOT contain both the FADBT sub-TLV and the FADRB sub-TLV. If both are advertised in the same FAD, the FAD MUST be ignored by the receiver. Each of FADRB and FADBT MUST NOT appear more than once in an FAD.
A metric value of 0xFFFFFF (IS-IS) or 0xFFFFFFFF (OSPF) is considered a maximum link metric, and a link with this value MUST be used during Flex-Algorithm calculations as a last resort link as described in Section 15.3 of RFC 9350.
If a Generic Metric sub-TLV with Bandwidth metric-type is explicitly advertised for a link, the Flex-Algorithm calculation MUST use that advertised Bandwidth Metric and MUST NOT use the automatically derived metric for that link. The Reference Bandwidth field MUST be non-zero; a zero value causes the FADRB sub-TLV to be ignored.
If the metric-type corresponds to one for which legacy advertisement mechanisms exist (IGP Metric, Min Unidirectional Link Delay, TE Default Metric), the legacy metric-types MUST be utilized; if a Generic Metric sub-TLV advertises a legacy metric, it MUST be ignored. Duplicate instances for the same metric-type use the lowest-numbered fragment and MUST ignore subsequent instances.
Implementations MUST support sending and receiving a Generic Metric sub-TLV in Application-Specific Link Attributes (ASLA) encodings as well as in TLV 22 and Extended Link Opaque LSAs and TE-LSAs. Usage of the generic metric by an application is subject to the same rules as other link attributes.
In Interface Group Mode, if only some parallel links have advertised the Bandwidth Metric, the per-link Bandwidth Metric advertisements MUST be ignored and automatic metric calculation MUST be used to derive metrics for all parallel links, ensuring consistent metric assignment.
In Interface Group Mode, nodes MUST compute the aggregate bandwidth of all parallel adjacencies between a pair of nodes based on IGP link advertisements, MUST derive the metric based on the aggregate bandwidth, and MUST apply the resulting metric to each of the parallel adjacencies.
Two new link pruning rules are added to the Flex-Algorithm computation (updating RFC 9350 Section 13): Rule 6 prunes links that fail the FAEMB bandwidth threshold; Rule 7 prunes links that fail the FAEMD delay threshold. In both cases, links lacking the respective advertisement are not pruned.
When the winning FAD specifies automatic Bandwidth Metric calculation and a link has neither an explicit Bandwidth Metric nor an advertised Link Bandwidth, the link MUST be pruned from the Flex-Algorithm calculations. A calculated metric of zero MUST be replaced with 1.
Automatic Bandwidth Metric Calculation supports two modes: Simple Mode uses a single Layer 3 link's Maximum Link Bandwidth; Interface Group Mode aggregates bandwidth of all parallel adjacencies between two nodes and assigns the resulting metric to each parallel link, correcting for traffic attraction on multi-link bundles.
The Bandwidth Metric (IGP Metric-Type 3) is a standard link metric derived from link capacity. It MAY be explicitly advertised in the Generic Metric sub-TLV or automatically computed via FAD parameters. It MUST follow Section 12 of RFC 9350 for advertisement and processing in Flex-Algorithm calculations.
The Flex-Algorithm Exclude Maximum Delay (FAEMD) constraint is advertised in an FAD sub-TLV. A link is pruned from the Flex-Algorithm topology if its Min Unidirectional Link Delay exceeds the maximum delay value in the FAEMD sub-TLV. Links without any Min Unidirectional Link Delay advertisement are not excluded.
The Flex-Algorithm Exclude Minimum Bandwidth (FAEMB) constraint is advertised in an FAD sub-TLV. A link is pruned from the Flex-Algorithm topology if its advertised Maximum Link Bandwidth is below the minimum bandwidth value in the FAEMB sub-TLV. Links without any Maximum Link Bandwidth advertisement are not excluded.
Generic Metric sub-TLV codepoints registered across multiple registries: IS-IS type 17 in neighbor-info TLVs (22/23/25/141/222/223) and ASLA sub-sub-TLV; OSPFv2 Extended Link TLV type 25 (L2BM=Y); OSPF TE Link TLV type 36; OSPFv3 Extended-LSA type 34 (L2BM=Y).
New codepoints registered in both 'IS-IS Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV' and 'OSPF Flexible Algorithm Definition TLV Sub-TLVs' registries: type 6 (Exclude Minimum Bandwidth), type 7 (Exclude Maximum Delay), type 8 (Reference Bandwidth), type 9 (Bandwidth Threshold).
The 'IGP Metric-Type' registry is updated with a new 'Allowed in Generic-Metric' column. Bandwidth Metric (type 3, allowed) and user-defined range 128-255 (allowed, no Standards Action required) are added. Existing types 0-2 (IGP Metric, Min Delay, TE Metric) are marked not allowed in Generic Metric.
This document inherits all security considerations from RFC 9350 (IGP Flexible Algorithm) without introducing additional security requirements. Operational considerations from RFC 9350 also apply, including the use of maximum generic metric values during router maintenance to divert traffic.
IS-IS FADBT sub-TLV (Type 9, Bandwidth Thresholds Method): 1-octet Type, 1-octet Length (1+N*7 octets), 1-octet Flags (G-flag), followed by N pairs of 32-bit IEEE 754 Bandwidth Threshold and 24-bit Threshold Metric values (1–16,777,215). Links below Threshold 1 receive maximum metric 4,261,412,864.
IS-IS FADRB sub-TLV (Type 8, Reference Bandwidth Method): 1-octet Type, 1-octet Length (set to 9), 1-octet Flags (G-flag bit 0 enables Interface Group Mode), 32-bit IEEE 754 Reference Bandwidth, and 32-bit IEEE 754 Granularity Bandwidth, both in bytes per second. Metric = Reference_BW / (Link_BW - Modulus(Link_BW, Granularity_BW)) using integer division.
IS-IS FAEMB sub-TLV (Type 6): 1-octet Type, 1-octet Length (set to 4), and a 32-bit IEEE 754 floating-point Min Bandwidth field in bytes per second. MUST appear at most once in the FAD sub-TLV; multiple occurrences cause the FAD to be ignored.
IS-IS FAEMD sub-TLV (Type 7): 1-octet Type, 1-octet Length (set to 3), and a 24-bit Max Link Delay field in microseconds. MUST appear only once in the FAD sub-TLV; multiple occurrences cause the FAD to be ignored.
IS-IS Generic Metric sub-TLV (Type 17): 1-octet Type, 1-octet Length (set to 4), 1-octet Metric-Type from the IGP Metric-Type registry, and a 24-bit unsigned integer Value in range 0 to 16,777,215 (0xFFFFFF).
OSPF FADRB sub-TLV (Type 8): 2-octet Type, 2-octet Length (set to 14), 1-octet Flags (G-flag), 3 octets Reserved, 32-bit Reference Bandwidth (IEEE 754), and 32-bit Granularity Bandwidth (IEEE 754). OSPF FADBT sub-TLV (Type 9): Length = 2+N*8 octets; Threshold Metrics are 32-bit (vs. 24-bit in IS-IS), max metric value is 4,294,967,296.
OSPF FAEMB sub-TLV (Type 6): 2-octet Type, 2-octet Length (set to 4), and a 32-bit IEEE 754 floating-point Min Bandwidth field in bytes per second. OSPF FAEMD sub-TLV (Type 7): 2-octet Type, 2-octet Length (set to 4), 1-octet Reserved (MBZ), and a 24-bit Max Link Delay in microseconds.
OSPF Generic Metric sub-TLV (Types 25/36/34): 2-octet Type, 2-octet Length (set to 8), 1-octet Metric-Type, 3 octets Reserved (MBZ), and a 32-bit unsigned integer Value in range 0 to 4,294,967,295 (0xFFFFFFFF).