summaryrefslogtreecommitdiffstats
path: root/ospfd/ospfd.c
diff options
context:
space:
mode:
authorAlexander Chernavin <achernavin@netgate.com>2021-04-12 15:34:20 +0200
committerAlexander Chernavin <achernavin@netgate.com>2021-04-12 15:34:20 +0200
commit1c1c342d2a22c9d600c36dde2d7d48c8b6b3ba41 (patch)
tree05ee35120bdc534f86a8977a10e5409c5981a48a /ospfd/ospfd.c
parentMerge pull request #8421 from opensourcerouting/xrelfo-arm (diff)
downloadfrr-1c1c342d2a22c9d600c36dde2d7d48c8b6b3ba41.tar.xz
frr-1c1c342d2a22c9d600c36dde2d7d48c8b6b3ba41.zip
ospfd: install Type-7 when NSSA area is configured after redistribution
Currently, if NSSA area is configured before redistribution is enabled, Type-7 LSA's are installed and flooded. But if NSSA area is configured after redistribution is enabled, Type-7 LSA's are not installed. With this change, when NSSA area is configured, schedule a task that scans for external LSA's. If they exist, install Type-7 and flood to all NSSA Areas. There already was an attempt to fix this problem in 0f321812f where ospf_asbr_nssa_redist_task() was triggered in ospf_abr_task_timer(). This turns out to be incorrect place for this operation because it's a one-off operation needed only after "area <ID> nssa" execution. And ospf_abr_task_timer() is a periodic operation. Triggering ospf_asbr_nssa_redist_task() in ospf_abr_task_timer() caused a problem that was fixed in 945eec2b6 making the problem with NSSA area configured after redistribution actual again. Signed-off-by: Alexander Chernavin <achernavin@netgate.com>
Diffstat (limited to 'ospfd/ospfd.c')
-rw-r--r--ospfd/ospfd.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/ospfd/ospfd.c b/ospfd/ospfd.c
index 259209a73..b455d0b41 100644
--- a/ospfd/ospfd.c
+++ b/ospfd/ospfd.c
@@ -791,6 +791,7 @@ static void ospf_finish_final(struct ospf *ospf)
OSPF_TIMER_OFF(ospf->t_maxage_walker);
OSPF_TIMER_OFF(ospf->t_abr_task);
OSPF_TIMER_OFF(ospf->t_asbr_check);
+ OSPF_TIMER_OFF(ospf->t_asbr_nssa_redist_update);
OSPF_TIMER_OFF(ospf->t_distribute_update);
OSPF_TIMER_OFF(ospf->t_lsa_refresher);
OSPF_TIMER_OFF(ospf->t_opaque_lsa_self);