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 "&#160;">
<!ENTITY zwsp "&#8203;">
<!ENTITY nbhy "&#8209;">
<!ENTITY wj "&#8288;">
]>
<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&nbsp;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.