mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-09 09:22:32 +00:00
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>
This commit is contained in:
parent
f786c4d7c9
commit
0d174b6697
@ -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);
|
set_prefix_sid(exti, SR_ALGORITHM_SPF, index, SID_INDEX, flags);
|
||||||
|
|
||||||
/* Try to Schedule LSA */
|
/* 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_ACTIVE)) {
|
||||||
if (CHECK_FLAG(exti->flags, EXT_LPFLG_LSA_ENGAGED))
|
if (CHECK_FLAG(exti->flags, EXT_LPFLG_LSA_ENGAGED))
|
||||||
ospf_ext_pref_lsa_schedule(exti,
|
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__,
|
osr_debug("EXT (%s): Remove prefix for interface %s", __func__,
|
||||||
ifp->name);
|
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);
|
ospf_ext_pref_lsa_schedule(exti, FLUSH_THIS_LSA);
|
||||||
exti->flags = EXT_LPFLG_LSA_INACTIVE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return SET_OPAQUE_LSID(exti->type, exti->instance);
|
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)))
|
|| (!IPV4_ADDR_SAME(&exti->area->area_id, &area->area_id)))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* Skip Extended Link which are not Active */
|
|
||||||
if (!CHECK_FLAG(exti->flags, EXT_LPFLG_LSA_ACTIVE))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
/* Check if LSA not already engaged */
|
/* Check if LSA not already engaged */
|
||||||
if (CHECK_FLAG(exti->flags, EXT_LPFLG_LSA_ENGAGED)) {
|
if (CHECK_FLAG(exti->flags, EXT_LPFLG_LSA_ENGAGED)) {
|
||||||
if (CHECK_FLAG(exti->flags,
|
if (CHECK_FLAG(exti->flags,
|
||||||
|
Loading…
Reference in New Issue
Block a user