Premature aging of self-originated LSA received in flooding.
This commit is contained in:
parent
3b8b1bd037
commit
32fa4a5a46
1 changed files with 27 additions and 2 deletions
|
@ -301,9 +301,36 @@ ospf_lsupd_rx(struct ospf_lsupd_packet *ps, struct proto *p,
|
||||||
{
|
{
|
||||||
struct ospf_iface *ift=NULL;
|
struct ospf_iface *ift=NULL;
|
||||||
void *body;
|
void *body;
|
||||||
|
struct ospf_iface *nifa;
|
||||||
|
int self=0;
|
||||||
|
|
||||||
DBG("PG143(5): Received LSA is newer\n");
|
DBG("PG143(5): Received LSA is newer\n");
|
||||||
|
|
||||||
|
if(lsatmp.rt==p->cf->global->router_id) self=1;
|
||||||
|
|
||||||
|
if(lsatmp.type==LSA_T_NET)
|
||||||
|
{
|
||||||
|
WALK_LIST(nifa,po->iface_list)
|
||||||
|
{
|
||||||
|
if(ipa_compare(nifa->iface->addr->ip,ipa_from_u32(lsatmp.id))==0)
|
||||||
|
{
|
||||||
|
self=1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(self)
|
||||||
|
{
|
||||||
|
lsa->age=(htons(LSA_MAXAGE));
|
||||||
|
lsatmp.age=LSA_MAXAGE;
|
||||||
|
debug("Premature aging self originated lsa.\n");
|
||||||
|
flood_lsa(NULL,lsa,&lsatmp,po,NULL,oa);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* pg 144 (5a) */
|
/* pg 144 (5a) */
|
||||||
if(lsadb && ((now-lsadb->inst_t)<MINLSARRIVAL))
|
if(lsadb && ((now-lsadb->inst_t)<MINLSARRIVAL))
|
||||||
{
|
{
|
||||||
|
@ -344,8 +371,6 @@ ospf_lsupd_rx(struct ospf_lsupd_packet *ps, struct proto *p,
|
||||||
lsadb=lsa_install_new(&lsatmp,body, oa, p);
|
lsadb=lsa_install_new(&lsatmp,body, oa, p);
|
||||||
DBG("New LSA installed in DB\n");
|
DBG("New LSA installed in DB\n");
|
||||||
|
|
||||||
/* FIXME 145 (5f) self originated? */
|
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue