rfc9917v1.txt   rfc9917.txt 
skipping to change at line 21 skipping to change at line 21
Abstract Abstract
An IGP Flexible Algorithm (Flex-Algorithm) enables the computation of An IGP Flexible Algorithm (Flex-Algorithm) enables the computation of
constraint-based paths within an IGP domain, allowing operators to constraint-based paths within an IGP domain, allowing operators to
influence path selection according to administrative policies. This influence path selection according to administrative policies. This
document defines an extension to Flex-Algorithm that allows the document defines an extension to Flex-Algorithm that allows the
inclusion or exclusion of links from path computation based on inclusion or exclusion of links from path computation based on
Administrative Groups (also known as link affinities) associated with Administrative Groups (also known as link affinities) associated with
the reverse direction of the path under computation. the reverse direction of the path under computation.
This extension enhances the path selection capabilities of Flex-
Algorithm by enabling reverse-affinity-based constraints, which are
particularly useful for scenarios where path symmetry or directional
link attributes are operationally significant.
This document updates RFCs 9350 and 9843 by introducing the new IANA This document updates RFCs 9350 and 9843 by introducing the new IANA
registry that specifies the ordered set of rules that are used to registry that specifies the ordered set of rules that are used to
prune links from the topology during the Flex-Algorithm path prune links from the topology during the Flex-Algorithm path
computation. computation.
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
skipping to change at line 75 skipping to change at line 70
4. Deployment Consideration 4. Deployment Consideration
5. IS-IS Flexible Algorithm Exclude Reverse Admin Group Sub-TLV 5. IS-IS Flexible Algorithm Exclude Reverse Admin Group Sub-TLV
6. IS-IS Flexible Algorithm Include-Any Reverse Admin Group 6. IS-IS Flexible Algorithm Include-Any Reverse Admin Group
Sub-TLV Sub-TLV
7. IS-IS Flexible Algorithm Include-All Reverse Admin Group 7. IS-IS Flexible Algorithm Include-All Reverse Admin Group
Sub-TLV Sub-TLV
8. OSPF Flexible Algorithm Exclude Reverse Admin Group Sub-TLV 8. OSPF Flexible Algorithm Exclude Reverse Admin Group Sub-TLV
9. OSPF Flexible Algorithm Include-Any Reverse Admin Group Sub-TLV 9. OSPF Flexible Algorithm Include-Any Reverse Admin Group Sub-TLV
10. OSPF Flexible Algorithm Include-All Reverse Admin Group Sub-TLV 10. OSPF Flexible Algorithm Include-All Reverse Admin Group Sub-TLV
11. Calculation of Flexible Algorithm Paths 11. Calculation of Flexible Algorithm Paths
12. IGP Flex-Algorithm Path Computation Rules Registry 12. IANA Considerations
13. IANA Considerations 12.1. Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV
13.1. Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV 12.2. OSPF Flexible Algorithm Definition TLV Sub-TLV Registry
13.2. OSPF Flexible Algorithm Definition TLV Sub-TLV Registry 12.3. IGP Flex-Algorithm Path Computation Rules Registry
13.3. IGP Flex-Algorithm Path Computation Rules Registry 12.3.1. Guidance for Designated Experts
14. Security Considerations 13. Security Considerations
15. Normative References 14. References
16. Informative References 14.1. Normative References
Acknowledgments 14.2. Informative References
Authors' Addresses Authors' Addresses
1. Introduction 1. Introduction
IGP protocols historically computed the best paths over the network IGP protocols historically computed the best paths over the network
solely based on the IGP metric assigned to the links. An IGP Flex- solely based on the IGP metric assigned to the links. An IGP Flex-
Algorithm as specified in [RFC9350] allows IGPs to compute Algorithm as specified in [RFC9350] allows IGPs to compute
constraint-based paths. Several mechanisms to include or exclude the constraint-based paths. Several mechanisms to include or exclude the
link during the Flex-Algorithm path calculation have been defined link during the Flex-Algorithm path calculation have been defined
already: already:
skipping to change at line 113 skipping to change at line 108
* link exclusion based on maximum delay [RFC9843] * link exclusion based on maximum delay [RFC9843]
This document extends IGP Flex-Algorithm with additional constraints This document extends IGP Flex-Algorithm with additional constraints
for inclusion or exclusion of links in the path based on Admin Groups for inclusion or exclusion of links in the path based on Admin Groups
associated with the reverse direction of the Shortest Path First associated with the reverse direction of the Shortest Path First
(SPF) computation. (SPF) computation.
This document updates [RFC9350] and [RFC9843] by creating the new This document updates [RFC9350] and [RFC9843] by creating the new
IANA registry that specifies the ordered set of rules that are used IANA registry that specifies the ordered set of rules that are used
to prune links from the topology during the Flex-Algorithm path to prune links from the topology during the Flex-Algorithm path
computation (refer to Section 12). computation (refer to Section 12.3.1).
The term OSPF in this document is used to cover both OSPFv2 and The term OSPF in this document is used to cover both OSPFv2 and
OSPFv3 protocols. OSPFv3 protocols.
2. Requirements Language 2. Requirements Language
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
skipping to change at line 170 skipping to change at line 165
Algorithm path recalculation. Algorithm path recalculation.
One possible approach is to use two different thresholds when setting One possible approach is to use two different thresholds when setting
and unsetting the Extended Administrative Group on the link. For and unsetting the Extended Administrative Group on the link. For
example, when setting the Extended Administrative Group on the link example, when setting the Extended Administrative Group on the link
based on the percentage of certain incoming errors, higher threshold based on the percentage of certain incoming errors, higher threshold
is used for setting and lower threshold is used for unsetting the is used for setting and lower threshold is used for unsetting the
Extended Administrative Group on the link. Extended Administrative Group on the link.
Many implementations provide a throttling mechanism that limits the Many implementations provide a throttling mechanism that limits the
rate at which the Label Switched Path (LSP) in case of IS-IS, or Link 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 State Advertisement (LSA) in case of OSPFv2 and OSPFv3, is updated at
the originator. Such mechanism is typically not specific to any the originator. Such mechanism is typically not specific to any
particular link attribute, but rather considers any change in the LSP particular link attribute, but rather considers any change in the LSP
or LSA. Usage of such throttling mechanism can also be used to avoid or LSA. Application of such throttling mechanism can also be used to
frequent changes in the setting of the Extended Administrative Group avoid frequent changes in the setting of the Extended Administrative
on a link to affect the stability of the receivers. Group on a link to affect the stability of the receivers.
5. IS-IS Flexible Algorithm Exclude Reverse Admin Group Sub-TLV 5. IS-IS Flexible Algorithm Exclude Reverse Admin Group Sub-TLV
The IS-IS Flexible Algorithm Exclude Reverse Admin Group (FAERAG) The IS-IS Flexible Algorithm Exclude Reverse Admin Group (FAERAG)
Sub-TLV is used to advertise the exclude rule that is used during the Sub-TLV is used to advertise the exclude rule that is used during the
Flex-Algorithm path calculation as specified in Section 11. 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 The IS-IS FAERAG Sub-TLV is a sub-TLV of the IS-IS FAD Sub-TLV. It
has the following format: has the following format:
skipping to change at line 368 skipping to change at line 363
is set on the link in the reverse direction, the link MUST be is set on the link in the reverse direction, the link MUST be
pruned from the computation. pruned from the computation.
* Check if any include-all reverse Admin Group rule is part of the * Check if any include-all reverse Admin Group rule is part of the
Flex-Algorithm definition. If such include-all rule exists, check Flex-Algorithm definition. If such include-all rule exists, check
if all Admin Groups that are part of the include-all rule are also if all Admin Groups that are part of the include-all rule are also
set on the link in the reverse direction. If all such Admin set on the link in the reverse direction. If all such Admin
Groups are not set on the link in the reverse direction, the link Groups are not set on the link in the reverse direction, the link
MUST be pruned from the computation. MUST be pruned from the computation.
Please see rules 8, 9, and 10 in Section 13.3 for these added rules. Please see rules 8, 9, and 10 in Section 12.3 for these added rules.
12. IGP Flex-Algorithm Path Computation Rules Registry
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 13.3.
This section provides the guidance for designated experts on
evaluating new registrations in the "IGP Flex-Algorithm Path
Computation Rules" registry:
1. When a new constraint is defined, the rule associated with that
constraint MAY be inserted at any position. Backwards
compatibility is guaranteed because nodes that don't support the
new constraint will not participate in an algorithm where the FAD
specifies a constraint they don't support.
2. The relative ordering of existing rules MUST NOT be altered.
Doing so has the potential to create backwards compatibility
issues.
3. Deletion of the rules MUST NOT be done. Given that the rules are
only used conditionally based on the information carried in the
winning FAD, deletion of the rule is not necessary.
4. Merging or repeating of the rules MUST NOT be done.
13. IANA Considerations 12. IANA Considerations
13.1. Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV 12.1. Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV
IANA has registered the following in the "IS-IS Sub-Sub-TLVs for IANA has registered the following in the "IS-IS Sub-Sub-TLVs for
Flexible Algorithm Definition Sub-TLV" registry under the "IS-IS TLV Flexible Algorithm Definition Sub-TLV" registry under the "IS-IS TLV
Codepoints" registry group: Codepoints" registry group:
Type: 10 Type: 10
Description: Flexible Algorithm Exclude Reverse Admin Group Description: Flexible Algorithm Exclude Reverse Admin Group
MP: n MP: n
Reference: RFC 9917, Section 5 Reference: RFC 9917, Section 5
Type: 11 Type: 11
Description: Flexible Algorithm Include-Any Reverse Admin Group Description: Flexible Algorithm Include-Any Reverse Admin Group
MP: n MP: n
Reference: RFC 9917, Section 6 Reference: RFC 9917, Section 6
Type: 12 Type: 12
Description: Flexible Algorithm Include-All Reverse Admin Group Description: Flexible Algorithm Include-All Reverse Admin Group
MP: n MP: n
Reference: RFC 9917, Section 7 Reference: RFC 9917, Section 7
13.2. OSPF Flexible Algorithm Definition TLV Sub-TLV Registry 12.2. OSPF Flexible Algorithm Definition TLV Sub-TLV Registry
This document makes the following registration in the "OSPF Flexible This document makes the following registration in the "OSPF Flexible
Algorithm Definition TLV Sub-TLVs" registry under the "Open Shortest Algorithm Definition TLV Sub-TLVs" registry under the "Open Shortest
Path First (OSPF) Parameters" registry group: Path First (OSPF) Parameters" registry group:
Type: 10 Type: 10
Description: Flexible Algorithm Exclude Reverse Admin Group Description: Flexible Algorithm Exclude Reverse Admin Group
Reference: RFC 9917, Section 8 Reference: RFC 9917, Section 8
Type: 11 Type: 11
Description: Flexible Algorithm Include-Any Reverse Admin Group Description: Flexible Algorithm Include-Any Reverse Admin Group
Reference: RFC 9917, Section 9 Reference: RFC 9917, Section 9
Type: 12 Type: 12
Description: Flexible Algorithm Include-All Reverse Admin Group Description: Flexible Algorithm Include-All Reverse Admin Group
Reference: RFC 9917, Section 10 Reference: RFC 9917, Section 10
13.3. IGP Flex-Algorithm Path Computation Rules Registry 12.3. IGP Flex-Algorithm Path Computation Rules Registry
IANA has created a new registry called "IGP Flex-Algorithm Path IANA has created a new registry called "IGP Flex-Algorithm Path
Computation Rules" within the "Interior Gateway Protocol (IGP) Computation Rules" within the "Interior Gateway Protocol (IGP)
Parameters" registry group. The registration procedure for the new Parameters" registry group. The registration procedure for the new
registry is Expert Review [RFC8126]. Section 12 provides guidance registry is Expert Review [RFC8126]. Section 12.3.1 provides
for designated experts. guidance for designated experts.
The "IGP Flex-Algorithm Path Computation Rules" registry specifies The "IGP Flex-Algorithm Path Computation Rules" registry specifies
the ordered set of rules that are used to prune links from the the ordered set of rules that are used to prune links from the
topology during the Flex-Algorithm path computation. topology during the Flex-Algorithm path computation.
There is no upper bound on the number of rules that the registry There is no upper bound on the number of rules that the registry
supports. supports.
In Table 1, "FAEMB" means "Flex-Algorithm Exclude Minimum Bandwidth",
and "FAEMD" means "Flex-Algorithm Exclude Maximum Delay".
+==========+===========================================+===========+ +==========+===========================================+===========+
| Sequence | Description | Reference | | Sequence | Description | Reference |
| Number | | | | Number | | |
+==========+===========================================+===========+ +==========+===========================================+===========+
| 1 | Check if any exclude Administrative Group | Section | | 1 | Check if any exclude Administrative Group | Section |
| | rule is part of the Flex-Algorithm | 13 of | | | rule is part of the Flex-Algorithm | 13 of |
| | Definition. If such exclude rule exists, | [RFC9350] | | | Definition. If such exclude rule exists, | [RFC9350] |
| | check if any color that is part of the | | | | check if any color that is part of the | |
| | exclude rule is also set on the link. If | | | | exclude rule is also set on the link. If | |
| | such a color is set, the link MUST be | | | | such a color is set, the link MUST be | |
| | pruned from the computation | | | | pruned from the computation. | |
+----------+-------------------------------------------+-----------+ +----------+-------------------------------------------+-----------+
| 2 | Check if any exclude SRLG rule is part of | Section | | 2 | Check if any exclude SRLG rule is part of | Section |
| | the Flex-Algorithm Definition. If such | 13 of | | | the Flex-Algorithm Definition. If such | 13 of |
| | exclude rule exists, check if the link is | [RFC9350] | | | exclude rule exists, check if the link is | [RFC9350] |
| | part of any SRLG that is also part of the | | | | part of any SRLG that is also part of the | |
| | SRLG exclude rule. If the link is part | | | | SRLG exclude rule. If the link is part | |
| | of such SRLG, the link MUST be pruned | | | | of such SRLG, the link MUST be pruned | |
| | from the computation. | | | | from the computation. | |
+----------+-------------------------------------------+-----------+ +----------+-------------------------------------------+-----------+
| 3 | Check if any include-any Administrative | Section | | 3 | Check if any include-any Administrative | Section |
skipping to change at line 509 skipping to change at line 477
| | the computation. A metric of value 0 | | | | the computation. A metric of value 0 | |
| | MUST NOT be assumed in such a case. | | | | MUST NOT be assumed in such a case. | |
+----------+-------------------------------------------+-----------+ +----------+-------------------------------------------+-----------+
| 6 | Check if any exclude FAEMB rule is part | Section 6 | | 6 | Check if any exclude FAEMB rule is part | Section 6 |
| | of the Flex-Algorithm definition. If | of | | | of the Flex-Algorithm definition. If | of |
| | such exclude rule exists and the link has | [RFC9843] | | | such exclude rule exists and the link has | [RFC9843] |
| | Maximum Link Bandwidth advertised, check | | | | Maximum Link Bandwidth advertised, check | |
| | if the link bandwidth satisfies the FAEMB | | | | if the link bandwidth satisfies the FAEMB | |
| | rule. If the link does not satisfy the | | | | rule. If the link does not satisfy the | |
| | FAEMB rule, the link MUST be pruned from | | | | FAEMB rule, the link MUST be pruned from | |
| | the Flex-Algorithm computation | | | | the Flex-Algorithm computation. | |
+----------+-------------------------------------------+-----------+ +----------+-------------------------------------------+-----------+
| 7 | Check if any exclude FAEMD rule is part | Section 6 | | 7 | Check if any exclude FAEMD rule is part | Section 6 |
| | of the Flex-Algorithm definition. If | of | | | of the Flex-Algorithm definition. If | of |
| | such exclude rule exists and the link has | [RFC9843] | | | such exclude rule exists and the link has | [RFC9843] |
| | Min Unidirectional link delay advertised, | | | | Min Unidirectional link delay advertised, | |
| | check if the link delay satisfies the | | | | check if the link delay satisfies the | |
| | FAEMD rule. If the link does not satisfy | | | | FAEMD rule. If the link does not satisfy | |
| | the FAEMD rule, the link MUST be pruned | | | | the FAEMD rule, the link MUST be pruned | |
| | from the Flex-Algorithm computation. | | | | from the Flex-Algorithm computation. | |
+----------+-------------------------------------------+-----------+ +----------+-------------------------------------------+-----------+
skipping to change at line 538 skipping to change at line 506
| | the computation. | | | | the computation. | |
+----------+-------------------------------------------+-----------+ +----------+-------------------------------------------+-----------+
| 9 | Check if any include-any reverse Admin | Section | | 9 | Check if any include-any reverse Admin | Section |
| | Group rule is part of the Flex-Algorithm | 11 of RFC | | | Group rule is part of the Flex-Algorithm | 11 of RFC |
| | definition. If such include-any rule | 9917 | | | definition. If such include-any rule | 9917 |
| | exists, check if any Admin Group that is | | | | exists, check if any Admin Group that is | |
| | part of the include-any rule is also set | | | | part of the include-any rule is also set | |
| | on the link in the reverse direction. If | | | | on the link in the reverse direction. If | |
| | no such Admin Group is set on the link in | | | | no such Admin Group is set on the link in | |
| | the reverse direction, the link MUST be | | | | the reverse direction, the link MUST be | |
| | pruned from the computation | | | | pruned from the computation. | |
+----------+-------------------------------------------+-----------+ +----------+-------------------------------------------+-----------+
| 10 | Check if any include-all reverse Admin | Section | | 10 | Check if any include-all reverse Admin | Section |
| | Group rule is part of the Flex-Algorithm | 11 of RFC | | | Group rule is part of the Flex-Algorithm | 11 of RFC |
| | definition. If such include-all rule | 9917 | | | definition. If such include-all rule | 9917 |
| | exists, check if all Admin Groups that | | | | exists, check if all Admin Groups that | |
| | are part of the include-all rule are also | | | | are part of the include-all rule are also | |
| | set on the link in the reverse direction. | | | | set on the link in the reverse direction. | |
| | If all such Admin Groups are not set on | | | | If all such Admin Groups are not set on | |
| | the link in the reverse direction, the | | | | the link in the reverse direction, the | |
| | link MUST be pruned from the computation. | | | | link MUST be pruned from the computation. | |
+----------+-------------------------------------------+-----------+ +----------+-------------------------------------------+-----------+
Table 1: IGP Flex-Algorithm Path Calculation Rules Table 1: IGP Flex-Algorithm Path Calculation Rules
14. Security Considerations 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:
1. When a new constraint is defined, the rule associated with that
constraint MAY be inserted at any position. Backwards
compatibility is guaranteed because nodes that don't support the
new constraint will not participate in an algorithm where the FAD
specifies a constraint they don't support.
2. The relative ordering of existing rules MUST NOT be altered.
Doing so has the potential to create backwards compatibility
issues.
3. Deletion of the rules MUST NOT be done. Given that the rules are
only used conditionally based on the information carried in the
winning FAD, deletion of the rule is not necessary.
4. Merging or repeating of the rules MUST NOT be done.
13. Security Considerations
This document inherits security considerations from [RFC9350]. This document inherits security considerations from [RFC9350].
15. Normative References 14. References
14.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC7308] Osborne, E., "Extended Administrative Groups in MPLS [RFC7308] Osborne, E., "Extended Administrative Groups in MPLS
Traffic Engineering (MPLS-TE)", RFC 7308, Traffic Engineering (MPLS-TE)", RFC 7308,
DOI 10.17487/RFC7308, July 2014, DOI 10.17487/RFC7308, July 2014,
<https://www.rfc-editor.org/info/rfc7308>. <https://www.rfc-editor.org/info/rfc7308>.
skipping to change at line 583 skipping to change at line 583
[RFC9350] Psenak, P., Ed., Hegde, S., Filsfils, C., Talaulikar, K., [RFC9350] Psenak, P., Ed., Hegde, S., Filsfils, C., Talaulikar, K.,
and A. Gulko, "IGP Flexible Algorithm", RFC 9350, and A. Gulko, "IGP Flexible Algorithm", RFC 9350,
DOI 10.17487/RFC9350, February 2023, DOI 10.17487/RFC9350, February 2023,
<https://www.rfc-editor.org/info/rfc9350>. <https://www.rfc-editor.org/info/rfc9350>.
[RFC9843] Hegde, S., Britto, W., Shetty, R., Decraene, B., Psenak, [RFC9843] Hegde, S., Britto, W., Shetty, R., Decraene, B., Psenak,
P., and T. Li, "IGP Flexible Algorithms: Bandwidth, Delay, P., and T. Li, "IGP Flexible Algorithms: Bandwidth, Delay,
Metrics, and Constraints", RFC 9843, DOI 10.17487/RFC9843, Metrics, and Constraints", RFC 9843, DOI 10.17487/RFC9843,
September 2025, <https://www.rfc-editor.org/info/rfc9843>. September 2025, <https://www.rfc-editor.org/info/rfc9843>.
16. Informative References 14.2. Informative References
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for
Writing an IANA Considerations Section in RFCs", BCP 26, Writing an IANA Considerations Section in RFCs", BCP 26,
RFC 8126, DOI 10.17487/RFC8126, June 2017, RFC 8126, DOI 10.17487/RFC8126, June 2017,
<https://www.rfc-editor.org/info/rfc8126>. <https://www.rfc-editor.org/info/rfc8126>.
Acknowledgments
TBD
Authors' Addresses Authors' Addresses
Peter Psenak Peter Psenak
Cisco Systems Cisco Systems
Apollo Business Center Apollo Business Center
Mlynske nivy 43 Mlynske nivy 43
82109 Bratislava 82109 Bratislava
Slovakia Slovakia
Email: ppsenak@cisco.com Email: ppsenak@cisco.com
 End of changes. 19 change blocks. 
66 lines changed or deleted 62 lines changed or added

This html diff was produced by rfcdiff 1.48.