Commit cd092260 authored by Ondřej Filip's avatar Ondřej Filip
Browse files

Be sure, that ospf_area is aged before routing table calculation.

parent 933bfdde
...@@ -49,7 +49,7 @@ ospf_age(struct ospf_area *oa) ...@@ -49,7 +49,7 @@ ospf_age(struct ospf_area *oa)
WALK_SLIST_DELSAFE(en, nxt, oa->lsal) WALK_SLIST_DELSAFE(en, nxt, oa->lsal)
{ {
if (po->calcrt) if (oa->rt && (oa->rt->dist != LSINFINITY))
{ {
en->color = OUTSPF; en->color = OUTSPF;
en->dist = LSINFINITY; en->dist = LSINFINITY;
......
...@@ -69,6 +69,9 @@ ospf_rt_spfa(struct ospf_area *oa) ...@@ -69,6 +69,9 @@ ospf_rt_spfa(struct ospf_area *oa)
if (oa->rt == NULL) if (oa->rt == NULL)
return; return;
if (oa->rt->dist != LSINFINITY)
ospf_age(oa);
FIB_WALK(in, nftmp) FIB_WALK(in, nftmp)
{ {
nf = (struct infib *) nftmp; nf = (struct infib *) nftmp;
......
...@@ -201,6 +201,7 @@ originate_rt_lsa(struct ospf_area *oa) ...@@ -201,6 +201,7 @@ originate_rt_lsa(struct ospf_area *oa)
lsasum_calculate(&lsa, body, po); lsasum_calculate(&lsa, body, po);
en = lsa_install_new(&lsa, body, oa); en = lsa_install_new(&lsa, body, oa);
oa->rt = en; oa->rt = en;
en->dist = 0; /* Force area aging */
ospf_lsupd_flood(NULL, NULL, &oa->rt->lsa, NULL, oa, 1); ospf_lsupd_flood(NULL, NULL, &oa->rt->lsa, NULL, oa, 1);
schedule_rtcalc(po); schedule_rtcalc(po);
oa->origrt = 0; oa->origrt = 0;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment