summaryrefslogtreecommitdiff
path: root/ospfd/ospf_packet.h
diff options
context:
space:
mode:
authorPaul Jakma <paul@quagga.net>2010-01-08 17:11:15 +0000
committerPaul Jakma <paul@quagga.net>2010-12-08 17:11:19 +0000
commitaa276fd783f5cdbeefe22bf54109fe523a465e07 (patch)
tree7427b7bdfd25a9f07c72461d56c3981db9761227 /ospfd/ospf_packet.h
parent57c5c6526df82970ca24293798d278862cf55106 (diff)
ospfd: Prioritise hellos for sending by queueing to head of output buffer
* It's possible for the packet output buffer to be filled up with a long series of non-Hello packets in between Hellos packets, such that the router's neighbours don't receive the Hello packet in time, even though the hello-timer ran at about the right time. Fix this by prioritising Hello packets, letting them skip the queue and go ahead of any packets already on the queue. This problem can occur when there are lots of LSAs and slow links. * ospf_packet.h: (ospf_hello_send_sub) not used outside of ospf_packet.c * ospf_packet.c: (ospf_fifo_push_head) add packet to head of fifo (so its no longer really a fifo, but hey) (ospf_packet_add_top) add packet to top of the packet output queue. (ospf_hello_send_sub) Put Hello's at the top of the packet output queue. make it take in_addr_t parameter, so that this ospf_hello_send can re-use this code too. (ospf_hello_send) consolidate code by using ospf_hello_send_sub (ospf_poll_send,ospf_hello_reply_timer) adjust for ospf_hello_send_sub.
Diffstat (limited to 'ospfd/ospf_packet.h')
-rw-r--r--ospfd/ospf_packet.h1
1 files changed, 0 insertions, 1 deletions
diff --git a/ospfd/ospf_packet.h b/ospfd/ospf_packet.h
index 7b3d6866..9a472081 100644
--- a/ospfd/ospf_packet.h
+++ b/ospfd/ospf_packet.h
@@ -162,6 +162,5 @@ extern int ospf_ls_upd_timer (struct thread *);
extern int ospf_ls_ack_timer (struct thread *);
extern int ospf_poll_timer (struct thread *);
extern int ospf_hello_reply_timer (struct thread *);
-extern void ospf_hello_send_sub (struct ospf_interface *, struct in_addr *);
#endif /* _ZEBRA_OSPF_PACKET_H */