Skip to content

RFC 9350 - IGP Flexible Algorithm

Field Value
Title IGP Flexible Algorithm
Authors P. Psenak, S. Hegde, C. Filsfils, K. Talaulikar, A. Gulko
Date February 2023
Status Proposed Standard
Link datatracker.ietf.org/doc/rfc9350

Summary

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.

Key Sections

Section Topic Description
3 Flex-Algorithm Definition The advertisement containing metric type, calc-type, and constraints
4 Flex-Algorithm Participation How a node signals it supports a given algorithm
5 Flex-Algorithm Definition Election How the winning definition is selected (highest router ID)
6 Metric Types IGP metric, TE metric, minimum unidirectional link delay
7 Calculation Types SPF (0) and Strict SPF (1)
8 Affinity Constraints Include-any, include-all, exclude-any for link affinities

Algorithm IDs

Range Assignment
0 Standard SPF (default)
1 Strict SPF
2-127 Reserved by IANA
128-255 Flexible Algorithms (operator-defined)

Flex-Algo Definition (FAD) Parameters

Parameter Description Example
Algorithm ID in range 128-255 128
Metric Type Which metric to use for SPF 0 = IGP, 1 = Min Unidirectional Delay, 2 = TE Metric
Calculation Type Path computation method 0 = SPF
Priority Used in definition election 237
Include-Any Affinity Link must have at least one of these colors red, blue
Include-All Affinity Link must have all of these colors gold
Exclude-Any Affinity Link must not have any of these colors maintenance

Flex-Algo with SR-MPLS vs SRv6

Aspect SR-MPLS SRv6
SID binding Prefix SID with Algorithm field set to 128-255 SRv6 Locator advertised under the algorithm
IGP advertisement IS-IS: Prefix SID sub-TLV / OSPF: SID/Label sub-TLV IS-IS: SRv6 Locator TLV / OSPFv3: SRv6 Locator LSA
Path computation SPF on topology filtered by FAD constraints Same
Result Per-algorithm label forwarding table Per-algorithm SRv6 SID table

Common Pitfalls

  • 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.

References

  1. RFC 9350 - IGP Flexible Algorithm
  2. RFC 8402 - Segment Routing Architecture
  3. RFC 8667 - IS-IS Extensions for Segment Routing
  4. RFC 8665 - OSPF Extensions for Segment Routing