Add hashing to link state request list.
This commit is contained in:
parent
76915ec979
commit
95eb1dba3f
3 changed files with 16 additions and 10 deletions
|
@ -234,15 +234,19 @@ ospf_dbdes_reqladd(struct ospf_dbdes_packet *ps, struct proto *p,
|
|||
|
||||
for(i=0;i<j;i++)
|
||||
{
|
||||
ntohlsah(plsa+i, &lsa);
|
||||
/* FIXME Test Checksum */
|
||||
if(((he=ospf_hash_find(gr,lsa.id,lsa.rt,lsa.type))==NULL)||
|
||||
(lsa_comp(&lsa, &(he->lsa))==1))
|
||||
{
|
||||
sn=sl_alloc(gr->hash_slab);
|
||||
ntohlsah(plsa+i, &(sn->lsa));
|
||||
s_add_tail(&(n->lsrql), SNODE sn);
|
||||
}
|
||||
ntohlsah(plsa+i, &lsa);
|
||||
/* FIXME Test Checksum */
|
||||
if(((he=ospf_hash_find(gr,lsa.id,lsa.rt,lsa.type))==NULL)||
|
||||
(lsa_comp(&lsa, &(he->lsa))==1))
|
||||
{
|
||||
/* Is this confition necessary? */
|
||||
if(ospf_hash_find(n->lsrqh,lsa.id,lsa.rt,lsa.type)==NULL)
|
||||
{
|
||||
sn=ospf_hash_get(n->lsrqh,lsa.id,lsa.rt,lsa.type);
|
||||
ntohlsah(plsa+i, &(sn->lsa));
|
||||
s_add_tail(&(n->lsrql), SNODE sn);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -208,6 +208,7 @@ ospf_neigh_sm(struct ospf_neighbor *n, int event)
|
|||
{
|
||||
neigh_chstate(n,NEIGHBOR_EXCHANGE);
|
||||
s_init_list(&(n->lsrql));
|
||||
n->lsrqh=ospf_top_new(n->ifa->proto);
|
||||
s_init_list(&(n->lsrtl));
|
||||
s_init(&(n->dbsi), &(n->ifa->oa->lsal));
|
||||
s_init(&(n->lsrqi), &(n->lsrql));
|
||||
|
|
|
@ -272,7 +272,8 @@ struct ospf_neighbor
|
|||
u32 bdr; /* Neigbour's idea of BDR */
|
||||
u8 adj; /* built adjacency? */
|
||||
siterator dbsi; /* Database summary list iterator */
|
||||
slist lsrql; /* Link state request */ /* FIXME add hashing? */
|
||||
slist lsrql; /* Link state request */
|
||||
struct top_graph *lsrqh; /* LSA graph */
|
||||
siterator lsrqi;
|
||||
slist lsrtl; /* Link state retransmission list */
|
||||
siterator lsrti;
|
||||
|
|
Loading…
Reference in a new issue