From 17a2f658da67b8317d99294fc56071145e1a65e0 Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Fri, 18 Aug 2017 14:58:50 -0400 Subject: eigrpd: When generating packets only put one on send queue at a time When we generate update packets to go to our neighbor, Only put one packet at a time on the send queue. Signed-off-by: Donald Sharp --- eigrpd/eigrp_update.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'eigrpd/eigrp_update.c') diff --git a/eigrpd/eigrp_update.c b/eigrpd/eigrp_update.c index 68c0b92fd..5599965f6 100644 --- a/eigrpd/eigrp_update.c +++ b/eigrpd/eigrp_update.c @@ -529,6 +529,9 @@ static void eigrp_update_place_on_nbr_queue(struct eigrp_neighbor *nbr, /*Put packet to retransmission queue*/ eigrp_fifo_push(nbr->retrans_queue, ep); + + if (nbr->retrans_queue->count == 1) + eigrp_send_packet_reliably(nbr); } void eigrp_update_send_EOT(struct eigrp_neighbor *nbr) @@ -567,7 +570,6 @@ void eigrp_update_send_EOT(struct eigrp_neighbor *nbr) if ((length + 0x001D) > (u_int16_t)nbr->ei->ifp->mtu) { eigrp_update_place_on_nbr_queue (nbr, ep, seq_no, length); - eigrp_send_packet_reliably(nbr); seq_no++; length = EIGRP_HEADER_LEN; @@ -615,7 +617,6 @@ void eigrp_update_send_EOT(struct eigrp_neighbor *nbr) } eigrp_update_place_on_nbr_queue (nbr, ep, seq_no, length); - eigrp_send_packet_reliably(nbr); } void eigrp_update_send(struct eigrp_interface *ei) -- cgit v1.2.3