diff options
author | Olivier Dugeon <olivier.dugeon@orange.com> | 2020-07-09 10:51:58 +0200 |
---|---|---|
committer | Olivier Dugeon <olivier.dugeon@orange.com> | 2020-08-20 15:51:48 +0200 |
commit | 0d174b6697a30247a5fbc0549160b9f66cc0b5db (patch) | |
tree | 433710336a49202062e5e81c5be5364b6599e95d /ospfd/ospf_ext.c | |
parent | OSPFd: Explicit Null option for Segment-Routing (diff) | |
download | frr-0d174b6697a30247a5fbc0549160b9f66cc0b5db.tar.xz frr-0d174b6697a30247a5fbc0549160b9f66cc0b5db.zip |
OSPFd: Correct Extended Prefix flooding for SR
PR #6416 that solves opsf crash when segment routing is restarted, introduce a
regression in Extended Prefix flooding: when segment routing prefix is modified
or removed, new segment routing prefix is no more flooded. This patch correct
this regression.
Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
Diffstat (limited to 'ospfd/ospf_ext.c')
-rw-r--r-- | ospfd/ospf_ext.c | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/ospfd/ospf_ext.c b/ospfd/ospf_ext.c index 8e4548f74..bc952e4ef 100644 --- a/ospfd/ospf_ext.c +++ b/ospfd/ospf_ext.c @@ -516,7 +516,6 @@ uint32_t ospf_ext_schedule_prefix_index(struct interface *ifp, uint32_t index, set_prefix_sid(exti, SR_ALGORITHM_SPF, index, SID_INDEX, flags); /* Try to Schedule LSA */ - // SET_FLAG(exti->flags, EXT_LPFLG_LSA_ACTIVE); if (CHECK_FLAG(exti->flags, EXT_LPFLG_LSA_ACTIVE)) { if (CHECK_FLAG(exti->flags, EXT_LPFLG_LSA_ENGAGED)) ospf_ext_pref_lsa_schedule(exti, @@ -529,10 +528,8 @@ uint32_t ospf_ext_schedule_prefix_index(struct interface *ifp, uint32_t index, osr_debug("EXT (%s): Remove prefix for interface %s", __func__, ifp->name); - if (CHECK_FLAG(exti->flags, EXT_LPFLG_LSA_ENGAGED)) { + if (CHECK_FLAG(exti->flags, EXT_LPFLG_LSA_ENGAGED)) ospf_ext_pref_lsa_schedule(exti, FLUSH_THIS_LSA); - exti->flags = EXT_LPFLG_LSA_INACTIVE; - } } return SET_OPAQUE_LSID(exti->type, exti->instance); @@ -1377,10 +1374,6 @@ static int ospf_ext_link_lsa_originate(void *arg) || (!IPV4_ADDR_SAME(&exti->area->area_id, &area->area_id))) continue; - /* Skip Extended Link which are not Active */ - if (!CHECK_FLAG(exti->flags, EXT_LPFLG_LSA_ACTIVE)) - continue; - /* Check if LSA not already engaged */ if (CHECK_FLAG(exti->flags, EXT_LPFLG_LSA_ENGAGED)) { if (CHECK_FLAG(exti->flags, |