RFC 9917: IGP Flexible Algorithms Reverse Affinity Constraint
- P. Psenak,
- J. Horn,
- A. Dhamija
Abstract
An IGP Flexible Algorithm
This document updates RFCs 9350 and 9843 by introducing the new IANA registry that specifies the ordered set of rules that are used to prune links from the topology during the Flex-Algorithm path computation.¶
Status of This Memo
This is an Internet Standards Track document.¶
This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 7841.¶
Information about the current status of this document, any
errata, and how to provide feedback on it may be obtained at
https://
Copyright Notice
Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://
1. Introduction
IGP protocols historically computed the best paths over the network
solely based on the IGP metric assigned to the links. An IGP Flex-Algorithm
as specified in [RFC9350] allows IGPs to compute constraint
This document extends IGP Flex-Algorithm with additional constraints for inclusion or exclusion of links in the path based on Admin Groups associated with the reverse direction of the Shortest Path First (SPF) computation.¶
This document updates [RFC9350] and [RFC9843] by creating the new IANA registry that specifies the ordered set of rules that are used to prune links from the topology during the Flex-Algorithm path computation (refer to Section 12.3.1).¶
The term OSPF in this document is used to cover both OSPFv2 and OSPFv3 protocols.¶
2. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
3. Use Case Example
The Flexible Algorithm Definition (FAD) can specify Extended Administrative Groups that are used by the operator to include or exclude links during the Flex-Algorithm path computation [RFC9350]. These link Extended Administrative Groups are checked in the path direction of the SPF computation, e.g., in the direction from the root vertex toward vertices of increasing distance.¶
In certain scenarios, it is beneficial to evaluate the Extended Administrative Groups associated with the reverse direction of a link, rather than solely those in the direction of path computation. Consider a point-to-point link represented as a pair of directed edges between two nodes, A and B. When computing a path from A to B, issues such as input errors on the link, detectable only at the receiving node B, may be operationally significant. An operator might monitor metrics like Cyclic Redundancy Check (CRC) errors or other input-related faults at node B and apply thresholds over a defined observation period. If such a threshold is exceeded, node B may locally assign specific Extended Administrative Groups to the link in the direction from B to A.¶
To accommodate this operational intent, the Flex-Algorithm can be extended
to inspect the Extended Administrative Groups of the reverse
4. Deployment Consideration
Threshold-based setting of the link Extended Administrative Groups must be done with care to avoid excessive flooding and constant Flex-Algorithm path recalculation.¶
One possible approach is to use two different thresholds when setting and unsetting the Extended Administrative Group on the link. For example, when setting the Extended Administrative Group on the link based on the percentage of certain incoming errors, higher threshold is used for setting and lower threshold is used for unsetting the Extended Administrative Group on the link.¶
Many implementations provide a throttling mechanism that limits the rate at which the Link State PDU (LSP) in case of IS-IS, or Link State Advertisement (LSA) in case of OSPFv2 and OSPFv3, is updated at the originator. Such mechanism is typically not specific to any particular link attribute, but rather considers any change in the LSP or LSA. Application of such throttling mechanism can also be used to avoid frequent changes in the setting of the Extended Administrative Group on a link to affect the stability of the receivers.¶
5. IS-IS Flexible Algorithm Exclude Reverse Admin Group Sub-TLV
The IS-IS Flexible Algorithm Exclude Reverse Admin Group (FAERAG) Sub-TLV is used to advertise the exclude rule that is used during the Flex-Algorithm path calculation as specified in Section 11.¶
The IS-IS FAERAG Sub-TLV is a sub-TLV of the IS-IS FAD Sub-TLV. It has the following format:¶
where:¶
- Type (1 octet):
- 10¶
- Length (1 octet):
- Variable, dependent on the size of the Extended Admin Group. The length MUST be a multiple of 4 octets. If the length is not a multiple of 4 octets, the entire sub-TLV MUST be ignored by the receiver.¶
- Extended Administrative Group:
- Extended Administrative Group as defined in [RFC7308].¶
The IS-IS FAERAG Sub-TLV MUST NOT appear more than once in a single IS-IS FAD Sub-TLV. If it appears more than once, the IS-IS FAD Sub-TLV MUST be ignored by the receiver.¶
The IS-IS FAERAG Sub-TLV MUST NOT appear more than once in the set of FAD Sub-TLVs for a given Flex-Algorithm from a given IS. If it appears more than once in such set, the IS-IS FAERAG Sub-TLV in the first occurrence in the lowest-numbered LSP from a given IS MUST be used and any other occurrences MUST be ignored by the receiver.¶
6. IS-IS Flexible Algorithm Include-Any Reverse Admin Group Sub-TLV
The IS-IS Flexible Algorithm Include-Any Reverse Admin Group Sub-TLV is used to advertise the include-any rule that is used during the Flex-Algorithm path calculation as specified in Section 11.¶
The format of the IS-IS Flexible Algorithm Include-Any Reverse Admin Group Sub-TLV is identical to the format of the FAERAG Sub-TLV in Section 5.¶
IANA has assigned Type value of 11 for the IS-IS Flexible Algorithm Include-Any Reverse Admin Group Sub-TLV.¶
The IS-IS Flexible Algorithm Include-Any Reverse Admin Group Sub-TLV MUST NOT appear more than once in a single IS-IS FAD Sub-TLV. If it appears more than once, the IS-IS FAD Sub-TLV MUST be ignored by the receiver.¶
The IS-IS Flexible Algorithm Include-Any Reverse Admin Group Sub-TLV MUST NOT appear more than once in the set of FAD Sub-TLVs for a given Flex-Algorithm from a given IS. If it appears more than once in such set, the IS-IS Flexible Algorithm Include-Any Reverse Admin Group Sub-TLV in the first occurrence in the lowest-numbered LSP from a given IS MUST be used and any other occurrences MUST be ignored by the receiver.¶
7. IS-IS Flexible Algorithm Include-All Reverse Admin Group Sub-TLV
The IS-IS Flexible Algorithm Include-All Reverse Admin Group Sub-TLV is used to advertise the include-all rule that is used during the Flex-Algorithm path calculation as specified in Section 11.¶
The format of the IS-IS Flexible Algorithm Include-All Reverse Admin Group Sub-TLV is identical to the format of the FAERAG Sub-TLV in Section 5.¶
IANA has assigned Type value of 12 for the IS-IS Flexible Algorithm Include-All Reverse Admin Group Sub-TLV.¶
The IS-IS Flexible Algorithm Include-All Reverse Admin Group Sub-TLV MUST NOT appear more than once in a single IS-IS FAD Sub-TLV. If it appears more than once, the IS-IS FAD Sub-TLV MUST be ignored by the receiver.¶
The IS-IS Flexible Algorithm Include-All Reverse Admin Group Sub-TLV MUST NOT appear more than once in the set of FAD Sub-TLVs for a given Flex-Algorithm from a given IS. If it appears more than once in such set, the IS-IS Flexible Algorithm Include-All Reverse Admin Group Sub-TLV in the first occurrence in the lowest-numbered LSP from a given IS MUST be used and any other occurrences MUST be ignored by the receiver.¶
8. OSPF Flexible Algorithm Exclude Reverse Admin Group Sub-TLV
The OSPF Flexible Algorithm Exclude Reverse Admin Group (FAERAG) Sub-TLV is used to advertise the exclude rule that is used during the Flex-Algorithm path calculation as specified in Section 11.¶
The OSPF FAERAG Sub-TLV is a sub-TLV of the OSPF FAD TLV. It has the following format:¶
where:¶
- Type (2 octets):
- 10¶
- Length (2 octets):
- Variable, dependent on the size of the Extended Admin Group. The length MUST be a multiple of 4 octets. If the length is not a multiple of 4 octets, the entire sub-TLV MUST be ignored by the receiver.¶
- Extended Administrative Group:
- Extended Administrative Group as defined in [RFC7308].¶
The OSPF FAERAG 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 by the receiver.¶
9. OSPF Flexible Algorithm Include-Any Reverse Admin Group Sub-TLV
The OSPF Flexible Algorithm Include-Any Reverse Admin Group Sub-TLV is used to advertise the include-any rule that is used during the Flex-Algorithm path calculation as specified in Section 11.¶
The format of the OSPF Flexible Algorithm Include-Any Reverse Admin Group Sub-TLV is identical to the format of the OSPF FAERAG Sub-TLV in Section 8.¶
IANA has assigned Type value of 11 for the OSPF Flexible Algorithm Include-Any Reverse Admin Group Sub-TLV.¶
The OSPF Flexible Algorithm Include-Any Reverse Admin Group 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 by the receiver.¶
10. OSPF Flexible Algorithm Include-All Reverse Admin Group Sub-TLV
The OSPF Flexible Algorithm Include-All Reverse Admin Group Sub-TLV is used to advertise the include-all rule that is used during the Flex-Algorithm path calculation as specified in Section 11.¶
The format of the OSPF Flexible Algorithm Include-All Reverse Admin Group Sub-TLV is identical to the format of the OSPF FAERAG Sub-TLV in Section 8.¶
IANA has assigned Type value of 12 for the OSPF Flexible Algorithm Include-All Reverse Admin Group Sub-TLV.¶
The OSPF Flexible Algorithm Include-All Reverse Admin Group 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 by the receiver.¶
11. Calculation of Flexible Algorithm Paths
The following procedures augment the rules defined in Section 13 of [RFC9350] by introducing additional constraints based on Administrative Groups (AGs) associated with the reverse direction of a link.¶
Please see rules 8, 9, and 10 in Section 12.3 for these added rules.¶
12. IANA Considerations
12.1. Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV
IANA has registered the following in the "IS-IS Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV" registry under the "IS-IS TLV Codepoints" registry group:¶
- Type:
- 10¶
- Description:
- Flexible Algorithm Exclude Reverse Admin Group¶
- MP:
- n¶
- Reference:
- RFC 9917, Section 5¶
12.2. OSPF Flexible Algorithm Definition TLV Sub-TLV Registry
This document makes the following registration in the "OSPF Flexible Algorithm Definition TLV Sub-TLVs" registry under the "Open Shortest Path First (OSPF) Parameters" registry group:¶
- Type:
- 10¶
- Description:
- Flexible Algorithm Exclude Reverse Admin Group¶
- Reference:
- RFC 9917, Section 8¶
- Type:
- 11¶
- Description:
- Flexible Algorithm Include-Any Reverse Admin Group¶
- Reference:
- RFC 9917, Section 9¶
- Type:
- 12¶
- Description:
- Flexible Algorithm Include-All Reverse Admin Group¶
- Reference:
- RFC 9917, Section 10¶
12.3. IGP Flex-Algorithm Path Computation Rules Registry
IANA has created a new registry called "IGP Flex-Algorithm Path Computation Rules" within the "Interior Gateway Protocol (IGP) Parameters" registry group. The registration procedure for the new registry is Expert Review [RFC8126]. Section 12.3.1 provides guidance for designated experts.¶
The "IGP Flex-Algorithm Path Computation Rules" registry specifies the ordered set of rules that are used to prune links from the topology during the Flex-Algorithm path computation.¶
There is no upper bound on the number of rules that the registry supports.¶
In Table 1, "FAEMB" means "Flex-Algorithm Exclude Minimum Bandwidth", and "FAEMD" means "Flex-Algorithm Exclude Maximum Delay".¶
12.3.1. Guidance for Designated Experts
Since the original Flex-Algorithm specification [RFC9350], many Flex-Algorithm extensions have been proposed and standardized. Many of them added additional rules to the Flex-Algorithm path computation. Maintaining an IANA registry for these rules allows specification across multiple documents progressing independently. The new "IGP Flex-Algorithm Path Computation Rules" registry has been created and is specified in Section 12.3.¶
This section provides the guidance for designated experts on evaluating new registrations in the "IGP Flex-Algorithm Path Computation Rules" registry:¶
13. Security Considerations
This document inherits security considerations from [RFC9350].¶
14. References
14.1. Normative References
- [RFC2119]
-
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10
.17487 , , <https:///RFC2119 www >..rfc -editor .org /info /rfc2119 - [RFC7308]
-
Osborne, E., "Extended Administrative Groups in MPLS Traffic Engineering (MPLS-TE)", RFC 7308, DOI 10
.17487 , , <https:///RFC7308 www >..rfc -editor .org /info /rfc7308 - [RFC8174]
-
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10
.17487 , , <https:///RFC8174 www >..rfc -editor .org /info /rfc8174 - [RFC9350]
-
Psenak, P., Ed., Hegde, S., Filsfils, C., Talaulikar, K., and A. Gulko, "IGP Flexible Algorithm", RFC 9350, DOI 10
.17487 , , <https:///RFC9350 www >..rfc -editor .org /info /rfc9350 - [RFC9843]
-
Hegde, S., Britto, W., Shetty, R., Decraene, B., Psenak, P., and T. Li, "IGP Flexible Algorithms: Bandwidth, Delay, Metrics, and Constraints", RFC 9843, DOI 10
.17487 , , <https:///RFC9843 www >..rfc -editor .org /info /rfc9843
14.2. Informative References
- [RFC8126]
-
Cotton, M., Leiba, B., and T. Narten, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 8126, DOI 10
.17487 , , <https:///RFC8126 www >..rfc -editor .org /info /rfc8126