LSR Working Group P. Psenak Internet-Draft J. Horn Intended status: Standards Track Cisco Systems Expires: 1 August 2025 A. Dhamija Arrcus 28 January 2025 IGP Flexible Algorithms Reverse Affinity Constraint draft-ietf-lsr-igp-flex-algo-reverse-affinity-04 Abstract An IGP Flexible Algorithm (Flex-Algorithm) allows IGPs to compute constraint-based paths. 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 SPF path computation. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on 1 August 2025. Copyright Notice Copyright (c) 2025 IETF Trust and the persons identified as the document authors. All rights reserved. Psenak, et al. Expires 1 August 2025 [Page 1] Internet-Draft Flex-Algorithm Reverse Affinity January 2025 This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/ license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3 3. Use Case Example . . . . . . . . . . . . . . . . . . . . . . 3 4. IS-IS Flexible Algorithm Exclude Reverse Admin Group Sub-TLV . . . . . . . . . . . . . . . . . . . . . . . . . 3 5. IS-IS Flexible Algorithm Include-Any Reverse Admin Group Sub-TLV . . . . . . . . . . . . . . . . . . . . . . . . . 4 6. IS-IS Flexible Algorithm Include-All Reverse Admin Group Sub-TLV . . . . . . . . . . . . . . . . . . . . . . . . . 5 7. OSPF Flexible Algorithm Exclude Reverse Admin Group Sub-TLV . . . . . . . . . . . . . . . . . . . . . . . . . 5 8. OSPF Flexible Algorithm Include-Any Reverse Admin Group Sub-TLV . . . . . . . . . . . . . . . . . . . . . . . . . 6 9. OSPF Flexible Algorithm Include-All Reverse Admin Group Sub-TLV . . . . . . . . . . . . . . . . . . . . . . . . . 6 10. Calculation of Flexible Algorithm Paths . . . . . . . . . . . 7 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 11.1. Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV . . . . . . . . . . . . . . . . . . . . . . . . 7 11.2. OSPF Flexible Algorithm Definition TLV Sub-TLV Registry . . . . . . . . . . . . . . . . . . . . . . . . 8 11.3. IGP Flex-Algo Path Computation Rules Registry . . . . . 8 12. Security Considerations . . . . . . . . . . . . . . . . . . . 12 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 12 14. Normative References . . . . . . . . . . . . . . . . . . . . 12 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 1. Introduction An IGP Flex-Algorithm as specified in [RFC9350] computes a constraint-based path. 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 SPF path computation. Psenak, et al. Expires 1 August 2025 [Page 2] Internet-Draft Flex-Algorithm Reverse Affinity January 2025 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 can specify Admin Groups that are used by the operator to include or exclude links during the Flex- Algorithm path computation. These link Admin Groups are checked in the path direction of the SPF computation, e.g., in the direction from the root vertex toward verticies of increasing distance. In some cases, it is beneficial to check the Admin Groups of the link from the reverse direction of the path computation. For example, on a point-to-point link between endpoints A and B and for the path copmputed in a direction from A to B, the input errors can only be detected at node B. An operator may measure the rate of such input errors and set certain Admin Groups on a link locally on node B when the input error rate exceeds a certain threshold. When the Flex- Algorithm calculation processes the link A to B, it may look at the Admin Groups of link's reverse direction, e.g., from B to A. This would allow the operator to exclude such link from the Flex-Algorithm topology. 4. 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 10. The IS-IS FAERAG Sub-TLV is a Sub-TLV of the IS-IS FAD Sub-TLV. It has the following format: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Extended Admin Group | +- -+ | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ where: Psenak, et al. Expires 1 August 2025 [Page 3] Internet-Draft Flex-Algorithm Reverse Affinity January 2025 Type (1 octet): An 8-bit field assigned by IANA to uniquely identify the ISIS FAERAG Sub-TLV. Value 10 has been assigned by IANA. 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. 5. 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 10. 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 4. 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. Psenak, et al. Expires 1 August 2025 [Page 4] Internet-Draft Flex-Algorithm Reverse Affinity January 2025 6. 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 10. 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 4. 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. 7. 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 10. The OSPF FAERAG Sub-TLV is a Sub-TLV of the OSPF FAD TLV. It has the following format: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Extended Admin Group | +- -+ | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ where: Type (2 octets): A 16-bit field assigned by IANA to uniquely Psenak, et al. Expires 1 August 2025 [Page 5] Internet-Draft Flex-Algorithm Reverse Affinity January 2025 identify the OSPF FAERAG Sub-TLV. Value 10 has been assigned by IANA. 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. 8. 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 10. 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 7. 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. 9. 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 10. 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 7. IANA has assigned Type value of 12 for 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. Psenak, et al. Expires 1 August 2025 [Page 6] Internet-Draft Flex-Algorithm Reverse Affinity January 2025 10. Calculation of Flexible Algorithm Paths Three new rules are added to the existing rules specified in Section 13 of [RFC9350]: Check if any exclude reverse Admin Group rule is part of the Flex- Algorithm definition. If such exclude rule exists, check if any Admin Group that is part of the exclude rule is also set on the link in the reverse direction. If such Admin Group is set on the link in the reverse direction, the link MUST be pruned from the computation. Check if any include-any reverse Admin Group rule is part of the Flex-Algorithm definition. If such include-any rule exists, check if any Admin Group that is part of the include-any rule is also set on the link in the reverse direction. If no such Admin Group is set on the link in the reverse direction, the link MUST be pruned from the computation. Check if any include-all reverse Admin Group rule is part of the Flex-Algorithm definition. If such include-all rule exists, check 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 Groups are not set on the link in the reverse direction, the link MUST be pruned from the computation. Please see rules 8, 9, and 10 in Section 11.3 for these added rules. 11. IANA Considerations 11.1. Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV IANA has assigned the following Sub-Sub-TLVs in the "ISIS Sub-Sub- TLVs for Flexible Algorithm Definition Sub-TLV" registry: Type: 10 Description: Flexible Algorithm Exclude Reverse Admin Group Reference: This document (Section 4). Type: 11 Description: Flexible Algorithm Include-Any Reverse Admin Group Reference: This document (Section 5). Type: 12 Psenak, et al. Expires 1 August 2025 [Page 7] Internet-Draft Flex-Algorithm Reverse Affinity January 2025 Description: Flexible Algorithm Include-All Reverse Admin Group Reference: This document (Section 6). 11.2. OSPF Flexible Algorithm Definition TLV Sub-TLV Registry IANA has assigned the following Sub-TLVs in the "OSPF TLVs for Flexible Algorithm Definition TLV" registry: Type: 10 Description: Flexible Algorithm Exclude Reverse Admin Group Reference: This document (Section 7). Type: 11 Description: Flexible Algorithm Include-Any Reverse Admin Group Reference: This document (Section 8). Type: 12 Description: Flexible Algorithm Include-All ReverseAdmin Group Reference: This document (Section 9). 11.3. IGP Flex-Algo Path Computation Rules Registry This document creates a new registry called "IGP Flex-Algorithm Path Computation Rules Registry" within the "Interior Gateway Protocol (IGP) Parameters" registry group. The registration procedure for the new registry is "Expert Review". The "IGP Flex-Algo Path Computation Rules Registry" specifies the ordered set of rules that MUST be used to prune links from the topology during the Flex-Algorithm path computation. +========+========================+=================================+ | Number | Description | Reference | +========+========================+=================================+ | 1 | Check if any exclude | Section 13 of [RFC9350] | | | Administrative Group | | | | rule is part of the | | | | Flex-Algorithm | | | | Definition. If such | | | | exclude rule exists, | | | | check if any color | | Psenak, et al. Expires 1 August 2025 [Page 8] Internet-Draft Flex-Algorithm Reverse Affinity January 2025 | | that is part of the | | | | exclude rule is also | | | | set on the link. If | | | | such a color is set, | | | | the link MUST be | | | | pruned from the | | | | computation | | +--------+------------------------+---------------------------------+ | 2 | Check if any exclude | Section 13 of [RFC9350] | | | SRLG rule is part of | | | | the Flex-Algorithm | | | | Definition. If such | | | | exclude rule exists, | | | | check if the link is | | | | part of any SRLG that | | | | is also part of the | | | | SRLG exclude rule. | | | | If the link is part | | | | of such SRLG, the | | | | link MUST be pruned | | | | from the computation. | | +--------+------------------------+---------------------------------+ | 3 | Check if any include- | Section 13 of [RFC9350] | | | any Administrative | | | | Group rule is part of | | | | the Flex-Algorithm | | | | Definition. If such | | | | include-any rule | | | | exists, check if any | | | | color that is part of | | | | the include-any rule | | | | is also set on the | | | | link. If no such | | | | color is set, the | | | | link MUST be pruned | | | | from the computation | | +--------+------------------------+---------------------------------+ | 4 | Check if any include- | Section 13 of [RFC9350] | | | all Administrative | | | | Group rule is part of | | | | the Flex-Algorithm | | | | Definition. If such | | | | include-all rule | | | | exists, check if all | | | | colors that are part | | | | of the include-all | | | | rule are also set on | | | | the link. If all | | Psenak, et al. Expires 1 August 2025 [Page 9] Internet-Draft Flex-Algorithm Reverse Affinity January 2025 | | such colors are not | | | | set on the link, the | | | | link MUST be pruned | | | | from the computation. | | +--------+------------------------+---------------------------------+ | 5 | If the Flex-Algorithm | Section 13 of [RFC9350] | | | Definition uses | | | | something other than | | | | the IGP metric | | | | (Section 5 of | | | | [RFC9350]), and such | | | | metric is not | | | | advertised for the | | | | particular link in a | | | | topology for which | | | | the computation is | | | | done, such link MUST | | | | be pruned from the | | | | computation. A | | | | metric of value 0 | | | | MUST NOT be assumed | | | | in such a case. | | +--------+------------------------+---------------------------------+ | 6 | Check if any exclude | Section 6 of | | | FAEMB rule is part of | [I-D.ietf-lsr-flex-algo-bw-con] | | | the Flex-Algorithm | | | | definition. If such | | | | exclude rule exists | | | | and the link has | | | | Maximum Link | | | | Bandwidth advertised, | | | | check if the link | | | | bandwidth satisfies | | | | the FAEMB rule. If | | | | the link does not | | | | satisfy the FAEMB | | | | rule, the link MUST | | | | be pruned from the | | | | Flex-Algorithm | | | | computation | | +--------+------------------------+---------------------------------+ | 7 | Check if any exclude | Section 6 of | | | FAEMD rule is part of | [I-D.ietf-lsr-flex-algo-bw-con] | | | the Flex-Algorithm | | | | definition. If such | | | | exclude rule exists | | | | and the link has Min | | | | Unidirectional link | | Psenak, et al. Expires 1 August 2025 [Page 10] Internet-Draft Flex-Algorithm Reverse Affinity January 2025 | | delay advertised, | | | | check if the link | | | | delay satisfies the | | | | FAEMD rule. If the | | | | link does not satisfy | | | | the FAEMD rule, the | | | | link MUST be pruned | | | | from the Flex- | | | | Algorithm | | | | computation. | | +--------+------------------------+---------------------------------+ | 8 | Check if any exclude | This document, Section 10 | | | reverse Admin Group | | | | rule is part of the | | | | Flex-Algorithm | | | | definition. If such | | | | exclude rule exists, | | | | check if any Admin | | | | Group that is part of | | | | the exclude rule is | | | | also set on the link | | | | in the reverse | | | | direction. If such | | | | Admin Group is set on | | | | the link in the | | | | reverse direction, | | | | the link MUST be | | | | pruned from the | | | | computation. | | +--------+------------------------+---------------------------------+ | 9 | Check if any include- | This document, Section 10 | | | any reverse Admin | | | | Group rule is part of | | | | the Flex-Algorithm | | | | definition. If such | | | | include-any rule | | | | exists, check if any | | | | Admin Group that is | | | | part of the include- | | | | any rule is also set | | | | on the link in the | | | | reverse direction. | | | | If no such Admin | | | | Group is set on the | | | | link in the reverse | | | | direction, the link | | | | MUST be pruned from | | | | the computation | | Psenak, et al. Expires 1 August 2025 [Page 11] Internet-Draft Flex-Algorithm Reverse Affinity January 2025 +--------+------------------------+---------------------------------+ | 10 | Check if any include- | This document, Section 10 | | | all reverse Admin | | | | Group rule is part of | | | | the Flex-Algorithm | | | | definition. If such | | | | include-all rule | | | | exists, check 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 | | | | Groups are not set on | | | | the link in the | | | | reverse direction, | | | | the link MUST be | | | | pruned from the | | | | computation. | | +--------+------------------------+---------------------------------+ Table 6: IGP Flex-algo Path Calculation Rules 12. Security Considerations This document inherits security considerations from [RFC9350]. 13. Acknowledgements TBD 14. Normative References [I-D.ietf-lsr-flex-algo-bw-con] Hegde, S., Britto, W., Shetty, R., Decraene, B., Psenak, P., and T. Li, "Flexible Algorithms: Bandwidth, Delay, Metrics and Constraints", Work in Progress, Internet- Draft, draft-ietf-lsr-flex-algo-bw-con-18, 19 January 2025, . [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . Psenak, et al. Expires 1 August 2025 [Page 12] Internet-Draft Flex-Algorithm Reverse Affinity January 2025 [RFC7308] Osborne, E., "Extended Administrative Groups in MPLS Traffic Engineering (MPLS-TE)", RFC 7308, DOI 10.17487/RFC7308, July 2014, . [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, . [RFC9350] Psenak, P., Ed., Hegde, S., Filsfils, C., Talaulikar, K., and A. Gulko, "IGP Flexible Algorithm", RFC 9350, DOI 10.17487/RFC9350, February 2023, . Authors' Addresses Peter Psenak Cisco Systems Apollo Business Center Mlynske nivy 43 82109 Bratislava Slovakia Email: ppsenak@cisco.com Jakub Horn Cisco Systems Milpitas, CA 95035 United States of America Email: jakuhorn@cisco.com Amit Dhamija Arrcus Email: amitd@arrcus.com Psenak, et al. Expires 1 August 2025 [Page 13]