From 329f87b31006e02dffcfc518c24787aa67f5d49f Mon Sep 17 00:00:00 2001 From: Hiroki Shirokura Date: Sat, 11 Dec 2021 02:09:23 +0000 Subject: 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 Signed-off-by: Louis Scalbert --- isisd/isis_lfa.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'isisd/isis_lfa.c') diff --git a/isisd/isis_lfa.c b/isisd/isis_lfa.c index abb6168393..baec1ff872 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; -- cgit v1.2.3