diff options
| author | Donald Sharp <sharpd@cumulusnetworks.com> | 2017-08-18 14:58:50 -0400 | 
|---|---|---|
| committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2017-08-18 15:00:40 -0400 | 
| commit | 17a2f658da67b8317d99294fc56071145e1a65e0 (patch) | |
| tree | 1b409c18d9e33424217895206c66af707376570c /eigrpd/eigrp_update.c | |
| parent | 1a0770e387bccdaadc6b4d48ba505d3d332034b6 (diff) | |
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 <sharpd@cumulusnetworks.com>
Diffstat (limited to 'eigrpd/eigrp_update.c')
| -rw-r--r-- | eigrpd/eigrp_update.c | 5 | 
1 files changed, 3 insertions, 2 deletions
diff --git a/eigrpd/eigrp_update.c b/eigrpd/eigrp_update.c index 68c0b92fd8..5599965f6a 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)  | 
