| rfc9917xml2.original.xml | rfc9917.xml | |||
|---|---|---|---|---|
| <?xml version="1.0" encoding="US-ASCII"?> | <?xml version='1.0' encoding='UTF-8'?> | |||
| <!DOCTYPE rfc SYSTEM "rfc2629.dtd"> | ||||
| <?rfc toc="yes"?> | <!-- [rfced] Because this document updates RFC 9350, please | |||
| <?rfc tocompact="yes"?> | review the errata reported for RFC 9350 | |||
| <?rfc tocdepth="3"?> | (https://www.rfc-editor.org/errata/rfc9350) | |||
| <?rfc tocindent="yes"?> | and let us know if you confirm our opinion that none of them | |||
| <?rfc symrefs="yes"?> | are relevant to the content of this document. | |||
| <?rfc sortrefs="yes"?> | --> | |||
| <?rfc comments="yes"?> | ||||
| <?rfc inline="yes"?> | <!--[rfced] FYI, we have added RFC 9843 to the list of updated documents | |||
| <?rfc compact="yes"?> | in the header, based on the statement in the abstract. | |||
| <?rfc subcompact="no"?> | --> | |||
| <rfc category="std" docName="draft-ietf-lsr-igp-flex-algo-reverse-affinity-12" i | ||||
| pr="trust200902" updates="9350"> | <!DOCTYPE rfc [ | |||
| <!ENTITY nbsp " "> | ||||
| <!ENTITY zwsp "​"> | ||||
| <!ENTITY nbhy "‑"> | ||||
| <!ENTITY wj "⁠"> | ||||
| ]> | ||||
| <rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-ie | ||||
| tf-lsr-igp-flex-algo-reverse-affinity-12" number="9917" consensus="true" ipr="tr | ||||
| ust200902" updates="9350, 9843" obsoletes="" submissionType="IETF" xml:lang="en" | ||||
| tocInclude="true" tocDepth="3" symRefs="true" sortRefs="true" version="3"> | ||||
| <front> | <front> | |||
| <title abbrev="Flex-Algorithm Reverse Affinity">IGP Flexible Algorithms Reve rse Affinity Constraint</title> | <title abbrev="Flex-Algorithm Reverse Affinity">IGP Flexible Algorithms Reve rse Affinity Constraint</title> | |||
| <seriesInfo name="RFC" value="9917"/> | ||||
| <author fullname="Peter Psenak" initials="P." surname="Psenak"> | <author fullname="Peter Psenak" initials="P." surname="Psenak"> | |||
| <organization>Cisco Systems</organization> | <organization>Cisco Systems</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>Apollo Business Center</street> | <street>Apollo Business Center</street> | |||
| <street>Mlynske nivy 43</street> | <street>Mlynske nivy 43</street> | |||
| <city>Bratislava</city> | <city>Bratislava</city> | |||
| <code>82109</code> | <code>82109</code> | |||
| <country>Slovakia</country> | <country>Slovakia</country> | |||
| </postal> | </postal> | |||
| <email>ppsenak@cisco.com</email> | <email>ppsenak@cisco.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Jakub Horn" initials="J." surname="Horn"> | <author fullname="Jakub Horn" initials="J." surname="Horn"> | |||
| <organization>Cisco Systems</organization> | <organization>Cisco Systems</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street></street> | ||||
| <city>Milpitas</city> | <city>Milpitas</city> | |||
| <code>95035</code> | <code>95035</code> | |||
| <region>CA</region> | <region>CA</region> | |||
| <country>United States of America</country> | ||||
| <country>USA</country> | ||||
| </postal> | </postal> | |||
| <email>jakuhorn@cisco.com</email> | <email>jakuhorn@cisco.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Amit Dhamija" initials="A" surname="Dhamija"> | <author fullname="Amit Dhamija" initials="A" surname="Dhamija"> | |||
| <organization>Arrcus</organization> | <organization>Arrcus</organization> | |||
| <address> | <address> | |||
| <postal> | ||||
| <street/> | ||||
| </postal> | ||||
| <email>amitd@arrcus.com</email> | <email>amitd@arrcus.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date month="January" year="2026"/> | ||||
| <area>RTG</area> | ||||
| <workgroup>lsr</workgroup> | ||||
| <date/> | <!-- [rfced] Please insert any keywords (beyond those that appear in | |||
| the title) for use on https://www.rfc-editor.org/search. --> | ||||
| <area>Routing Area</area> | ||||
| <workgroup>LSR Working Group</workgroup> | <keyword>example</keyword> | |||
| <keyword>IGP</keyword> | <!--[rfced] Because of the abstract's length, we suggest moving some | |||
| of its content, particularly the second paragraph, to the Introduction. | ||||
| As noted in Section 4.3 of RFC 7322: | ||||
| Every RFC must have an Abstract that provides a concise and | ||||
| comprehensive overview of the purpose and contents of the entire | ||||
| document, to give a technically knowledgeable reader a general | ||||
| overview of the function of the document.... | ||||
| A satisfactory Abstract can often be | ||||
| constructed in part from material within the Introduction section, | ||||
| but an effective Abstract may be shorter, less detailed, and perhaps | ||||
| broader in scope than the Introduction. | ||||
| <keyword>Draft</keyword> | Please let us know how the text may be updated. | |||
| --> | ||||
| <abstract> | <abstract> | |||
| <t>An IGP Flexible Algorithm (Flex-Algorithm) enables the computation of | <t>An IGP Flexible Algorithm (Flex-Algorithm) enables the computation of | |||
| constraint-based paths within an IGP domain, allowing operators to influen ce path | constraint-based paths within an IGP domain, allowing operators to influen ce path | |||
| selection according to administrative policies. This document defines an e xtension | selection according to administrative policies. This document defines an e xtension | |||
| to Flex-Algorithm that allows the inclusion or exclusion of links from pat h | to Flex-Algorithm that allows the inclusion or exclusion of links from pat h | |||
| computation based on Administrative Groups (also known as link affinities) | computation based on Administrative Groups (also known as link affinities) | |||
| associated with the reverse direction of the path under computation.</t> | associated with the reverse direction of the path under computation.</t> | |||
| <t>This extension enhances the path selection capabilities of Flex-Algorit hm by | <t>This extension enhances the path selection capabilities of Flex-Algorit hm by | |||
| enabling reverse-affinity-based constraints, which are particularly useful for | enabling reverse-affinity-based constraints, which are particularly useful for | |||
| scenarios where path symmetry or directional link attributes are operation ally | scenarios where path symmetry or directional link attributes are operation ally | |||
| significant.</t> | significant.</t> | |||
| <t>This document updates RFCs 9350 and 9843 | ||||
| <t>This document updates <xref target="RFC9350"/> and <xref target="I-D.ie | ||||
| tf-lsr-flex-algo-bw-con"/> | ||||
| by introducing the new IANA registry that specifies the ordered set of rul es | by introducing the new IANA registry that specifies the ordered set of rul es | |||
| that are used to prune links from the topology during the Flex-Algorithm p ath | that are used to prune links from the topology during the Flex-Algorithm p ath | |||
| computation.</t> | computation.</t> | |||
| </abstract> | </abstract> | |||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <section title="Introduction"> | <section numbered="true" toc="default"> | |||
| <name>Introduction</name> | ||||
| <t>IGP protocols historically computed the best paths over the network | <t>IGP protocols historically computed the best paths over the network | |||
| solely based on the IGP metric assigned to the links. An IGP Flex-Algorith m | solely based on the IGP metric assigned to the links. An IGP Flex-Algorith m | |||
| as specified in <xref target="RFC9350"/> allows IGPs to compute constraint -based | as specified in <xref target="RFC9350" format="default"/> allows IGPs to c ompute constraint-based | |||
| paths. Several mechanisms to include or exclude the link during the Flex-A lgorithm | paths. Several mechanisms to include or exclude the link during the Flex-A lgorithm | |||
| path calculation have been defined already: | path calculation have been defined already: | |||
| <list style="hanging"> | </t> | |||
| <ul spacing="normal"> | ||||
| <t> - link inclusion or exclusion based on the presence of a specific Admin | <li>link inclusion or exclusion based on the presence of a specific | |||
| Group(s) - | Admin Group(s) <xref target="RFC9350" format="default"/></li> | |||
| <xref target="RFC9350"/></t> | <li>link exclusion based on the presence of a specific Shared Risk | |||
| Link Group (SRLG) <xref target="RFC9350" format="default"/></li> | ||||
| <t> - link exclusion based on the presence of a specific Shared Risk Link G | <li>link exclusion based on minimum bandwidth <xref | |||
| roup | target="RFC9843" format="default"/></li> | |||
| (SRLG) - <xref target="RFC9350"/></t> | <li>link exclusion based on maximum delay <xref | |||
| target="RFC9843" format="default"/></li> | ||||
| <t> - link exclusion based on minimum bandwidth - | </ul> | |||
| <xref target="I-D.ietf-lsr-flex-algo-bw-con"/></t> | <!--[rfced] FYI, in addition to expanding "SPF", the word "path" was removed | |||
| here to match usage of "SPF computation" in this document and other RFCs. | ||||
| <t> - link exclusion based on maximum delay - | Please let us know if you prefer otherwise. | |||
| <xref target="I-D.ietf-lsr-flex-algo-bw-con"/></t> | ||||
| </list></t> | ||||
| Original: the SPF path computation | ||||
| Current: the Shortest Path First (SPF) computation | ||||
| --> | ||||
| <t>This document extends IGP Flex-Algorithm with additional constraints | <t>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.</t> | associated with the reverse direction of the Shortest Path First (SPF) | |||
| computation.</t> | ||||
| <t>This document updates <xref target="RFC9350"/> and <xref target="I-D | <t>This document updates <xref target="RFC9350" format="default"/> and <xr | |||
| .ietf-lsr-flex-algo-bw-con"/> | ef target="RFC9843" format="default"/> | |||
| by creating the new IANA registry that specifies the ordered set of rul es that | by creating the new IANA registry that specifies the ordered set of rul es that | |||
| are used to prune links from the topology during the Flex-Algorithm pat h | are used to prune links from the topology during the Flex-Algorithm pat h | |||
| computation (refer to <xref target="NEW_REG"/>).</t> | computation (refer to <xref target="NEW_REG" format="default"/>).</t> | |||
| <t>The term OSPF in this document is used to cover both OSPFv2 and OSPFv3 | ||||
| <t>The term OSPF in this document is used to cover both OSPFv2 and OSPF | protocols.</t> | |||
| v3 protocols.</t> | ||||
| </section> | </section> | |||
| <section anchor="ReqLang" numbered="true" toc="default"> | ||||
| <section anchor="ReqLang" title="Requirements Language"> | <name>Requirements Language</name> | |||
| <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | <t> | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU | |||
| "OPTIONAL" in this document are to be interpreted as described in <xref | IRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | |||
| target="RFC2119">BCP 14</xref> <xref target="RFC8174"/> when, and only | NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14> | |||
| when, they appear in all capitals, as shown here.</t> | RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
| "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | ||||
| be interpreted as | ||||
| described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> | ||||
| when, and only when, they appear in all capitals, as shown here. | ||||
| </t> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Use Case Example"> | <name>Use Case Example</name> | |||
| <t>The Flexible Algorithm Definition (FAD) can specify Extended Administra | ||||
| <t>The Flexible Algorithm definition (FAD) can specify Extended Administra | tive Groups that are | |||
| tive Groups that are | ||||
| used by the operator to include or exclude links during the Flex-Algorithm path | used by the operator to include or exclude links during the Flex-Algorithm path | |||
| computation <xref target="RFC9350"/>. These link Extended Administrative G roups are checked | computation <xref target="RFC9350" format="default"/>. These link Extended Administrative Groups are checked | |||
| in the path direction of the SPF computation, e.g., in the direction from the root | in the path direction of the SPF computation, e.g., in the direction from the root | |||
| vertex toward verticies of increasing distance.</t> | vertex toward vertices of increasing distance.</t> | |||
| <t>In certain scenarios, it is beneficial to evaluate the Extended Adminis trative Groups | <t>In certain scenarios, it is beneficial to evaluate the Extended Adminis trative Groups | |||
| associated with the reverse direction of a link, rather than solely those | associated with the reverse direction of a link, rather than solely those | |||
| in the direction of path computation. Consider a point-to-point link repre sented | in the direction of path computation. Consider a point-to-point link repre sented | |||
| as a pair of directed edges between two nodes, A and B. When computing a p ath from | as a pair of directed edges between two nodes, A and B. When computing a p ath from | |||
| A to B, issues such as input errors on the link, detectable only at the re ceiving | A to B, issues such as input errors on the link, detectable only at the re ceiving | |||
| node B, may be operationally significant. An operator might monitor metric s like | node B, may be operationally significant. An operator might monitor metric s like | |||
| CRC errors or other input-related faults at node B and apply thresholds ov er a | Cyclic Redundancy Check (CRC) errors or other input-related faults at node B and apply thresholds over a | |||
| defined observation period. If such a threshold is exceeded, node B may lo cally | defined observation period. If such a threshold is exceeded, node B may lo cally | |||
| assign specific Extended Administrative Groups to the link in the directio n from | assign specific Extended Administrative Groups to the link in the directio n from | |||
| B to A.</t> | B to A.</t> | |||
| <t>To accommodate this operational intent, the Flex-Algorithm can be exten | ||||
| <t>To accommodate this operational intent, the Flex-Algorithm can be ex | ded | |||
| tended | ||||
| to inspect the Extended Administrative Groups of the reverse-direction edg e (from | to inspect the Extended Administrative Groups of the reverse-direction edg e (from | |||
| B to A) when evaluating the forward-direction edge (from A to B) during pa th | B to A) when evaluating the forward-direction edge (from A to B) during pa th | |||
| computation. This enables the exclusion of links from the computed topolog y | computation. This enables the exclusion of links from the computed topolog y | |||
| based on conditions detected at the far end of the link, improving network | based on conditions detected at the far end of the link, improving network | |||
| reliability and policy control.</t> | reliability and policy control.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Deployment Consideration"> | <name>Deployment Consideration</name> | |||
| <t>Threshold-based setting of the link Extended Administrative Groups must | ||||
| <t>Threshold based setting of the link Extended Administrative Groups must | be done | |||
| be done | ||||
| with care to avoid excessive flooding and constant Flex-Algorithm path | with care to avoid excessive flooding and constant Flex-Algorithm path | |||
| re-calculation.</t> | recalculation.</t> | |||
| <t>One possible approach is to use two different thresholds when setting a | ||||
| <t>One possible approach is to use two different thresholds when setting a | nd unsetting | |||
| nd un-setting | ||||
| the Extended Administrative Group on the link. For example, when setting t he | the Extended Administrative Group on the link. For example, when setting t he | |||
| Extended Administrative Group on the link based on the percentage of certa in incoming | Extended Administrative Group on the link based on the percentage of certa in incoming | |||
| errors, higher threshold is used for setting and lower threshold is used f or | errors, higher threshold is used for setting and lower threshold is used f or | |||
| un-setting the Extended Administrative Group on the link.</t> | unsetting the Extended Administrative Group on the link.</t> | |||
| <!--[rfced] To avoid the repetition of "Usage" and "use" to improve | ||||
| readability, may we update "Usage" to "Application"? | ||||
| Original: | ||||
| Usage of such throttling mechanism can also be used to avoid | ||||
| frequent changes in the setting of the Extended Administrative Group | ||||
| on a link to affect the stability of the receivers. | ||||
| Perhaps: | ||||
| Application of such throttling mechanism can also be used to avoid | ||||
| frequent changes in the setting of the Extended Administrative Group | ||||
| on a link to affect the stability of the receivers. | ||||
| --> | ||||
| <t>Many implementations provide a throttling mechanism that limits the rat e at which | <t>Many implementations provide a throttling mechanism that limits the rat e at which | |||
| the LSP in case of ISIS, or LSA in case of OSPFv2 and OSPFv3, is updated a t the | the Label Switched Path (LSP) in case of IS-IS, or Link State Advertisemen t (LSA) in case of OSPFv2 and OSPFv3, is updated at the | |||
| originator. Such mechanism is typically not specific to any particular lin k | originator. Such mechanism is typically not specific to any particular lin k | |||
| attribute, but rather considers any change in the LSP or LSA. Usage of suc h | attribute, but rather considers any change in the LSP or LSA. Usage of suc h | |||
| throttling mechanism can also be used to avoid frequent changes in the set ting of the | throttling mechanism can also be used to avoid frequent changes in the set ting of the | |||
| Extended Administrative Group on a link to affect the stability of the rec eivers.</t> | Extended Administrative Group on a link to affect the stability of the rec eivers.</t> | |||
| </section> | </section> | |||
| <section anchor="ISISFLEXALGEXLTLV" numbered="true" toc="default"> | ||||
| <section anchor="ISISFLEXALGEXLTLV" | <name>IS-IS Flexible Algorithm Exclude Reverse Admin Group Sub-TLV</name> | |||
| title="IS-IS Flexible Algorithm Exclude Reverse Admin Group Sub-T | <t>The IS-IS Flexible Algorithm Exclude Reverse Admin Group (FAERAG) Sub-T | |||
| LV"> | LV | |||
| <t>The IS-IS Flexible Algorithm Exclude Reverse Admin Group (FAERAG) Sub | ||||
| -TLV | ||||
| is used to advertise the exclude rule that is used during the | is used to advertise the exclude rule that is used during the | |||
| Flex-Algorithm path calculation as specified in <xref target="FLEXALGPAT | Flex-Algorithm path calculation as specified in <xref target="FLEXALGPAT | |||
| HCALC"/>. | HCALC" format="default"/>. | |||
| </t> | </t> | |||
| <t>The IS-IS FAERAG Sub-TLV is a sub-TLV of the IS-IS FAD Sub-TLV. It has | ||||
| <t>The IS-IS FAERAG Sub-TLV is a Sub-TLV of the IS-IS FAD Sub-TLV. It ha | the | |||
| s the | ||||
| following format: | following format: | |||
| <figure> | </t> | |||
| <artwork><![CDATA[ | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| 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 | | |||
| +- -+ | +- -+ | |||
| | ... | | | ... | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> | |||
| where: | <t>where:</t> | |||
| ]]></artwork> | <dl newline="false" spacing="normal"> | |||
| </figure> <list style="hanging"> | <dt>Type (1 octet):</dt><dd>10</dd> | |||
| <t>Type (1 octet): 10</t> | <dt>Length (1 octet):</dt><dd>Variable, dependent on the size of the | |||
| Extended Admin Group. The length <bcp14>MUST</bcp14> be a multiple of | ||||
| <t>Length (1 octet): Variable, dependent on the size of the Extended | 4 octets. If the length is not a multiple of 4 octets, the entire | |||
| Admin | sub-TLV <bcp14>MUST</bcp14> be ignored by the receiver.</dd> | |||
| Group. The length MUST be a multiple of 4 octets. If the length is n | <dt>Extended Administrative Group:</dt><dd>Extended Administrative | |||
| ot | Group as defined in <xref target="RFC7308" format="default"/>.</dd> | |||
| a multiple of 4 octets, the entire Sub-TLV MUST be ignored by the re | </dl> | |||
| ceiver.</t> | <t>The IS-IS FAERAG Sub-TLV <bcp14>MUST NOT</bcp14> appear more than once | |||
| in a single IS-IS | ||||
| <t>Extended Administrative Group: Extended Administrative Group as | FAD Sub-TLV. If it appears more than once, the IS-IS FAD Sub-TLV <bcp14> | |||
| defined in <xref target="RFC7308"/>.</t> | MUST</bcp14> | |||
| </list></t> | ||||
| <t>The IS-IS FAERAG Sub-TLV MUST NOT appear more than once in a single I | ||||
| S-IS | ||||
| FAD Sub-TLV. If it appears more than once, the IS-IS FAD Sub-TLV MUST | ||||
| be ignored by the receiver.</t> | be ignored by the receiver.</t> | |||
| <t>The IS-IS FAERAG Sub-TLV <bcp14>MUST NOT</bcp14> appear more than once | ||||
| <t>The IS-IS FAERAG Sub-TLV MUST NOT appear more than once in the set of | in the set of FAD | |||
| FAD | Sub-TLVs for a given Flex-Algorithm from a given IS. If it appears more | |||
| sub-TLVs for a given Flex-Algorithm from a given IS. If it appears more | than once | |||
| than once | in such set, the IS-IS FAERAG Sub-TLV in the first occurrence in the low | |||
| in such set, the IS-IS FAERAG Sub-TLV in the first occurrence in the low | est-numbered | |||
| est numbered | LSP from a given IS <bcp14>MUST</bcp14> be used and any other occurrence | |||
| LSP from a given IS MUST be used and any other occurrences MUST be ignor | s <bcp14>MUST</bcp14> be ignored | |||
| ed | ||||
| by the receiver.</t> | by the receiver.</t> | |||
| </section> | ||||
| </section> | <section anchor="ISISFLEXALGINCANYTLV" numbered="true" toc="default"> | |||
| <name>IS-IS Flexible Algorithm Include-Any Reverse Admin Group Sub-TLV</na | ||||
| <section anchor="ISISFLEXALGINCANYTLV" | me> | |||
| title="IS-IS Flexible Algorithm Include-Any Reverse Admin Group S | <t>The IS-IS Flexible Algorithm Include-Any Reverse Admin Group Sub-TLV | |||
| ub-TLV"> | ||||
| <t>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-A lgorithm | is used to advertise the include-any rule that is used during the Flex-A lgorithm | |||
| path calculation as specified in <xref target="FLEXALGPATHCALC"/>.</t> | path calculation as specified in <xref target="FLEXALGPATHCALC" format=" | |||
| default"/>.</t> | ||||
| <t>The format of the IS-IS Flexible Algorithm Include-Any Reverse Admin | <t>The format of the IS-IS Flexible Algorithm Include-Any Reverse Admin Gr | |||
| Group | oup | |||
| Sub-TLV is identical to the format of the FAERAG Sub-TLV in | Sub-TLV is identical to the format of the FAERAG Sub-TLV in | |||
| <xref target="ISISFLEXALGEXLTLV"/>.</t> | <xref target="ISISFLEXALGEXLTLV" format="default"/>.</t> | |||
| <t>IANA has assigned Type value of 11 for the IS-IS Flexible Algorithm Inc | ||||
| <t>IANA has assigned Type value of 11 for the IS-IS Flexible Algorithm I | lude-Any | |||
| nclude-Any | ||||
| Reverse Admin Group Sub-TLV.</t> | Reverse Admin Group Sub-TLV.</t> | |||
| <t>The IS-IS Flexible Algorithm Include-Any Reverse Admin Group Sub-TLV <b | ||||
| <t>The IS-IS Flexible Algorithm Include-Any Reverse Admin Group Sub-TLV | cp14>MUST NOT</bcp14> | |||
| MUST NOT | ||||
| appear more than once in a single IS-IS FAD Sub-TLV. If it appears more than once, | 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.</t> | the IS-IS FAD Sub-TLV <bcp14>MUST</bcp14> be ignored by the receiver.</t | |||
| > | ||||
| <t>The IS-IS Flexible Algorithm Include-Any Reverse Admin Group Sub-TLV | <t>The IS-IS Flexible Algorithm Include-Any Reverse Admin Group Sub-TLV <b | |||
| MUST NOT | cp14>MUST NOT</bcp14> | |||
| appear more than once in the set of FAD sub-TLVs for a given Flex-Algori | appear more than once in the set of FAD Sub-TLVs for a given Flex-Algori | |||
| thm from | thm from | |||
| a given IS. If it appears more than once in such set, the IS-IS Flexible Algorithm | 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 l | Include-Any Reverse Admin Group Sub-TLV in the first occurrence in the l | |||
| owest numbered | owest-numbered | |||
| LSP from a given IS MUST be used and any other occurrences MUST be ignor | LSP from a given IS <bcp14>MUST</bcp14> be used and any other occurrence | |||
| ed | s <bcp14>MUST</bcp14> be ignored | |||
| by the receiver.</t> | by the receiver.</t> | |||
| </section> | ||||
| </section> | <section anchor="ISISFLEXALGINCALLTLV" numbered="true" toc="default"> | |||
| <name>IS-IS Flexible Algorithm Include-All Reverse Admin Group Sub-TLV</na | ||||
| <section anchor="ISISFLEXALGINCALLTLV" | me> | |||
| title="IS-IS Flexible Algorithm Include-All Reverse Admin Group S | <t>The IS-IS Flexible Algorithm Include-All Reverse Admin Group Sub-TLV | |||
| ub-TLV"> | ||||
| <t>The IS-IS Flexible Algorithm Include-All Reverse Admin Group Sub-T | ||||
| LV | ||||
| is used to advertise the include-all rule that is used during the Flex-A lgorithm | is used to advertise the include-all rule that is used during the Flex-A lgorithm | |||
| path calculation as specified in <xref target="FLEXALGPATHCALC"/>.</t> | path calculation as specified in <xref target="FLEXALGPATHCALC" format=" | |||
| default"/>.</t> | ||||
| <t>The format of the IS-IS Flexible Algorithm Include-All Reverse Admin | <t>The format of the IS-IS Flexible Algorithm Include-All Reverse Admin Gr | |||
| Group | oup | |||
| Sub-TLV is identical to the format of the FAERAG Sub-TLV in | Sub-TLV is identical to the format of the FAERAG Sub-TLV in | |||
| <xref target="ISISFLEXALGEXLTLV"/>.</t> | <xref target="ISISFLEXALGEXLTLV" format="default"/>.</t> | |||
| <t>IANA has assigned Type value of 12 for the IS-IS Flexible Algorithm Inc | ||||
| <t>IANA has assigned Type value of 12 for the IS-IS Flexible Algorithm I | lude-All | |||
| nclude-All | ||||
| Reverse Admin Group Sub-TLV.</t> | Reverse Admin Group Sub-TLV.</t> | |||
| <t>The IS-IS Flexible Algorithm Include-All Reverse Admin Group Sub-TLV <b | ||||
| <t>The IS-IS Flexible Algorithm Include-All Reverse Admin Group Sub-TLV | cp14>MUST NOT</bcp14> | |||
| MUST NOT | ||||
| appear more than once in a single IS-IS FAD Sub-TLV. If it appears more than once, | 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.</t> | the IS-IS FAD Sub-TLV <bcp14>MUST</bcp14> be ignored by the receiver.</t | |||
| > | ||||
| <t>The IS-IS Flexible Algorithm Include-All Reverse Admin Group Sub-TLV | <t>The IS-IS Flexible Algorithm Include-All Reverse Admin Group Sub-TLV <b | |||
| MUST NOT | cp14>MUST NOT</bcp14> | |||
| appear more than once in the set of FAD sub-TLVs for a given Flex-Algori | appear more than once in the set of FAD Sub-TLVs for a given Flex-Algori | |||
| thm from | thm from | |||
| a given IS. If it appears more than once in such set, the IS-IS Flexible Algorithm | 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 l | Include-All Reverse Admin Group Sub-TLV in the first occurrence in the l | |||
| owest numbered | owest-numbered | |||
| LSP from a given IS MUST be used and any other occurrences MUST be ignor | LSP from a given IS <bcp14>MUST</bcp14> be used and any other occurrence | |||
| ed | s <bcp14>MUST</bcp14> be ignored | |||
| by the receiver.</t> | by the receiver.</t> | |||
| </section> | ||||
| </section> | <section anchor="OSPFFLEXALGEXLTLV" numbered="true" toc="default"> | |||
| <name>OSPF Flexible Algorithm Exclude Reverse Admin Group Sub-TLV</name> | ||||
| <section anchor="OSPFFLEXALGEXLTLV" | <t>The OSPF Flexible Algorithm Exclude Reverse Admin Group (FAERAG) Sub-TL | |||
| title="OSPF Flexible Algorithm Exclude Reverse Admin Group Sub-TL | V | |||
| V"> | ||||
| <t>The OSPF Flexible Algorithm Exclude Reverse Admin Group (FAERAG) Sub- | ||||
| TLV | ||||
| is used to advertise the exclude rule that is used during the | is used to advertise the exclude rule that is used during the | |||
| Flex-Algorithm path calculation as specified in <xref target="FLEXALGPAT | Flex-Algorithm path calculation as specified in <xref target="FLEXALGPAT | |||
| HCALC"/>. | HCALC" format="default"/>. | |||
| </t> | </t> | |||
| <t>The OSPF FAERAG Sub-TLV is a sub-TLV of the OSPF FAD TLV. It has the | ||||
| <t>The OSPF FAERAG Sub-TLV is a Sub-TLV of the OSPF FAD TLV. It has the | following format: </t> | |||
| following format: <figure> | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| <artwork><![CDATA[ | ||||
| 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 | | |||
| +- -+ | +- -+ | |||
| | ... | | | ... | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> | |||
| where: | <t>where:</t> | |||
| ]]></artwork> | <dl newline="false" spacing="normal"> | |||
| </figure> <list style="hanging"> | <dt>Type (2 octets):</dt><dd>10</dd> | |||
| <t>Type (2 octets): 10</t> | <dt>Length (2 octets):</dt><dd>Variable, dependent on the size of the | |||
| Extended Admin Group. The length <bcp14>MUST</bcp14> be a multiple of | ||||
| <t>Length (2 octets): Variable, dependent on the size of the Extende | 4 octets. If the length is not a multiple of 4 octets, the entire | |||
| d Admin | sub-TLV <bcp14>MUST</bcp14> be ignored by the receiver.</dd> | |||
| Group. The length MUST be a multiple of 4 octets. If the length is n | <dt>Extended Administrative Group:</dt><dd>Extended Administrative | |||
| ot | Group as defined in <xref target="RFC7308" format="default"/>.</dd> | |||
| a multiple of 4 octets, the entire Sub-TLV MUST be ignored by the re | </dl> | |||
| ceiver.</t> | <t>The OSPF FAERAG Sub-TLV <bcp14>MUST NOT</bcp14> appear more than once i | |||
| n an OSPF | ||||
| <t>Extended Administrative Group: Extended Administrative Group as | FAD TLV. If it appears more than once, the OSPF FAD TLV <bcp14>MUST</bcp | |||
| defined in <xref target="RFC7308"/>.</t> | 14> be | |||
| </list></t> | ||||
| <t>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.</t> | ignored by the receiver.</t> | |||
| </section> | </section> | |||
| <section anchor="OSPFFLEXALGINCANYTLV" numbered="true" toc="default"> | ||||
| <section anchor="OSPFFLEXALGINCANYTLV" | <name>OSPF Flexible Algorithm Include-Any Reverse Admin Group Sub-TLV</nam | |||
| title="OSPF Flexible Algorithm Include-Any Reverse Admin Group Su | e> | |||
| b-TLV"> | <t>The OSPF Flexible Algorithm Include-Any Reverse Admin Group Sub-TLV | |||
| <t>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-A lgorithm | is used to advertise the include-any rule that is used during the Flex-A lgorithm | |||
| path calculation as specified in <xref target="FLEXALGPATHCALC"/>.</t> | path calculation as specified in <xref target="FLEXALGPATHCALC" format=" | |||
| default"/>.</t> | ||||
| <t>The format of the OSPF Flexible Algorithm Include-Any Reverse Admin G | <t>The format of the OSPF Flexible Algorithm Include-Any Reverse Admin Gro | |||
| roup | up | |||
| Sub-TLV is identical to the format of the OSPF FAERAG Sub-TLV in <xref | Sub-TLV is identical to the format of the OSPF FAERAG Sub-TLV in <xref t | |||
| target="OSPFFLEXALGEXLTLV"/>.</t> | arget="OSPFFLEXALGEXLTLV" format="default"/>.</t> | |||
| <t>IANA has assigned Type value of 11 for the OSPF Flexible Algorithm Incl | ||||
| <t>IANA has assigned Type value of 11 for the OSPF Flexible Algorithm In | ude-Any | |||
| clude-Any | ||||
| Reverse Admin Group Sub-TLV.</t> | Reverse Admin Group Sub-TLV.</t> | |||
| <t>The OSPF Flexible Algorithm Include-Any Reverse Admin Group Sub-TLV <bc | ||||
| <t>The OSPF Flexible Algorithm Include-Any Reverse Admin Group Sub-TLV M | p14>MUST | |||
| UST | NOT</bcp14> appear more than once in an OSPF FAD TLV. If it appears more | |||
| NOT appear more than once in an OSPF FAD TLV. If it appears more than | than | |||
| once, the OSPF FAD TLV MUST be ignored by the receiver.</t> | once, the OSPF FAD TLV <bcp14>MUST</bcp14> be ignored by the receiver.</ | |||
| </section> | t> | |||
| </section> | ||||
| <section anchor="OSPFFLEXALGINCALLTLV" | <section anchor="OSPFFLEXALGINCALLTLV" numbered="true" toc="default"> | |||
| title="OSPF Flexible Algorithm Include-All Reverse Admin Group Su | <name>OSPF Flexible Algorithm Include-All Reverse Admin Group Sub-TLV</nam | |||
| b-TLV"> | e> | |||
| <t>The OSPF Flexible Algorithm Include-All Reverse Admin Group Sub-TLV | ||||
| <t>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-A lgorithm | is used to advertise the include-all rule that is used during the Flex-A lgorithm | |||
| path calculation as specified in <xref target="FLEXALGPATHCALC"/>.</t> | path calculation as specified in <xref target="FLEXALGPATHCALC" format=" | |||
| default"/>.</t> | ||||
| <t>The format of the OSPF Flexible Algorithm Include-All Reverse Admin G | <t>The format of the OSPF Flexible Algorithm Include-All Reverse Admin Gro | |||
| roup | up | |||
| Sub-TLV is identical to the format of the OSPF FAERAG Sub-TLV in <xref | Sub-TLV is identical to the format of the OSPF FAERAG Sub-TLV in <xref t | |||
| target="OSPFFLEXALGEXLTLV"/>.</t> | arget="OSPFFLEXALGEXLTLV" format="default"/>.</t> | |||
| <t>IANA has assigned Type value of 12 for the OSPF Flexible Algorithm Incl | ||||
| <t>IANA has assigned Type value of 12 for OSPF Flexible Algorithm Includ | ude-All Reverse | |||
| e-All Reverse | ||||
| Admin Group Sub-TLV.</t> | Admin Group Sub-TLV.</t> | |||
| <t>The OSPF Flexible Algorithm Include-All Reverse Admin Group Sub-TLV <bc | ||||
| p14>MUST | ||||
| NOT</bcp14> appear more than once in an OSPF FAD TLV. If it appears more | ||||
| than | ||||
| once, the OSPF FAD TLV <bcp14>MUST</bcp14> be ignored by the receiver.</ | ||||
| t> | ||||
| </section> | ||||
| <section anchor="FLEXALGPATHCALC" numbered="true" toc="default"> | ||||
| <name>Calculation of Flexible Algorithm Paths</name> | ||||
| <t>The following procedures augment the rules defined in | ||||
| <xref target="RFC9350" section="13"/> by introducing additional constrain | ||||
| ts based on | ||||
| Administrative Groups (AGs) associated with the reverse direction of a li | ||||
| nk. | ||||
| </t> | ||||
| <t>The OSPF Flexible Algorithm Include-All Reverse Admin Group Sub-TLV M | <!--[rfced] As this text is repeated in Table 1, may we remove it from | |||
| UST | Section 11 to avoid redundancy? | |||
| 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.</t> | ||||
| </section> | ||||
| <section anchor="FLEXALGPATHCALC" | ||||
| title="Calculation of Flexible Algorithm Paths"> | ||||
| <t>The following procedures augment the rules defined in Section 13 of | Original: | |||
| <xref target="RFC9350"/> by introducing additional constraints based on | Check if any exclude reverse Admin Group rule is part of the Flex- | |||
| Administrative Groups (AGs) associated with the reverse direction of a li | Algorithm definition. If such exclude rule exists, check if any | |||
| nk. | 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. | ||||
| <list style="hanging"> | 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. | ||||
| <t>Check if any exclude reverse Admin Group rule is part of the Flex-A | Check if any include-all reverse Admin Group rule is part of the | |||
| lgorithm | Flex-Algorithm definition. If such include-all rule exists, check | |||
| definition. If such exclude rule exists, check if any Admin Group that | if all Admin Groups that are part of the include-all rule are also | |||
| is | set on the link in the reverse direction. If all such Admin | |||
| part of the exclude rule is also set on the link in the reverse direct | Groups are not set on the link in the reverse direction, the link | |||
| ion. | MUST be pruned from the computation. | |||
| If such Admin Group is set on the link in the reverse direction, the l | --> | |||
| ink MUST | ||||
| be pruned from the computation.</t> | ||||
| <t>Check if any include-any reverse Admin Group rule is part of the Fl | <ul spacing="normal" > | |||
| ex-Algorithm | <li>Check if any exclude reverse Admin Group rule is part of the | |||
| definition. If such include-any rule exists, check if any Admin Group | Flex-Algorithm definition. If such exclude rule exists, check if any | |||
| that | Admin Group that is part of the exclude rule is also set on the link | |||
| is part of the include-any rule is also set on the link in the reverse | in the reverse direction. If such Admin Group is set on the link in | |||
| direction. If no such Admin Group is set on the link in the reverse di | the reverse direction, the link <bcp14>MUST</bcp14> be pruned from the | |||
| rection, | computation.</li> | |||
| the link MUST be pruned from the computation.</t> | <li>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 <bcp14>MUST</bcp14> be | ||||
| pruned from the computation.</li> | ||||
| <li>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 <bcp14>MUST</bcp14> | ||||
| be pruned from the computation.</li> | ||||
| </ul> | ||||
| <t>Please see rules 8, 9, and 10 in <xref target="PATHCOMPREGISTRY" format | ||||
| ="default"/> for these added | ||||
| rules.</t> | ||||
| </section> | ||||
| <!--[rfced] May the content of Section 12 be moved under Section 13.3 or | ||||
| become a subsection? Rationale: Section 12 provides guidance to designated | ||||
| experts when evaluating new registrations in the registry described in | ||||
| Section 13.3. | ||||
| <t>Check if any include-all reverse Admin Group rule is part of the Fl | Original: | |||
| ex-Algorithm | 12. IGP Flex-Algorithm Path Computation Rules Registry | |||
| definition. If such include-all rule exists, check if all Admin Groups | 13. IANA Considerations | |||
| that are part of the include-all rule are also set on the link in the | 13.1. Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV | |||
| reverse | 13.2. OSPF Flexible Algorithm Definition TLV Sub-TLV Registry | |||
| direction. If all such Admin Groups are not set on the link in the rev | 13.3. IGP Flex-Algorithm Path Computation Rules Registry | |||
| erse direction, | ||||
| the link MUST be pruned from the computation.</t> | ||||
| </list></t> | Perhaps: | |||
| 12. IANA Considerations | ||||
| 12.1. Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV | ||||
| 12.2. OSPF Flexible Algorithm Definition TLV Sub-TLV Registry | ||||
| 12.3. IGP Flex-Algorithm Path Computation Rules Registry | ||||
| 12.3.1. Guidance for Designated Experts | ||||
| <t>Please see rules 8, 9, and 10 in <xref target="PATHCOMPREGISTRY"/> fo | [where 12.3.1 contains the original section 12] | |||
| r these added | ||||
| rules.</t> | ||||
| </section> | If so, the two mentions of Section 12 would be updated accordingly: | |||
| <section anchor="NEW_REG" title="IGP Flex-Algorithm Path Computation Rules R | Original: Section 12 provides guidance for designated experts. | |||
| egistry"> | Perhaps: Section 12.3.1 provides guidance for designated experts. | |||
| <t>Since the original Flex-Algorithm specification <xref target="RFC9350"/ | Original: (refer to Section 12) | |||
| >, many | Perhaps: (refer to Section 12.3.1) | |||
| --> | ||||
| <section anchor="NEW_REG" numbered="true" toc="default"> | ||||
| <name>IGP Flex-Algorithm Path Computation Rules Registry</name> | ||||
| <t>Since the original Flex-Algorithm specification <xref target="RFC9350" | ||||
| format="default"/>, many | ||||
| Flex-Algorithm extensions have been proposed and standardized. Many of the m added | Flex-Algorithm extensions have been proposed and standardized. Many of the m added | |||
| additional rules to the Flex-Algorithm path computation. Maintaining an IA NA registry | additional rules to the Flex-Algorithm path computation. Maintaining an IA NA registry | |||
| for these rules allows specification across multiple documents progressing | for these rules allows specification across multiple documents progressing | |||
| independently. The new "IGP Flex-Algorithm Path Computation Rules" registr y has been | independently. The new "IGP Flex-Algorithm Path Computation Rules" registr y has been | |||
| created and is specified in <xref target="PATHCOMPREGISTRY"/>.</t> | created and is specified in <xref target="PATHCOMPREGISTRY" format="defaul | |||
| t"/>.</t> | ||||
| <t>This section provides the guidance for designated experts on evaluating new registrations | <t>This section provides the guidance for designated experts on evaluating new registrations | |||
| in the "IGP Flex-Algorithm Path Computation Rules" registry:</t> | in the "IGP Flex-Algorithm Path Computation Rules" registry:</t> | |||
| <ol spacing="normal" type="1"> | ||||
| <ol spacing="normal" type="1" indent="adaptive" start="1"> | <li> | |||
| <li derivedCounter="1."> | When a new constraint is defined, the rule associated with that constr | |||
| <t>When a new constraint is defined, the rule associated with that const | aint | |||
| raint | <bcp14>MAY</bcp14> be inserted at any position. Backwards compatibility i | |||
| MAY be inserted at any position. Backwards compatibility is guaranteed be | s guaranteed because | |||
| cause | nodes that don't support the new constraint will not participate in an | |||
| nodes which don't support the new constraint will not participate in an | algorithm where the FAD specifies a constraint they don't support. | |||
| algorithm where the FAD specifies a constraint they don't support.</t> | </li> | |||
| </li> | <li> | |||
| The relative ordering of existing rules <bcp14>MUST NOT</bcp14> be alt | ||||
| <li derivedCounter="2."> | ered. Doing so has | |||
| <t>The relative ordering of existing rules MUST NOT be altered. Doing | the potential to create backwards compatibility issues. | |||
| so has | </li> | |||
| the potential to create backwards compatibility issues.</t> | <li> | |||
| </li> | Deletion of the rules <bcp14>MUST NOT</bcp14> be done. Given that the | |||
| rules are only used | ||||
| <li derivedCounter="3."> | ||||
| <t>Deletion of the rules MUST NOT be done. Given that the rules are o | ||||
| nly used | ||||
| conditionally based on the information carried in the winning FAD, deletio n of | conditionally based on the information carried in the winning FAD, deletio n of | |||
| the rule is not necessary.</t> | the rule is not necessary. | |||
| </li> | </li> | |||
| <li> | ||||
| <li derivedCounter="4."> | Merging or repeating of the rules <bcp14>MUST NOT</bcp14> be done. | |||
| <t>Merging or repeating of the rules MUST NOT be done.</t> | </li> | |||
| </li> | ||||
| </ol> | </ol> | |||
| </section> | </section> | |||
| <section anchor="IANA" numbered="true" toc="default"> | ||||
| <section anchor="IANA" title="IANA Considerations"> | <name>IANA Considerations</name> | |||
| <section anchor="SUBTLVREGISTRY" numbered="true" toc="default"> | ||||
| <section anchor="SUBTLVREGISTRY" | <name>Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV</name> | |||
| title="Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV"> | <t>IANA has registered the following in the | |||
| <t>This document makes the following registration in the | ||||
| "IS-IS Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV" registr y | "IS-IS Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV" registr y | |||
| under "IS-IS TLV Codepoints" registry group: | under the "IS-IS TLV Codepoints" registry group: | |||
| <list style="hanging"> | </t> | |||
| <t>Type: 10</t> | <dl newline="false" spacing="compact"> | |||
| <dt>Type:</dt><dd>10</dd> | ||||
| <t>Description: Flexible Algorithm Exclude Reverse Admin Group</t> | <dt>Description:</dt><dd>Flexible Algorithm Exclude Reverse Admin Grou | |||
| p</dd> | ||||
| <t>MP-TLV Applicability: N</t> | <dt>MP:</dt><dd>n</dd> | |||
| <dt>Reference:</dt><dd>RFC 9917, <xref target="ISISFLEXALGEXLTLV" form | ||||
| <t>Reference: This document (<xref | at="default"/></dd> | |||
| target="ISISFLEXALGEXLTLV"/>).</t> | </dl> | |||
| </list> | <dl newline="false" spacing="compact"> | |||
| <list style="hanging"> | <dt>Type:</dt><dd>11</dd> | |||
| <t>Type: 11</t> | <dt>Description:</dt><dd>Flexible Algorithm Include-Any Reverse Admin | |||
| Group</dd> | ||||
| <t>Description: Flexible Algorithm Include-Any Reverse Admin Group | <dt>MP:</dt><dd>n</dd> | |||
| </t> | <dt>Reference:</dt><dd>RFC 9917, <xref target="ISISFLEXALGINCANYTLV" f | |||
| ormat="default"/></dd> | ||||
| <t>MP-TLV Applicability: N</t> | </dl> | |||
| <dl newline="false" spacing="compact"> | ||||
| <t>Reference: This document (<xref | <dt>Type:</dt><dd>12</dd> | |||
| target="ISISFLEXALGINCANYTLV"/>).</t> | <dt>Description:</dt><dd>Flexible Algorithm Include-All Reverse Admin | |||
| </list> | Group</dd> | |||
| <list style="hanging"> | <dt>MP:</dt><dd>n</dd> | |||
| <t>Type: 12</t> | <dt>Reference:</dt><dd>RFC 9917, <xref target="ISISFLEXALGINCALLTLV" f | |||
| ormat="default"/></dd> | ||||
| <t>Description: Flexible Algorithm Include-All Reverse Admin Group | </dl> | |||
| </t> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <t>MP-TLV Applicability: N</t> | <name>OSPF Flexible Algorithm Definition TLV Sub-TLV Registry</name> | |||
| <t>Reference: This document (<xref | ||||
| target="ISISFLEXALGINCALLTLV"/>).</t> | ||||
| </list></t> | ||||
| </section> | ||||
| <section title="OSPF Flexible Algorithm Definition TLV Sub-TLV Registry"> | ||||
| <t>This document makes the following registration in the "OSPF Flexible | <t>This document makes the following registration in the "OSPF Flexible | |||
| Algorithm Definition TLV Sub-TLVs" registry under "Open Shortest | Algorithm Definition TLV Sub-TLVs" registry under the "Open Shortest | |||
| Path First (OSPF) Parameters" registry group: | Path First (OSPF) Parameters" registry group: | |||
| <list style="hanging"> | </t> | |||
| <t>Type: 10</t> | <dl newline="false" spacing="compact"> | |||
| <dt>Type:</dt><dd>10</dd> | ||||
| <t>Description: Flexible Algorithm Exclude Reverse Admin Group</t> | <dt>Description:</dt><dd>Flexible Algorithm Exclude Reverse Admin Grou | |||
| p</dd> | ||||
| <t>Reference: This document (<xref | <dt>Reference:</dt><dd>RFC 9917, <xref target="OSPFFLEXALGEXLTLV" form | |||
| target="OSPFFLEXALGEXLTLV"/>).</t> | at="default"/></dd> | |||
| </list> <list style="hanging"> | </dl> | |||
| <t>Type: 11</t> | <dl newline="false" spacing="compact"> | |||
| <dt>Type:</dt><dd>11</dd> | ||||
| <t>Description: Flexible Algorithm Include-Any Reverse Admin Group | <dt>Description:</dt><dd>Flexible Algorithm Include-Any Reverse Admin | |||
| </t> | Group</dd> | |||
| <dt>Reference:</dt><dd>RFC 9917, <xref target="OSPFFLEXALGINCANYTLV" f | ||||
| <t>Reference: This document (<xref | ormat="default"/></dd> | |||
| target="OSPFFLEXALGINCANYTLV"/>).</t> | </dl> | |||
| </list> <list style="hanging"> | <dl newline="false" spacing="compact"> | |||
| <t>Type: 12</t> | <dt>Type:</dt><dd>12</dd> | |||
| <dt>Description:</dt><dd>Flexible Algorithm Include-All Reverse Admin | ||||
| <t>Description: Flexible Algorithm Include-All Reverse Admin Group | Group</dd> | |||
| </t> | <dt>Reference:</dt><dd>RFC 9917, <xref target="OSPFFLEXALGINCALLTLV" f | |||
| ormat="default"/></dd> | ||||
| <t>Reference: This document (<xref | </dl> | |||
| target="OSPFFLEXALGINCALLTLV"/>).</t> | </section> | |||
| </list></t> | <section anchor="PATHCOMPREGISTRY" numbered="true" toc="default"> | |||
| <name>IGP Flex-Algorithm Path Computation Rules Registry</name> | ||||
| </section> | <t>IANA has created a new registry called "IGP Flex-Algorithm Path Compu | |||
| tation | ||||
| <section anchor="PATHCOMPREGISTRY" title="IGP Flex-Algorithm Path Computati | Rules" within the "Interior Gateway Protocol (IGP) Parameters" | |||
| on Rules Registry"> | ||||
| <t>This document creates a new registry called "IGP Flex-Algorithm Pat | ||||
| h Computation | ||||
| Rules Registry" within the "Interior Gateway Protocol (IGP) Parameters | ||||
| " | ||||
| registry group. The registration procedure for the new registry is | registry group. The registration procedure for the new registry is | |||
| "Expert Review". <xref target="NEW_REG"/> provides guidance for Design | Expert Review <xref target="RFC8126"/>. <xref target="NEW_REG" format= | |||
| ated Experts.</t> | "default"/> provides guidance for designated experts.</t> | |||
| <t>The "IGP Flex-Algorithm Path Computation Rules" registry specifies th | ||||
| <t>The "IGP Flex-Algo Path Computation Rules" specifies the ordered | e ordered | |||
| set of rules that are used to prune links from the topology during | set of rules that are used to prune links from the topology during | |||
| the Flex-Algorithm path computation.</t> | the Flex-Algorithm path computation.</t> | |||
| <t>There is no upper bound on the number of rules that the registry supp | ||||
| orts.</t> | ||||
| <!--[rfced] For the sake of the reader, would you like to add a sentence | ||||
| to explain "FAEMB" and "FAEMB", which are used in the descriptions within | ||||
| Table 1? It could appear directly before table, perhaps: | ||||
| <t>There is no upper bound on the number of rules that the registry su | In Table 1, "FAEMB" means "Flex-Algorithm Exclude Minimum Bandwidth", | |||
| pports.</t> | and "FAEMD" means "Flex-Algorithm Exclude Maximum Delay". | |||
| --> | ||||
| <table align="center" pn="table-6"> | <table align="center"> | |||
| <name slugifiedName="name-is-is-sub-sub-tlvs-for-flexi">IGP Flex-alg | <name>IGP Flex-Algorithm Path Calculation Rules</name> | |||
| o Path Calculation Rules</name> | <thead> | |||
| <thead> | <tr> | |||
| <tr> | <th>Sequence Number</th> | |||
| <th align="left" colspan="1" rowspan="1">Sequence Number</th> | <th>Description</th> | |||
| <th align="left" colspan="1" rowspan="1">Description</th> | <th>Reference</th> | |||
| <th align="left" colspan="1" rowspan="1">Reference</th> | </tr> | |||
| </tr> | </thead> | |||
| </thead> | <tbody> | |||
| <tbody> | <tr> | |||
| <tr> | <td>1</td> | |||
| <td align="left" colspan="1" rowspan="1">1</td> | <td>Check if any exclude | |||
| <td align="left" colspan="1" rowspan="1">Check if any exclude | ||||
| Administrative Group rule is part of the Flex-Algorithm Definiti on. | Administrative Group rule is part of the Flex-Algorithm Definiti on. | |||
| If such exclude rule exists, check if any color that is part of the | If such exclude rule exists, check if any color that is part of the | |||
| exclude rule is also set on the link. If such a color is set, | exclude rule is also set on the link. If such a color is set, | |||
| the link MUST be pruned from the computation</td> | the link <bcp14>MUST</bcp14> be pruned from the computation</td> | |||
| <td align="left" colspan="1" rowspan="1">Section 13 of <xref tar | <td><xref target="RFC9350" section="13"/></td> | |||
| get="RFC9350"/></td> | </tr> | |||
| </tr> | <tr> | |||
| <tr> | <td>2</td> | |||
| <td align="left" colspan="1" rowspan="1">2</td> | <td>Check if any exclude SRLG rule | |||
| <td align="left" colspan="1" rowspan="1">Check if any exclude SR | ||||
| LG rule | ||||
| is part of the Flex-Algorithm Definition. If such exclude rule e xists, | is part of the Flex-Algorithm Definition. If such exclude rule e xists, | |||
| check if the link is part of any SRLG that is also part of the | 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 MU ST | SRLG exclude rule. If the link is part of such SRLG, the link <b cp14>MUST</bcp14> | |||
| be pruned from the computation.</td> | be pruned from the computation.</td> | |||
| <td align="left" colspan="1" rowspan="1">Section 13 of <xref tar | <td><xref target="RFC9350" section="13"/></td> | |||
| get="RFC9350"/></td> | </tr> | |||
| </tr> | <tr> | |||
| <tr> | <td>3</td> | |||
| <td align="left" colspan="1" rowspan="1">3</td> | <td>Check if any include-any | |||
| <td align="left" colspan="1" rowspan="1">Check if any include-an | ||||
| y | ||||
| Administrative Group rule is part of the Flex-Algorithm Definiti on. If | Administrative Group rule is part of the Flex-Algorithm Definiti on. If | |||
| such include-any rule exists, check if any color that is part of the | 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 se t, | include-any rule is also set on the link. If no such color is se t, | |||
| the link MUST be pruned from the computation</td> | the link <bcp14>MUST</bcp14> be pruned from the computation.</td | |||
| <td align="left" colspan="1" rowspan="1">Section 13 of <xref tar | > | |||
| get="RFC9350"/></td> | <td><xref target="RFC9350" section="13"/></td> | |||
| </tr> | </tr> | |||
| <tr> | <tr> | |||
| <td align="left" colspan="1" rowspan="1">4</td> | <td>4</td> | |||
| <td align="left" colspan="1" rowspan="1">Check if any include-al | <td>Check if any include-all | |||
| l | ||||
| Administrative Group rule is part of the Flex-Algorithm Definiti on. | Administrative Group rule is part of the Flex-Algorithm Definiti on. | |||
| If such include-all rule exists, check if all colors that are pa rt | If such include-all rule exists, check if all colors that are pa rt | |||
| of the include-all rule are also set on the link. If all such co lors | of the include-all rule are also set on the link. If all such co lors | |||
| are not set on the link, the link MUST be pruned from the comput | are not set on the link, the link <bcp14>MUST</bcp14> be pruned | |||
| ation.</td> | from the computation.</td> | |||
| <td align="left" colspan="1" rowspan="1">Section 13 of <xref tar | <td><xref target="RFC9350" section="13"/></td> | |||
| get="RFC9350"/></td> | </tr> | |||
| </tr> | <tr> | |||
| <tr> | <td>5</td> | |||
| <td align="left" colspan="1" rowspan="1">5</td> | <td>If the Flex-Algorithm Definition | |||
| <td align="left" colspan="1" rowspan="1">If the Flex-Algorithm D | uses something other than the IGP metric (<xref target="RFC9350" | |||
| efinition | section="5"/>), | |||
| uses something other than the IGP metric (Section 5 of <xref tar | ||||
| get="RFC9350"/>), | ||||
| and such metric is not advertised for the particular link in a t opology for | and such metric is not advertised for the particular link in a t opology for | |||
| which the computation is done, such link MUST be pruned from the | which the computation is done, such link <bcp14>MUST</bcp14> be | |||
| computation. | pruned from the computation. | |||
| A metric of value 0 MUST NOT be assumed in such a case.</td> | A metric of value 0 <bcp14>MUST NOT</bcp14> be assumed in such a | |||
| <td align="left" colspan="1" rowspan="1">Section 13 of <xref tar | case.</td> | |||
| get="RFC9350"/></td> | <td><xref target="RFC9350" section="13"/></td> | |||
| </tr> | </tr> | |||
| <tr> | <tr> | |||
| <td align="left" colspan="1" rowspan="1">6</td> | <td>6</td> | |||
| <td align="left" colspan="1" rowspan="1"> Check if any exclude F | <td> Check if any exclude FAEMB | |||
| AEMB | ||||
| rule is part of the Flex-Algorithm definition. If such exclude r ule | rule is part of the Flex-Algorithm definition. If such exclude r ule | |||
| exists and the link has Maximum Link Bandwidth advertised, chec k if the | exists and the link has Maximum Link Bandwidth advertised, chec k if the | |||
| link bandwidth satisfies the FAEMB rule. If the link does not sa tisfy the | link bandwidth satisfies the FAEMB rule. If the link does not sa tisfy the | |||
| FAEMB rule, the link MUST be pruned from the Flex-Algorithm comp | FAEMB rule, the link <bcp14>MUST</bcp14> be pruned from the Flex | |||
| utation</td> | -Algorithm computation</td> | |||
| <td align="left" colspan="1" rowspan="1">Section 6 of <xref targ | <td><xref section="6" target="RFC9843"/></td> | |||
| et="I-D.ietf-lsr-flex-algo-bw-con"/></td> | </tr> | |||
| </tr> | <tr> | |||
| <tr> | <td>7</td> | |||
| <td align="left" colspan="1" rowspan="1">7</td> | <td>Check if any exclude FAEMD rule | |||
| <td align="left" colspan="1" rowspan="1">Check if any exclude FA | ||||
| EMD rule | ||||
| is part of the Flex-Algorithm definition. If such exclude rule e xists | is part of the Flex-Algorithm definition. If such exclude rule e xists | |||
| and the link has Min Unidirectional link delay advertised, check if the | and the link has Min Unidirectional link delay advertised, check if the | |||
| link delay satisfies the FAEMD rule. If the link does not satisf y the | link delay satisfies the FAEMD rule. If the link does not satisf y the | |||
| FAEMD rule, the link MUST be pruned from the Flex-Algorithm comp | FAEMD rule, the link <bcp14>MUST</bcp14> be pruned from the Flex | |||
| utation.</td> | -Algorithm computation.</td> | |||
| <td align="left" colspan="1" rowspan="1">Section 6 of <xref targ | <td><xref section="6" target="RFC9843"/></td> | |||
| et="I-D.ietf-lsr-flex-algo-bw-con"/></td> | </tr> | |||
| </tr> | <tr> | |||
| <td>8</td> | ||||
| <tr> | <td>Check if any exclude | |||
| <td align="left" colspan="1" rowspan="1">8</td> | ||||
| <td align="left" colspan="1" rowspan="1">Check if any exclude | ||||
| reverse Admin Group rule is part of the Flex-Algorithm | reverse Admin Group rule is part of the Flex-Algorithm | |||
| definition. If such exclude rule exists, check if any Admin Grou p that is | definition. If such exclude rule exists, check if any Admin Grou p that is | |||
| part of the exclude rule is also set on the link in the reverse direction. | 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 | If such Admin Group is set on the link in the reverse direction, the link <bcp14>MUST</bcp14> | |||
| be pruned from the computation.</td> | be pruned from the computation.</td> | |||
| <td align="left" colspan="1" rowspan="1">This document, <xref ta | <td><xref target="FLEXALGPATHCALC"/> of RFC 9917</td> | |||
| rget="FLEXALGPATHCALC"/></td> | </tr> | |||
| </tr> | <tr> | |||
| <tr> | <td>9</td> | |||
| <td align="left" colspan="1" rowspan="1">9</td> | <td>Check if any include-any | |||
| <td align="left" colspan="1" rowspan="1">Check if any include-an | ||||
| y | ||||
| reverse Admin Group rule is part of the Flex-Algorithm | reverse Admin Group rule is part of the Flex-Algorithm | |||
| definition. If such include-any rule exists, check if any Admin Group that | 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 r everse | is part of the include-any rule is also set on the link in the r everse | |||
| direction. If no such Admin Group is set on the link in the reve rse direction, | direction. If no such Admin Group is set on the link in the reve rse direction, | |||
| the link MUST be pruned from the computation</td> | the link <bcp14>MUST</bcp14> be pruned from the computation</td> | |||
| <td align="left" colspan="1" rowspan="1">This document, <xref ta | <td><xref target="FLEXALGPATHCALC"/> of RFC 9917</td> | |||
| rget="FLEXALGPATHCALC"/></td> | </tr> | |||
| </tr> | <tr> | |||
| <tr> | <td>10</td> | |||
| <td align="left" colspan="1" rowspan="1">10</td> | <td>Check if any include-all | |||
| <td align="left" colspan="1" rowspan="1">Check if any include-al | ||||
| l | ||||
| reverse Admin Group rule is part of the Flex-Algorithm | reverse Admin Group rule is part of the Flex-Algorithm | |||
| definition. If such include-all rule exists, check if all Admin Groups | 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 i n the reverse | that are part of the include-all rule are also set on the link i n the reverse | |||
| direction. If all such Admin Groups are not set on the link in t he reverse direction, | direction. If all such Admin Groups are not set on the link in t he reverse direction, | |||
| the link MUST be pruned from the computation.</td> | the link <bcp14>MUST</bcp14> be pruned from the computation.</td | |||
| <td align="left" colspan="1" rowspan="1">This document, <xref t | > | |||
| arget="FLEXALGPATHCALC"/></td> | <td><xref target="FLEXALGPATHCALC"/> of RFC 9917</td> | |||
| </tr> | </tr> | |||
| </tbody> | </tbody> | |||
| </table> | </table> | |||
| </section> | </section> | |||
| </section> | ||||
| <section anchor="Security" title="Security Considerations"> | ||||
| <t>This document inherits security considerations from <xref | ||||
| target="RFC9350"/>.</t> | ||||
| </section> | </section> | |||
| <section anchor="Security" numbered="true" toc="default"> | ||||
| <section anchor="Acknowledgements" title="Acknowledgements"> | <name>Security Considerations</name> | |||
| <t>TBD</t> | <t>This document inherits security considerations from <xref target="RFC93 | |||
| 50" format="default"/>.</t> | ||||
| </section> | </section> | |||
| </middle> | </middle> | |||
| <back> | <back> | |||
| <references title="Normative References"> | <references> | |||
| <name>Normative References</name> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.211 | ||||
| 9.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.817 | ||||
| 4.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.730 | ||||
| 8.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.935 | ||||
| 0.xml"/> | ||||
| <?rfc include='reference.RFC.2119'?> | <!-- [RFC9843] | |||
| draft-ietf-lsr-flex-algo-bw-con-22 | ||||
| companion doc RFC YYY1 | ||||
| Published 09/12/25 | ||||
| --> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.984 | ||||
| 3.xml"/> | ||||
| </references> | ||||
| <references> | ||||
| <name>Informative References</name> | ||||
| <xi:include | ||||
| href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml"/> | ||||
| </references> | ||||
| <!--[rfced] The Acknowledgments section is currently populated with "TBD". | ||||
| Please let us know if/what text should be added here. | ||||
| --> | ||||
| <section anchor="Acknowledgments" numbered="false" toc="default"> | ||||
| <name>Acknowledgments</name> | ||||
| <t>TBD</t> | ||||
| </section> | ||||
| <?rfc include='reference.RFC.8174'?> | <!-- [rfced] FYI - We have added expansions for the following abbreviations | |||
| per Section 3.6 of RFC 7322 ("RFC Style Guide"). Please review each | ||||
| expansion in the document carefully to ensure correctness. | ||||
| <?rfc include='reference.RFC.7308'?> | Cyclic Redundancy Check (CRC) | |||
| Link State Advertisement (LSA) | ||||
| Label Switched Path (LSP) | ||||
| Shortest Path First (SPF) | ||||
| --> | ||||
| <?rfc include='reference.RFC.9350'?> | <!-- [rfced] Please review the "Inclusive Language" portion of the online | |||
| Style Guide <https://www.rfc-editor.org/styleguide/part2/#inclusive_language> | ||||
| and let us know if any changes are needed. Updates of this nature typically | ||||
| result in more precise language, which is helpful for readers. | ||||
| <?rfc include='reference.I-D.ietf-lsr-flex-algo-bw-con'?> | Note that our script did not flag any words in particular, but this should | |||
| still be reviewed as a best practice. | ||||
| --> | ||||
| </references> | ||||
| </back> | </back> | |||
| </rfc> | </rfc> | |||
| End of changes. 113 change blocks. | ||||
| 562 lines changed or deleted | 577 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||