tcp: avoid spurious retransmit attempt 57/26057/1
authorFlorin Coras <fcoras@cisco.com>
Fri, 20 Mar 2020 20:25:37 +0000 (20:25 +0000)
committerFlorin Coras <fcoras@cisco.com>
Fri, 20 Mar 2020 20:25:37 +0000 (20:25 +0000)
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I6ce6fb0fe0ceb8a70b6a13e6a72fdb842bfded7a

src/vnet/tcp/tcp_input.c

index 0757741..bc11461 100755 (executable)
@@ -1550,8 +1550,6 @@ tcp_cc_handle_event (tcp_connection_t * tc, tcp_rate_sample_t * rs,
       tc->rxt_delivered += tc->sack_sb.rxt_sacked;
       tc->prr_delivered += tc->bytes_acked + tc->sack_sb.last_sacked_bytes
        - tc->sack_sb.last_bytes_delivered;
-
-      tcp_program_retransmit (tc);
     }
   else
     {
@@ -1573,8 +1571,6 @@ tcp_cc_handle_event (tcp_connection_t * tc, tcp_rate_sample_t * rs,
       /* If partial ack, assume that the first un-acked segment was lost */
       if (tc->bytes_acked || tc->rcv_dupacks == TCP_DUPACK_THRESHOLD)
        tcp_fastrecovery_first_on (tc);
-
-      tcp_program_retransmit (tc);
     }
 
   /*
@@ -1594,6 +1590,8 @@ tcp_cc_handle_event (tcp_connection_t * tc, tcp_rate_sample_t * rs,
       return;
     }
 
+  tcp_program_retransmit (tc);
+
   /*
    * Notify cc of the event
    */