diff options
Diffstat (limited to 'proto/ospf')
-rw-r--r-- | proto/ospf/lsack.c | 9 | ||||
-rw-r--r-- | proto/ospf/lsack.h | 4 | ||||
-rw-r--r-- | proto/ospf/lsupd.c | 12 | ||||
-rw-r--r-- | proto/ospf/packet.c | 2 |
4 files changed, 13 insertions, 14 deletions
diff --git a/proto/ospf/lsack.c b/proto/ospf/lsack.c index d2f20bf6..fb0844dd 100644 --- a/proto/ospf/lsack.c +++ b/proto/ospf/lsack.c @@ -18,11 +18,9 @@ char *s_queue[] = { "direct", "delayed" }; void ospf_lsack_enqueue(struct ospf_neighbor *n, struct ospf_lsa_header *h, - struct proto *p, int queue) + int queue) { - struct lsah_n *no; - - no = mb_alloc(n->pool, sizeof(struct lsah_n)); + struct lsah_n *no = mb_alloc(n->pool, sizeof(struct lsah_n)); memcpy(&no->lsa, h, sizeof(struct ospf_lsa_header)); add_tail(&n->ackl[queue], NODE no); DBG("Adding (%s) ack for %I, ID: %I, RT: %I, Type: %u\n", s_queue[queue], @@ -120,7 +118,7 @@ ospf_lsack_send(struct ospf_neighbor *n, int queue) } void -ospf_lsack_receive(struct ospf_lsack_packet *ps, struct proto *p, +ospf_lsack_receive(struct ospf_lsack_packet *ps, struct ospf_iface *ifa, u16 size) { u32 nrid, myrid; @@ -130,6 +128,7 @@ ospf_lsack_receive(struct ospf_lsack_packet *ps, struct proto *p, u16 nolsa, i; struct top_hash_entry *en; u16 lenn = ntohs(ps->ospf_packet.length); + struct proto *p = (struct proto *) ifa->proto; nrid = ntohl(ps->ospf_packet.routerid); diff --git a/proto/ospf/lsack.h b/proto/ospf/lsack.h index d336d3ee..d56abc54 100644 --- a/proto/ospf/lsack.h +++ b/proto/ospf/lsack.h @@ -16,10 +16,10 @@ struct lsah_n struct ospf_lsa_header lsa; }; -void ospf_lsack_receive(struct ospf_lsack_packet *ps, struct proto *p, +void ospf_lsack_receive(struct ospf_lsack_packet *ps, struct ospf_iface *ifa, u16 size); void ospf_lsack_send(struct ospf_neighbor *n, int queue); void ospf_lsack_enqueue(struct ospf_neighbor *n, struct ospf_lsa_header *h, - struct proto *p, int queue); + int queue); #endif /* _BIRD_OSPF_LSACK_H_ */ diff --git a/proto/ospf/lsupd.c b/proto/ospf/lsupd.c index f56974c9..0f50cb55 100644 --- a/proto/ospf/lsupd.c +++ b/proto/ospf/lsupd.c @@ -366,7 +366,7 @@ ospf_lsupd_rx(struct ospf_lsupd_packet *ps, struct proto *p, /* pg 143 (4) */ if((lsatmp.age==LSA_MAXAGE)&&(lsadb==NULL)&&can_flush_lsa(oa)) { - ospf_lsack_enqueue(n, lsa, p, ACKL_DIRECT); + ospf_lsack_enqueue(n, lsa, ACKL_DIRECT); continue; } @@ -399,7 +399,7 @@ ospf_lsupd_rx(struct ospf_lsupd_packet *ps, struct proto *p, if((lsatmp.age==LSA_MAXAGE)&&(lsatmp.sn==LSA_MAXSEQNO)) { - ospf_lsack_enqueue(n, lsa, p, ACKL_DIRECT); + ospf_lsack_enqueue(n, lsa, ACKL_DIRECT); continue; } @@ -432,9 +432,9 @@ ospf_lsupd_rx(struct ospf_lsupd_packet *ps, struct proto *p, DBG("Wasn't flooded back\n"); /* ps 144(5e), pg 153 */ if(ifa->state==OSPF_IS_BACKUP) { - if(ifa->drid==n->rid) ospf_lsack_enqueue(n, lsa, p, ACKL_DELAY); + if(ifa->drid==n->rid) ospf_lsack_enqueue(n, lsa, ACKL_DELAY); } - else ospf_lsack_enqueue(n, lsa, p, ACKL_DELAY); + else ospf_lsack_enqueue(n, lsa, ACKL_DELAY); } /* Remove old from all ret lists */ @@ -488,13 +488,13 @@ ospf_lsupd_rx(struct ospf_lsupd_packet *ps, struct proto *p, ospf_hash_delete(n->lsrth, en); if(ifa->state==OSPF_IS_BACKUP) { - if(n->rid==ifa->drid) ospf_lsack_enqueue(n, lsa, p, ACKL_DELAY); + if(n->rid==ifa->drid) ospf_lsack_enqueue(n, lsa, ACKL_DELAY); } } else { /* pg145 (7b) */ - ospf_lsack_enqueue(n, lsa, p, ACKL_DIRECT); + ospf_lsack_enqueue(n, lsa, ACKL_DIRECT); } continue; } diff --git a/proto/ospf/packet.c b/proto/ospf/packet.c index 53daa8f2..e2d10d1d 100644 --- a/proto/ospf/packet.c +++ b/proto/ospf/packet.c @@ -192,7 +192,7 @@ ospf_rx_hook (sock * sk, int size) break; case LSACK_P: DBG ("%s: Link state ack received.\n", p->name); - ospf_lsack_receive((struct ospf_lsack_packet *) ps, p, ifa, size); + ospf_lsack_receive((struct ospf_lsack_packet *) ps, ifa, size); break; default: log ("%s: Bad packet received: wrong type %u", p->name, ps->type); |