Be sure, that ospf_area is aged before routing table calculation.
This commit is contained in:
parent
933bfdde2a
commit
cd09226078
3 changed files with 5 additions and 1 deletions
|
@ -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)
|
||||||
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)
|
||||||
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;
|
||||||
|
|
Loading…
Reference in a new issue