]> git.puffer.fish Git - mirror/frr.git/commitdiff
eigrpd: When generating packets only put one on send queue at a time 1010/head
authorDonald Sharp <sharpd@cumulusnetworks.com>
Fri, 18 Aug 2017 18:58:50 +0000 (14:58 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Fri, 18 Aug 2017 19:00:40 +0000 (15:00 -0400)
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>
eigrpd/eigrp_update.c

index 68c0b92fd8a839ab3e1f1b4dca166e6e0b84685f..5599965f6afd40402f0a1a48eac5cef3ea64f3c3 100644 (file)
@@ -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)