summaryrefslogtreecommitdiffstats
path: root/src/vnet
diff options
context:
space:
mode:
authorFlorin Coras <fcoras@cisco.com>2019-12-22 09:20:26 -0800
committerDave Wallace <dwallacelf@gmail.com>2020-08-12 14:37:52 +0000
commitc69b18f818410fa297b25ed961bd05f139643f4b (patch)
tree31426fe626fc56c00e2078b44a02effe53ff5179 /src/vnet
parent62c6e93d1095ddbc6d86efbd4db18d51cc1fd9bb (diff)
tcp: accept sack reneging as a cc event
Type: fix Change-Id: Iead1303ca3dec7593eb3ce54f291b82d94c821a4 Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit 1de7167e7a12a80cc5996959aeb1fbe4b2853ccb)
Diffstat (limited to 'src/vnet')
-rwxr-xr-xsrc/vnet/tcp/tcp_input.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/vnet/tcp/tcp_input.c b/src/vnet/tcp/tcp_input.c
index 172dcd2ee6f..4d34998bbf2 100755
--- a/src/vnet/tcp/tcp_input.c
+++ b/src/vnet/tcp/tcp_input.c
@@ -1422,6 +1422,10 @@ tcp_cc_handle_event (tcp_connection_t * tc, tcp_rate_sample_t * rs,
{
u8 has_sack = tcp_opts_sack_permitted (&tc->rcv_opts);
+ /* If reneging, wait for timer based retransmits */
+ if (PREDICT_FALSE (tcp_is_lost_fin (tc) || tc->sack_sb.is_reneging))
+ return;
+
/*
* If not in recovery, figure out if we should enter
*/
@@ -1552,10 +1556,6 @@ tcp_ack_is_cc_event (tcp_connection_t * tc, vlib_buffer_t * b,
*is_dack = tc->sack_sb.last_sacked_bytes
|| tcp_ack_is_dupack (tc, b, prev_snd_wnd, prev_snd_una);
- /* If reneging, wait for timer based retransmits */
- if (PREDICT_FALSE (tcp_is_lost_fin (tc) || tc->sack_sb.is_reneging))
- return 0;
-
return (*is_dack || tcp_in_cong_recovery (tc));
}