summaryrefslogtreecommitdiff
path: root/isisd/isis_nb.c
diff options
context:
space:
mode:
authorFredi Raspall <fredi@voltanet.io>2021-04-23 18:33:43 +0200
committerFredi Raspall <fredi@voltanet.io>2021-05-03 17:27:37 +0200
commitce4eccfa800fccb461ac99ec3b6f12ba190c185d (patch)
treeae1e115b4d221e5f86cc1339328981759fb74c02 /isisd/isis_nb.c
parentf71e1ff6a98d0e244c7da11d870d14e31b517811 (diff)
isisd: link protection optional fallback in ti-lfa
The current implementation of TI-LFA computes link-protecting repair paths (even when node protection is enabled) to have repair paths to all destinations when no node-protecting repair has been found. This may be desired or not. E.g. the link-protecting paths may use the protected node and be, therefore, useless if the node fails. Also, computing link-protecting repairs incurs extra calculations. With this patch, when node protection is enabled, link protecting repair paths are only computed if "link-fallback" is specified in the configuration, on a per interface and IS-IS level. Signed-off-by: Fredi Raspall <fredi@voltanet.io>
Diffstat (limited to 'isisd/isis_nb.c')
-rw-r--r--isisd/isis_nb.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/isisd/isis_nb.c b/isisd/isis_nb.c
index 4eac8de2cb..ecad16229c 100644
--- a/isisd/isis_nb.c
+++ b/isisd/isis_nb.c
@@ -978,6 +978,12 @@ const struct frr_yang_module_info frr_isisd_info = {
}
},
{
+ .xpath = "/frr-interface:lib/interface/frr-isisd:isis/fast-reroute/level-1/ti-lfa/link-fallback",
+ .cbs = {
+ .modify = lib_interface_isis_fast_reroute_level_1_ti_lfa_link_fallback_modify,
+ }
+ },
+ {
.xpath = "/frr-interface:lib/interface/frr-isisd:isis/fast-reroute/level-2/lfa/enable",
.cbs = {
.modify = lib_interface_isis_fast_reroute_level_2_lfa_enable_modify,
@@ -1018,6 +1024,12 @@ const struct frr_yang_module_info frr_isisd_info = {
}
},
{
+ .xpath = "/frr-interface:lib/interface/frr-isisd:isis/fast-reroute/level-2/ti-lfa/link-fallback",
+ .cbs = {
+ .modify = lib_interface_isis_fast_reroute_level_2_ti_lfa_link_fallback_modify,
+ }
+ },
+ {
.xpath = "/frr-interface:lib/interface/state/frr-isisd:isis",
.cbs = {
.get_elem = lib_interface_state_isis_get_elem,