diff options
author | Renato Westphal <renato@opensourcerouting.org> | 2021-05-18 16:35:58 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-18 16:35:58 +0200 |
commit | 0376f8a48c4ac502de739ab1dbee46cc3982dd42 (patch) | |
tree | a9b34aca7a41efe535886b11eda034df8f504aa9 /isisd/isis_sr.c | |
parent | Merge pull request #8133 from gpnaveen/ospf_basic_testcases (diff) | |
parent | isisd: simplify node Sid handling (diff) | |
download | frr-base_8.0.tar.xz frr-base_8.0.zip |
Merge pull request #8608 from Fredi-raspall/pr_isis_sr_anycastbase_8.0
isisd: clear the N-flag in ext. reachability TLVs
Diffstat (limited to 'isisd/isis_sr.c')
-rw-r--r-- | isisd/isis_sr.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/isisd/isis_sr.c b/isisd/isis_sr.c index c4024772f..f7cef43d0 100644 --- a/isisd/isis_sr.c +++ b/isisd/isis_sr.c @@ -361,9 +361,9 @@ struct sr_prefix_cfg *isis_sr_cfg_prefix_add(struct isis_area *area, pcfg->last_hop_behavior = yang_get_default_enum( "%s/prefix-sid-map/prefix-sid/last-hop-behavior", ISIS_SR); - /* Set the N-flag when appropriate. */ + /* Mark as node Sid if the prefix is host and configured in loopback */ ifp = if_lookup_prefix(prefix, VRF_DEFAULT); - if (ifp && sr_prefix_is_node_sid(ifp, prefix) && !pcfg->n_flag_clear) + if (ifp && sr_prefix_is_node_sid(ifp, prefix)) pcfg->node_sid = true; /* Save prefix-sid configuration. */ @@ -438,7 +438,7 @@ void isis_sr_prefix_cfg2subtlv(const struct sr_prefix_cfg *pcfg, bool external, } if (external) SET_FLAG(psid->flags, ISIS_PREFIX_SID_READVERTISED); - if (pcfg->node_sid) + if (pcfg->node_sid && !pcfg->n_flag_clear) SET_FLAG(psid->flags, ISIS_PREFIX_SID_NODE); /* Set SID value. */ @@ -948,8 +948,7 @@ static int sr_if_new_hook(struct interface *ifp) if (!pcfg) continue; - if (sr_prefix_is_node_sid(ifp, &pcfg->prefix) - && !pcfg->n_flag_clear) { + if (sr_prefix_is_node_sid(ifp, &pcfg->prefix)) { pcfg->node_sid = true; lsp_regenerate_schedule(area, area->is_type, 0); } |