A router
MUST be configured to participate in a given Flex-Algorithm K and
MUST select the FAD based on the rules defined in
Section 5.3 before it can compute any path for that Flex-Algorithm.
No specific two-way connectivity check is performed during the Flex-Algorithm path computation. The result of the existing Flex-Algorithm-agnostic, two-way connectivity check is used during the Flex-Algorithm path computation.
As described in
Section 11, participation for any particular Flex-Algorithm
MUST be advertised on a per data plane basis. Calculation of the paths for any particular Flex-Algorithm is data plane specific.
Multiple data planes
MAY use the same Flex-Algorithm value at the same time and, as such, share the FAD for it. Traffic for each data plane will be forwarded based on the data-plane-specific forwarding entries.
The Flex-Algorithm Definition is data plane independent and is used by all Flex-Algorithm data planes.
The way various data planes handle nodes that do not participate in Flexible Algorithm is data plane specific. If the data plane only wants to consider participating nodes during the Flex-Algorithm calculation, then when computing paths for a given Flex-Algorithm, all nodes that do not advertise participation for that Flex-Algorithm in their data-plane-specific advertisements
MUST be pruned from the topology. Segment Routing, including both SR-MPLS and SRv6, are data planes that
MUST use such pruning when computing Flex-Algorithm paths.
When computing the path for a given Flex-Algorithm, the metric-type that is part of the Flex-Algorithm Definition (
Section 5)
MUST be used.
When computing the path for a given Flex-Algorithm, the calculation-type that is part of the Flex-Algorithm Definition (
Section 5)
MUST be used.
Various links that include or exclude rules can be part of the Flex-Algorithm Definition. To refer to a particular bit within an Admin Group or Extended Admin Group, we use the term "color".
Rules, in the order as specified below,
MUST be used to prune links from the topology during the Flex-Algorithm computation.
For all links in the topology:
-
Check if any exclude Administrative Group rule is part of the Flex-Algorithm Definition. 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, the link MUST be pruned from the computation.
-
Check if any exclude SRLG rule is part of the Flex-Algorithm Definition. If such exclude rule exists, check if the link is part of any SRLG that is also part of the SRLG exclude rule. If the link is part of such SRLG, the link MUST be pruned from the computation.
-
Check if any include-any Administrative Group rule is part of the Flex-Algorithm Definition. If such include-any rule exists, check if any color that is part of the include-any rule is also set on the link. If no such color is set, the link MUST be pruned from the computation.
-
Check if any include-all Administrative Group rule is part of the Flex-Algorithm Definition. If such include-all rule exists, check if all colors that are part of the include-all rule are also set on the link. If all such colors are not set on the link, the link MUST be pruned from the computation.
-
If the Flex-Algorithm Definition uses something other than the IGP metric (Section 5), and such metric is not advertised for the particular link in a topology for which the computation is done, such link MUST be pruned from the computation. A metric of value 0 MUST NOT be assumed in such a case.
Any IGP Shortest Path Tree calculation is limited to a single area. This applies to Flex-Algorithm calculations as well. Given that the computing router does not have visibility of the topology of the next areas or domain, the Flex-Algorithm-specific path to an inter-area or inter-domain prefix will be computed for the local area only. The egress L1/L2 router (ABR in OSPF), or ASBR for an inter-domain case, will be selected based on the best path for the given Flex-Algorithm in the local area, and such egress ABR or ASBR router will be responsible to compute the best Flex-Algorithm-specific path over the next area or domain. This may produce an end-to-end path, which is suboptimal based on Flex-Algorithm constraints. In cases where the ABR or ASBR has no reachability to a prefix for a given Flex-Algorithm in the next area or domain, the traffic could be dropped by the ABR/ASBR.
To allow the optimal end-to-end path for an inter-area or inter-domain prefix for any Flex-Algorithm to be computed, the FAPM has been defined in Sections [
8] and [
9]. For external route calculation for prefixes originated by ASBRs in remote areas in OSPF, the FAAM has been defined in
Section 10.2 for the ABR to indicate its ASBR reachability along with the metric for the specific Flex-Algorithm.
If the FAD selected based on the rules defined in
Section 5.3 includes the M-flag, an ABR or an ASBR
MUST include the FAPM (see Sections [
8] and [
9]) when advertising the prefix that is reachable in a given Flex-Algorithm between areas or domains. Such metric will be equal to the metric to reach the prefix for that Flex-Algorithm in its source area or domain. This is similar in nature to how the metric is set when prefixes are advertised between areas or domains for the default algorithm. When a prefix is unreachable in its source area or domain in a specific Flex-Algorithm, then an ABR or ASBR
MUST NOT include the FAPM for that Flex-Algorithm when advertising the prefix between areas or domains.
If the FAD selected based on the rules defined in
Section 5.3 includes the M-flag, the FAPM
MUST be used during the calculation of prefix reachability for the inter-area and external prefixes. If the FAPM for the Flex-Algorithm is not advertised with the inter-area or external prefix reachability advertisement, the prefix
MUST be considered as unreachable for that Flex-Algorithm. Similarly, in the case of OSPF, for ASBRs in remote areas, if the FAAM is not advertised by the local ABR(s), the ASBR
MUST be considered as unreachable for that Flex-Algorithm, and the external prefix advertisements from such an ASBR are not considered for that Flex-Algorithm.
The Flex-Algorithm prefix metrics and the OSPF Flex-Algorithm ASBR metrics
MUST NOT be used during the Flex-Algorithm computation unless the FAD selected based on the rules defined in
Section 5.3 includes the M-flag, as described in Sections [
6.4] or [
7.4].
In the case of OSPF, when calculating external routes in a Flex-Algorithm, if the winning FAD includes the M-flag, and the advertising ASBR is in a remote area, the metric will be the sum of the following:
-
the FAPM for that Flex-Algorithm advertised with the external route by the ASBR
-
the metric to reach the ASBR for that Flex-Algorithm from the local ABR, i.e., the FAAM for that Flex-Algorithm advertised by the ABR in the local area for that ASBR
-
the Flex-Algorithm-specific metric to reach the local ABR
This is similar in nature to how the metric is calculated for routes learned from remote ASBRs in the default algorithm using the OSPFv2 Type 4 ASBR summary-LSA and the OSPFv3 Inter-Area-Router-LSA.
If the FAD selected based on the rules defined in
Section 5.3 does not include the M-flag, then the IGP metrics associated with the prefix reachability advertisements used by the base IS-IS and OSPF protocol
MUST be used for the Flex-Algorithm route computation. Similarly, in the case of external route calculations in OSPF, the ASBR reachability is determined based on the base OSPFv2 Type 4 summary-LSA and the OSFPv3 Inter-Area-Router-LSA.
It is
NOT RECOMMENDED to use the Flex-Algorithm for inter-area or inter-domain prefix reachability without the M-flag set. The reason is that, without the explicit Flex-Algorithm prefix metric advertisement (and the Flex-Algorithm ASBR metric advertisement in the case of OSPF external route calculation), it is not possible to conclude whether the ABR or ASBR has reachability to the inter-area or inter-domain prefix for a given Flex-Algorithm in the next area or domain. Sending the Flex-Algorithm traffic for such a prefix towards the ABR or ASBR may result in traffic looping or persistent traffic drop.
During the route computation, it is possible for the Flex-Algorithm-specific metric to exceed the maximum value that can be stored in an unsigned 32-bit variable. In such scenarios, the value
MUST be considered to be of value 0xFFFFFFFF during the computation and advertised as such.
The FAPM
MUST NOT be advertised with IS-IS L1 or L2 intra-area, OSPFv2 intra-area, or OSPFv3 intra-area routes. If the FAPM is advertised for these route-types, it
MUST be ignored during the prefix reachability calculation.
The M-flag in the FAD is not applicable to prefixes advertised as SRv6 locators. The IS-IS SRv6 Locator TLV [
RFC 9352] includes the Algorithm and Metric fields. When the SRv6 Locator is advertised between areas or domains, the Metric field in the Locator TLV of IS-IS
MUST be used irrespective of the M-flag in the FAD advertisement.
OSPF external and NSSA external prefix advertisements
MAY include a non-zero forwarding address in the prefix advertisements in the base protocol. In such a scenario, the Flex-Algorithm-specific reachability of the external prefix is determined by Flex-Algorithm-specific reachability of the forwarding address.
In OSPF, the procedures for translation of NSSA external prefix advertisements into external prefix advertisements performed by an NSSA ABR [
RFC 3101] remain unchanged for Flex-Algorithm. An NSSA translator
MUST include the OSPF FAPM sub-TLVs for all Flex-Algorithms that are in the original NSSA external prefix advertisement from the NSSA ASBR in the translated external prefix advertisement generated by it, regardless of its participation in those Flex-Algorithms or its having reachability to the NSSA ASBR in those Flex-Algorithms.
An area could become partitioned from the perspective of the Flex-Algorithm due to the constraints and/or metric being used for it while maintaining the continuity in the base algorithm. When that happens, some destinations inside that area could become unreachable in that Flex-Algorithm. These destinations will not be able to use an inter-area path. This is the consequence of the fact that the inter-area prefix reachability advertisement would not be available for these intra-area destinations within the area. It is
RECOMMENDED to minimize the risk of such partitioning by providing enough redundancy inside the area for each Flex-Algorithm being used.