| rfc9917.original | rfc9917.txt | |||
|---|---|---|---|---|
| LSR Working Group P. Psenak | Internet Engineering Task Force (IETF) P. Psenak | |||
| Internet-Draft J. Horn | Request for Comments: 9917 J. Horn | |||
| Updates: 9350 (if approved) Cisco Systems | Updates: 9350, 9843 Cisco Systems | |||
| Intended status: Standards Track A. Dhamija | Category: Standards Track A. Dhamija | |||
| Expires: 6 February 2026 Arrcus | ISSN: 2070-1721 Arrcus | |||
| 5 August 2025 | January 2026 | |||
| IGP Flexible Algorithms Reverse Affinity Constraint | IGP Flexible Algorithms Reverse Affinity Constraint | |||
| draft-ietf-lsr-igp-flex-algo-reverse-affinity-12 | ||||
| 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- | This extension enhances the path selection capabilities of Flex- | |||
| Algorithm by enabling reverse-affinity-based constraints, which are | Algorithm by enabling reverse-affinity-based constraints, which are | |||
| particularly useful for scenarios where path symmetry or directional | particularly useful for scenarios where path symmetry or directional | |||
| link attributes are operationally significant. | link attributes are operationally significant. | |||
| This document updates [RFC9350] and [I-D.ietf-lsr-flex-algo-bw-con] | This document updates RFCs 9350 and 9843 by introducing the new IANA | |||
| by introducing the new IANA registry that specifies the ordered set | registry that specifies the ordered set of rules that are used to | |||
| of rules that are used to prune links from the topology during the | prune links from the topology during the Flex-Algorithm path | |||
| Flex-Algorithm path computation. | computation. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
| 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 | This document is a product of the Internet Engineering Task Force | |||
| and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
| time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
| material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | ||||
| This Internet-Draft will expire on 6 February 2026. | Information about the current status of this document, any errata, | |||
| and how to provide feedback on it may be obtained at | ||||
| https://www.rfc-editor.org/info/rfc9917. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2025 IETF Trust and the persons identified as the | Copyright (c) 2026 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
| license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
| and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
| extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
| described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
| provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
| in the Revised BSD License. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
| 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3 | 2. Requirements Language | |||
| 3. Use Case Example . . . . . . . . . . . . . . . . . . . . . . 4 | 3. Use Case Example | |||
| 4. Deployment Consideration . . . . . . . . . . . . . . . . . . 4 | 4. Deployment Consideration | |||
| 5. IS-IS Flexible Algorithm Exclude Reverse Admin Group | 5. IS-IS Flexible Algorithm Exclude Reverse Admin Group Sub-TLV | |||
| Sub-TLV . . . . . . . . . . . . . . . . . . . . . . . . . 5 | ||||
| 6. IS-IS Flexible Algorithm Include-Any Reverse Admin Group | 6. IS-IS Flexible Algorithm Include-Any Reverse Admin Group | |||
| Sub-TLV . . . . . . . . . . . . . . . . . . . . . . . . . 6 | Sub-TLV | |||
| 7. IS-IS Flexible Algorithm Include-All Reverse Admin Group | 7. IS-IS Flexible Algorithm Include-All Reverse Admin Group | |||
| Sub-TLV . . . . . . . . . . . . . . . . . . . . . . . . . 6 | Sub-TLV | |||
| 8. OSPF Flexible Algorithm Exclude Reverse Admin Group | 8. OSPF Flexible Algorithm Exclude Reverse Admin Group Sub-TLV | |||
| Sub-TLV . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 9. OSPF Flexible Algorithm Include-Any Reverse Admin Group Sub-TLV | |||
| 9. OSPF Flexible Algorithm Include-Any Reverse Admin Group | 10. OSPF Flexible Algorithm Include-All Reverse Admin Group Sub-TLV | |||
| Sub-TLV . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 11. Calculation of Flexible Algorithm Paths | |||
| 10. OSPF Flexible Algorithm Include-All Reverse Admin Group | 12. IGP Flex-Algorithm Path Computation Rules Registry | |||
| Sub-TLV . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 13. IANA Considerations | |||
| 11. Calculation of Flexible Algorithm Paths . . . . . . . . . . . 8 | 13.1. Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV | |||
| 12. IGP Flex-Algorithm Path Computation Rules Registry . . . . . 9 | 13.2. OSPF Flexible Algorithm Definition TLV Sub-TLV Registry | |||
| 13. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | 13.3. IGP Flex-Algorithm Path Computation Rules Registry | |||
| 13.1. Sub-Sub-TLVs for Flexible Algorithm Definition | 14. Security Considerations | |||
| Sub-TLV . . . . . . . . . . . . . . . . . . . . . . . . 9 | 15. Normative References | |||
| 13.2. OSPF Flexible Algorithm Definition TLV Sub-TLV | 16. Informative References | |||
| Registry . . . . . . . . . . . . . . . . . . . . . . . . 10 | Acknowledgments | |||
| 13.3. IGP Flex-Algorithm Path Computation Rules Registry . . . 11 | Authors' Addresses | |||
| 14. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | ||||
| 15. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 15 | ||||
| 16. Normative References . . . . . . . . . . . . . . . . . . . . 15 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16 | ||||
| 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: | |||
| - link inclusion or exclusion based on the presence of a specific | * link inclusion or exclusion based on the presence of a specific | |||
| Admin Group(s) - [RFC9350] | Admin Group(s) [RFC9350] | |||
| - link exclusion based on the presence of a specific Shared Risk | * link exclusion based on the presence of a specific Shared Risk | |||
| Link Group (SRLG) - [RFC9350] | Link Group (SRLG) [RFC9350] | |||
| - link exclusion based on minimum bandwidth - | * link exclusion based on minimum bandwidth [RFC9843] | |||
| [I-D.ietf-lsr-flex-algo-bw-con] | ||||
| - link exclusion based on maximum delay - | * link exclusion based on maximum delay [RFC9843] | |||
| [I-D.ietf-lsr-flex-algo-bw-con] | ||||
| 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 SPF path computation. | associated with the reverse direction of the Shortest Path First | |||
| (SPF) computation. | ||||
| This document updates [RFC9350] and [I-D.ietf-lsr-flex-algo-bw-con] | This document updates [RFC9350] and [RFC9843] by creating the new | |||
| by creating the new IANA registry that specifies the ordered set of | IANA registry that specifies the ordered set of rules that are used | |||
| rules that are used to prune links from the topology during the Flex- | to prune links from the topology during the Flex-Algorithm path | |||
| Algorithm path computation (refer to Section 12). | computation (refer to Section 12). | |||
| 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 BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
| 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. | |||
| 3. Use Case Example | 3. Use Case Example | |||
| The Flexible Algorithm definition (FAD) can specify Extended | The Flexible Algorithm Definition (FAD) can specify Extended | |||
| Administrative Groups that are used by the operator to include or | Administrative Groups that are used by the operator to include or | |||
| exclude links during the Flex-Algorithm path computation [RFC9350]. | exclude links during the Flex-Algorithm path computation [RFC9350]. | |||
| These link Extended Administrative Groups are checked in the path | These link Extended Administrative Groups are checked in the path | |||
| direction of the SPF computation, e.g., in the direction from the | direction of the SPF computation, e.g., in the direction from the | |||
| root vertex toward verticies of increasing distance. | root vertex toward vertices of increasing distance. | |||
| In certain scenarios, it is beneficial to evaluate the Extended | In certain scenarios, it is beneficial to evaluate the Extended | |||
| Administrative Groups associated with the reverse direction of a | Administrative Groups associated with the reverse direction of a | |||
| link, rather than solely those in the direction of path computation. | link, rather than solely those in the direction of path computation. | |||
| Consider a point-to-point link represented as a pair of directed | 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, | 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 | issues such as input errors on the link, detectable only at the | |||
| receiving node B, may be operationally significant. An operator | receiving node B, may be operationally significant. An operator | |||
| might monitor metrics like CRC errors or other input-related faults | might monitor metrics like Cyclic Redundancy Check (CRC) errors or | |||
| at node B and apply thresholds over a defined observation period. If | other input-related faults at node B and apply thresholds over a | |||
| such a threshold is exceeded, node B may locally assign specific | defined observation period. If such a threshold is exceeded, node B | |||
| Extended Administrative Groups to the link in the direction from B to | may locally assign specific Extended Administrative Groups to the | |||
| A. | link in the direction from B to A. | |||
| To accommodate this operational intent, the Flex-Algorithm can be | To accommodate this operational intent, the Flex-Algorithm can be | |||
| extended to inspect the Extended Administrative Groups of the | extended to inspect the Extended Administrative Groups of the | |||
| reverse-direction edge (from B to A) when evaluating the forward- | reverse-direction edge (from B to A) when evaluating the forward- | |||
| direction edge (from A to B) during path computation. This enables | direction edge (from A to B) during path computation. This enables | |||
| the exclusion of links from the computed topology based on conditions | the exclusion of links from the computed topology based on conditions | |||
| detected at the far end of the link, improving network reliability | detected at the far end of the link, improving network reliability | |||
| and policy control. | and policy control. | |||
| 4. Deployment Consideration | 4. Deployment Consideration | |||
| Threshold based setting of the link Extended Administrative Groups | Threshold-based setting of the link Extended Administrative Groups | |||
| must be done with care to avoid excessive flooding and constant Flex- | must be done with care to avoid excessive flooding and constant Flex- | |||
| Algorithm path re-calculation. | 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 un-setting 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 un-setting 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 LSP in case of ISIS, or LSA in case of OSPFv2 and | rate at which the Label Switched Path (LSP) in case of IS-IS, or Link | |||
| OSPFv3, is updated at the originator. Such mechanism is typically | State Advertisement (LSA) in case of OSPFv2 and OSPFv3, is updated at | |||
| not specific to any particular link attribute, but rather considers | the originator. Such mechanism is typically not specific to any | |||
| any change in the LSP or LSA. Usage of such throttling mechanism can | particular link attribute, but rather considers any change in the LSP | |||
| also be used to avoid frequent changes in the setting of the Extended | or LSA. Usage of such throttling mechanism can also be used to avoid | |||
| Administrative Group on a link to affect the stability of the | frequent changes in the setting of the Extended Administrative Group | |||
| receivers. | 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: | |||
| 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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Extended Admin Group | | | Extended Admin Group | | |||
| +- -+ | +- -+ | |||
| | ... | | | ... | | |||
| skipping to change at page 5, line 26 ¶ | skipping to change at line 196 ¶ | |||
| 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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Extended Admin Group | | | Extended Admin Group | | |||
| +- -+ | +- -+ | |||
| | ... | | | ... | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| where: | where: | |||
| Type (1 octet): 10 | Type (1 octet): 10 | |||
| Length (1 octet): Variable, dependent on the size of the Extended | Length (1 octet): Variable, dependent on the size of the Extended | |||
| Admin Group. The length MUST be a multiple of 4 octets. If the | 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 | length is not a multiple of 4 octets, the entire sub-TLV MUST be | |||
| ignored by the receiver. | ignored by the receiver. | |||
| Extended Administrative Group: Extended Administrative Group as | Extended Administrative Group: Extended Administrative Group as | |||
| defined in [RFC7308]. | defined in [RFC7308]. | |||
| The IS-IS FAERAG Sub-TLV MUST NOT appear more than once in a single | 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- | IS-IS FAD Sub-TLV. If it appears more than once, the IS-IS FAD Sub- | |||
| TLV MUST be ignored by the receiver. | TLV MUST be ignored by the receiver. | |||
| The IS-IS FAERAG Sub-TLV MUST NOT appear more than once in the set of | 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 | 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 | 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 | first occurrence in the lowest-numbered LSP from a given IS MUST be | |||
| used and any other occurrences MUST be ignored by the receiver. | used and any other occurrences MUST be ignored by the receiver. | |||
| 6. IS-IS Flexible Algorithm Include-Any Reverse Admin Group Sub-TLV | 6. IS-IS Flexible Algorithm Include-Any Reverse Admin Group Sub-TLV | |||
| The 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 | is used to advertise the include-any 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 format of the IS-IS Flexible Algorithm Include-Any Reverse Admin | 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 | Group Sub-TLV is identical to the format of the FAERAG Sub-TLV in | |||
| skipping to change at page 6, line 24 ¶ | skipping to change at line 238 ¶ | |||
| IANA has assigned Type value of 11 for the IS-IS Flexible Algorithm | IANA has assigned Type value of 11 for the IS-IS Flexible Algorithm | |||
| Include-Any Reverse Admin Group Sub-TLV. | Include-Any Reverse Admin Group Sub-TLV. | |||
| 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 | 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 | appears more than once, the IS-IS FAD Sub-TLV MUST be ignored by the | |||
| receiver. | receiver. | |||
| 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 the set of FAD sub-TLVs for a given | 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 | 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 | set, the IS-IS Flexible Algorithm Include-Any Reverse Admin Group | |||
| Sub-TLV in the first occurrence in the lowest numbered LSP from a | 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 | given IS MUST be used and any other occurrences MUST be ignored by | |||
| the receiver. | the receiver. | |||
| 7. IS-IS Flexible Algorithm Include-All Reverse Admin Group Sub-TLV | 7. IS-IS Flexible Algorithm Include-All Reverse Admin Group Sub-TLV | |||
| The 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 | is used to advertise the include-all 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 format of the IS-IS Flexible Algorithm Include-All Reverse Admin | The format of the IS-IS Flexible Algorithm Include-All Reverse Admin | |||
| skipping to change at page 6, line 50 ¶ | skipping to change at line 264 ¶ | |||
| IANA has assigned Type value of 12 for the IS-IS Flexible Algorithm | IANA has assigned Type value of 12 for the IS-IS Flexible Algorithm | |||
| Include-All Reverse Admin Group Sub-TLV. | Include-All Reverse Admin Group Sub-TLV. | |||
| 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 | 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 | appears more than once, the IS-IS FAD Sub-TLV MUST be ignored by the | |||
| receiver. | receiver. | |||
| 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 the set of FAD sub-TLVs for a given | 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 | 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 | set, the IS-IS Flexible Algorithm Include-All Reverse Admin Group | |||
| Sub-TLV in the first occurrence in the lowest numbered LSP from a | 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 | given IS MUST be used and any other occurrences MUST be ignored by | |||
| the receiver. | the receiver. | |||
| 8. OSPF Flexible Algorithm Exclude Reverse Admin Group Sub-TLV | 8. OSPF Flexible Algorithm Exclude Reverse Admin Group Sub-TLV | |||
| The OSPF Flexible Algorithm Exclude Reverse Admin Group (FAERAG) Sub- | The OSPF Flexible Algorithm Exclude Reverse Admin Group (FAERAG) Sub- | |||
| TLV is used to advertise the exclude rule that is used during the | 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 OSPF FAERAG Sub-TLV is a Sub-TLV of the OSPF FAD TLV. It has the | The OSPF FAERAG Sub-TLV is a sub-TLV of the OSPF FAD TLV. It has the | |||
| following format: | 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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Extended Admin Group | | | Extended Admin Group | | |||
| +- -+ | +- -+ | |||
| | ... | | | ... | | |||
| skipping to change at page 7, line 26 ¶ | skipping to change at line 289 ¶ | |||
| 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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Extended Admin Group | | | Extended Admin Group | | |||
| +- -+ | +- -+ | |||
| | ... | | | ... | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| where: | where: | |||
| Type (2 octets): 10 | Type (2 octets): 10 | |||
| Length (2 octets): Variable, dependent on the size of the Extended | Length (2 octets): Variable, dependent on the size of the Extended | |||
| Admin Group. The length MUST be a multiple of 4 octets. If the | 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 | length is not a multiple of 4 octets, the entire sub-TLV MUST be | |||
| ignored by the receiver. | ignored by the receiver. | |||
| Extended Administrative Group: Extended Administrative Group as | Extended Administrative Group: Extended Administrative Group as | |||
| defined in [RFC7308]. | defined in [RFC7308]. | |||
| The OSPF FAERAG Sub-TLV MUST NOT appear more than once in an OSPF FAD | 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 | TLV. If it appears more than once, the OSPF FAD TLV MUST be ignored | |||
| by the receiver. | by the receiver. | |||
| 9. OSPF Flexible Algorithm Include-Any Reverse Admin Group Sub-TLV | 9. OSPF Flexible Algorithm Include-Any Reverse Admin Group Sub-TLV | |||
| The 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 | is used to advertise the include-any rule that is used during the | |||
| skipping to change at page 8, line 22 ¶ | skipping to change at line 333 ¶ | |||
| 10. OSPF Flexible Algorithm Include-All Reverse Admin Group Sub-TLV | 10. OSPF Flexible Algorithm Include-All Reverse Admin Group Sub-TLV | |||
| The 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 | is used to advertise the include-all 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 format of the OSPF Flexible Algorithm Include-All Reverse Admin | 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 | Group Sub-TLV is identical to the format of the OSPF FAERAG Sub-TLV | |||
| in Section 8. | in Section 8. | |||
| IANA has assigned Type value of 12 for OSPF Flexible Algorithm | IANA has assigned Type value of 12 for the OSPF Flexible Algorithm | |||
| Include-All Reverse Admin Group Sub-TLV. | Include-All Reverse Admin Group Sub-TLV. | |||
| 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 | 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. | more than once, the OSPF FAD TLV MUST be ignored by the receiver. | |||
| 11. Calculation of Flexible Algorithm Paths | 11. Calculation of Flexible Algorithm Paths | |||
| The following procedures augment the rules defined in Section 13 of | The following procedures augment the rules defined in Section 13 of | |||
| [RFC9350] by introducing additional constraints based on | [RFC9350] by introducing additional constraints based on | |||
| Administrative Groups (AGs) associated with the reverse direction of | Administrative Groups (AGs) associated with the reverse direction of | |||
| a link. | a link. | |||
| Check if any exclude reverse Admin Group rule is part of the Flex- | * Check if any exclude reverse Admin Group rule is part of the Flex- | |||
| Algorithm definition. If such exclude rule exists, check if any | Algorithm definition. If such exclude rule exists, check if any | |||
| Admin Group that is part of the exclude rule is also set on the | 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. If such Admin Group is set on the | |||
| link in the reverse direction, the link MUST be pruned from the | link in the reverse direction, the link MUST be pruned from the | |||
| computation. | computation. | |||
| Check if any include-any reverse Admin Group rule is part of the | * Check if any include-any reverse Admin Group rule is part of the | |||
| Flex-Algorithm definition. If such include-any rule exists, check | Flex-Algorithm definition. If such include-any rule exists, check | |||
| if any Admin Group that is part of the include-any rule is also | 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 | 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 | 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 13.3 for these added rules. | |||
| 12. IGP Flex-Algorithm Path Computation Rules Registry | 12. IGP Flex-Algorithm Path Computation Rules Registry | |||
| skipping to change at page 9, line 28 ¶ | skipping to change at line 386 ¶ | |||
| across multiple documents progressing independently. The new "IGP | across multiple documents progressing independently. The new "IGP | |||
| Flex-Algorithm Path Computation Rules" registry has been created and | Flex-Algorithm Path Computation Rules" registry has been created and | |||
| is specified in Section 13.3. | is specified in Section 13.3. | |||
| This section provides the guidance for designated experts on | This section provides the guidance for designated experts on | |||
| evaluating new registrations in the "IGP Flex-Algorithm Path | evaluating new registrations in the "IGP Flex-Algorithm Path | |||
| Computation Rules" registry: | Computation Rules" registry: | |||
| 1. When a new constraint is defined, the rule associated with that | 1. When a new constraint is defined, the rule associated with that | |||
| constraint MAY be inserted at any position. Backwards | constraint MAY be inserted at any position. Backwards | |||
| compatibility is guaranteed because nodes which don't support the | compatibility is guaranteed because nodes that don't support the | |||
| new constraint will not participate in an algorithm where the FAD | new constraint will not participate in an algorithm where the FAD | |||
| specifies a constraint they don't support. | specifies a constraint they don't support. | |||
| 2. The relative ordering of existing rules MUST NOT be altered. | 2. The relative ordering of existing rules MUST NOT be altered. | |||
| Doing so has the potential to create backwards compatibility | Doing so has the potential to create backwards compatibility | |||
| issues. | issues. | |||
| 3. Deletion of the rules MUST NOT be done. Given that the rules are | 3. Deletion of the rules MUST NOT be done. Given that the rules are | |||
| only used conditionally based on the information carried in the | only used conditionally based on the information carried in the | |||
| winning FAD, deletion of the rule is not necessary. | winning FAD, deletion of the rule is not necessary. | |||
| 4. Merging or repeating of the rules MUST NOT be done. | 4. Merging or repeating of the rules MUST NOT be done. | |||
| 13. IANA Considerations | 13. IANA Considerations | |||
| 13.1. Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV | 13.1. Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV | |||
| This document makes the following registration in the "IS-IS Sub-Sub- | IANA has registered the following in the "IS-IS Sub-Sub-TLVs for | |||
| TLVs for Flexible Algorithm Definition Sub-TLV" registry under "IS-IS | Flexible Algorithm Definition Sub-TLV" registry under the "IS-IS TLV | |||
| TLV Codepoints" registry group: | Codepoints" registry group: | |||
| Type: 10 | ||||
| Description: Flexible Algorithm Exclude Reverse Admin Group | ||||
| MP-TLV Applicability: N | ||||
| Reference: This document (Section 5). | ||||
| Type: 11 | ||||
| Description: Flexible Algorithm Include-Any Reverse Admin Group | ||||
| MP-TLV Applicability: N | ||||
| Reference: This document (Section 6). | ||||
| Type: 12 | ||||
| Description: Flexible Algorithm Include-All Reverse Admin Group | Type: 10 | |||
| Description: Flexible Algorithm Exclude Reverse Admin Group | ||||
| MP: n | ||||
| Reference: RFC 9917, Section 5 | ||||
| MP-TLV Applicability: N | Type: 11 | |||
| Description: Flexible Algorithm Include-Any Reverse Admin Group | ||||
| MP: n | ||||
| Reference: RFC 9917, Section 6 | ||||
| Reference: This document (Section 7). | Type: 12 | |||
| Description: Flexible Algorithm Include-All Reverse Admin Group | ||||
| MP: n | ||||
| Reference: RFC 9917, Section 7 | ||||
| 13.2. OSPF Flexible Algorithm Definition TLV Sub-TLV Registry | 13.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 "Open Shortest Path | Algorithm Definition TLV Sub-TLVs" registry under the "Open Shortest | |||
| First (OSPF) Parameters" registry group: | Path First (OSPF) Parameters" registry group: | |||
| Type: 10 | ||||
| Description: Flexible Algorithm Exclude Reverse Admin Group | ||||
| Reference: This document (Section 8). | ||||
| Type: 11 | ||||
| Description: Flexible Algorithm Include-Any Reverse Admin Group | ||||
| Reference: This document (Section 9). | ||||
| Type: 12 | Type: 10 | |||
| Description: Flexible Algorithm Exclude Reverse Admin Group | ||||
| Reference: RFC 9917, Section 8 | ||||
| Description: Flexible Algorithm Include-All Reverse Admin Group | Type: 11 | |||
| Description: Flexible Algorithm Include-Any Reverse Admin Group | ||||
| Reference: RFC 9917, Section 9 | ||||
| Reference: This document (Section 10). | Type: 12 | |||
| Description: Flexible Algorithm Include-All Reverse Admin Group | ||||
| Reference: RFC 9917, Section 10 | ||||
| 13.3. IGP Flex-Algorithm Path Computation Rules Registry | 13.3. IGP Flex-Algorithm Path Computation Rules Registry | |||
| This document creates a new registry called "IGP Flex-Algorithm Path | IANA has created a new registry called "IGP Flex-Algorithm Path | |||
| Computation Rules Registry" within the "Interior Gateway Protocol | Computation Rules" within the "Interior Gateway Protocol (IGP) | |||
| (IGP) Parameters" registry group. The registration procedure for the | Parameters" registry group. The registration procedure for the new | |||
| new registry is "Expert Review". Section 12 provides guidance for | registry is Expert Review [RFC8126]. Section 12 provides guidance | |||
| Designated Experts. | for designated experts. | |||
| The "IGP Flex-Algo Path Computation Rules" specifies the ordered set | The "IGP Flex-Algorithm Path Computation Rules" registry specifies | |||
| of rules that are used to prune links from the topology during the | the ordered set of rules that are used to prune links from 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. | |||
| +==========+======================+=================================+ | +==========+===========================================+===========+ | |||
| | Sequence | Description | Reference | | | Sequence | Description | Reference | | |||
| | Number | | | | | Number | | | | |||
| +==========+======================+=================================+ | +==========+===========================================+===========+ | |||
| | 1 | Check if any | Section 13 of [RFC9350] | | | 1 | Check if any exclude Administrative Group | Section | | |||
| | | exclude | | | | | rule is part of the Flex-Algorithm | 13 of | | |||
| | | Administrative | | | | | Definition. If such exclude rule exists, | [RFC9350] | | |||
| | | Group rule is part | | | | | check if any color that is part of the | | | |||
| | | of the Flex- | | | | | exclude rule is also set on the link. If | | | |||
| | | Algorithm | | | | | such a color is set, the link MUST be | | | |||
| | | Definition. If | | | | | pruned from the computation | | | |||
| | | such exclude rule | | | +----------+-------------------------------------------+-----------+ | |||
| | | exists, check if | | | | 2 | Check if any exclude SRLG rule is part of | Section | | |||
| | | any color that is | | | | | the Flex-Algorithm Definition. If such | 13 of | | |||
| | | part of the exclude | | | | | exclude rule exists, check if the link is | [RFC9350] | | |||
| | | rule is also set on | | | | | part of any SRLG that is also part of the | | | |||
| | | the link. If such | | | | | SRLG exclude rule. If the link is part | | | |||
| | | a color is set, the | | | | | of such SRLG, the link MUST be pruned | | | |||
| | | link MUST be pruned | | | | | from the computation. | | | |||
| | | from the | | | +----------+-------------------------------------------+-----------+ | |||
| | | computation | | | | 3 | Check if any include-any Administrative | Section | | |||
| +----------+----------------------+---------------------------------+ | | | Group rule is part of the Flex-Algorithm | 13 of | | |||
| | 2 | Check if any | Section 13 of [RFC9350] | | | | Definition. If such include-any rule | [RFC9350] | | |||
| | | exclude SRLG rule | | | | | exists, check if any color that is part | | | |||
| | | is part of the | | | | | of the include-any rule is also set on | | | |||
| | | Flex-Algorithm | | | | | the link. If no such color is set, the | | | |||
| | | Definition. If | | | | | link MUST be pruned from the computation. | | | |||
| | | such exclude rule | | | +----------+-------------------------------------------+-----------+ | |||
| | | exists, check if | | | | 4 | Check if any include-all Administrative | Section | | |||
| | | the link is part of | | | | | Group rule is part of the Flex-Algorithm | 13 of | | |||
| | | any SRLG that is | | | | | Definition. If such include-all rule | [RFC9350] | | |||
| | | also part of the | | | | | exists, check if all colors that are part | | | |||
| | | SRLG exclude rule. | | | | | of the include-all rule are also set on | | | |||
| | | If the link is part | | | | | the link. If all such colors are not set | | | |||
| | | of such SRLG, the | | | | | on the link, the link MUST be pruned from | | | |||
| | | link MUST be pruned | | | | | the computation. | | | |||
| | | from the | | | +----------+-------------------------------------------+-----------+ | |||
| | | computation. | | | | 5 | If the Flex-Algorithm Definition uses | Section | | |||
| +----------+----------------------+---------------------------------+ | | | something other than the IGP metric | 13 of | | |||
| | 3 | Check if any | Section 13 of [RFC9350] | | | | (Section 5 of [RFC9350]), and such metric | [RFC9350] | | |||
| | | include-any | | | | | is not advertised for the particular link | | | |||
| | | Administrative | | | | | in a topology for which the computation | | | |||
| | | Group rule is part | | | | | is done, such link MUST be pruned from | | | |||
| | | of the Flex- | | | | | the computation. A metric of value 0 | | | |||
| | | Algorithm | | | | | MUST NOT be assumed in such a case. | | | |||
| | | Definition. If | | | +----------+-------------------------------------------+-----------+ | |||
| | | such include-any | | | | 6 | Check if any exclude FAEMB rule is part | Section 6 | | |||
| | | rule exists, check | | | | | of the Flex-Algorithm definition. If | of | | |||
| | | if any color that | | | | | such exclude rule exists and the link has | [RFC9843] | | |||
| | | is part of the | | | | | Maximum Link Bandwidth advertised, check | | | |||
| | | include-any rule is | | | | | if the link bandwidth satisfies the FAEMB | | | |||
| | | also set on the | | | | | rule. If the link does not satisfy the | | | |||
| | | link. If no such | | | | | FAEMB rule, the link MUST be pruned from | | | |||
| | | color is set, the | | | | | the Flex-Algorithm computation | | | |||
| | | link MUST be pruned | | | +----------+-------------------------------------------+-----------+ | |||
| | | from the | | | | 7 | Check if any exclude FAEMD rule is part | Section 6 | | |||
| | | computation | | | | | of the Flex-Algorithm definition. If | of | | |||
| +----------+----------------------+---------------------------------+ | | | such exclude rule exists and the link has | [RFC9843] | | |||
| | 4 | Check if any | Section 13 of [RFC9350] | | | | Min Unidirectional link delay advertised, | | | |||
| | | include-all | | | | | check if the link delay satisfies the | | | |||
| | | Administrative | | | | | FAEMD rule. If the link does not satisfy | | | |||
| | | Group rule is part | | | | | the FAEMD rule, the link MUST be pruned | | | |||
| | | of the Flex- | | | | | from the Flex-Algorithm computation. | | | |||
| | | Algorithm | | | +----------+-------------------------------------------+-----------+ | |||
| | | Definition. If | | | | 8 | Check if any exclude reverse Admin Group | Section | | |||
| | | such include-all | | | | | rule is part of the Flex-Algorithm | 11 of RFC | | |||
| | | rule exists, check | | | | | definition. If such exclude rule exists, | 9917 | | |||
| | | if all colors that | | | | | check if any Admin Group that is part of | | | |||
| | | are part of the | | | | | the exclude rule is also set on the link | | | |||
| | | include-all rule | | | | | in the reverse direction. If such Admin | | | |||
| | | are also set on the | | | | | Group is set on the link in the reverse | | | |||
| | | link. If all such | | | | | direction, the link MUST be pruned from | | | |||
| | | colors are not set | | | | | the computation. | | | |||
| | | on the link, the | | | +----------+-------------------------------------------+-----------+ | |||
| | | link MUST be pruned | | | | 9 | Check if any include-any reverse Admin | Section | | |||
| | | from the | | | | | Group rule is part of the Flex-Algorithm | 11 of RFC | | |||
| | | computation. | | | | | definition. If such include-any rule | 9917 | | |||
| +----------+----------------------+---------------------------------+ | | | exists, check if any Admin Group that is | | | |||
| | 5 | If the Flex- | Section 13 of [RFC9350] | | | | part of the include-any rule is also set | | | |||
| | | Algorithm | | | | | on the link in the reverse direction. If | | | |||
| | | Definition uses | | | | | no such Admin Group is set on the link in | | | |||
| | | something other | | | | | the reverse direction, the link MUST be | | | |||
| | | than the IGP metric | | | | | pruned from the computation | | | |||
| | | (Section 5 of | | | +----------+-------------------------------------------+-----------+ | |||
| | | [RFC9350]), and | | | | 10 | Check if any include-all reverse Admin | Section | | |||
| | | such metric is not | | | | | Group rule is part of the Flex-Algorithm | 11 of RFC | | |||
| | | advertised for the | | | | | definition. If such include-all rule | 9917 | | |||
| | | particular link in | | | | | exists, check if all Admin Groups that | | | |||
| | | a topology for | | | | | are part of the include-all rule are also | | | |||
| | | which the | | | | | set on the link in the reverse direction. | | | |||
| | | computation is | | | | | If all such Admin Groups are not set on | | | |||
| | | done, such link | | | | | the link in the reverse direction, the | | | |||
| | | MUST be pruned from | | | | | link MUST be pruned from the computation. | | | |||
| | | the computation. A | | | +----------+-------------------------------------------+-----------+ | |||
| | | metric of value 0 | | | ||||
| | | MUST NOT be assumed | | | ||||
| | | in such a case. | | | ||||
| +----------+----------------------+---------------------------------+ | ||||
| | 6 | Check if any | Section 6 of | | ||||
| | | exclude FAEMB rule | [I-D.ietf-lsr-flex-algo-bw-con] | | ||||
| | | is part of 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 | Section 6 of | | ||||
| | | exclude FAEMD rule | [I-D.ietf-lsr-flex-algo-bw-con] | | ||||
| | | is part of the | | | ||||
| | | Flex-Algorithm | | | ||||
| | | definition. If | | | ||||
| | | such exclude rule | | | ||||
| | | exists and the link | | | ||||
| | | has Min | | | ||||
| | | Unidirectional link | | | ||||
| | | 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 | This document, Section 11 | | ||||
| | | 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. | | | ||||
| +----------+----------------------+---------------------------------+ | ||||
| | 9 | Check if any | This document, Section 11 | | ||||
| | | 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 | | | ||||
| +----------+----------------------+---------------------------------+ | ||||
| | 10 | Check if any | This document, Section 11 | | ||||
| | | 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. | | | ||||
| +----------+----------------------+---------------------------------+ | ||||
| Table 6: IGP Flex-algo Path Calculation Rules | Table 1: IGP Flex-Algorithm Path Calculation Rules | |||
| 14. Security Considerations | 14. Security Considerations | |||
| This document inherits security considerations from [RFC9350]. | This document inherits security considerations from [RFC9350]. | |||
| 15. Acknowledgements | 15. Normative References | |||
| TBD | ||||
| 16. Normative References | ||||
| [I-D.ietf-lsr-flex-algo-bw-con] | ||||
| Hegde, S., Britto, W., Shetty, R., Decraene, B., Psenak, | ||||
| P., and T. Li, "IGP Flexible Algorithms: Bandwidth, Delay, | ||||
| Metrics and Constraints", Work in Progress, Internet- | ||||
| Draft, draft-ietf-lsr-flex-algo-bw-con-22, 13 February | ||||
| 2025, <https://datatracker.ietf.org/doc/html/draft-ietf- | ||||
| lsr-flex-algo-bw-con-22>. | ||||
| [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>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [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, | ||||
| P., and T. Li, "IGP Flexible Algorithms: Bandwidth, Delay, | ||||
| Metrics, and Constraints", RFC 9843, DOI 10.17487/RFC9843, | ||||
| September 2025, <https://www.rfc-editor.org/info/rfc9843>. | ||||
| 16. 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/RFC8126, June 2017, | ||||
| <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. 63 change blocks. | ||||
| 375 lines changed or deleted | 250 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||