RFC 9350 defines the IGP Flexible Algorithm (Flex-Algo) framework, which allows IGPs (IS-IS and OSPF) to compute constraint-based paths without requiring an external controller or RSVP-TE signaling. Each Flexible Algorithm is identified by a numeric value in the range 128-255 and defines a set of computation parameters: a metric type, a calculation type, and optional constraints such as link affinities.
Flex-Algo enables operators to create multiple logical topologies over a single physical network. For example, Algorithm 128 might compute shortest paths based on latency while Algorithm 129 computes paths that avoid certain link colors. Nodes that participate in a given algorithm advertise their participation and compute the corresponding shortest path tree independently, using the distributed IGP.
The framework is data-plane agnostic and works with both SR-MPLS (via Prefix SIDs with an algorithm field) and SRv6 (via per-algorithm SRv6 Locators). This makes Flex-Algo one of the most widely deployed mechanisms for network slicing and traffic engineering in SR networks.
Not all nodes need to participate in every algorithm, but a node that does not participate will not be in the SPF tree for that algorithm, making it unreachable via that Flex-Algo.
The Flex-Algorithm Definition (FAD) must be advertised by at least one node. The definition with the highest advertising router ID wins the election -- not the lowest.
Misconfiguring affinity constraints can partition the Flex-Algo topology, leaving some nodes unreachable. Always verify end-to-end connectivity in the constrained topology.
Forgetting to assign the correct admin-group (affinity) colors to links before deploying a Flex-Algo that references them.
Using delay-based metric (Type 1) without deploying link-delay measurement. Without actual delay values, the metric defaults to maximum and paths become unpredictable.