mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-11-17 16:48:43 +00:00
LS Ack receiving done.
This commit is contained in:
parent
58313b24c8
commit
4bf41ac8b1
@ -20,9 +20,10 @@ ospf_lsack_rx(struct ospf_lsack_packet *ps, struct proto *p,
|
||||
{
|
||||
u32 nrid, myrid;
|
||||
struct ospf_neighbor *n;
|
||||
struct ospf_lsreq_header *lsh;
|
||||
struct ospf_lsa_header lsa,*plsa;
|
||||
int length;
|
||||
u8 i;
|
||||
u16 nolsa,i;
|
||||
struct top_hash_entry *en;
|
||||
|
||||
nrid=ntohl(ps->ospf_packet.routerid);
|
||||
|
||||
@ -34,7 +35,28 @@ ospf_lsack_rx(struct ospf_lsack_packet *ps, struct proto *p,
|
||||
nrid);
|
||||
return ;
|
||||
}
|
||||
/* FIXME Go on! */
|
||||
|
||||
nolsa=(ntohs(ps->ospf_packet.length)-sizeof(struct ospf_lsack_packet))/
|
||||
sizeof(struct ospf_lsa_header);
|
||||
DBG("Received %d lsa\n",nolsa);
|
||||
plsa=( struct ospf_lsa_header *)(ps+1);
|
||||
|
||||
for(i=0;i<nolsa;i++)
|
||||
{
|
||||
ntohlsah(plsa+i,&lsa);
|
||||
if((en=ospf_hash_find_header(n->lsrth,&lsa))==NULL) continue;
|
||||
|
||||
if(lsa_comp(&lsa,&en->lsa)!=CMP_SAME)
|
||||
{
|
||||
log("Strange LS acknoledgement from %d\n",n->rid);
|
||||
continue;
|
||||
}
|
||||
|
||||
DBG("Deleting LS Id: %u RT: % Type: %u from LS Retl for neighbor %u\n",
|
||||
lsa.id,lsa.rt,lsa.type,n->rid);
|
||||
s_rem_node(SNODE en);
|
||||
ospf_hash_delete(n->lsrth,en);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
Loading…
Reference in New Issue
Block a user