summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorin Coras <fcoras@cisco.com>2020-03-20 20:25:37 +0000
committerFlorin Coras <fcoras@cisco.com>2020-03-20 20:25:37 +0000
commit34177e87639c62160318fd3957d0575f0a28e526 (patch)
treedd082e18803f5bec4265187dbd2d63d9b3210984
parent72f4921c8eb567da412125d412fd153b49a349dd (diff)
tcp: avoid spurious retransmit attempt
Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I6ce6fb0fe0ceb8a70b6a13e6a72fdb842bfded7a
-rwxr-xr-xsrc/vnet/tcp/tcp_input.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/vnet/tcp/tcp_input.c b/src/vnet/tcp/tcp_input.c
index 0757741fa8f..bc11461b521 100755
--- a/src/vnet/tcp/tcp_input.c
+++ b/src/vnet/tcp/tcp_input.c
@@ -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
*/