summaryrefslogtreecommitdiffstats
path: root/isisd/isis_lfa.c
diff options
context:
space:
mode:
authorHiroki Shirokura <hiroki.shirokura@linecorp.com>2021-12-11 03:09:23 +0100
committerLouis Scalbert <louis.scalbert@6wind.com>2023-04-17 11:06:08 +0200
commit329f87b31006e02dffcfc518c24787aa67f5d49f (patch)
tree0e3fa6b68b2551300e4af924caffddbc3e9ed898 /isisd/isis_lfa.c
parentMerge pull request #12550 from AbhishekNR/mld_join (diff)
downloadfrr-329f87b31006e02dffcfc518c24787aa67f5d49f.tar.xz
frr-329f87b31006e02dffcfc518c24787aa67f5d49f.zip
isisd: update struct isis_spftree with algorithm id
The spftree has a new property called algorithm which is id used to identify the algorithm that separates it in the same IGP network. This is used in Flex-Algo. In other cases than Flex-Algo, the algorithm id is always zero. Signed-off-by: Hiroki Shirokura <hiroki.shirokura@linecorp.com> Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
Diffstat (limited to 'isisd/isis_lfa.c')
-rw-r--r--isisd/isis_lfa.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/isisd/isis_lfa.c b/isisd/isis_lfa.c
index abb616839..baec1ff87 100644
--- a/isisd/isis_lfa.c
+++ b/isisd/isis_lfa.c
@@ -1098,7 +1098,8 @@ struct isis_spftree *isis_spf_reverse_run(const struct isis_spftree *spftree)
spftree_reverse = isis_spftree_new(
spftree->area, spftree->lspdb, spftree->sysid, spftree->level,
spftree->tree_id, SPF_TYPE_REVERSE,
- F_SPFTREE_NO_ADJACENCIES | F_SPFTREE_NO_ROUTES);
+ F_SPFTREE_NO_ADJACENCIES | F_SPFTREE_NO_ROUTES,
+ SR_ALGORITHM_SPF);
isis_run_spf(spftree_reverse);
return spftree_reverse;
@@ -1194,7 +1195,8 @@ struct isis_spftree *isis_tilfa_compute(struct isis_area *area,
/* Create post-convergence SPF tree. */
spftree_pc = isis_spftree_new(area, spftree->lspdb, spftree->sysid,
spftree->level, spftree->tree_id,
- SPF_TYPE_TI_LFA, spftree->flags);
+ SPF_TYPE_TI_LFA, spftree->flags,
+ SR_ALGORITHM_SPF);
spftree_pc->lfa.old.spftree = spftree;
spftree_pc->lfa.old.spftree_reverse = spftree_reverse;
spftree_pc->lfa.protected_resource = *resource;
@@ -1242,7 +1244,8 @@ int isis_spf_run_neighbors(struct isis_spftree *spftree)
adj_node->lfa.spftree = isis_spftree_new(
spftree->area, spftree->lspdb, adj_node->sysid,
spftree->level, spftree->tree_id, SPF_TYPE_FORWARD,
- F_SPFTREE_NO_ADJACENCIES | F_SPFTREE_NO_ROUTES);
+ F_SPFTREE_NO_ADJACENCIES | F_SPFTREE_NO_ROUTES,
+ SR_ALGORITHM_SPF);
isis_run_spf(adj_node->lfa.spftree);
}
@@ -1722,7 +1725,8 @@ struct isis_spftree *isis_rlfa_compute(struct isis_area *area,
/* Create post-convergence SPF tree. */
spftree_pc = isis_spftree_new(area, spftree->lspdb, spftree->sysid,
spftree->level, spftree->tree_id,
- SPF_TYPE_RLFA, spftree->flags);
+ SPF_TYPE_RLFA, spftree->flags,
+ SR_ALGORITHM_SPF);
spftree_pc->lfa.old.spftree = spftree;
spftree_pc->lfa.old.spftree_reverse = spftree_reverse;
spftree_pc->lfa.remote.max_metric = max_metric;