MPLS LDP LFA using ISIS as IGP

This chapter describes Multi- Protocol Label Switching (MPLS) Label Distribution Protocol (LDP) Loop Free Alternate (LFA) using Intermediate System to Intermediate System (IS-IS) as the Interior Gateway Protocol (IGP).

Topics in this chapter include:

Applicability

The configuration in this chapter corresponds to SR Linux Release 25.7.R1. There are no prerequisites for this configuration.

Overview

LDP LFA improves convergence in case of a single link or single node failure in the network. Convergence times are in the order of tens of milliseconds. This is important to some application services, such as voice over IP (VoIP), which are sensitive to traffic loss when running over the MPLS network.

Without LFA, link or node failures inside an MPLS LDP network result in traffic loss in the order of hundreds of milliseconds. The reason for that is that LDP depends on the convergence of the underlying IGP (IS-IS sending link state PDUs (LSPs) in this case). After IGP convergence, LDP itself needs to compute new primary Next Hop Label Forwarding Entries (NHLFEs) for all affected Forwarding Equivalence Classes (FECs). Finally, the different Label Forwarding Information Bases (LFIBs) are updated.

When LFA is configured on a node, the node computes primary NHLFEs for all FECs and, in addition, the node computes backup NHLFEs for all FECs. The backup NHLFE corresponds to the label received for the same FEC from a Loop-Free Alternate (LFA) next hop, see RFC 5286.

The SR Linux software has implemented inequality 1 (link criterion) and inequality 3 (node criterion) of RFC 5286. The LFA next hop computation is based on the IGP metric, similar to the Shortest Path Tree (SPT) computation that is part of standard link-state routing functionality, .

The underlying LFA formulas appear in the following format:

Inequality 1:

SP(backup NHR, D) < SP(backup NHR, S) + SP(S, D)

Inequality 3:

SP(backup NHR, D) < SP(backup NHR, PN) + SP(PN, D)
In these inequalities:
  • SP is shortest IGP metric path
  • NHR is next hop router
  • D is destination
  • S is source node or upstream node doing the actual LFA next-hop computation
  • PN is protected node
The inequality 3 rule is stricter than the inequality 1 rule. See Additional topics for a practical example on these inequalities.

Configuration

This section includes the following:

The subsection Additional topics includes:

Initial example topology shows the example topology with five PEs in the same autonomous system.

Figure 1. Initial example topology

Configure the IP/MPLS network

The system addresses and IP interface addresses are configured according to Initial example topology. An interior gateway protocol (IGP) is needed to distribute routing information on all PEs. In this case, the IGP is IS-IS where each PE is acting as a level 2 router. On PE-1, the IS-IS configuration is as follows. The configuration is similar on the other PEs.

# On PE-1:
enter candidate
    network-instance default protocols isis {
                instance 0 {
                    admin-state enable
                    level-capability L2
                    level 2 { 
                        metric-style wide    # default
                    }
                    net [ 49.0000.0100.0000.0001.00 ]
                    interface ethernet-1/31.1 {
                        admin-state enable
                        circuit-type point-to-point
                    }
                    interface ethernet-1/32.1 {
                        admin-state enable
                        circuit-type point-to-point
                    }
                    interface system0.0 { }

IS-IS interfaces are set up as type point-to-point to improve convergence because no Designated Router/Backup Designated Router (DR/BDR) election process is done. The show / network-instance default protocols isis adjacency command on PE-1 verifies that the IS-IS adjacencies are up:

--{ running }--[  ]--
A:admin@PE-1# show / network-instance default protocols isis adjacency
---------------------------------------------------------------------------------------------------------------------------------------------------------
Network Instance: default
Instance        : 0
Instance Id     : 0
+-----------------+--------------------+-----------------+--------------+--------------+-------+--------------------------+--------------------+
| Interface Name  | Neighbor System Id | Adjacency Level |  Ip Address  | Ipv6 Address | State |     Last transition      | Remaining holdtime |
+=================+====================+=================+==============+==============+=======+==========================+====================+
| ethernet-1/31.1 | 0100.0000.0002     | L2              | 192.168.12.2 | ::           | up    | 2025-08-29T09:35:15.200Z | 27                 |
| ethernet-1/32.1 | 0100.0000.0003     | L2              | 192.168.13.2 | ::           | up    | 2025-08-29T09:35:34.000Z | 27                 |
+-----------------+--------------------+-----------------+--------------+--------------+-------+--------------------------+--------------------+
Adjacency Count: 2
---------------------------------------------------------------------------------------------------------------------------------------------------------

--{ running }--[  ]--
A:admin@PE-1# show / network-instance default protocols isis adjacency detail
---------------------------------------------------------------------------------------------------------------------------------------------------------
Network Instance: default
Instance        : 0
Instance Id     : 0
---------------------------------------------------------------------------------------------------------------------------------------------------------
Neighbor System Id         : 0100.0000.0002
Adjacency Level            : L2
Operational Adjacency Level: L2
Interface Name             : ethernet-1/31.1
State                      : up
Hello Interval             : 9 Max hold:27, Remaining hold:21
Ip Address                 : V4:192.168.12.2  V6:::
Hostname                   : PE-2
SNPA                       : 00:01:02:FF:00:20
Priority                   : 0
Adjacency Up Time          : 2025-08-29T09:35:15.200Z
---------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------
Neighbor System Id         : 0100.0000.0003
Adjacency Level            : L2
Operational Adjacency Level: L2
Interface Name             : ethernet-1/32.1
State                      : up
Hello Interval             : 9 Max hold:27, Remaining hold:22
Ip Address                 : V4:192.168.13.2  V6:::
Hostname                   : PE-3
SNPA                       : 00:01:03:FF:00:20
Priority                   : 0
Adjacency Up Time          : 2025-08-29T09:35:34.000Z
---------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------

The show / network-instance default route-table all command on PE-1 verifies which IP interface addresses or subnets are known on the PE:

--{ running }--[  ]--
A:admin@PE-1# show / network-instance default route-table all
---------------------------------------------------------------------------------------------------------------------------------------------------------
IPv4 unicast route table of network instance default
---------------------------------------------------------------------------------------------------------------------------------------------------------
+-----------------+------+-----------+--------------------+---------+---------+--------+-----------+-----------+-----------+-----------+-----------+
|     Prefix      |  ID  |   Route   |    Route Owner     | Active  | Origin  | Metric |   Pref    | Next-hop  | Next-hop  |  Backup   |  Backup   |
|                 |      |   Type    |                    |         | Network |        |           |  (Type)   | Interface | Next-hop  | Next-hop  |
|                 |      |           |                    |         | Instanc |        |           |           |           |  (Type)   | Interface |
|                 |      |           |                    |         |    e    |        |           |           |           |           |           |
+=================+======+===========+====================+=========+=========+========+===========+===========+===========+===========+===========+
| 192.0.2.1/32    | 15   | host      | net_inst_mgr       | True    | default | 0      | 0         | None      | None      |           |           |
| 192.0.2.2/32    | 0    | isis      | isis_mgr           | True    | default | 10     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 2.2       | 1/31.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.0.2.3/32    | 0    | isis      | isis_mgr           | True    | default | 10     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 3.2       | 1/32.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.0.2.4/32    | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 3.2       | 1/32.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.0.2.5/32    | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 2.2       | 1/31.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.168.12.0/30 | 13   | local     | net_inst_mgr       | True    | default | 0      | 0         | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 2.1       | 1/31.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.168.12.1/32 | 13   | host      | net_inst_mgr       | True    | default | 0      | 0         | None      | None      |           |           |
| 192.168.12.3/32 | 13   | host      | net_inst_mgr       | True    | default | 0      | 0         | None      | None      |           |           |
| 192.168.13.0/30 | 14   | local     | net_inst_mgr       | True    | default | 0      | 0         | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 3.1       | 1/32.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.168.13.1/32 | 14   | host      | net_inst_mgr       | True    | default | 0      | 0         | None      | None      |           |           |
| 192.168.13.3/32 | 14   | host      | net_inst_mgr       | True    | default | 0      | 0         | None      | None      |           |           |
| 192.168.23.0/30 | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 2.2       | 1/31.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.168.25.0/30 | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 2.2       | 1/31.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.168.34.0/30 | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 3.2       | 1/32.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.168.35.0/30 | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 3.2       | 1/32.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.168.45.0/30 | 0    | isis      | isis_mgr           | True    | default | 30     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 2.2       | 1/31.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
+-----------------+------+-----------+--------------------+---------+---------+--------+-----------+-----------+-----------+-----------+-----------+
---------------------------------------------------------------------------------------------------------------------------------------------------------
IPv4 routes total                    : 16
IPv4 prefixes with active routes     : 16
IPv4 prefixes with active ECMP routes: 0
---------------------------------------------------------------------------------------------------------------------------------------------------------

--{ running }--[  ]--
A:admin@PE-1# info from state with-context / network-instance default route-table ipv4-unicast route * id * route-type * route-owner * origin-network-instance * |
 as table | filter fields active metric preference next-hop-group next-hop-group-network-instance
+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+
|  Network-  |   Ipv4-    |     Id     | Route-type |   Route-   |  Origin-   |   Active   |   Metric   | Preference | Next-hop-  | Next-hop-  |
|  instance  |   prefix   |            |            |   owner    |  network-  |            |            |            |   group    |   group-   |
|            |            |            |            |            |  instance  |            |            |            |            |  network-  |
|            |            |            |            |            |            |            |            |            |            |  instance  |
+============+============+============+============+============+============+============+============+============+============+============+
| default    | 192.0.2.1/ |         15 | host       | net_inst_m | default    | true       |          0 |          0 |   23775975 | default    |
|            | 32         |            |            | gr         |            |            |            |            |            |            |
| default    | 192.0.2.2/ |          0 | isis       | isis_mgr   | default    | true       |         10 |         18 |   23775981 | default    |
|            | 32         |            |            |            |            |            |            |            |            |            |
| default    | 192.0.2.3/ |          0 | isis       | isis_mgr   | default    | true       |         10 |         18 |   23775982 | default    |
|            | 32         |            |            |            |            |            |            |            |            |            |
| default    | 192.0.2.4/ |          0 | isis       | isis_mgr   | default    | true       |         20 |         18 |   23775982 | default    |
|            | 32         |            |            |            |            |            |            |            |            |            |
| default    | 192.0.2.5/ |          0 | isis       | isis_mgr   | default    | true       |         20 |         18 |   23775981 | default    |
|            | 32         |            |            |            |            |            |            |            |            |            |
| default    | 192.168.12 |         13 | local      | net_inst_m | default    | true       |          0 |          0 |   23775976 | default    |
|            | .0/30      |            |            | gr         |            |            |            |            |            |            |
| default    | 192.168.12 |         13 | host       | net_inst_m | default    | true       |          0 |          0 |   23775977 | default    |
|            | .1/32      |            |            | gr         |            |            |            |            |            |            |
| default    | 192.168.12 |         13 | host       | net_inst_m | default    | true       |          0 |          0 |   23775978 | default    |
|            | .3/32      |            |            | gr         |            |            |            |            |            |            |
| default    | 192.168.13 |         14 | local      | net_inst_m | default    | true       |          0 |          0 |   23775979 | default    |
|            | .0/30      |            |            | gr         |            |            |            |            |            |            |
| default    | 192.168.13 |         14 | host       | net_inst_m | default    | true       |          0 |          0 |   23775980 | default    |
|            | .1/32      |            |            | gr         |            |            |            |            |            |            |
| default    | 192.168.13 |         14 | host       | net_inst_m | default    | true       |          0 |          0 |   23775978 | default    |
|            | .3/32      |            |            | gr         |            |            |            |            |            |            |
| default    | 192.168.23 |          0 | isis       | isis_mgr   | default    | true       |         20 |         18 |   23775981 | default    |
|            | .0/30      |            |            |            |            |            |            |            |            |            |
| default    | 192.168.25 |          0 | isis       | isis_mgr   | default    | true       |         20 |         18 |   23775981 | default    |
|            | .0/30      |            |            |            |            |            |            |            |            |            |
| default    | 192.168.34 |          0 | isis       | isis_mgr   | default    | true       |         20 |         18 |   23775982 | default    |
|            | .0/30      |            |            |            |            |            |            |            |            |            |
| default    | 192.168.35 |          0 | isis       | isis_mgr   | default    | true       |         20 |         18 |   23775982 | default    |
|            | .0/30      |            |            |            |            |            |            |            |            |            |
| default    | 192.168.45 |          0 | isis       | isis_mgr   | default    | true       |         30 |         18 |   23775981 | default    |
|            | .0/30      |            |            |            |            |            |            |            |            |            |
+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+

As an example, detail for one node (PE-5) and one link (the link between PE-2 and PE-5) for which LFA protection is verified further on, is shown as follows:

--{ running }--[  ]--
A:admin@PE-1# show / network-instance default route-table ipv4-unicast prefix detail
---------------------------------------------------------------------------------------------------------------------------------------------------------
IPv4 unicast route table of network instance default
---------------------------------------------------------------------------------------------------------------------------------------------------------
---snip---
---------------------------------------------------------------------------------------------------------------------------------------------------------
Destination            : 192.0.2.5/32
ID                     : 0
Route Type             : isis
Route Owner            : isis_mgr
Origin Network Instance: default
Metric                 : 20
Preference             : 18
Active                 : true
Last change            : 2025-08-29T09:36:15.658Z
Resilient hash         : false
---------------------------------------------------------------------------------------------------------------------------------------------------------
Next hops: 1 entries
192.168.12.2 (direct) via [ethernet-1/31.1]
Backup Next hops: 0 entries

---------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------
Route Programming Status
---------------------------------------------------------------------------------------------------------------------------------------------------------
Suppressed                        : false
Last successful FIB operation     : add
Last successful FIB operation time: 2025-08-29T09:36:15.658Z
Current FIB operation pending     : none
Last failed FIB operation         : none
---------------------------------------------------------------------------------------------------------------------------------------------------------
Primary NHG
---------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------
Backup NHG
---------------------------------------------------------------------------------------------------------------------------------------------------------
---snip---
---------------------------------------------------------------------------------------------------------------------------------------------------------
Destination            : 192.168.25.0/30
ID                     : 0
Route Type             : isis
Route Owner            : isis_mgr
Origin Network Instance: default
Metric                 : 20
Preference             : 18
Active                 : true
Last change            : 2025-08-29T09:35:16.175Z
Resilient hash         : false
---------------------------------------------------------------------------------------------------------------------------------------------------------
Next hops: 1 entries
192.168.12.2 (direct) via [ethernet-1/31.1]
Backup Next hops: 0 entries

---------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------
Route Programming Status
---------------------------------------------------------------------------------------------------------------------------------------------------------
Suppressed                        : false
Last successful FIB operation     : add
Last successful FIB operation time: 2025-08-29T09:35:16.175Z
Current FIB operation pending     : none
Last failed FIB operation         : none
---------------------------------------------------------------------------------------------------------------------------------------------------------
Primary NHG
---------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------
Backup NHG
---------------------------------------------------------------------------------------------------------------------------------------------------------
---snip---

The next hops for the routes are verfied as follows:

--{ running }--[  ]--
A:admin@PE-1# show / network-instance default route-table next-hop
---------------------------------------------------------------------------------------------------------------------------------------------------------
Next-hop route table of network instance default
---------------------------------------------------------------------------------------------------------------------------------------------------------
Index             : 3
  Type            : broadcast
  Subinterface    : N/A
  Resolving Route : None (None)
Index             : 23775963
  Type            : extract
  Subinterface    : N/A
  Resolving Route : None (None)
Index             : 23775964
  Next-hop        : 192.168.12.1
  Type            : direct
  Subinterface    : ethernet-1/31.1
Index             : 23775965
  Type            : extract
  Subinterface    : N/A
  Resolving Route : None (None)
Index             : 23775966
  Next-hop        : 192.168.13.1
  Type            : direct
  Subinterface    : ethernet-1/32.1
Index             : 23775967
  Type            : extract
  Subinterface    : N/A
  Resolving Route : None (None)
Index             : 23775968
  Next-hop        : 192.168.12.2
  Type            : direct
  Subinterface    : ethernet-1/31.1
Index             : 23775969
  Next-hop        : 192.168.13.2
  Type            : direct
  Subinterface    : ethernet-1/32.1

The info from state with-context / network-instance default route-table next-hop-group * command on PE-1 shows the content of the forwarding information base (FIB):

--{ running }--[  ]--
A:admin@PE-1# info from state with-context / network-instance default route-table next-hop-group * |
 as table | filter fields *
+-----------+-----------+-----------+-----------+-----------+-----------+-----------+-----------+-----------+-----------+-----------+-----------+
| Network-  |   Index   |  Group-   | Programme |  Backup-  |  Backup-  | Fib-progr | Fib-progr | Fib-progr | Fib-progr | Fib-progr | Fib-progr |
| instance  |           |   name-   |  d-index  | next-hop- |  active   | amming su |  amming   |  amming   |  amming   |  amming   |  amming   |
|           |           |   alias   |           |   group   |           | ppressed  | last-succ | last-succ | pending-o |   last-   |   last-   |
|           |           |           |           |           |           |           | essful-op | essful-op | peration- | failed-op |  failed-  |
|           |           |           |           |           |           |           | eration-  | eration-  |   type    | eration-  | locations |
|           |           |           |           |           |           |           |   type    | timestamp |           |   type    |           |
+===========+===========+===========+===========+===========+===========+===========+===========+===========+===========+===========+===========+
| default   |  23775975 |           |           |         0 | false     |           | add       | 2025-08-  | none      | none      |           |
|           |           |           |           |           |           |           |           | 29T09:14: |           |           |           |
|           |           |           |           |           |           |           |           | 29.461Z   |           |           |           |
|           |           |           |           |           |           |           |           | (23       |           |           |           |
|           |           |           |           |           |           |           |           | minutes   |           |           |           |
|           |           |           |           |           |           |           |           | ago)      |           |           |           |
| default   |  23775976 |           |           |         0 | false     |           | add       | 2025-08-  | none      | none      |           |
|           |           |           |           |           |           |           |           | 29T09:14: |           |           |           |
|           |           |           |           |           |           |           |           | 34.246Z   |           |           |           |
|           |           |           |           |           |           |           |           | (23       |           |           |           |
|           |           |           |           |           |           |           |           | minutes   |           |           |           |
|           |           |           |           |           |           |           |           | ago)      |           |           |           |
| default   |  23775977 |           |           |         0 | false     |           | add       | 2025-08-  | none      | none      |           |
|           |           |           |           |           |           |           |           | 29T09:14: |           |           |           |
|           |           |           |           |           |           |           |           | 34.246Z   |           |           |           |
|           |           |           |           |           |           |           |           | (23       |           |           |           |
|           |           |           |           |           |           |           |           | minutes   |           |           |           |
|           |           |           |           |           |           |           |           | ago)      |           |           |           |
| default   |  23775978 |           |           |         0 | false     |           | add       | 2025-08-  | none      | none      |           |
|           |           |           |           |           |           |           |           | 29T09:14: |           |           |           |
|           |           |           |           |           |           |           |           | 34.246Z   |           |           |           |
|           |           |           |           |           |           |           |           | (23       |           |           |           |
|           |           |           |           |           |           |           |           | minutes   |           |           |           |
|           |           |           |           |           |           |           |           | ago)      |           |           |           |
| default   |  23775979 |           |           |         0 | false     |           | add       | 2025-08-  | none      | none      |           |
|           |           |           |           |           |           |           |           | 29T09:14: |           |           |           |
|           |           |           |           |           |           |           |           | 34.853Z   |           |           |           |
|           |           |           |           |           |           |           |           | (23       |           |           |           |
|           |           |           |           |           |           |           |           | minutes   |           |           |           |
|           |           |           |           |           |           |           |           | ago)      |           |           |           |
| default   |  23775980 |           |           |         0 | false     |           | add       | 2025-08-  | none      | none      |           |
|           |           |           |           |           |           |           |           | 29T09:14: |           |           |           |
|           |           |           |           |           |           |           |           | 34.853Z   |           |           |           |
|           |           |           |           |           |           |           |           | (23       |           |           |           |
|           |           |           |           |           |           |           |           | minutes   |           |           |           |
|           |           |           |           |           |           |           |           | ago)      |           |           |           |
| default   |  23775981 |           |           |         0 | false     |           | add       | 2025-08-  | none      | none      |           |
|           |           |           |           |           |           |           |           | 29T09:35: |           |           |           |
|           |           |           |           |           |           |           |           | 16.175Z   |           |           |           |
|           |           |           |           |           |           |           |           | (2        |           |           |           |
|           |           |           |           |           |           |           |           | minutes   |           |           |           |
|           |           |           |           |           |           |           |           | ago)      |           |           |           |
| default   |  23775982 |           |           |         0 | false     |           | add       | 2025-08-  | none      | none      |           |
|           |           |           |           |           |           |           |           | 29T09:35: |           |           |           |
|           |           |           |           |           |           |           |           | 35.063Z   |           |           |           |
|           |           |           |           |           |           |           |           | (2        |           |           |           |
|           |           |           |           |           |           |           |           | minutes   |           |           |           |
|           |           |           |           |           |           |           |           | ago)      |           |           |           |
+-----------+-----------+-----------+-----------+-----------+-----------+-----------+-----------+-----------+-----------+-----------+-----------+

Initially, the following default IS-IS Level 2 metric applies to all interfaces.

--{ running }--[  ]--
A:admin@PE-1# info from state with-context / network-instance default protocols isis instance 0 interface * level 2 |
 as table | filter fields disable metric priority passive
+------------------------------+------------------------------+------------------------------+--------------+---------+----------+----------+---------+
|       Network-instance       |           Instance           |          Interface           | Level-number | Disable |  Metric  | Priority | Passive |
+==============================+==============================+==============================+==============+=========+==========+==========+=========+
| default                      | 0                            | ethernet-1/31.1              |            2 | false   |       10 |       64 | false   |
| default                      | 0                            | ethernet-1/32.1              |            2 | false   |       10 |       64 | false   |
| default                      | 0                            | system0.0                    |            2 | false   |        0 |       64 | false   |
+------------------------------+------------------------------+------------------------------+--------------+---------+----------+----------+---------+

The next step in the process of setting up the IP/MPLS network is setting up interface-LDP sessions on all interfaces. The LDP configuration on PE-1 is as follows:

# On PE-1:
# Configure LDP dynamic label block - on all nodes
enter candidate
    system mpls label-ranges dynamic dlb-ldp {
                    start-label 20000
                    end-label 29999

# Configure LDP sessions - per node
enter candidate
    network-instance default protocols ldp {
                admin-state enable
                dynamic-label-block dlb-ldp
                fec-resolution { }
                discovery {
                    interfaces {
                        interface ethernet-1/31.1 {
                            ipv4 {
                                admin-state enable
                            }
                        }
                        interface ethernet-1/32.1 {
                            ipv4 {
                                admin-state enable
                            }
                        }
                    }
                }

The routes in the IPv4 route table remain the same. There is now a full mesh of LDP label switched paths (LSPs) set up between all system interfaces of the PEs. The LSPs are visible in the MPLS route table.

--{ running }--[  ]--
A:admin@PE-1# show / network-instance default route-table mpls
+---------+-----------+-------------+-----------------+------------------------+----------------------+------------------+
| Label   | Operation | Type        | Next Net-Inst   | Next-hop IP (Type)     | Next-hop             | Next-hop MPLS    |
|         |           |             |                 |                        | Subinterface         | labels           |
+=========+===========+=============+=================+========================+======================+==================+
| 20000   | POP       | ldp         | default         |                        |                      |                  |
| 20001   | SWAP      | ldp         | N/A             | 192.168.12.2 (mpls)    | ethernet-1/31.1      | 20000            |
| 20002   | SWAP      | ldp         | N/A             | 192.168.13.2 (mpls)    | ethernet-1/32.1      | 20000            |
| 20003   | SWAP      | ldp         | N/A             | 192.168.13.2 (mpls)    | ethernet-1/32.1      | 20003            |
| 20004   | SWAP      | ldp         | N/A             | 192.168.12.2 (mpls)    | ethernet-1/31.1      | 20004            |
+---------+-----------+-------------+-----------------+------------------------+----------------------+------------------+

There are additional next hops, corresponding with the LSPs.

--{ running }--[  ]--
A:admin@PE-1# show / network-instance default route-table next-hop
---------------------------------------------------------------------------------------------------------------------------------------------------------
Next-hop route table of network instance default
---------------------------------------------------------------------------------------------------------------------------------------------------------
---snip---
Index             : 23775970
  Next-hop        : 192.168.12.2
  Type            : mpls
  MPLS label stack: [20000]
Index             : 23775971
  Next-hop        : 192.168.13.2
  Type            : mpls
  MPLS label stack: [20000]
Index             : 23775972
  Next-hop        : 192.168.13.2
  Type            : mpls
  MPLS label stack: [20003]
Index             : 23775973
  Next-hop        : 192.168.12.2
  Type            : mpls
  MPLS label stack: [20004]

The tunnel table on PE-1 looks as follows:

--{ running }--[  ]--
A:admin@PE-1# show / network-instance default tunnel-table all
---------------------------------------------------------------------------------------------------------------------------------------------------------
IPv4 tunnel table of network-instance "default"
---------------------------------------------------------------------------------------------------------------------------------------------------------
+----------------------+--------+----------------+----------+-----+----------+---------+--------------------------+--------------+--------------+
|     IPv4 Prefix      | Encaps |  Tunnel Type   |  Tunnel  | FIB |  Metric  | Prefere |       Last Update        |   Next-hop   |   Next-hop   |
|                      |  Type  |                |    ID    |     |          |   nce   |                          |    (Type)    |              |
+======================+========+================+==========+=====+==========+=========+==========================+==============+==============+
| 192.0.2.2/32         | mpls   | ldp            | 65537    | Y   | 10       | 9       | 2025-08-29T09:40:58.208Z | 192.168.12.2 | ethernet-    |
|                      |        |                |          |     |          |         |                          | (mpls)       | 1/31.1       |
| 192.0.2.3/32         | mpls   | ldp            | 65538    | Y   | 10       | 9       | 2025-08-29T09:41:21.350Z | 192.168.13.2 | ethernet-    |
|                      |        |                |          |     |          |         |                          | (mpls)       | 1/32.1       |
| 192.0.2.4/32         | mpls   | ldp            | 65539    | Y   | 20       | 9       | 2025-08-29T09:41:32.609Z | 192.168.13.2 | ethernet-    |
|                      |        |                |          |     |          |         |                          | (mpls)       | 1/32.1       |
| 192.0.2.5/32         | mpls   | ldp            | 65540    | Y   | 20       | 9       | 2025-08-29T09:42:08.856Z | 192.168.12.2 | ethernet-    |
|                      |        |                |          |     |          |         |                          | (mpls)       | 1/31.1       |
+----------------------+--------+----------------+----------+-----+----------+---------+--------------------------+--------------+--------------+
---------------------------------------------------------------------------------------------------------------------------------------------------------
4 LDP tunnels, 4 active, 0 inactive
---------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------
IPv6 tunnel table of network-instance "default"
---------------------------------------------------------------------------------------------------------------------------------------------------------
<no_entries>
---------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------

Corresponding entries are added to the forwarding information base (FIB):

--{ running }--[  ]--
A:admin@PE-1# info from state with-context / network-instance default route-table next-hop-group * |
 as table | filter fields *
+-----------+-----------+-----------+-----------+-----------+-----------+-----------+-----------+-----------+-----------+-----------+-----------+
| Network-  |   Index   |  Group-   | Programme |  Backup-  |  Backup-  | Fib-progr | Fib-progr | Fib-progr | Fib-progr | Fib-progr | Fib-progr |
| instance  |           |   name-   |  d-index  | next-hop- |  active   | amming su |  amming   |  amming   |  amming   |  amming   |  amming   |
|           |           |   alias   |           |   group   |           | ppressed  | last-succ | last-succ | pending-o |   last-   |   last-   |
|           |           |           |           |           |           |           | essful-op | essful-op | peration- | failed-op |  failed-  |
|           |           |           |           |           |           |           | eration-  | eration-  |   type    | eration-  | locations |
|           |           |           |           |           |           |           |   type    | timestamp |           |   type    |           |
+===========+===========+===========+===========+===========+===========+===========+===========+===========+===========+===========+===========+
| ---snip---                                                                                                                                    |
| default   |  23775983 |           |           |         0 | false     |           | add       | 2025-08-  | none      | none      |           |
|           |           |           |           |           |           |           |           | 29T09:40: |           |           |           |
|           |           |           |           |           |           |           |           | 58.209Z   |           |           |           |
|           |           |           |           |           |           |           |           | (3        |           |           |           |
|           |           |           |           |           |           |           |           | minutes   |           |           |           |
|           |           |           |           |           |           |           |           | ago)      |           |           |           |
| default   |  23775984 |           |           |         0 | false     |           | add       | 2025-08-  | none      | none      |           |
|           |           |           |           |           |           |           |           | 29T09:41: |           |           |           |
|           |           |           |           |           |           |           |           | 21.351Z   |           |           |           |
|           |           |           |           |           |           |           |           | (2        |           |           |           |
|           |           |           |           |           |           |           |           | minutes   |           |           |           |
|           |           |           |           |           |           |           |           | ago)      |           |           |           |
| default   |  23775985 |           |           |         0 | false     |           | add       | 2025-08-  | none      | none      |           |
|           |           |           |           |           |           |           |           | 29T09:41: |           |           |           |
|           |           |           |           |           |           |           |           | 32.610Z   |           |           |           |
|           |           |           |           |           |           |           |           | (2        |           |           |           |
|           |           |           |           |           |           |           |           | minutes   |           |           |           |
|           |           |           |           |           |           |           |           | ago)      |           |           |           |
| default   |  23775986 |           |           |         0 | false     |           | add       | 2025-08-  | none      | none      |           |
|           |           |           |           |           |           |           |           | 29T09:42: |           |           |           |
|           |           |           |           |           |           |           |           | 08.857Z   |           |           |           |
|           |           |           |           |           |           |           |           | (a minute |           |           |           |
|           |           |           |           |           |           |           |           | ago)      |           |           |           |
+-----------+-----------+-----------+-----------+-----------+-----------+-----------+-----------+-----------+-----------+-----------+-----------+

The LDP LSP metric follows the IGP cost. Optionally, LSP metrics can be applied but that is beyond the scope for this chapter.

Without LFA, only an FEC that is learned from the LDP peer with the shortest path to that FEC (primary next hop) can be used in forwarding.

--{ running }--[  ]--
A:admin@PE-1# show / network-instance default protocols ldp ipv4 fec
=========================================================================================================================================================
Net-Inst default LDP IPv4: All FEC prefixes table
=========================================================================================================================================================
Received FEC prefixes
---------------------------------------------------------------------------------------------------------------------------------------------------------
+--------------------------------------------------------------------------------------------+
| FEC prefix           Peer LDP ID                 Label                Ingress   Used in    |
|                                                                       LSR       Forwarding |
+============================================================================================+
| 192.0.2.2/32         192.0.2.2:0                 20000                true      true       |
| 192.0.2.2/32         192.0.2.3:0                 20002                true      false      |
| 192.0.2.3/32         192.0.2.2:0                 20002                true      false      |
| 192.0.2.3/32         192.0.2.3:0                 20000                true      true       |
| 192.0.2.4/32         192.0.2.2:0                 20003                true      false      |
| 192.0.2.4/32         192.0.2.3:0                 20003                true      true       |
| 192.0.2.5/32         192.0.2.2:0                 20004                true      true       |
| 192.0.2.5/32         192.0.2.3:0                 20004                true      false      |
+--------------------------------------------------------------------------------------------+
---------------------------------------------------------------------------------------------------------------------------------------------------------
Advertised FEC prefixes
---------------------------------------------------------------------------------------------------------------------------------------------------------
+--------------------------------------------------------------------------------------------+
| FEC prefix           Peer LDP ID                 Label                Label        Egress  |
|                                                                       Status       LSR     |
+============================================================================================+
| 192.0.2.1/32         192.0.2.2:0                 20000                             true    |
| 192.0.2.1/32         192.0.2.3:0                 20000                             true    |
| 192.0.2.2/32         192.0.2.3:0                 20001                             false   |
| 192.0.2.3/32         192.0.2.2:0                 20002                             false   |
| 192.0.2.4/32         192.0.2.2:0                 20003                             false   |
| 192.0.2.4/32         192.0.2.3:0                 20003                             false   |
| 192.0.2.5/32         192.0.2.2:0                 20004                             false   |
| 192.0.2.5/32         192.0.2.3:0                 20004                             false   |
+--------------------------------------------------------------------------------------------+
---------------------------------------------------------------------------------------------------------------------------------------------------------
Total received FEC prefixes  : 8 (4 used in forwarding)
Total advertised FEC prefixes: 8
=========================================================================================================================================================

--{ running }--[  ]--
A:admin@PE-1# info from state with-context / network-instance default protocols ldp ipv4 bindings received-prefix-fec prefix-fec * lsr-id * label-space-id 0 next-hop * |
 as table | filter fields *
+-------------+------------------+-------------+------------------------+----------+-------------+-------------+-----------------------+-------------+
|  Network-   |  Prefix-fec fec  | Prefix-fec  |   Prefix-fec label-    |  Index   |  Next-hop   |  Next-hop-  |       Interface       | Outer-label |
|  instance   |                  |   lsr-id    |        space-id        |          |             |    type     |                       |             |
+=============+==================+=============+========================+==========+=============+=============+=======================+=============+
| default     | 192.0.2.2/32     | 192.0.2.2   |                      0 |        1 | 192.168.12. | primary     | ethernet-1/31.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
| default     | 192.0.2.3/32     | 192.0.2.3   |                      0 |        1 | 192.168.13. | primary     | ethernet-1/32.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
| default     | 192.0.2.4/32     | 192.0.2.3   |                      0 |        1 | 192.168.13. | primary     | ethernet-1/32.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
| default     | 192.0.2.5/32     | 192.0.2.2   |                      0 |        1 | 192.168.12. | primary     | ethernet-1/31.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
+-------------+------------------+-------------+------------------------+----------+-------------+-------------+-----------------------+-------------+

Enable LDP LFA and verify

Because LDP LFA is using LFA next-hop computation by the IGP, as described in RFC 5286, LFA must be enabled in the IGP context, as follows:

# On PE-1:
enter candidate
    network-instance default protocols isis instance 0 loopfree-alternate {
                    admin-state enable
                    augment-route-table true

The info from state with-context / network-instance default protocols isis instance 0 loopfree-alternate command on PE-1 verifies that LFA is enabled in IS-IS:

--{ running }--[  ]--
A:admin@PE-1# info from state with-context / network-instance default protocols isis instance 0 loopfree-alternate |
 as table | filter fields *
+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
| Network | Instanc | Admin-  | Augment | Exclude | Multi-  | Multi-  | Remote- | Remote- | Remote- | Remote- | Ti-lfa  | Ti-lfa  | Ti-lfa  |
| -instan |    e    |  state  | -route- | prefix- | homed-  | homed-  |   lfa   |   lfa   |   lfa   |   lfa   | admin-  | max-sr- |  node-  |
|   ce    |         |         |  table  | policy  | prefix  | prefix  | admin-  | max-pq- |  node-  |  node-  |  state  | policy- | protect |
|         |         |         |         |         | admin-  | prefere |  state  |  cost   | protect | protect |         |  lfa-   | admin-  |
|         |         |         |         |         |  state  |   nce   |         |         | admin-  | max-pq- |         | labels  |  state  |
|         |         |         |         |         |         |         |         |         |  state  |  nodes  |         |         |         |
+=========+=========+=========+=========+=========+=========+=========+=========+=========+=========+=========+=========+=========+=========+
| default | 0       | enable  | true    |         | disable | none    | disable |       0 | disable |       0 | disable |       0 | disable |
+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+

Remote LFA (RLFA) and Topology-independent LFA (TI-LFA) are disabled (by default), because they are beyond the scope of this chapter.

After enabling LFA inside the IGP context, LFA needs to be enabled within the LDP context, as follows:

# On PE-1:
enter candidate
    network-instance default protocols ldp loopfree-alternate {
                admin-state enable

This chapter describes LFA for unicast LDP.

After these two CLI commands, the software computes for each LDP FEC in the network both a primary and a backup NHLFE. The primary NHLFE corresponds to the label of the FEC received from the primary next-hop as per standard LDP resolution of the FEC prefix in the Routing Table Manager (RTM). The backup NHLFE corresponds to the label received for the same FEC from an LFA next hop.

For point-to-point interfaces, when multiple LFA next hops are found for a primary next hop, the following selection criteria are used:

  1. SPF selects the node-protect type in favor of the link-protect type.

  2. If there is more than one LFA next hop within the selected type, then SPF selects an LFA next hop with the lowest cost.

  3. If there is more than one LFA next hop with the same cost, then SPF selects the first one. This is not a deterministic selection and it varies following each SPF computation.

Several show commands are possible to display LFA information:

The info from state with-context / network-instance default protocols isis instance 0 statistics command shows the number of LFA runs on a specific node.

--{ running }--[  ]--
A:admin@PE-1# info from state with-context / network-instance default protocols isis instance 0 statistics |
 as table | filter fields *
+-------------+-------------+-----------+---------------------------------------------+----------------+---------------------------------------------+
|  Network-   |  Instance   | Spf-runs  |                  Last-spf                   |  Partial-spf-  |              Last-partial-spf               |
|  instance   |             |           |                                             |      runs      |                                             |
+=============+=============+===========+=============================================+================+=============================================+
| default     | 0           |         7 | 2025-08-29T09:50:44.500Z (5 minutes ago)    |              0 |                                             |
+-------------+-------------+-----------+---------------------------------------------+----------------+---------------------------------------------+

In the example topology (see Initial example topology), all IS-IS links have a default level 2 metric of 10. This results in all four nodes and all IS-IS routes learned by PE-1 being LFA protected: the LFA node coverage on PE-1 is 4/4=100%; the LFA link coverage on PE-1 is 9/9=100%. The next hop groups change for the recomputed SPF paths.

--{ running }--[  ]--
A:admin@PE-1# show / network-instance default route-table all
---------------------------------------------------------------------------------------------------------------------------------------------------------
IPv4 unicast route table of network instance default
---------------------------------------------------------------------------------------------------------------------------------------------------------
+-----------------+------+-----------+--------------------+---------+---------+--------+-----------+-----------+-----------+-----------+-----------+
|     Prefix      |  ID  |   Route   |    Route Owner     | Active  | Origin  | Metric |   Pref    | Next-hop  | Next-hop  |  Backup   |  Backup   |
|                 |      |   Type    |                    |         | Network |        |           |  (Type)   | Interface | Next-hop  | Next-hop  |
|                 |      |           |                    |         | Instanc |        |           |           |           |  (Type)   | Interface |
|                 |      |           |                    |         |    e    |        |           |           |           |           |           |
+=================+======+===========+====================+=========+=========+========+===========+===========+===========+===========+===========+
| 192.0.2.1/32    | 15   | host      | net_inst_mgr       | True    | default | 0      | 0         | None      | None      |           |           |
| 192.0.2.2/32    | 0    | isis      | isis_mgr           | True    | default | 10     | 18        | 192.168.1 | ethernet- | 192.168.1 | ethernet- |
|                 |      |           |                    |         |         |        |           | 2.2       | 1/31.1    | 3.2       | 1/32.1    |
|                 |      |           |                    |         |         |        |           | (direct)  |           | (direct)  |           |
| 192.0.2.3/32    | 0    | isis      | isis_mgr           | True    | default | 10     | 18        | 192.168.1 | ethernet- | 192.168.1 | ethernet- |
|                 |      |           |                    |         |         |        |           | 3.2       | 1/32.1    | 2.2       | 1/31.1    |
|                 |      |           |                    |         |         |        |           | (direct)  |           | (direct)  |           |
| 192.0.2.4/32    | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- | 192.168.1 | ethernet- |
|                 |      |           |                    |         |         |        |           | 3.2       | 1/32.1    | 2.2       | 1/31.1    |
|                 |      |           |                    |         |         |        |           | (direct)  |           | (direct)  |           |
| 192.0.2.5/32    | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- | 192.168.1 | ethernet- |
|                 |      |           |                    |         |         |        |           | 2.2       | 1/31.1    | 3.2       | 1/32.1    |
|                 |      |           |                    |         |         |        |           | (direct)  |           | (direct)  |           |
| 192.168.12.0/30 | 13   | local     | net_inst_mgr       | True    | default | 0      | 0         | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 2.1       | 1/31.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.168.12.1/32 | 13   | host      | net_inst_mgr       | True    | default | 0      | 0         | None      | None      |           |           |
| 192.168.12.3/32 | 13   | host      | net_inst_mgr       | True    | default | 0      | 0         | None      | None      |           |           |
| 192.168.13.0/30 | 14   | local     | net_inst_mgr       | True    | default | 0      | 0         | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 3.1       | 1/32.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.168.13.1/32 | 14   | host      | net_inst_mgr       | True    | default | 0      | 0         | None      | None      |           |           |
| 192.168.13.3/32 | 14   | host      | net_inst_mgr       | True    | default | 0      | 0         | None      | None      |           |           |
| 192.168.23.0/30 | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- | 192.168.1 | ethernet- |
|                 |      |           |                    |         |         |        |           | 2.2       | 1/31.1    | 3.2       | 1/32.1    |
|                 |      |           |                    |         |         |        |           | (direct)  |           | (direct)  |           |
| 192.168.25.0/30 | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- | 192.168.1 | ethernet- |
|                 |      |           |                    |         |         |        |           | 2.2       | 1/31.1    | 3.2       | 1/32.1    |
|                 |      |           |                    |         |         |        |           | (direct)  |           | (direct)  |           |
| 192.168.34.0/30 | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- | 192.168.1 | ethernet- |
|                 |      |           |                    |         |         |        |           | 3.2       | 1/32.1    | 2.2       | 1/31.1    |
|                 |      |           |                    |         |         |        |           | (direct)  |           | (direct)  |           |
| 192.168.35.0/30 | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- | 192.168.1 | ethernet- |
|                 |      |           |                    |         |         |        |           | 3.2       | 1/32.1    | 2.2       | 1/31.1    |
|                 |      |           |                    |         |         |        |           | (direct)  |           | (direct)  |           |
| 192.168.45.0/30 | 0    | isis      | isis_mgr           | True    | default | 30     | 18        | 192.168.1 | ethernet- | 192.168.1 | ethernet- |
|                 |      |           |                    |         |         |        |           | 2.2       | 1/31.1    | 3.2       | 1/32.1    |
|                 |      |           |                    |         |         |        |           | (direct)  |           | (direct)  |           |
+-----------------+------+-----------+--------------------+---------+---------+--------+-----------+-----------+-----------+-----------+-----------+
---------------------------------------------------------------------------------------------------------------------------------------------------------
IPv4 routes total                    : 16
IPv4 prefixes with active routes     : 16
IPv4 prefixes with active ECMP routes: 0
---------------------------------------------------------------------------------------------------------------------------------------------------------

--{ running }--[  ]--
A:admin@PE-1# info from state with-context / network-instance default route-table ipv4-unicast route * id * route-type * route-owner * origin-network-instance * |
 as table | filter fields active metric preference next-hop-group next-hop-group-network-instance
+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+
|  Network-  |   Ipv4-    |     Id     | Route-type |   Route-   |  Origin-   |   Active   |   Metric   | Preference | Next-hop-  | Next-hop-  |
|  instance  |   prefix   |            |            |   owner    |  network-  |            |            |            |   group    |   group-   |
|            |            |            |            |            |  instance  |            |            |            |            |  network-  |
|            |            |            |            |            |            |            |            |            |            |  instance  |
+============+============+============+============+============+============+============+============+============+============+============+
| default    | 192.0.2.1/ |         15 | host       | net_inst_m | default    | true       |          0 |          0 |   23775975 | default    |
|            | 32         |            |            | gr         |            |            |            |            |            |            |
| default    | 192.0.2.2/ |          0 | isis       | isis_mgr   | default    | true       |         10 |         18 |   23775987 | default    |
|            | 32         |            |            |            |            |            |            |            |            |            |
| default    | 192.0.2.3/ |          0 | isis       | isis_mgr   | default    | true       |         10 |         18 |   23775988 | default    |
|            | 32         |            |            |            |            |            |            |            |            |            |
| default    | 192.0.2.4/ |          0 | isis       | isis_mgr   | default    | true       |         20 |         18 |   23775988 | default    |
|            | 32         |            |            |            |            |            |            |            |            |            |
| default    | 192.0.2.5/ |          0 | isis       | isis_mgr   | default    | true       |         20 |         18 |   23775987 | default    |
|            | 32         |            |            |            |            |            |            |            |            |            |
| default    | 192.168.12 |         13 | local      | net_inst_m | default    | true       |          0 |          0 |   23775976 | default    |
|            | .0/30      |            |            | gr         |            |            |            |            |            |            |
| default    | 192.168.12 |         13 | host       | net_inst_m | default    | true       |          0 |          0 |   23775977 | default    |
|            | .1/32      |            |            | gr         |            |            |            |            |            |            |
| default    | 192.168.12 |         13 | host       | net_inst_m | default    | true       |          0 |          0 |   23775978 | default    |
|            | .3/32      |            |            | gr         |            |            |            |            |            |            |
| default    | 192.168.13 |         14 | local      | net_inst_m | default    | true       |          0 |          0 |   23775979 | default    |
|            | .0/30      |            |            | gr         |            |            |            |            |            |            |
| default    | 192.168.13 |         14 | host       | net_inst_m | default    | true       |          0 |          0 |   23775980 | default    |
|            | .1/32      |            |            | gr         |            |            |            |            |            |            |
| default    | 192.168.13 |         14 | host       | net_inst_m | default    | true       |          0 |          0 |   23775978 | default    |
|            | .3/32      |            |            | gr         |            |            |            |            |            |            |
| default    | 192.168.23 |          0 | isis       | isis_mgr   | default    | true       |         20 |         18 |   23775987 | default    |
|            | .0/30      |            |            |            |            |            |            |            |            |            |
| default    | 192.168.25 |          0 | isis       | isis_mgr   | default    | true       |         20 |         18 |   23775987 | default    |
|            | .0/30      |            |            |            |            |            |            |            |            |            |
| default    | 192.168.34 |          0 | isis       | isis_mgr   | default    | true       |         20 |         18 |   23775988 | default    |
|            | .0/30      |            |            |            |            |            |            |            |            |            |
| default    | 192.168.35 |          0 | isis       | isis_mgr   | default    | true       |         20 |         18 |   23775988 | default    |
|            | .0/30      |            |            |            |            |            |            |            |            |            |
| default    | 192.168.45 |          0 | isis       | isis_mgr   | default    | true       |         30 |         18 |   23775987 | default    |
|            | .0/30      |            |            |            |            |            |            |            |            |            |
+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+

As an example, detail for one node (PE-5) and one link (the link between PE-2 and PE-5) for which LFA protection is is in place, is shown as follows:

--{ running }--[  ]--
A:admin@PE-1# show / network-instance default route-table ipv4-unicast prefix detail
---------------------------------------------------------------------------------------------------------------------------------------------------------
IPv4 unicast route table of network instance default
---------------------------------------------------------------------------------------------------------------------------------------------------------
---snip---
---------------------------------------------------------------------------------------------------------------------------------------------------------
Destination            : 192.0.2.5/32
ID                     : 0
Route Type             : isis
Route Owner            : isis_mgr
Origin Network Instance: default
Metric                 : 20
Preference             : 18
Active                 : true
Last change            : 2025-08-29T09:50:45.853Z
Resilient hash         : false
---------------------------------------------------------------------------------------------------------------------------------------------------------
Next hops: 1 entries
192.168.12.2 (direct) via [ethernet-1/31.1]
Backup Next hops: 1 entries
192.168.13.2 (direct) via [ethernet-1/32.1]
---------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------
Route Programming Status
---------------------------------------------------------------------------------------------------------------------------------------------------------
Suppressed                        : false
Last successful FIB operation     : modify
Last successful FIB operation time: 2025-08-29T09:50:45.853Z
Current FIB operation pending     : none
Last failed FIB operation         : none
---------------------------------------------------------------------------------------------------------------------------------------------------------
Primary NHG
---------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------
Backup NHG
---------------------------------------------------------------------------------------------------------------------------------------------------------
---snip---
---------------------------------------------------------------------------------------------------------------------------------------------------------
Destination            : 192.168.25.0/30
ID                     : 0
Route Type             : isis
Route Owner            : isis_mgr
Origin Network Instance: default
Metric                 : 20
Preference             : 18
Active                 : true
Last change            : 2025-08-29T09:50:45.853Z
Resilient hash         : false
---------------------------------------------------------------------------------------------------------------------------------------------------------
Next hops: 1 entries
192.168.12.2 (direct) via [ethernet-1/31.1]
Backup Next hops: 1 entries
192.168.13.2 (direct) via [ethernet-1/32.1]
---------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------
Route Programming Status
---------------------------------------------------------------------------------------------------------------------------------------------------------
Suppressed                        : false
Last successful FIB operation     : modify
Last successful FIB operation time: 2025-08-29T09:50:45.853Z
Current FIB operation pending     : none
Last failed FIB operation         : none
---------------------------------------------------------------------------------------------------------------------------------------------------------
Primary NHG
---------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------
Backup NHG
---------------------------------------------------------------------------------------------------------------------------------------------------------
---snip---
---------------------------------------------------------------------------------------------------------------------------------------------------------

The LSPs remain the same.

The next hops are recomputed:

--{ running }--[  ]--
A:admin@PE-1# show / network-instance default route-table next-hop
---------------------------------------------------------------------------------------------------------------------------------------------------------
Next-hop route table of network instance default
---------------------------------------------------------------------------------------------------------------------------------------------------------
---snip---
Index             : 23775974
  Next-hop        : 192.168.12.2
  Type            : direct
  Subinterface    : ethernet-1/31.1
Index             : 23775975
  Next-hop        : 192.168.13.2
  Type            : direct
  Subinterface    : ethernet-1/32.1
Index             : 23775976
  Next-hop        : 192.168.13.2
  Type            : mpls
  MPLS label stack: [20002]
Index             : 23775977
  Next-hop        : 192.168.12.2
  Type            : mpls
  MPLS label stack: [20000]
Index             : 23775978
  Next-hop        : 192.168.12.2
  Type            : mpls
  MPLS label stack: [20002]
Index             : 23775979
  Next-hop        : 192.168.13.2
  Type            : mpls
  MPLS label stack: [20000]
Index             : 23775980
  Next-hop        : 192.168.12.2
  Type            : mpls
  MPLS label stack: [20003]
Index             : 23775981
  Next-hop        : 192.168.13.2
  Type            : mpls
  MPLS label stack: [20003]
Index             : 23775982
  Next-hop        : 192.168.13.2
  Type            : mpls
  MPLS label stack: [20004]
Index             : 23775983
  Next-hop        : 192.168.12.2
  Type            : mpls
  MPLS label stack: [20004]

The MPLS tunnel table is updated:

--{ running }--[  ]--
A:admin@PE-1# show / network-instance default tunnel-table all
---------------------------------------------------------------------------------------------------------------------------------------------------------
IPv4 tunnel table of network-instance "default"
---------------------------------------------------------------------------------------------------------------------------------------------------------
+----------------------+--------+----------------+----------+-----+----------+---------+--------------------------+--------------+--------------+
|     IPv4 Prefix      | Encaps |  Tunnel Type   |  Tunnel  | FIB |  Metric  | Prefere |       Last Update        |   Next-hop   |   Next-hop   |
|                      |  Type  |                |    ID    |     |          |   nce   |                          |    (Type)    |              |
+======================+========+================+==========+=====+==========+=========+==========================+==============+==============+
| 192.0.2.2/32         | mpls   | ldp            | 65537    | Y   | 10       | 9       | 2025-08-29T09:52:20.354Z | 192.168.12.2 | ethernet-    |
|                      |        |                |          |     |          |         |                          | (mpls)       | 1/31.1       |
| 192.0.2.3/32         | mpls   | ldp            | 65538    | Y   | 10       | 9       | 2025-08-29T09:52:20.354Z | 192.168.13.2 | ethernet-    |
|                      |        |                |          |     |          |         |                          | (mpls)       | 1/32.1       |
| 192.0.2.4/32         | mpls   | ldp            | 65539    | Y   | 20       | 9       | 2025-08-29T09:52:20.354Z | 192.168.13.2 | ethernet-    |
|                      |        |                |          |     |          |         |                          | (mpls)       | 1/32.1       |
| 192.0.2.5/32         | mpls   | ldp            | 65540    | Y   | 20       | 9       | 2025-08-29T09:52:20.354Z | 192.168.12.2 | ethernet-    |
|                      |        |                |          |     |          |         |                          | (mpls)       | 1/31.1       |
+----------------------+--------+----------------+----------+-----+----------+---------+--------------------------+--------------+--------------+
---------------------------------------------------------------------------------------------------------------------------------------------------------
4 LDP tunnels, 4 active, 0 inactive
---------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------
IPv6 tunnel table of network-instance "default"
---------------------------------------------------------------------------------------------------------------------------------------------------------
<no_entries>
---------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------

Corresponding entries are added to the forwarding information base (FIB):

--{ running }--[  ]--
A:admin@PE-1# info from state with-context / network-instance default route-table next-hop-group * |
 as table | filter fields *
+-----------+-----------+-----------+-----------+-----------+-----------+-----------+-----------+-----------+-----------+-----------+-----------+
| Network-  |   Index   |  Group-   | Programme |  Backup-  |  Backup-  | Fib-progr | Fib-progr | Fib-progr | Fib-progr | Fib-progr | Fib-progr |
| instance  |           |   name-   |  d-index  | next-hop- |  active   | amming su |  amming   |  amming   |  amming   |  amming   |  amming   |
|           |           |   alias   |           |   group   |           | ppressed  | last-succ | last-succ | pending-o |   last-   |   last-   |
|           |           |           |           |           |           |           | essful-op | essful-op | peration- | failed-op |  failed-  |
|           |           |           |           |           |           |           | eration-  | eration-  |   type    | eration-  | locations |
|           |           |           |           |           |           |           |   type    | timestamp |           |   type    |           |
+===========+===========+===========+===========+===========+===========+===========+===========+===========+===========+===========+===========+
| ---snip---                                                                                                                                    |
| default   |  23775987 |           |           |         0 | false     |           | add       | 2025-08-  | none      | none      |           |
|           |           |           |           |           |           |           |           | 29T09:50: |           |           |           |
|           |           |           |           |           |           |           |           | 45.853Z   |           |           |           |
|           |           |           |           |           |           |           |           | (4        |           |           |           |
|           |           |           |           |           |           |           |           | minutes   |           |           |           |
|           |           |           |           |           |           |           |           | ago)      |           |           |           |
| default   |  23775988 |           |           |         0 | false     |           | add       | 2025-08-  | none      | none      |           |
|           |           |           |           |           |           |           |           | 29T09:50: |           |           |           |
|           |           |           |           |           |           |           |           | 45.853Z   |           |           |           |
|           |           |           |           |           |           |           |           | (4        |           |           |           |
|           |           |           |           |           |           |           |           | minutes   |           |           |           |
|           |           |           |           |           |           |           |           | ago)      |           |           |           |
| default   |  23775989 |           |           |         0 | false     |           | add       | 2025-08-  | none      | none      |           |
|           |           |           |           |           |           |           |           | 29T09:52: |           |           |           |
|           |           |           |           |           |           |           |           | 20.355Z   |           |           |           |
|           |           |           |           |           |           |           |           | (2        |           |           |           |
|           |           |           |           |           |           |           |           | minutes   |           |           |           |
|           |           |           |           |           |           |           |           | ago)      |           |           |           |
| default   |  23775990 |           |           |         0 | false     |           | add       | 2025-08-  | none      | none      |           |
|           |           |           |           |           |           |           |           | 29T09:52: |           |           |           |
|           |           |           |           |           |           |           |           | 20.355Z   |           |           |           |
|           |           |           |           |           |           |           |           | (2        |           |           |           |
|           |           |           |           |           |           |           |           | minutes   |           |           |           |
|           |           |           |           |           |           |           |           | ago)      |           |           |           |
| default   |  23775991 |           |           |         0 | false     |           | add       | 2025-08-  | none      | none      |           |
|           |           |           |           |           |           |           |           | 29T09:52: |           |           |           |
|           |           |           |           |           |           |           |           | 20.355Z   |           |           |           |
|           |           |           |           |           |           |           |           | (2        |           |           |           |
|           |           |           |           |           |           |           |           | minutes   |           |           |           |
|           |           |           |           |           |           |           |           | ago)      |           |           |           |
| default   |  23775992 |           |           |         0 | false     |           | add       | 2025-08-  | none      | none      |           |
|           |           |           |           |           |           |           |           | 29T09:52: |           |           |           |
|           |           |           |           |           |           |           |           | 20.355Z   |           |           |           |
|           |           |           |           |           |           |           |           | (2        |           |           |           |
|           |           |           |           |           |           |           |           | minutes   |           |           |           |
|           |           |           |           |           |           |           |           | ago)      |           |           |           |

The show / network-instance default protocols ldp ipv4 fec command on PE-1 verifies that LFA is enabled in LDP: an FEC that is learned from another LDP peer (LFA next hop) than from the one with the shortest path to that FEC (primary next hop) can also be used in forwarding.

--{ running }--[  ]--
A:admin@PE-1# show / network-instance default protocols ldp ipv4 fec
=========================================================================================================================================================
Net-Inst default LDP IPv4: All FEC prefixes table
=========================================================================================================================================================
Received FEC prefixes
---------------------------------------------------------------------------------------------------------------------------------------------------------
+--------------------------------------------------------------------------------------------+
| FEC prefix           Peer LDP ID                 Label                Ingress   Used in    |
|                                                                       LSR       Forwarding |
+============================================================================================+
| 192.0.2.2/32         192.0.2.2:0                 20000                true      true       |
| 192.0.2.2/32         192.0.2.3:0                 20002                true      true       |
| 192.0.2.3/32         192.0.2.2:0                 20002                true      true       |
| 192.0.2.3/32         192.0.2.3:0                 20000                true      true       |
| 192.0.2.4/32         192.0.2.2:0                 20003                true      true       |
| 192.0.2.4/32         192.0.2.3:0                 20003                true      true       |
| 192.0.2.5/32         192.0.2.2:0                 20004                true      true       |
| 192.0.2.5/32         192.0.2.3:0                 20004                true      true       |
+--------------------------------------------------------------------------------------------+
---------------------------------------------------------------------------------------------------------------------------------------------------------
Advertised FEC prefixes
---------------------------------------------------------------------------------------------------------------------------------------------------------
---snip---
---------------------------------------------------------------------------------------------------------------------------------------------------------
Total received FEC prefixes  : 8 (8 used in forwarding)
Total advertised FEC prefixes: 8
=========================================================================================================================================================

--{ running }--[  ]--
A:admin@PE-1# info from state with-context / network-instance default protocols ldp ipv4 bindings received-prefix-fec prefix-fec * lsr-id * label-space-id 0 next-hop * |
 as table | filter fields *
+-------------+------------------+-------------+------------------------+----------+-------------+-------------+-----------------------+-------------+
|  Network-   |  Prefix-fec fec  | Prefix-fec  |   Prefix-fec label-    |  Index   |  Next-hop   |  Next-hop-  |       Interface       | Outer-label |
|  instance   |                  |   lsr-id    |        space-id        |          |             |    type     |                       |             |
+=============+==================+=============+========================+==========+=============+=============+=======================+=============+
| default     | 192.0.2.2/32     | 192.0.2.2   |                      0 |        1 | 192.168.12. | primary     | ethernet-1/31.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
| default     | 192.0.2.2/32     | 192.0.2.3   |                      0 |        1 | 192.168.13. | alternate   | ethernet-1/32.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
| default     | 192.0.2.3/32     | 192.0.2.2   |                      0 |        1 | 192.168.12. | alternate   | ethernet-1/31.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
| default     | 192.0.2.3/32     | 192.0.2.3   |                      0 |        1 | 192.168.13. | primary     | ethernet-1/32.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
| default     | 192.0.2.4/32     | 192.0.2.2   |                      0 |        1 | 192.168.12. | alternate   | ethernet-1/31.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
| default     | 192.0.2.4/32     | 192.0.2.3   |                      0 |        1 | 192.168.13. | primary     | ethernet-1/32.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
| default     | 192.0.2.5/32     | 192.0.2.2   |                      0 |        1 | 192.168.12. | primary     | ethernet-1/31.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
| default     | 192.0.2.5/32     | 192.0.2.3   |                      0 |        1 | 192.168.13. | alternate   | ethernet-1/32.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
+-------------+------------------+-------------+------------------------+----------+-------------+-------------+-----------------------+-------------+

On PE-1, node PE-5 (192.0.2.5/32) has a primary SPF next-hop pointing toward PE-2 (192.168.12.2) and an LFA next-hop pointing toward PE-3 (192.168.13.2).

The inequality 3 formula on PE-1 for prefix 192.0.2.5/32 results in the following:

Inequality 3:

SP(backup NHR, D) < SP(backup NHR, PN) + SP(PN, D) or
   SP(PE-3, PE-5) <     SP(PE-3, PE-2) + SP(PE-2, PE-5) or
               10 <                 10 + 10 => OK

This means that inequality 3 is met. The calculated LFA next-hop for prefix 192.0.2.5/32 on PE-1 is protecting node PE-2, see LFA computation: inequality 3 for prefix PE-5 (D) on PE-1 (S) for a graphical representation.

Figure 2. LFA computation: inequality 3 for prefix PE-5 (D) on PE-1 (S)

On PE-1, the link between PE-2 and PE-5 has a primary SPF next-hop pointing toward PE-2 (192.168.12.2) and an LFA next-hop pointing toward PE-3 (192.168.13.2).

The inequality 1 formula on PE-1 for prefix 192.168.25.0/30 results in the following:

Inequality 1:

SP(backup NHR, D) < SP(backup NHR, S) + SP(S, D) or
      SP(PE-3, D) <    SP(PE-3, PE-1) + SP(PE-1, D) or
          10 + 10 <                10 + (10 + 10) => OK

This means that inequality 1 is also met. The calculated LFA next-hop for prefix 192.168.25.0/30 on PE-1 is protecting the link between PE-2 and PE-5, see LFA computation: inequality 1 for prefix NW 192.168.25.0/30 (D) on PE-1 (S) for a graphical representation.

Figure 3. LFA computation: inequality 1 for prefix NW 192.168.25.0/30 (D) on PE-1 (S)

Enable synchronization timer

Within an MPLS network using LDP, it is common practice to enable a synchronization timer between LDP and the IGP. Also, when LDP LFA is enabled, a situation can occur in which a synchronization timer between IGP and LDP helps: the revert scenario. When the interface for the previous primary next hop is restored, IGP may re-converge before LDP completed the FEC exchange with its neighbor over that interface. This may cause LDP to remove the LFA next hop from the FEC and blackhole traffic.

To avoid traffic being blackholed, it is recommended to enable IGP-LDP synchronization on the interface. The time is expressed in seconds and can have a value between 1 and 1800 seconds. It is also possible to configure an end-of-LIB option to optimize the synchronization time. On PE-1, the following configures the LDP synchronization timer with a value of 10 seconds on the interfaces to PE-2 and PE-3:

# On PE-1:
enter candidate
    network-instance default protocols isis instance 0 {
                    interface ethernet-1/31.1 {
                        ldp-synchronization {
                            hold-down-timer 10
                            end-of-lib true
                        }
                    }
                    interface ethernet-1/32.1 {
                        ldp-synchronization {
                            hold-down-timer 10
                            end-of-lib true
                        }
                    }

The configuration on the other nodes is similar.

When this timer is enabled, the IGP advertises a link in the network with an infinite metric, when its interface is restored. When the ldp-synchronization hold-down-timer is started, LDP adjacencies are brought up together with a label exchange. When the ldp-synchronization hold-down-timer expires, the normal metric is advertised in the network again.

Verify data path

As an example, data path verification is performed using LSP traces.

# On PE-1:
enter running
tools oam lsp-trace ldp clear
tools oam lsp-trace ldp fec 192.0.2.1/32    # no LDP tunnel to self
tools oam lsp-trace ldp fec 192.0.2.2/32
tools oam lsp-trace ldp fec 192.0.2.3/32
tools oam lsp-trace ldp fec 192.0.2.4/32
tools oam lsp-trace ldp fec 192.0.2.5/32

/oam/lsp-trace:
    LDP Trace data has been cleared

/oam/lsp-trace/ldp/fec[prefix=192.0.2.1/32]:
    No valid SR ISIS / LDP Tunnel to 192.0.2.1/32 found

/oam/lsp-trace/ldp/fec[prefix=192.0.2.2/32]:
    Initiated LSP Trace to prefix 192.0.2.2/32 with session id 49156

/oam/lsp-trace/ldp/fec[prefix=192.0.2.3/32]:
    Initiated LSP Trace to prefix 192.0.2.3/32 with session id 49157

/oam/lsp-trace/ldp/fec[prefix=192.0.2.4/32]:
    Initiated LSP Trace to prefix 192.0.2.4/32 with session id 49158

/oam/lsp-trace/ldp/fec[prefix=192.0.2.5/32]:
    Initiated LSP Trace to prefix 192.0.2.5/32 with session id 49159

With the default IS-IS Level 2 metric values for all interfaces on all nodes and LFA enabled, the outcome of the LSP traces indicates that the data paths from PE-1 to PE-2 and to PE-5 go to or via PE-2, while the data paths from PE-1 to PE-3 and to PE-4 go to or via PE-3. Two hops are needed to reach PE-4 (via PE-3) or PE-5 (via PE-2).

--{ running }--[  ]--
A:admin@PE-1# info from state with-context / oam lsp-trace ldp fec * session-id * hop * probe * | as table
+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+
|     Fec      |  Session-id  |     Hop      | Probe-index  | Probes-sent  | Last-probe-  | Reply reply- | Reply round- |    Reply     |    Reply     |
|              |              |              |              |              |    send-     |    sender    |  trip-time   | return-code  |   return-    |
|              |              |              |              |              |   failure-   |              |              |              |   subcode    |
|              |              |              |              |              |    reason    |              |              |              |              |
+==============+==============+==============+==============+==============+==============+==============+==============+==============+==============+
| 192.0.2.2/32 |        49156 |            1 |            1 |            1 |              | 192.0.2.2    |         3559 | replying-    |            1 |
|              |              |              |              |              |              |              |              | router-is-   |              |
|              |              |              |              |              |              |              |              | egress-for-  |              |
|              |              |              |              |              |              |              |              | fec-at-      |              |
|              |              |              |              |              |              |              |              | stack-       |              |
|              |              |              |              |              |              |              |              | depth-n      |              |
| 192.0.2.3/32 |        49157 |            1 |            1 |            1 |              | 192.0.2.3    |         2652 | replying-    |            1 |
|              |              |              |              |              |              |              |              | router-is-   |              |
|              |              |              |              |              |              |              |              | egress-for-  |              |
|              |              |              |              |              |              |              |              | fec-at-      |              |
|              |              |              |              |              |              |              |              | stack-       |              |
|              |              |              |              |              |              |              |              | depth-n      |              |
| 192.0.2.4/32 |        49158 |            1 |            1 |            1 |              | 192.0.2.3    |         2478 | label-       |            1 |
|              |              |              |              |              |              |              |              | switched-at- |              |
|              |              |              |              |              |              |              |              | stack-       |              |
|              |              |              |              |              |              |              |              | depth-n      |              |
| 192.0.2.4/32 |        49158 |            2 |            1 |            1 |              | 192.0.2.4    |         3836 | replying-    |            1 |
|              |              |              |              |              |              |              |              | router-is-   |              |
|              |              |              |              |              |              |              |              | egress-for-  |              |
|              |              |              |              |              |              |              |              | fec-at-      |              |
|              |              |              |              |              |              |              |              | stack-       |              |
|              |              |              |              |              |              |              |              | depth-n      |              |
| 192.0.2.5/32 |        49159 |            1 |            1 |            1 |              | 192.0.2.2    |         3572 | label-       |            1 |
|              |              |              |              |              |              |              |              | switched-at- |              |
|              |              |              |              |              |              |              |              | stack-       |              |
|              |              |              |              |              |              |              |              | depth-n      |              |
| 192.0.2.5/32 |        49159 |            2 |            1 |            1 |              | 192.0.2.5    |         3850 | replying-    |            1 |
|              |              |              |              |              |              |              |              | router-is-   |              |
|              |              |              |              |              |              |              |              | egress-for-  |              |
|              |              |              |              |              |              |              |              | fec-at-      |              |
|              |              |              |              |              |              |              |              | stack-       |              |
|              |              |              |              |              |              |              |              | depth-n      |              |
+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+

Link failure

Disable the interface between PE-1 and PE-2 to simulate a failure of the link.

# On PE-1:
enter candidate
    interface ethernet-1/31 admin-state disable

The outcome of the LSP traces now indicates that all destinations are reached from PE-1 via PE-3 only and that two hops are needed also to reach PE-2 (via PE-3).

--{ running }--[  ]--
A:admin@PE-1# info from state with-context / oam lsp-trace ldp fec * session-id * hop * probe * | as table
+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+
|     Fec      |  Session-id  |     Hop      | Probe-index  | Probes-sent  | Last-probe-  | Reply reply- | Reply round- |    Reply     |    Reply     |
|              |              |              |              |              |    send-     |    sender    |  trip-time   | return-code  |   return-    |
|              |              |              |              |              |   failure-   |              |              |              |   subcode    |
|              |              |              |              |              |    reason    |              |              |              |              |
+==============+==============+==============+==============+==============+==============+==============+==============+==============+==============+
| 192.0.2.2/32 |        49160 |            1 |            1 |            1 |              | 192.0.2.3    |         2750 | label-       |            1 |
|              |              |              |              |              |              |              |              | switched-at- |              |
|              |              |              |              |              |              |              |              | stack-       |              |
|              |              |              |              |              |              |              |              | depth-n      |              |
| 192.0.2.2/32 |        49160 |            2 |            1 |            1 |              | 192.0.2.2    |         3730 | replying-    |            1 |
|              |              |              |              |              |              |              |              | router-is-   |              |
|              |              |              |              |              |              |              |              | egress-for-  |              |
|              |              |              |              |              |              |              |              | fec-at-      |              |
|              |              |              |              |              |              |              |              | stack-       |              |
|              |              |              |              |              |              |              |              | depth-n      |              |
| 192.0.2.3/32 |        49161 |            1 |            1 |            1 |              | 192.0.2.3    |         3208 | replying-    |            1 |
|              |              |              |              |              |              |              |              | router-is-   |              |
|              |              |              |              |              |              |              |              | egress-for-  |              |
|              |              |              |              |              |              |              |              | fec-at-      |              |
|              |              |              |              |              |              |              |              | stack-       |              |
|              |              |              |              |              |              |              |              | depth-n      |              |
| 192.0.2.4/32 |        49162 |            1 |            1 |            1 |              | 192.0.2.3    |         3548 | label-       |            1 |
|              |              |              |              |              |              |              |              | switched-at- |              |
|              |              |              |              |              |              |              |              | stack-       |              |
|              |              |              |              |              |              |              |              | depth-n      |              |
| 192.0.2.4/32 |        49162 |            2 |            1 |            1 |              | 192.0.2.4    |         3827 | replying-    |            1 |
|              |              |              |              |              |              |              |              | router-is-   |              |
|              |              |              |              |              |              |              |              | egress-for-  |              |
|              |              |              |              |              |              |              |              | fec-at-      |              |
|              |              |              |              |              |              |              |              | stack-       |              |
|              |              |              |              |              |              |              |              | depth-n      |              |
| 192.0.2.5/32 |        49163 |            1 |            1 |            1 |              | 192.0.2.3    |         2667 | label-       |            1 |
|              |              |              |              |              |              |              |              | switched-at- |              |
|              |              |              |              |              |              |              |              | stack-       |              |
|              |              |              |              |              |              |              |              | depth-n      |              |
| 192.0.2.5/32 |        49163 |            2 |            1 |            1 |              | 192.0.2.5    |         3854 | replying-    |            1 |
|              |              |              |              |              |              |              |              | router-is-   |              |
|              |              |              |              |              |              |              |              | egress-for-  |              |
|              |              |              |              |              |              |              |              | fec-at-      |              |
|              |              |              |              |              |              |              |              | stack-       |              |
|              |              |              |              |              |              |              |              | depth-n      |              |
+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+

There are no LFA paths any more from PE-1.

--{ running }--[  ]--
A:admin@PE-1# show / network-instance default route-table all
---------------------------------------------------------------------------------------------------------------------------------------------------------
IPv4 unicast route table of network instance default
---------------------------------------------------------------------------------------------------------------------------------------------------------
+-----------------+------+-----------+--------------------+---------+---------+--------+-----------+-----------+-----------+-----------+-----------+
|     Prefix      |  ID  |   Route   |    Route Owner     | Active  | Origin  | Metric |   Pref    | Next-hop  | Next-hop  |  Backup   |  Backup   |
|                 |      |   Type    |                    |         | Network |        |           |  (Type)   | Interface | Next-hop  | Next-hop  |
|                 |      |           |                    |         | Instanc |        |           |           |           |  (Type)   | Interface |
|                 |      |           |                    |         |    e    |        |           |           |           |           |           |
+=================+======+===========+====================+=========+=========+========+===========+===========+===========+===========+===========+
| 192.0.2.1/32    | 15   | host      | net_inst_mgr       | True    | default | 0      | 0         | None      | None      |           |           |
| 192.0.2.2/32    | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 3.2       | 1/32.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.0.2.3/32    | 0    | isis      | isis_mgr           | True    | default | 10     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 3.2       | 1/32.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.0.2.4/32    | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 3.2       | 1/32.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.0.2.5/32    | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 3.2       | 1/32.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.168.13.0/30 | 14   | local     | net_inst_mgr       | True    | default | 0      | 0         | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 3.1       | 1/32.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.168.13.1/32 | 14   | host      | net_inst_mgr       | True    | default | 0      | 0         | None      | None      |           |           |
| 192.168.13.3/32 | 14   | host      | net_inst_mgr       | True    | default | 0      | 0         | None      | None      |           |           |
| 192.168.23.0/30 | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 3.2       | 1/32.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.168.25.0/30 | 0    | isis      | isis_mgr           | True    | default | 30     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 3.2       | 1/32.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.168.34.0/30 | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 3.2       | 1/32.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.168.35.0/30 | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 3.2       | 1/32.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.168.45.0/30 | 0    | isis      | isis_mgr           | True    | default | 30     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 3.2       | 1/32.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
+-----------------+------+-----------+--------------------+---------+---------+--------+-----------+-----------+-----------+-----------+-----------+
---------------------------------------------------------------------------------------------------------------------------------------------------------
IPv4 routes total                    : 13
IPv4 prefixes with active routes     : 13
IPv4 prefixes with active ECMP routes: 0
---------------------------------------------------------------------------------------------------------------------------------------------------------

The paths from PE-1 to all destinations are primary paths and they all go via PE-3.

--{ running }--[  ]--
A:admin@PE-1# info from state with-context / network-instance default protocols ldp ipv4 bindings received-prefix-fec prefix-fec * lsr-id * label-space-id 0 next-hop * |
 as table | filter fields *
+-------------+------------------+-------------+------------------------+----------+-------------+-------------+-----------------------+-------------+
|  Network-   |  Prefix-fec fec  | Prefix-fec  |   Prefix-fec label-    |  Index   |  Next-hop   |  Next-hop-  |       Interface       | Outer-label |
|  instance   |                  |   lsr-id    |        space-id        |          |             |    type     |                       |             |
+=============+==================+=============+========================+==========+=============+=============+=======================+=============+
| default     | 192.0.2.2/32     | 192.0.2.3   |                      0 |        1 | 192.168.13. | primary     | ethernet-1/32.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
| default     | 192.0.2.3/32     | 192.0.2.3   |                      0 |        1 | 192.168.13. | primary     | ethernet-1/32.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
| default     | 192.0.2.4/32     | 192.0.2.3   |                      0 |        1 | 192.168.13. | primary     | ethernet-1/32.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
| default     | 192.0.2.5/32     | 192.0.2.3   |                      0 |        1 | 192.168.13. | primary     | ethernet-1/32.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
+-------------+------------------+-------------+------------------------+----------+-------------+-------------+-----------------------+-------------+

Enable the interface between PE-1 and PE-2 again.

# On PE-1:
enter candidate
    interface ethernet-1/31 admin-state enable

Node failure

Disable node PE-3 to simulate a failure of the node.

# On PE-3:
enter candidate
    network-instance default admin-state disable

The outcome of the LSP traces now indicates that PE-4 is reached from PE-1 via PE-2 only, needing three hops (PE-2, PE-5, PE-4) and that two hops are needed also to reach PE-5 (via PE-2). Paths to PE-3 are not present, because PE-3 is out.

--{ running }--[  ]--
A:admin@PE-1# info from state with-context / oam lsp-trace ldp fec * session-id * hop * probe * | as table
+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+
|     Fec      |  Session-id  |     Hop      | Probe-index  | Probes-sent  | Last-probe-  | Reply reply- | Reply round- |    Reply     |    Reply     |
|              |              |              |              |              |    send-     |    sender    |  trip-time   | return-code  |   return-    |
|              |              |              |              |              |   failure-   |              |              |              |   subcode    |
|              |              |              |              |              |    reason    |              |              |              |              |
+==============+==============+==============+==============+==============+==============+==============+==============+==============+==============+
| 192.0.2.2/32 |        49168 |            1 |            1 |            1 |              | 192.0.2.2    |         3423 | replying-    |            1 |
|              |              |              |              |              |              |              |              | router-is-   |              |
|              |              |              |              |              |              |              |              | egress-for-  |              |
|              |              |              |              |              |              |              |              | fec-at-      |              |
|              |              |              |              |              |              |              |              | stack-       |              |
|              |              |              |              |              |              |              |              | depth-n      |              |
| 192.0.2.4/32 |        49169 |            1 |            1 |            1 |              | 192.0.2.2    |         3325 | label-       |            1 |
|              |              |              |              |              |              |              |              | switched-at- |              |
|              |              |              |              |              |              |              |              | stack-       |              |
|              |              |              |              |              |              |              |              | depth-n      |              |
| 192.0.2.4/32 |        49169 |            2 |            1 |            1 |              | 192.0.2.5    |         3841 | label-       |            1 |
|              |              |              |              |              |              |              |              | switched-at- |              |
|              |              |              |              |              |              |              |              | stack-       |              |
|              |              |              |              |              |              |              |              | depth-n      |              |
| 192.0.2.4/32 |        49169 |            3 |            1 |            1 |              | 192.0.2.4    |         3721 | replying-    |            1 |
|              |              |              |              |              |              |              |              | router-is-   |              |
|              |              |              |              |              |              |              |              | egress-for-  |              |
|              |              |              |              |              |              |              |              | fec-at-      |              |
|              |              |              |              |              |              |              |              | stack-       |              |
|              |              |              |              |              |              |              |              | depth-n      |              |
| 192.0.2.5/32 |        49170 |            1 |            1 |            1 |              | 192.0.2.2    |         1840 | label-       |            1 |
|              |              |              |              |              |              |              |              | switched-at- |              |
|              |              |              |              |              |              |              |              | stack-       |              |
|              |              |              |              |              |              |              |              | depth-n      |              |
| 192.0.2.5/32 |        49170 |            2 |            1 |            1 |              | 192.0.2.5    |         3683 | replying-    |            1 |
|              |              |              |              |              |              |              |              | router-is-   |              |
|              |              |              |              |              |              |              |              | egress-for-  |              |
|              |              |              |              |              |              |              |              | fec-at-      |              |
|              |              |              |              |              |              |              |              | stack-       |              |
|              |              |              |              |              |              |              |              | depth-n      |              |
+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+

There are no LFA paths any more from PE-1. The 192.168.23.0/30, 192.168.34.0/30, and 192.168.35.0/30 networks are still reachable from PE-1, via paths through PE-2 (metric 20), through PE-2, PE-5, and PE-4 (metric 40), and through PE-2 and PE-5 (metric 30) respectively.

--{ running }--[  ]--
A:admin@PE-1# show / network-instance default route-table all
---------------------------------------------------------------------------------------------------------------------------------------------------------
IPv4 unicast route table of network instance default
---------------------------------------------------------------------------------------------------------------------------------------------------------
+-----------------+------+-----------+--------------------+---------+---------+--------+-----------+-----------+-----------+-----------+-----------+
|     Prefix      |  ID  |   Route   |    Route Owner     | Active  | Origin  | Metric |   Pref    | Next-hop  | Next-hop  |  Backup   |  Backup   |
|                 |      |   Type    |                    |         | Network |        |           |  (Type)   | Interface | Next-hop  | Next-hop  |
|                 |      |           |                    |         | Instanc |        |           |           |           |  (Type)   | Interface |
|                 |      |           |                    |         |    e    |        |           |           |           |           |           |
+=================+======+===========+====================+=========+=========+========+===========+===========+===========+===========+===========+
| 192.0.2.1/32    | 15   | host      | net_inst_mgr       | True    | default | 0      | 0         | None      | None      |           |           |
| 192.0.2.2/32    | 0    | isis      | isis_mgr           | True    | default | 10     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 2.2       | 1/31.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.0.2.4/32    | 0    | isis      | isis_mgr           | True    | default | 30     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 2.2       | 1/31.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.0.2.5/32    | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 2.2       | 1/31.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.168.12.0/30 | 13   | local     | net_inst_mgr       | True    | default | 0      | 0         | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 2.1       | 1/31.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.168.12.1/32 | 13   | host      | net_inst_mgr       | True    | default | 0      | 0         | None      | None      |           |           |
| 192.168.12.3/32 | 13   | host      | net_inst_mgr       | True    | default | 0      | 0         | None      | None      |           |           |
| 192.168.13.0/30 | 14   | local     | net_inst_mgr       | True    | default | 0      | 0         | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 3.1       | 1/32.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.168.13.1/32 | 14   | host      | net_inst_mgr       | True    | default | 0      | 0         | None      | None      |           |           |
| 192.168.13.3/32 | 14   | host      | net_inst_mgr       | True    | default | 0      | 0         | None      | None      |           |           |
| 192.168.23.0/30 | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 2.2       | 1/31.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.168.25.0/30 | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 2.2       | 1/31.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.168.34.0/30 | 0    | isis      | isis_mgr           | True    | default | 40     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 2.2       | 1/31.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.168.35.0/30 | 0    | isis      | isis_mgr           | True    | default | 30     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 2.2       | 1/31.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.168.45.0/30 | 0    | isis      | isis_mgr           | True    | default | 30     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 2.2       | 1/31.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
+-----------------+------+-----------+--------------------+---------+---------+--------+-----------+-----------+-----------+-----------+-----------+
---------------------------------------------------------------------------------------------------------------------------------------------------------
IPv4 routes total                    : 15
IPv4 prefixes with active routes     : 15
IPv4 prefixes with active ECMP routes: 0
---------------------------------------------------------------------------------------------------------------------------------------------------------

The paths from PE-1 to all destinations are primary paths and they all go via PE-2.

--{ running }--[  ]--
A:admin@PE-1# info from state with-context / network-instance default protocols ldp ipv4 bindings received-prefix-fec prefix-fec * lsr-id * label-space-id 0 next-hop * |
 as table | filter fields *
+-------------+------------------+-------------+------------------------+----------+-------------+-------------+-----------------------+-------------+
|  Network-   |  Prefix-fec fec  | Prefix-fec  |   Prefix-fec label-    |  Index   |  Next-hop   |  Next-hop-  |       Interface       | Outer-label |
|  instance   |                  |   lsr-id    |        space-id        |          |             |    type     |                       |             |
+=============+==================+=============+========================+==========+=============+=============+=======================+=============+
| default     | 192.0.2.2/32     | 192.0.2.2   |                      0 |        1 | 192.168.12. | primary     | ethernet-1/31.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
| default     | 192.0.2.4/32     | 192.0.2.2   |                      0 |        1 | 192.168.12. | primary     | ethernet-1/31.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
| default     | 192.0.2.5/32     | 192.0.2.2   |                      0 |        1 | 192.168.12. | primary     | ethernet-1/31.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
+-------------+------------------+-------------+------------------------+----------+-------------+-------------+-----------------------+-------------+

Enable node PE-3 again.

# On PE-3:
enter candidate
    network-instance default admin-state enable

Additional topics

Metric change

Decrease the IS-IS Level 2 metric values on the interfaces between PE-4 and PE-5 to 5, as follows:

# On PE-4, PE-5:
enter candidate
    network-instance default protocols isis instance 0 {
                    interface ethernet-1/5.1 {    # ethernet-1/7.1 for PE-5
                        level 2 {
                            metric 5

The outcome of the LSP traces indicates that two hops are needed only to reach PE-4 (via PE-3) and PE-5 (via PE-2). This is verified as follows:

--{ running }--[  ]--
A:admin@PE-1# info from state with-context / oam lsp-trace ldp fec * session-id * hop * probe * | as table
+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+
|     Fec      |  Session-id  |     Hop      | Probe-index  | Probes-sent  | Last-probe-  | Reply reply- | Reply round- |    Reply     |    Reply     |
|              |              |              |              |              |    send-     |    sender    |  trip-time   | return-code  |   return-    |
|              |              |              |              |              |   failure-   |              |              |              |   subcode    |
|              |              |              |              |              |    reason    |              |              |              |              |
+==============+==============+==============+==============+==============+==============+==============+==============+==============+==============+
| 192.0.2.2/32 |        49175 |            1 |            1 |            1 |              | 192.0.2.2    |         3212 | replying-    |            1 |
|              |              |              |              |              |              |              |              | router-is-   |              |
|              |              |              |              |              |              |              |              | egress-for-  |              |
|              |              |              |              |              |              |              |              | fec-at-      |              |
|              |              |              |              |              |              |              |              | stack-       |              |
|              |              |              |              |              |              |              |              | depth-n      |              |
| 192.0.2.3/32 |        49176 |            1 |            1 |            1 |              | 192.0.2.3    |         3244 | replying-    |            1 |
|              |              |              |              |              |              |              |              | router-is-   |              |
|              |              |              |              |              |              |              |              | egress-for-  |              |
|              |              |              |              |              |              |              |              | fec-at-      |              |
|              |              |              |              |              |              |              |              | stack-       |              |
|              |              |              |              |              |              |              |              | depth-n      |              |
| 192.0.2.4/32 |        49177 |            1 |            1 |            1 |              | 192.0.2.3    |         2512 | label-       |            1 |
|              |              |              |              |              |              |              |              | switched-at- |              |
|              |              |              |              |              |              |              |              | stack-       |              |
|              |              |              |              |              |              |              |              | depth-n      |              |
| 192.0.2.4/32 |        49177 |            2 |            1 |            1 |              | 192.0.2.4    |         3843 | replying-    |            1 |
|              |              |              |              |              |              |              |              | router-is-   |              |
|              |              |              |              |              |              |              |              | egress-for-  |              |
|              |              |              |              |              |              |              |              | fec-at-      |              |
|              |              |              |              |              |              |              |              | stack-       |              |
|              |              |              |              |              |              |              |              | depth-n      |              |
| 192.0.2.5/32 |        49178 |            1 |            1 |            1 |              | 192.0.2.2    |         3693 | label-       |            1 |
|              |              |              |              |              |              |              |              | switched-at- |              |
|              |              |              |              |              |              |              |              | stack-       |              |
|              |              |              |              |              |              |              |              | depth-n      |              |
| 192.0.2.5/32 |        49178 |            2 |            1 |            1 |              | 192.0.2.5    |         3858 | replying-    |            1 |
|              |              |              |              |              |              |              |              | router-is-   |              |
|              |              |              |              |              |              |              |              | egress-for-  |              |
|              |              |              |              |              |              |              |              | fec-at-      |              |
|              |              |              |              |              |              |              |              | stack-       |              |
|              |              |              |              |              |              |              |              | depth-n      |              |
+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+

All four nodes and all IS-IS routes learned by PE-1 are LFA protected (link or node). The total path metric to reach the 192.168.45.0/30 network (via PE-2 and PE-5) has decrased from 30 (10 + 10 + 10) to 25 (10 + 10 + 5):

--{ running }--[  ]--
A:admin@PE-1# show / network-instance default route-table all
+-----------------+------+-----------+--------------------+---------+---------+--------+-----------+-----------+-----------+-----------+-----------+
|     Prefix      |  ID  |   Route   |    Route Owner     | Active  | Origin  | Metric |   Pref    | Next-hop  | Next-hop  |  Backup   |  Backup   |
|                 |      |   Type    |                    |         | Network |        |           |  (Type)   | Interface | Next-hop  | Next-hop  |
|                 |      |           |                    |         | Instanc |        |           |           |           |  (Type)   | Interface |
|                 |      |           |                    |         |    e    |        |           |           |           |           |           |
+=================+======+===========+====================+=========+=========+========+===========+===========+===========+===========+===========+
| 192.0.2.1/32    | 15   | host      | net_inst_mgr       | True    | default | 0      | 0         | None      | None      |           |           |
| 192.0.2.2/32    | 0    | isis      | isis_mgr           | True    | default | 10     | 18        | 192.168.1 | ethernet- | 192.168.1 | ethernet- |
|                 |      |           |                    |         |         |        |           | 2.2       | 1/31.1    | 3.2       | 1/32.1    |
|                 |      |           |                    |         |         |        |           | (direct)  |           | (direct)  |           |
| 192.0.2.3/32    | 0    | isis      | isis_mgr           | True    | default | 10     | 18        | 192.168.1 | ethernet- | 192.168.1 | ethernet- |
|                 |      |           |                    |         |         |        |           | 3.2       | 1/32.1    | 2.2       | 1/31.1    |
|                 |      |           |                    |         |         |        |           | (direct)  |           | (direct)  |           |
| 192.0.2.4/32    | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- | 192.168.1 | ethernet- |
|                 |      |           |                    |         |         |        |           | 3.2       | 1/32.1    | 2.2       | 1/31.1    |
|                 |      |           |                    |         |         |        |           | (direct)  |           | (direct)  |           |
| 192.0.2.5/32    | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- | 192.168.1 | ethernet- |
|                 |      |           |                    |         |         |        |           | 2.2       | 1/31.1    | 3.2       | 1/32.1    |
|                 |      |           |                    |         |         |        |           | (direct)  |           | (direct)  |           |
| 192.168.12.0/30 | 13   | local     | net_inst_mgr       | True    | default | 0      | 0         | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 2.1       | 1/31.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.168.12.1/32 | 13   | host      | net_inst_mgr       | True    | default | 0      | 0         | None      | None      |           |           |
| 192.168.12.3/32 | 13   | host      | net_inst_mgr       | True    | default | 0      | 0         | None      | None      |           |           |
| 192.168.13.0/30 | 14   | local     | net_inst_mgr       | True    | default | 0      | 0         | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 3.1       | 1/32.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.168.13.1/32 | 14   | host      | net_inst_mgr       | True    | default | 0      | 0         | None      | None      |           |           |
| 192.168.13.3/32 | 14   | host      | net_inst_mgr       | True    | default | 0      | 0         | None      | None      |           |           |
| 192.168.23.0/30 | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- | 192.168.1 | ethernet- |
|                 |      |           |                    |         |         |        |           | 2.2       | 1/31.1    | 3.2       | 1/32.1    |
|                 |      |           |                    |         |         |        |           | (direct)  |           | (direct)  |           |
| 192.168.25.0/30 | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- | 192.168.1 | ethernet- |
|                 |      |           |                    |         |         |        |           | 2.2       | 1/31.1    | 3.2       | 1/32.1    |
|                 |      |           |                    |         |         |        |           | (direct)  |           | (direct)  |           |
| 192.168.34.0/30 | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- | 192.168.1 | ethernet- |
|                 |      |           |                    |         |         |        |           | 3.2       | 1/32.1    | 2.2       | 1/31.1    |
|                 |      |           |                    |         |         |        |           | (direct)  |           | (direct)  |           |
| 192.168.35.0/30 | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- | 192.168.1 | ethernet- |
|                 |      |           |                    |         |         |        |           | 3.2       | 1/32.1    | 2.2       | 1/31.1    |
|                 |      |           |                    |         |         |        |           | (direct)  |           | (direct)  |           |
| 192.168.45.0/30 | 0    | isis      | isis_mgr           | True    | default | 25     | 18        | 192.168.1 | ethernet- | 192.168.1 | ethernet- |
|                 |      |           |                    |         |         |        |           | 2.2       | 1/31.1    | 3.2       | 1/32.1    |
|                 |      |           |                    |         |         |        |           | (direct)  |           | (direct)  |           |
+-----------------+------+-----------+--------------------+---------+---------+--------+-----------+-----------+-----------+-----------+-----------+
---------------------------------------------------------------------------------------------------------------------------------------------------------
IPv4 routes total                    : 16
IPv4 prefixes with active routes     : 16
IPv4 prefixes with active ECMP routes: 0
---------------------------------------------------------------------------------------------------------------------------------------------------------

Alternate data paths are back in place:

--{ running }--[  ]--
A:admin@PE-1# info from state with-context / network-instance default protocols ldp ipv4 bindings received-prefix-fec prefix-fec * lsr-id * label-space-id 0 next-hop * |
 as table | filter fields *
+-------------+------------------+-------------+------------------------+----------+-------------+-------------+-----------------------+-------------+
|  Network-   |  Prefix-fec fec  | Prefix-fec  |   Prefix-fec label-    |  Index   |  Next-hop   |  Next-hop-  |       Interface       | Outer-label |
|  instance   |                  |   lsr-id    |        space-id        |          |             |    type     |                       |             |
+=============+==================+=============+========================+==========+=============+=============+=======================+=============+
| default     | 192.0.2.2/32     | 192.0.2.2   |                      0 |        1 | 192.168.12. | primary     | ethernet-1/31.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
| default     | 192.0.2.2/32     | 192.0.2.3   |                      0 |        1 | 192.168.13. | alternate   | ethernet-1/32.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
| default     | 192.0.2.3/32     | 192.0.2.2   |                      0 |        1 | 192.168.12. | alternate   | ethernet-1/31.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
| default     | 192.0.2.3/32     | 192.0.2.3   |                      0 |        1 | 192.168.13. | primary     | ethernet-1/32.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
| default     | 192.0.2.4/32     | 192.0.2.2   |                      0 |        1 | 192.168.12. | alternate   | ethernet-1/31.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
| default     | 192.0.2.4/32     | 192.0.2.3   |                      0 |        1 | 192.168.13. | primary     | ethernet-1/32.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
| default     | 192.0.2.5/32     | 192.0.2.2   |                      0 |        1 | 192.168.12. | primary     | ethernet-1/31.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
| default     | 192.0.2.5/32     | 192.0.2.3   |                      0 |        1 | 192.168.13. | alternate   | ethernet-1/32.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
+-------------+------------------+-------------+------------------------+----------+-------------+-------------+-----------------------+-------------+

Data verification in the direction from PE-1 to PE-4 shows the primary data path to PE-4 via PE-3 and the LFA alternate data path via PE-2 that is protecting node PE-3.

Figure 4. Data verification in the direction from PE-1 to PE-4

Restore the default IS-IS Level 2 metrics on PE-4 and PE-5.

# On PE-4, PE-5:
enter candidate
    network-instance default protocols isis instance 0 {
                    interface ethernet-1/5.1 {    # ethernet-1/7.1 for PE-5
                        level 2 {
                            delete metric

Increase the IS-IS Level 2 metric values on the interfaces between PE-2 and PE-3 to 30. LFA paths for some nodes and links are no longer possible.

# On PE-2, PE-3:
enter candidate
    network-instance default protocols isis instance 0 {
                    interface ethernet-1/34.1 {
                        level 2 {
                            metric 30

On PE-1, the inequality 3 formula finds LFA next-hop coverages for prefix PE-4 and PE-5. The inequality formula 1 finds LFA next-hop coverages for prefix PE-4, PE-5, and the subnet between PE-4 and PE-5. This can be derived from:

A:admin@PE-1# show / network-instance default route-table all | grep isis
| 192.0.2.2/32    | 0    | isis      | isis_mgr           | True    | default | 10     | 18        | 192.168.1 | ethernet- |           |           |
| 192.0.2.3/32    | 0    | isis      | isis_mgr           | True    | default | 10     | 18        | 192.168.1 | ethernet- |           |           |
| 192.0.2.4/32    | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- | 192.168.1 | ethernet- |
| 192.0.2.5/32    | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- | 192.168.1 | ethernet- |
| 192.168.23.0/30 | 0    | isis      | isis_mgr           | True    | default | 40     | 18        | 192.168.1 | ethernet- |           |           |
| 192.168.25.0/30 | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- |           |           |
| 192.168.34.0/30 | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- |           |           |
| 192.168.35.0/30 | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- |           |           |
| 192.168.45.0/30 | 0    | isis      | isis_mgr           | True    | default | 30     | 18        | 192.168.1 | ethernet- | 192.168.1 | ethernet- |

Both inequality formulas are visualized in LFA computation: inequality 3 for prefix PE-4 (D) on PE-1 (S) and LFA computation: inequality 1 for prefix PE-4 (D) on PE-1 (S) for prefix 192.0.2.4/32 (= PE-4) on PE-1 which serves as the source node for LFA next-hop computation.

Figure 5. LFA computation: inequality 3 for prefix PE-4 (D) on PE-1 (S)
Figure 6. LFA computation: inequality 1 for prefix PE-4 (D) on PE-1 (S)
Inequality 3 formula:
SP(backup NHR, D) < SP(backup NHR, PN) + SP(PN, D)

For a node LFA next-hop computation of prefix 192.0.2.4/32 (D) on PE-1, this means that the shortest path from backup next-hop router PE-2 toward destination PE-4 must be smaller than the sum of the shortest path from backup next-hop router PE-2 toward protected node PE-3 and the shortest path from protected node PE-3 to destination PE-4.

The shortest path from backup next-hop router PE-2 toward destination PE-4 is going via PE-5, using IS-IS level 2 metric 10 for interface int-PE-2-PE-5 and IS-IS level 2 metric 10 for interface int-PE-5-PE-4. The shortest path from backup next-hop router PE-2 toward protected node PE-3 is going via PE-1, using IS-IS level 2 metric 10 for interface int-PE-2-PE-1 and IS-IS level 2 metric 10 for interface int-PE-1-PE-3. The shortest path from protected node PE-3 to destination PE-4 uses IS-IS level 2 metric 10 for interface int-PE-3-PE-4. The computation is as follows:

Prefix 192.0.2.4/32: SP(PE-2, PE-4) < SP(PE-2, PE-3) + SP(PE-3, PE-4)
                           10 + 10  <      (10 + 10) + 10             => OK

Inequality 1 formula:

SP(backup NHR, D) < SP(backup NHR, S) + SP(S, D)

For a link LFA next-hop computation of prefix 192.0.2.4/32 (D) on PE-1, this means that the shortest path from backup next-hop router PE-2 toward destination PE-4 must be smaller than the sum of the shortest path from backup next-hop router PE-2 toward source PE-1 and the shortest path from source PE-1 to destination PE-4.

The shortest path from backup next-hop router PE-2 toward destination PE-4 is going over PE-5, using IS-IS level 2 metric 10 for interface int-PE-2-PE-5 and IS-IS level 2 metric 10 for interface int-PE-5-PE-4. The shortest path from backup next-hop router PE-2 toward source PE-1 uses IS-IS level 2 metric 10 for interface int-PE-2-PE-1. The shortest path from source PE-1 to destination PE-4 follows the normal SPF computation, going over PE-3, using IS-IS level 2 metric 10 for interface int-PE-1-PE-3, and IS-IS level 2 metric 10 for interface int-PE-3-PE-4.

The computation is as follows:

Prefix 192.0.2.4/32: SP(PE-2,PE-4) < SP(PE-2,PE-1) + SP(PE-1,PE-4)
                           10 + 10 <            10 + (10 + 10)      => OK

Considering all inequality 3 computations, only two out of four are valid (OK). So, the LFA node coverage on PE-1 is 2/4=50%.

Considering all inequality 1 computations, only three out of nine are valid (OK). So, the LFA IPv4 link coverage on PE-1 is 3/9=33%.

Restore the default IS-IS Level 2 metrics on PE-2 and PE-3.

IS-IS overload

As stated in RFC 3137, sometimes it is useful and desirable for a router not to be a transit node. For those cases, it is also desirable not to have that router used as transit node during the LFA next-hop computation. Within the IS-IS protocol, this is achieved by configuring IS-IS overload. When other routers detect that IS-IS overload is configured, they only use this router for packets destined to the overloaded router's directly connected networks and IP prefixes.

As an example, configure IS-IS overload on PE-2, as follows:

# On PE-2:
enter candidate
    network-instance default protocols isis instance 0 {
                    overload {
                        immediate {
                            set-bit true
                            max-metric false

The overload flag is advertised in the IS-IS link state database for LSP 0100.0000.0002.00-00 that corresponds with PE-2. This indicates to the other PEs that PE-2 is not available as a transit node and also not as a backup next hop node.

--{ running }--[  ]--
A:admin@PE-1# info from state with-context / network-instance default protocols isis instance 0 level 2
    network-instance default {
        protocols {
            isis {
                instance 0 {
                    level 2 {
                        metric-style wide
                        loopfree-alternate-exclude false
                        ---snip---
                        link-state-database {
                            lsp 0100.0000.0001.00-00 {
                                ---snip---
                            }
                            lsp 0100.0000.0002.00-00 {
                                pdu-type level-2
                                is-type 3
                                ---snip---
                                flags [
                                    overload
                                ]
                                tlvs {
                                    ---snip---
                                }
                            }
                            lsp 0100.0000.0003.00-00 {
                                ---snip---
                            }
                            lsp 0100.0000.0004.00-00 {
                                ---snip---
                            }
                            lsp 0100.0000.0005.00-00 {
                                ---snip---
                            }

The primary path from PE-1 to PE-5 goes via PE-3 instead of via PE-2. This is also the case for the primary path from PE-1 to 192.168.45.0/30. There is no alternate path for the primary paths that go via PE-3. PE-3 still acts as the backup node for the primary paths that go via PE-2.

--{ running }--[  ]--
A:admin@PE-1# info from state with-context / network-instance default protocols ldp ipv4 bindings received-prefix-fec prefix-fec * lsr-id * label-space-id 0 next-hop * |
 as table | filter fields *
+-------------+------------------+-------------+------------------------+----------+-------------+-------------+-----------------------+-------------+
|  Network-   |  Prefix-fec fec  | Prefix-fec  |   Prefix-fec label-    |  Index   |  Next-hop   |  Next-hop-  |       Interface       | Outer-label |
|  instance   |                  |   lsr-id    |        space-id        |          |             |    type     |                       |             |
+=============+==================+=============+========================+==========+=============+=============+=======================+=============+
| default     | 192.0.2.2/32     | 192.0.2.2   |                      0 |        1 | 192.168.12. | primary     | ethernet-1/31.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
| default     | 192.0.2.2/32     | 192.0.2.3   |                      0 |        1 | 192.168.13. | alternate   | ethernet-1/32.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
| default     | 192.0.2.3/32     | 192.0.2.3   |                      0 |        1 | 192.168.13. | primary     | ethernet-1/32.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
| default     | 192.0.2.4/32     | 192.0.2.3   |                      0 |        1 | 192.168.13. | primary     | ethernet-1/32.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
| default     | 192.0.2.5/32     | 192.0.2.3   |                      0 |        1 | 192.168.13. | primary     | ethernet-1/32.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
+-------------+------------------+-------------+------------------------+----------+-------------+-------------+-----------------------+-------------+

Only three paths from PE-1 are LFA protected.

--{ running }--[  ]--
A:admin@PE-1# show / network-instance default route-table all
---------------------------------------------------------------------------------------------------------------------------------------------------------
IPv4 unicast route table of network instance default
---------------------------------------------------------------------------------------------------------------------------------------------------------
+-----------------+------+-----------+--------------------+---------+---------+--------+-----------+-----------+-----------+-----------+-----------+
|     Prefix      |  ID  |   Route   |    Route Owner     | Active  | Origin  | Metric |   Pref    | Next-hop  | Next-hop  |  Backup   |  Backup   |
|                 |      |   Type    |                    |         | Network |        |           |  (Type)   | Interface | Next-hop  | Next-hop  |
|                 |      |           |                    |         | Instanc |        |           |           |           |  (Type)   | Interface |
|                 |      |           |                    |         |    e    |        |           |           |           |           |           |
+=================+======+===========+====================+=========+=========+========+===========+===========+===========+===========+===========+
| 192.0.2.1/32    | 15   | host      | net_inst_mgr       | True    | default | 0      | 0         | None      | None      |           |           |
| 192.0.2.2/32    | 0    | isis      | isis_mgr           | True    | default | 10     | 18        | 192.168.1 | ethernet- | 192.168.1 | ethernet- |
|                 |      |           |                    |         |         |        |           | 2.2       | 1/31.1    | 3.2       | 1/32.1    |
|                 |      |           |                    |         |         |        |           | (direct)  |           | (direct)  |           |
| 192.0.2.3/32    | 0    | isis      | isis_mgr           | True    | default | 10     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 3.2       | 1/32.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.0.2.4/32    | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 3.2       | 1/32.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.0.2.5/32    | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 3.2       | 1/32.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.168.12.0/30 | 13   | local     | net_inst_mgr       | True    | default | 0      | 0         | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 2.1       | 1/31.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.168.12.1/32 | 13   | host      | net_inst_mgr       | True    | default | 0      | 0         | None      | None      |           |           |
| 192.168.12.3/32 | 13   | host      | net_inst_mgr       | True    | default | 0      | 0         | None      | None      |           |           |
| 192.168.13.0/30 | 14   | local     | net_inst_mgr       | True    | default | 0      | 0         | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 3.1       | 1/32.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.168.13.1/32 | 14   | host      | net_inst_mgr       | True    | default | 0      | 0         | None      | None      |           |           |
| 192.168.13.3/32 | 14   | host      | net_inst_mgr       | True    | default | 0      | 0         | None      | None      |           |           |
| 192.168.23.0/30 | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- | 192.168.1 | ethernet- |
|                 |      |           |                    |         |         |        |           | 2.2       | 1/31.1    | 3.2       | 1/32.1    |
|                 |      |           |                    |         |         |        |           | (direct)  |           | (direct)  |           |
| 192.168.25.0/30 | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- | 192.168.1 | ethernet- |
|                 |      |           |                    |         |         |        |           | 2.2       | 1/31.1    | 3.2       | 1/32.1    |
|                 |      |           |                    |         |         |        |           | (direct)  |           | (direct)  |           |
| 192.168.34.0/30 | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 3.2       | 1/32.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.168.35.0/30 | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 3.2       | 1/32.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.168.45.0/30 | 0    | isis      | isis_mgr           | True    | default | 30     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 3.2       | 1/32.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
+-----------------+------+-----------+--------------------+---------+---------+--------+-----------+-----------+-----------+-----------+-----------+
---------------------------------------------------------------------------------------------------------------------------------------------------------
IPv4 routes total                    : 16
IPv4 prefixes with active routes     : 16
IPv4 prefixes with active ECMP routes: 0
---------------------------------------------------------------------------------------------------------------------------------------------------------

With IS-IS set-bit true on PE-2 configured and max-metric false, the LFA coverage on PE-1 changes as follows.

Considering all inequality 3 computations, only one out of four is valid (OK). So, the LFA node coverage on PE-1 is 1/4=25%.

Considering all inequality 1 computations, only three out of nine are valid (OK). So, the LFA IPv4 link coverage on PE-1 is 3/9=33%.

On PE-1, only three inequality 1 computations are possible, as seen in the previous show commands. The inequality 1 computation on PE-1 for destination 192.168.25.0/30 is as follows:

SP(backup NHR,D) < SP(backup NHR,S) + SP(S,D)
      SP(PE-3,D) <    SP(PE-3,PE-1) + SP(PE-1,D)
         10 + 10 <         10 + (10 + 10) => OK
Figure 7. IS-IS overload on PE-2, inequality 1 for 192.168.25.0/30 (D) on PE-1 (S)

It is also possible to configure a node as overloaded by advertising the node's transit links with maximum metric (16777214). As an example, configure IS-IS overload on PE-2, as follows:

# On PE-2:
enter candidate
    network-instance default protocols isis instance 0 {
                    overload {
                        immediate {
                            set-bit true
                            max-metric true    # set-bit must be true

The maximum link metric for each directly connected neighbor is advertised in the IS-IS link state database for LSP 0100.0000.0002.00-00 that corresponds with PE-2. This indicates to the other PEs that PE-2 is still available as a transit node and also as a backup node, but with maximum link metric.

    network-instance default {
        protocols {
            isis {
                instance 0 {
                    level 2 {
                        metric-style wide
                        loopfree-alternate-exclude false
                        ---snip---
                        link-state-database {
                            lsp 0100.0000.0001.00-00 {
                                ---snip---
                            }
                            lsp 0100.0000.0002.00-00 {
                                ---snip---
                                pdu-type level-2
                                is-type 3
                                tlvs {
                                    ---snip---
                                    tlv extended-is-reachability {
                                        extended-is-reachability {
                                            neighbors {
                                                neighbor 0100.0000.0001 {
                                                    instances {
                                                        instance 0 {
                                                            metric 16777214
                                                            subtlvs {
                                                                subtlv is-reachability-ipv4-interface-address {
                                                                    ipv4-interface-address {
                                                                        address [
                                                                            192.168.12.2
                                                                        ]
                                                                    }
                                                                }
                                                                subtlv is-reachability-ipv4-neighbor-address {
                                                                    ipv4-neighbor-address {
                                                                        address [
                                                                            192.168.12.1
                                                                        ]
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                                neighbor 0100.0000.0003 {
                                                    instances {
                                                        instance 0 {
                                                            metric 16777214
                                                            subtlvs {
                                                                subtlv is-reachability-ipv4-interface-address {
                                                                    ipv4-interface-address {
                                                                        address [
                                                                            192.168.23.1
                                                                        ]
                                                                    }
                                                                }
                                                                subtlv is-reachability-ipv4-neighbor-address {
                                                                    ipv4-neighbor-address {
                                                                        address [
                                                                            192.168.23.2
                                                                        ]
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                                neighbor 0100.0000.0005 {
                                                    instances {
                                                        instance 0 {
                                                            metric 16777214
                                                            subtlvs {
                                                                subtlv is-reachability-ipv4-interface-address {
                                                                    ipv4-interface-address {
                                                                        address [
                                                                            192.168.25.1
                                                                        ]
                                                                    }
                                                                }
                                                                subtlv is-reachability-ipv4-neighbor-address {
                                                                    ipv4-neighbor-address {
                                                                        address [
                                                                            192.168.25.2
                                                                        ]
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            lsp 0100.0000.0003.00-00 {
                                ---snip---
                            }
                            lsp 0100.0000.0004.00-00 {
                                ---snip---
                            }
                            lsp 0100.0000.0005.00-00 {
                                ---snip---
                            }

The primary path from PE-1 to PE-5 goes via PE-3 instead of via PE-2. This is also the case for the primary path from PE-1 to 192.168.45.0/30. There is no alternate path for the primary paths that go via PE-3. PE-3 still acts as the backup node for the primary paths that go via PE-2.

--{ running }--[  ]--
A:admin@PE-1# info from state with-context / network-instance default protocols ldp ipv4 bindings received-prefix-fec prefix-fec * lsr-id * label-space-id 0 next-hop * |
 as table | filter fields *
+-------------+------------------+-------------+------------------------+----------+-------------+-------------+-----------------------+-------------+
|  Network-   |  Prefix-fec fec  | Prefix-fec  |   Prefix-fec label-    |  Index   |  Next-hop   |  Next-hop-  |       Interface       | Outer-label |
|  instance   |                  |   lsr-id    |        space-id        |          |             |    type     |                       |             |
+=============+==================+=============+========================+==========+=============+=============+=======================+=============+
| default     | 192.0.2.2/32     | 192.0.2.2   |                      0 |        1 | 192.168.12. | primary     | ethernet-1/31.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
| default     | 192.0.2.2/32     | 192.0.2.3   |                      0 |        1 | 192.168.13. | alternate   | ethernet-1/32.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
| default     | 192.0.2.3/32     | 192.0.2.2   |                      0 |        1 | 192.168.12. | alternate   | ethernet-1/31.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
| default     | 192.0.2.3/32     | 192.0.2.3   |                      0 |        1 | 192.168.13. | primary     | ethernet-1/32.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
| default     | 192.0.2.4/32     | 192.0.2.3   |                      0 |        1 | 192.168.13. | primary     | ethernet-1/32.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
| default     | 192.0.2.5/32     | 192.0.2.2   |                      0 |        1 | 192.168.12. | alternate   | ethernet-1/31.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
| default     | 192.0.2.5/32     | 192.0.2.3   |                      0 |        1 | 192.168.13. | primary     | ethernet-1/32.1       |             |
|             |                  |             |                        |          | 2           |             |                       |             |
+-------------+------------------+-------------+------------------------+----------+-------------+-------------+-----------------------+-------------+

When the destination node belongs to the set of direct neighbors of PE-2, the LFA computation uses the configured link metrics. Otherwise, the LFA computation uses the maximum metric value on the links to the transit nodes. In the given example, only PE-4 does not belong to the set of direct neighbors of PE-2. So, the node and link inequalities for PE-4 cannot be fullfilled. On the primary path, the 192.168.45.0/32 network is reached via PE-4. So the link inequality for the 192.168.45.0/32 network can also not be fullfilled.

--{ running }--[  ]--
A:admin@PE-1# show / network-instance default route-table all
---------------------------------------------------------------------------------------------------------------------------------------------------------
IPv4 unicast route table of network instance default
---------------------------------------------------------------------------------------------------------------------------------------------------------
+-----------------+------+-----------+--------------------+---------+---------+--------+-----------+-----------+-----------+-----------+-----------+
|     Prefix      |  ID  |   Route   |    Route Owner     | Active  | Origin  | Metric |   Pref    | Next-hop  | Next-hop  |  Backup   |  Backup   |
|                 |      |   Type    |                    |         | Network |        |           |  (Type)   | Interface | Next-hop  | Next-hop  |
|                 |      |           |                    |         | Instanc |        |           |           |           |  (Type)   | Interface |
|                 |      |           |                    |         |    e    |        |           |           |           |           |           |
+=================+======+===========+====================+=========+=========+========+===========+===========+===========+===========+===========+
| 192.0.2.1/32    | 15   | host      | net_inst_mgr       | True    | default | 0      | 0         | None      | None      |           |           |
| 192.0.2.2/32    | 0    | isis      | isis_mgr           | True    | default | 10     | 18        | 192.168.1 | ethernet- | 192.168.1 | ethernet- |
|                 |      |           |                    |         |         |        |           | 2.2       | 1/31.1    | 3.2       | 1/32.1    |
|                 |      |           |                    |         |         |        |           | (direct)  |           | (direct)  |           |
| 192.0.2.3/32    | 0    | isis      | isis_mgr           | True    | default | 10     | 18        | 192.168.1 | ethernet- | 192.168.1 | ethernet- |
|                 |      |           |                    |         |         |        |           | 3.2       | 1/32.1    | 2.2       | 1/31.1    |
|                 |      |           |                    |         |         |        |           | (direct)  |           | (direct)  |           |
| 192.0.2.4/32    | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 3.2       | 1/32.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.0.2.5/32    | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- | 192.168.1 | ethernet- |
|                 |      |           |                    |         |         |        |           | 3.2       | 1/32.1    | 2.2       | 1/31.1    |
|                 |      |           |                    |         |         |        |           | (direct)  |           | (direct)  |           |
| 192.168.12.0/30 | 13   | local     | net_inst_mgr       | True    | default | 0      | 0         | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 2.1       | 1/31.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.168.12.1/32 | 13   | host      | net_inst_mgr       | True    | default | 0      | 0         | None      | None      |           |           |
| 192.168.12.3/32 | 13   | host      | net_inst_mgr       | True    | default | 0      | 0         | None      | None      |           |           |
| 192.168.13.0/30 | 14   | local     | net_inst_mgr       | True    | default | 0      | 0         | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 3.1       | 1/32.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
| 192.168.13.1/32 | 14   | host      | net_inst_mgr       | True    | default | 0      | 0         | None      | None      |           |           |
| 192.168.13.3/32 | 14   | host      | net_inst_mgr       | True    | default | 0      | 0         | None      | None      |           |           |
| 192.168.23.0/30 | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- | 192.168.1 | ethernet- |
|                 |      |           |                    |         |         |        |           | 2.2       | 1/31.1    | 3.2       | 1/32.1    |
|                 |      |           |                    |         |         |        |           | (direct)  |           | (direct)  |           |
| 192.168.25.0/30 | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- | 192.168.1 | ethernet- |
|                 |      |           |                    |         |         |        |           | 2.2       | 1/31.1    | 3.2       | 1/32.1    |
|                 |      |           |                    |         |         |        |           | (direct)  |           | (direct)  |           |
| 192.168.34.0/30 | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- | 192.168.1 | ethernet- |
|                 |      |           |                    |         |         |        |           | 3.2       | 1/32.1    | 2.2       | 1/31.1    |
|                 |      |           |                    |         |         |        |           | (direct)  |           | (direct)  |           |
| 192.168.35.0/30 | 0    | isis      | isis_mgr           | True    | default | 20     | 18        | 192.168.1 | ethernet- | 192.168.1 | ethernet- |
|                 |      |           |                    |         |         |        |           | 3.2       | 1/32.1    | 2.2       | 1/31.1    |
|                 |      |           |                    |         |         |        |           | (direct)  |           | (direct)  |           |
| 192.168.45.0/30 | 0    | isis      | isis_mgr           | True    | default | 30     | 18        | 192.168.1 | ethernet- |           |           |
|                 |      |           |                    |         |         |        |           | 3.2       | 1/32.1    |           |           |
|                 |      |           |                    |         |         |        |           | (direct)  |           |           |           |
+-----------------+------+-----------+--------------------+---------+---------+--------+-----------+-----------+-----------+-----------+-----------+
---------------------------------------------------------------------------------------------------------------------------------------------------------
IPv4 routes total                    : 16
IPv4 prefixes with active routes     : 16
IPv4 prefixes with active ECMP routes: 0
---------------------------------------------------------------------------------------------------------------------------------------------------------

Considering all inequality 3 computations, only three out of four are valid (OK). So, the LFA node coverage on PE-1 is 3/4=75%.

Considering all inequality 1 computations, only seven out of nine are valid (OK). So, the LFA IPv4 link coverage on PE-1 is 7/9=78%.

Remove the overload configuration on PE-2, as follows:

# On PE-2:
enter candidate
    network-instance default protocols isis instance 0 {
                    delete overload

Conclusion

In production MPLS networks where LFA needs to be deployed, LDP LFA improves convergence in case of a single link or single node failure in the network. The two main advantages of using LDP LFA are the simple configuration and the fact that LFA next-hop computation is a local decision, which means there are no interoperability issues when working in a multi-vendor environment. The main disadvantage of using LDP LFA is that LFA next-hop computation has to deal with the source-route paradigm (inequality formulas exclude a path going over the original source router).