diff options
author | Hiroki Shirokura <hiroki.shirokura@linecorp.com> | 2021-12-11 03:09:23 +0100 |
---|---|---|
committer | Louis Scalbert <louis.scalbert@6wind.com> | 2023-04-17 11:06:08 +0200 |
commit | 329f87b31006e02dffcfc518c24787aa67f5d49f (patch) | |
tree | 0e3fa6b68b2551300e4af924caffddbc3e9ed898 /isisd/isis_lfa.c | |
parent | Merge pull request #12550 from AbhishekNR/mld_join (diff) | |
download | frr-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.c | 12 |
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; |