summaryrefslogtreecommitdiffstats
path: root/ospfd/ospf_ext.c
diff options
context:
space:
mode:
authorOlivier Dugeon <olivier.dugeon@orange.com>2020-07-09 10:51:58 +0200
committerOlivier Dugeon <olivier.dugeon@orange.com>2020-08-20 15:51:48 +0200
commit0d174b6697a30247a5fbc0549160b9f66cc0b5db (patch)
tree433710336a49202062e5e81c5be5364b6599e95d /ospfd/ospf_ext.c
parentOSPFd: Explicit Null option for Segment-Routing (diff)
downloadfrr-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.c9
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,