]> git.puffer.fish Git - matthieu/frr.git/commit
isisd: add support for Topology Independent LFA (TI-LFA)
authorRenato Westphal <renato@opensourcerouting.org>
Thu, 20 Aug 2020 22:55:42 +0000 (19:55 -0300)
committerRenato Westphal <renato@opensourcerouting.org>
Wed, 14 Oct 2020 19:27:37 +0000 (16:27 -0300)
commitc951ee6eeeace451f89bfafbbf2ce9e9d554c22f
treecf49bde9d5a593120c7c900b925458c95624a856
parented5d70327989fe8dd9e72f011de04a9a56fe7db6
isisd: add support for Topology Independent LFA (TI-LFA)

TI-LFA is a modern fast-reroute (FRR) solution that leverages Segment
Routing to pre-compute backup nexthops for all destinations in the
network, helping to reduce traffic restoration times whenever a
failure occurs. The backup nexthops are expected to be installed
in the FIB so that they can be activated as soon as a failure
is detected, making sub-50ms recovery possible (assuming an
hierarchical FIB).

TI-LFA is a huge step forward compared to prior IP-FRR solutions,
like classic LFA and Remote LFA, as it guarantees 100% coverage
for all destinations. This is possible thanks to the source routing
capabilities of SR, which allows the backup nexthops to steer traffic
around the failures (using as many SIDs as necessary). In addition
to that, the repair paths always follow the post-convergence SPF
tree, which prevents transient congestions and suboptimal routing
from happening.

Deploying TI-LFA is very simple as it only requires a single
configuration command for each interface that needs to be protected
(both link protection and node protection are available). In addition
to IPv4 and IPv6 routes, SR Prefix-SIDs and Adj-SIDs are also
protected by the backup nexthops computed by the TI-LFA algorithms.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
16 files changed:
isisd/isis_circuit.h
isisd/isis_lfa.c [new file with mode: 0644]
isisd/isis_lfa.h [new file with mode: 0644]
isisd/isis_memory.c
isisd/isis_memory.h
isisd/isis_nb_config.c
isisd/isis_route.c
isisd/isis_route.h
isisd/isis_spf.c
isisd/isis_spf.h
isisd/isis_spf_private.h
isisd/isis_sr.c
isisd/isis_zebra.c
isisd/isisd.c
isisd/isisd.h
isisd/subdir.am