Flushing of old LSAs added.
This commit is contained in:
parent
850fda2518
commit
b224ca32cf
1 changed files with 5 additions and 6 deletions
|
@ -10,9 +10,10 @@
|
||||||
|
|
||||||
/* FIXME Go on */
|
/* FIXME Go on */
|
||||||
void
|
void
|
||||||
flush_lsa(struct top_hash_entry *en)
|
flush_lsa(struct top_hash_entry *en, struct ospf_area *oa)
|
||||||
{
|
{
|
||||||
return;
|
s_rem_node(SNODE en);
|
||||||
|
ospf_hash_delete(oa->gr,en);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -22,7 +23,7 @@ ospf_age(struct top_hash_entry *en, bird_clock_t delta, int flush,
|
||||||
struct proto *p=&oa->po->proto;
|
struct proto *p=&oa->po->proto;
|
||||||
if(en->lsa.age==LSA_MAXAGE)
|
if(en->lsa.age==LSA_MAXAGE)
|
||||||
{
|
{
|
||||||
if(flush) flush_lsa(en);
|
if(flush) flush_lsa(en,oa);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if((en->lsa.rt==p->cf->global->router_id)&&(en->lsa.age>LSREFRESHTIME))
|
if((en->lsa.rt==p->cf->global->router_id)&&(en->lsa.age>LSREFRESHTIME))
|
||||||
|
@ -31,7 +32,7 @@ ospf_age(struct top_hash_entry *en, bird_clock_t delta, int flush,
|
||||||
}
|
}
|
||||||
if((en->lsa.age+=delta)>LSA_MAXAGE)
|
if((en->lsa.age+=delta)>LSA_MAXAGE)
|
||||||
{
|
{
|
||||||
if(flush) flush_lsa(en);
|
if(flush) flush_lsa(en,oa);
|
||||||
else en->lsa.age=LSA_MAXAGE;
|
else en->lsa.age=LSA_MAXAGE;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -375,7 +376,6 @@ lsa_install_new(struct ospf_lsa_header *lsa, void *body, struct ospf_area *oa,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* FIXME delete routes to stub networks! */
|
|
||||||
}
|
}
|
||||||
if(change) s_rem_node(SNODE en);
|
if(change) s_rem_node(SNODE en);
|
||||||
}
|
}
|
||||||
|
@ -386,7 +386,6 @@ lsa_install_new(struct ospf_lsa_header *lsa, void *body, struct ospf_area *oa,
|
||||||
en->inst_t=now;
|
en->inst_t=now;
|
||||||
if(en->lsa_body!=NULL) mb_free(en->lsa_body);
|
if(en->lsa_body!=NULL) mb_free(en->lsa_body);
|
||||||
en->lsa_body=body;
|
en->lsa_body=body;
|
||||||
en->lsa.length=lsa->length;
|
|
||||||
memcpy(&en->lsa,lsa,sizeof(struct ospf_lsa_header));
|
memcpy(&en->lsa,lsa,sizeof(struct ospf_lsa_header));
|
||||||
/* FIXME decide if route calcualtion must be done and how */
|
/* FIXME decide if route calcualtion must be done and how */
|
||||||
if(oa->rt!=NULL)
|
if(oa->rt!=NULL)
|
||||||
|
|
Loading…
Reference in a new issue