Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Flexible Algorithms in IGP for Segment Routing

A flexible algorithm allows IGPs alone to compute constraint based paths over the network thereby providing simple traffic engineering without using a network controller. This is a light weight solution for networks that have not implemented a controller with full fledged segment routing but still want to reap the benefits of segment routing in their network.

Understanding IGP Flexible Algorithms for Segment Routing

Define flexible algorithms that compute paths using different parameters and link constraints to thin slice a network based on your requirements. For example, you can define a flexible algorithm that computes a path to minimize IGP metric and define another flexible algorithm to compute a path based on traffic engineering metric to divide the network into separate planes. This feature allows networks without a controller to configure traffic engineering using segment routing without actually implementing a network controller. You can use the prefix SIDs to steer packets along the constraint-based paths. You can configure the prefix SIDs for flexible algorithm through policy configurations.

IGP protocols use a link metric to calculate a best path. However, the best IGP path might not always be the best path for certain types of traffic. Therefore, the IGP computed best path based on the shortest IGP metric is often replaced with traffic engineered path due to the traffic requirements that are not reflected by the IGP metric. Typically RSVP-TE or SR TE is used for computing the path based on additional metrics and constraints to overcome this limitation. Junos installs such paths in the forwarding tables in addition to or as a replacement for the original path computed by the IGPs.

Benefits of Configuring Flexible Algorithm

  • A lightweight version of segment routing traffic engineering that can be used in the core of the network.

  • Allows you to configure traffic engineering using segment routing even without installing a network controller.

  • Compute TI-LFA backup path using the same flexible algorithm definition and constraints computation.

  • Ability to provision constrained primary path based on a single label.

What is Flexible Algorithm Definition (FAD)?

A flexible algorithm allows IGP to calculate additional best paths based on specified constraints thereby providing simple traffic engineering without using a network controller. This is a lightweight solution for networks that have not implemented a controller with full fledged segment routing but still want to reap the benefits of segment routing in their network. Every operator can define separate constraints or colors depending on their requirements.

To define a flexible algorithm, include flex-algorithm id statement at the [edit routing-options] hierarchy level. The flexible algorithm definition (FAD) is assigned with an identifier ranging from 128 through 255. This flexible algorithm can be defined on one or more routers in a network. A flexible algorithm computes a best path based on the following parameters:

  • Calculation type—SPF or strict SPF are the two available calculation type options. You can specify one of these calculation types in your FAD. Select the SPF calculation type if you want to influence the SPF computation on your device based on a certain local policy such as traffic engineering shortcuts. If you select strict SPF then the local policy cannot influence the SPF path selection.

  • Metric type- IGP metric, TE metric, or delay metric are the available metric type options. You can specify one of these metric types in your FAD depending on your network requirement. If you do not want to use the IGP metric for a specific link you can configure a TE metric that IS-IS can use for calculating the route.

  • Priority- You can assign a priority to your FADs as per your requirement and IS-IS prioritizes a particular FAD advertisement over another FAD based on your assigned priority.

    Note:

    For FADs with link-constraints to work, all relevant links should advertise the admin-colors in IS-IS, which means either RSVP is enabled on the interfaces or set protocols isis traffic-engineering advertise always is configured.

  • Set of Link constraints- You can configure admin-groups for many protocols at the [edit protocols mpls admin-groups] hierarchy level to color an individual link. These admin-groups can then be defined as include any, include-all or exclude at the [edit routing-options flex-algorithm definition admin-groups] hierarchy level.

We recommend configuring flexible algorithm definitions on only a few routers to provide redundancy and to avoid conflicts. Flexible algorithm definition is advertised in IGP as FAD sub-TLVs. In very large networks, we do not recommend configuring more than 8 flexible algorithms as each flexible algorithm will compute its own path and might cause performance issues beyond that.

Its also recommended that you configure multiple FAD servers in a specific ISIS Level before configuring any devices to participate in that FAD. In the case of an ISIS L1/L2 node (ABR), it's also recommended that you configure the FAD at both ISIS Level 1 and Level 2. If a FAD is configured only on a single ABR, traffic drops over flex algorithm paths are possible if the routing process restarts on that ABR. Its therefore a good design practice to have multiple ABRs, each of which has the FAD configured at both ISIS levels.

The default FAD has the following parameters:

  • calculation type: spf

  • metric type: igp-metric

  • priority: 0

  • Link constraints: none

Note:

Modifying the flexible algorithm definition in a live network or on the fly could cause traffic disruptions until all the nodes converge on the new paths.

We support flexible Algorithm Definition (FAD)” and “Flexible Algorithm Prefix Metric (FAPM)” in TED and implements two new corresponding TLVs "FAD TLV" and "FAPM TLV" in BGP-LS. The value of FAD TLV contains Flex-Algorithm, Metric-Type, Calculation-Type and Priority, all of which are one byte each. The TLV might have zero or more sub-TLVs included in it. The five sub-tlvs are Flex Algo Exclude Any Affinity, Flex Algo Include Any Affinity, Flex Algo Include All Affinity, Flex Algo Definition Flags and Flex Algo Exclude SRLG.

The FAD TLV can only be added to the BGP-LS Attribute of the Node NLRI if the corresponding node originates in the underlying IGP TLV or sub-TLV. The BGP-LS Attribute associated with a Node NLRI might include one or more FAD TLVs corresponding to the Flexible Algorithm Definition for each algorithm that the node is advertising.

The value of FAPM TLV contains Flex-Algorithm (1 byte), Reserved (3 bytes) and Metric (4 bytes). The FAPM TLV can be added to the BGP-LS Attribute of the Prefix NLRI originated by a node, only if the corresponding node originates from the Prefix.

We've defined the Flexible Algorithm Prefix Metric (FAPM) to allow optimal end-to-end path for an interarea prefix. The area border router (ABR) must include the FAPM when advertising the prefix between areas that is reachable in that given Flexible Algorithm (flex algo). When a prefix is unreachable, the ABR must not include that prefix in that flex algo when advertising between areas. The defined FAPM provides inter-area support.

We support delay normalization and Flexible Algorithm Definition (FAD) defined constraints related to admin-groups and shared risk link group (SRLG) as defined in RFC 9350, IGP Flexible Algorithm.

During flexible algorithm computation, when the measured latency values are not equal and the difference is insignificant, IS-IS advertises this slightly higher latency value as a metric. IS-IS uses this normalized latency delay value instead of the measured delay value.

To configure flexible algorithm application specific SRLG values, include the application-specific statement at the [edit protocols isis interface interface-name level level] hierarchy level. To exclude SRLG constraint in an FAD, include the exclude-srlg statement at the [edit routing-options flex-algorithm name definition] hierarchy level.

You can control path selection by configuring the preference for OSPF Flexible Algorithm routes in inetcolor.0 and mpls.0 routing tables.

Configure flex-algorithm-preference statement at the [edit protocols ospf] hierarchy level to prioritize desired routes and improve traffic engineering across IP and MPLS domains.

Participation in a Flexible Algorithm

You can configure specific routers to participate in a particular flexible algorithm as per your requirement. Paths computed based on a flexible algorithm definition is used by various applications each potentially using its own specific data plane for forwarding the data over such paths. The participating device must explicitly advertise its participation in a particular flexible algorithm to every application in the segment routing flexible algorithm sub TLV for IS-IS. You can configure a node to participate in a certain flexible algorithm provided it can support the constraints specified in that FAD.

To configure participation in a flexible algorithm include the flex-algorithm statement at the [edit protocols isis source-packet- routing] hierarchy level. The same device can advertise a FAD and also participate in a flexible algorithm.

Network Topology Configured with Flexible Algorithm Definitions

Figure 1 shows the sample topology, there are 8 routers R0, R1, R2, R3, R4, R5, R6, and R7. Four flexible algorithms, 128, 129, 130, and 135 are defined and configured with admin-groups as listed in the following table:

Table 1: Flex Algorithm Definition (FAD) – Color Rules

Flex Algorithm Definition (FAD)

Color

128

Include any Red

129

Include any Green

130

Include any Green and Blue

135

Exclude Red

Figure 1: Flexible Algorithm Topology Flexible Algorithm Topology

Figure 2 shows how FAD 128 routes traffic on any interface that is configured with admin group red.

Figure 2: Traffic Flow for Flexible Algorithm Definition 128 Traffic Flow for Flexible Algorithm Definition 128

Figure 3 shows how FAD 129 routes traffic on any interface that is configured with admin group green.

Figure 3: Traffic Flow for Flexible Algorithm Definition 129 Traffic Flow for Flexible Algorithm Definition 129

Figure 4 shows how FAD 130 routes traffic on any interface that is configured with admin group green and blue.

Figure 4: Traffic flow for Flexible Algorithm Definition 130 Traffic flow for Flexible Algorithm Definition 130

Figure 5 shows how FAD 135 routes traffic on any interface that is not configured with admin group red.

Figure 5: Traffic Flow for Flexible Algorithm Definition 135 Traffic Flow for Flexible Algorithm Definition 135

Flexible Algorithm RIBs

For every flexible algorithm that a router participates in, the corresponding flexible algorithm routes are installed in the corresponding flexible algorithm RIB groups also known as routing tables. By default, labeled flexible algorithm routes are installed in the inet.color, inet(6)color.0 and mpls.0 RIBs. They could also be installed in colored RIBs, such as junos-rti-tc-<color>.inet(6).3 when use-transport-class statement is configured under routing-options flex-algorithm <id>. For more information, see Flexible Algorithm and Flexible Algorithm Prefix Metrics Leaking across IS-IS Multi-Instance Flexible Algorithm and Flexible Algorithm Prefix Metrics Leaking across IS-IS Multi-Instance

BGP Community and Flexible Algorithms

A flexible algorithm can be associated with a color. When a service prefix, such as a VPN service carries a BGP color extended community, by default the BGP service prefix resolves a flex-algo route that has the same associated color value. The flexible algorithm ingress routes that are installed in the inet(6)color.0 tables will have this color value associated with the route. However, you can configure a different associate color value at the [edit routing-options flex-algorithm id color color] hierarchy level.

Note:

Changing the associated color value in a flexible algorithm might result in traffic disruption. If you modify the color in a flexible algorithm definition, all routes pertaining to that flexible algorithm are removed from the RIB and added again with the new color.

You can leak BGP-LU prefixes into the IGP with flexible algorithm prefix-SIDs. For more information, see Leaking BGP-LU Prefixes into Flexible Algorithm.

You can now leak BGP-CT prefixes into flexible algorithm and vice-versa. For more information, see Leaking BGP-CT Prefixes into Flexible Algorithm.

Application-specific Link Attribute based flexible algorithm

You can advertise different te-attributes such as te-metric, delay-metric, or admin-groups for RSVP and flexible algorithms on the same link. This is done using flexible algorithm specific application-specific link attribute as defined in RFC 8920.

The advantage of having a flexible algorithm application-specific link attribute advertise te-metric, delay-metric, or admin-groups is that a single link can advertise different te-link-attributes for legacy applications such as RSVP and different te-link-attributes for flexible algorithms.

To configure flexible algorithm application-specific te-attribute, include the application-specific statement at the [edit protocols ospf area interface] hierarchy level and the strict-asla-based-flex-algorithm statement at the [edit protocols ospf source-packet-routing] hierarchy level. With this implementation, it is no longer mandatory for the link to have RSVP enabled and [edit protocols ospf traffic-engineering advertisement always] to be configured which is the case with the existing behavior of advertising traffic engineering attributes.

Note:

The Junos OS and Junos OS Evolved implementation of application-specific link attribute supports flexible algorithm applications only.

Strict Application-Specific Link Attribute based flexible algorithm

The default behavior of application-specific flexible algorithm is to use the flexible algorithm application-specific te-attributes for a link if available, and if not, then fall back to the common application-specific te-attributes, and if neither are available, use the legacy te-attributes.

The configuration statement strict-asla-based-flex-algorithm at the [edit protocols ospf source-packet-routing] has to be applied to all the flexible algorithms running on the devices in the network to avoid routing loops.

If strict-asla-based-flex-algorithm is configured on all the devices, either a common application-specific te-attribute or flexible algorithm application-specific te-attribute must be advertised for each flexible algorithm link. In the absence of application-specific te-attributes, the device does not fall back to the legacy te-attributes and simply ignores the link.

The Operating System supports the following features in conjunction with application-specific link attribute based flexible algorithm:

  • The application-specific te-attribute subTLV to comply with RFC 8920. The application-specific te-attributes sub-TLV is a sub-TLV of the OSPFv2 extended link TLV as defined in RFC 7684.

  • Partially supports standard application identifier bit mask to advertise X-bit for flexible algorithms. Only the te-metric, delay-metric, or admin-groups are advertised as part of the application-specific link attribute sub-TLV.

The Operating System does not support the following features in conjunction with application-specific link attribute based flexible algorithm:

  • Advertising user-defined application identifier bit masks is not supported.
  • Readvertising flexible algorithm application-specific link attribute or rather any application-specific link attributes with BGP-LS is not supported because Traffic Engineering Database (TED) does not support application-specific link attribute.
  • Advertising a common application-specific link attribute with standard application identifier bit mask and user-defined application identifier bit masks length set to zero is not supported.

  • Advertising SRLG link constraint in flexible algorithm is not supported.

  • Supporting traffic engineering for multiple applications is not supported, except for flexible algorithms.

  • Defining admin-groups independent of MPLS is not supported.

Supported and Unsupported Features

Junos OS supports flexible algorithms in the following scenarios:

  • Support for configuring and advertising prefix SIDs for different flexible algorithms.

  • Partially supports RFC 9350, IGP Flexible Algorithm

  • Inter-level (IS_IS) leaking of flexible algorithm prefix SIDs is supported.

  • The current implementation for flexible algorithms is supported for only OSPFv2 only as only OSPFv2 supports segment routing.

Junos OS does not support the following features in conjunction with flexible algorithms:

  • Flexible algorithm is applicable only for default unicast topology, OSPFv2 multi-topology is not supported.

  • IS-IS shortcuts and other IS-IS traffic engineering configuration options are not applicable for flexible algorithm computation

  • Prefix and SID conflict resolution is not supported.

  • Remote loop free alternate functionality is not supported because TI-LFA is the preferred FRR computation

  • OSPFv2 shortcuts and other OSPFv2 traffic engineering configuration options are not applicable for flexible algorithm computation.
  • Advertising flexible algorithm definition in the absence of flexible algorithm participation is not supported for OSPFv2.

  • Extended Admin-Groups (EAG) are not supported because they are not supported in IS-IS.

Change History Table

Feature support is determined by the platform and release you are using. Use Feature Explorer to determine if a feature is supported on your platform.

Release
Description
25.4R1
Starting in Junos OS and Junos OS Evolved Release 25.4R1, you can control path selection by configuring the preference for OSPF Flexible Algorithm routes in inetcolor.0 and mpls.0 routing tables.
22.4R1
Starting in Junos OS Release 22.4R1, we've defined the Flexible Algorithm Prefix Metric (FAPM) to allow optimal end-to-end path for an interarea prefix.
22.2R1
Starting in Junos OS and Junos OS Evolved Release 22.2R1, you can advertise different te-attributes such as te-metric, delay-metric, or admin-groups for RSVP and flexible algorithms on the same link.