LFA Tiebreakers (ISIS)
Load basic.isis.sr.enabled.cfg
configure
load bootflash:basic.isis.sr.enabled.cfg
commit replace
y
Configure the R6-R7 link to have a metric of 25.
Configure LFA on R3 for the Gi0/0/0/5 link. Prefer node-protecting LFAs over SRLG-disjoint LFAs, and SRLG-disjoint LFAs over lowest-backup-metric paths.
Answer
#R3
router isis 1
address-family ipv4 unicast
fast-reroute per-prefix tiebreaker node-protecting index 10
fast-reroute per-prefix tiebreaker srlg-disjoint index 20
fast-reroute per-prefix tiebreaker lowest-backup-metric index 30
!
interface GigabitEthernet0/0/0/5
address-family ipv4 unicast
fast-reroute per-prefix
Explanation
Before changing the tiebreakers, let’s look at the default settings.

Above, we see the following tiebreakers under “Remote LFA.” This is a bit deceptive, because they apply only to LFA. (RLFA cannot use these). A lower index has higher preference in ISIS.
Primary path (index 10)
When ECMP paths exist, the backup path is simply the other ECMP path which uses the other, non-protected interface
Lowest backup metric (index 20)
Choose the path with the lowest metric
Line-card disjoint (index 30)
Choose the path that uses an interface on a separate line card
Node protecting (index 40)
Choose the path that does not traverse the nexthop
Each next step is only evaluated if the previous step does not result in a preferred path. For example, line-card disjointness is only evaluated if all candidate paths have the same metric.
Currently we have three LFAs in this topology for 7.7.7.1/32:
via R9
Total metric = 30
Not node protecting
via R6
Total metric = 35
Node protecting
via R4
Total metric = 70
Not node protecting
The current LFA for 7.7.7.1/32 is R9 due to the lowest-backup-metric tiebreaker at index 20:

Let’s now add in our custom tiebreakers. When we do this, these will completely overwrite the default tiebreakers.
#R3
router isis 1
address-family ipv4 unicast
fast-reroute per-prefix tiebreaker node-protecting index 10
fast-reroute per-prefix tiebreaker srlg-disjoint index 20
fast-reroute per-prefix tiebreaker lowest-backup-metric index 30

Now the backup path is via R6, because our first tiebreaker is node protection. Neither R4 nor R9 provide node protection.

Exploring SRLG-Disjointness
Let’s change our tiebreakers around to prefer SRLG-disjointness.
#R3
router isis 1
address-family ipv4 unicast
no fast-reroute per-prefix tiebreaker lowest-backup-metric
no fast-reroute per-prefix tiebreaker node-protecting
no fast-reroute per-prefix tiebreaker srlg-disjoint
!
fast-reroute per-prefix tiebreaker srlg-disjoint index 10
fast-reroute per-prefix tiebreaker lowest-backup-metric index 20
R3 uses R9 as the LFA again because we have not configured SRLG on any interfaces, and the path via R9 is the lowest cost.

While SRLG values are propagated within MPLS-TE, SRLG-disjointness for LFAs only allow us to consider local interfaces on the router. If we place the protected link and the link towards R9 in the same SRLG, R3 will prefer the backup path via R6 due to the first srlg-disjoint tiebreaker.
#R3
srlg
interface GigabitEthernet0/0/0/5
name RED
!
interface GigabitEthernet0/0/0/9
name RED
!
name RED value 1

If we move the lowest-backup-cost tiebreaker above srlg-disjoint, we will prefer R9 again because the path has a lower total metric. The SRLG-disjointness is never evaluated, because R9 wins at the first tiebreaker rule (lowest-backup-metric).
#R3
router isis 1
address-family ipv4 unicast
fast-reroute per-prefix tiebreaker lowest-backup-metric index 5
fast-reroute per-prefix tiebreaker srlg-disjoint index 10

Exploring “secondary-path”
The secondary-path option allows us to prefer a non-ECMP path. To test this out, we can create ECMP paths to R7 by setting the metric on the R6-R7 link to 10.
#R6
router isis 1
interface GigabitEthernet0/0/0/7
address-family ipv4 unicast
no metric
We’ll remove all custom tiebreakers on R3.
#R3
router isis 1
address-family ipv4 unicast
no fast-reroute per-prefix tiebreaker lowest-backup-metric
no fast-reroute per-prefix tiebreaker srlg-disjoint
The LFA for 7.7.7.1/32 is via R6 because it has the lowest metric. Note that LFA is not enabeld on Gi0/0/0/6. If it was, the backup path for the primary path via Gi0/0/0/6 would recipriocally be via Gi0/0/0/5.

We can instruct the router to prefer a non-ECMP path instead. I’m not sure what the use cases or benefits of this would be in particular, though.
#R3
router isis 1
address-family ipv4 unicast
fast-reroute per-prefix tiebreaker secondary-path index 10
The backup path is now via R9:

Exploring “downstream”
The downstream tiebreaker evaluates whether the nexthop has a lower IGP cost to the destination than the PLR. If so, the downstream flag is “true.” By including this above the lowest-backup-metric, you can use a path that has a node that is more downstream, but has a higher IGP metric because the link between the PLR and the neighbor might be a high cost.
Let’s change our topology even further so that the R4-R5 link has a cost of 5, and the R6-R7 link has a cost of 20.
#R4
router isis 1
interface GigabitEthernet0/0/0/5
address-family ipv4 unicast
metric 5
#R6
router isis 1
interface GigabitEthernet0/0/0/7
address-family ipv4 unicast
metric 20
Let’s remove our existing tiebreakers on R3.
#R3
router isis 1
address-family ipv4 unicast
no fast-reroute per-prefix tiebreaker secondary-path
The topology now looks like this:

R3 has only one LFA that has a downstream node, R4. R4 is downstream because its own cost to 7.7.7.1/32 is lower than R3’s cost to 7.7.7.1/32. However, R3 has a high metric link to R4, so the LFA via R6 is preferred.
The LFA is via R6. Notice below that the D (downstream) flag is set to “No.”

If we use the downstream tiebreaker, the path via R4 is the LFA because R4 is a downstream node, while R6 and R9 are not.
#R3
router isis 1
address-family ipv4 unicast
fast-reroute per-prefix tiebreaker downstream index 10

Summary
Here is a list of tiebreakers that can be configured under the ISIS process at the address-family level:
RP/0/0/CPU0:R3(config)#router isis 1
RP/0/0/CPU0:R3(config-isis)#add ipv4
RP/0/0/CPU0:R3(config-isis-af)#fast-reroute per-prefix tiebreaker ?
downstream Prefer backup path via downstream node
lc-disjoint Prefer line card disjoint backup path
lowest-backup-metric Prefer backup path with lowest total metric
node-protecting Prefer node protecting backup path
primary-path Prefer backup path from ECMP set
secondary-path Prefer non-ECMP backup path
srlg-disjoint Prefer SRLG disjoint backup path
Last updated