From: Florin Coras Date: Sun, 22 Dec 2019 17:20:26 +0000 (-0800) Subject: tcp: accept sack reneging as a cc event X-Git-Tag: v20.05-rc0~115 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F08%2F24108%2F2;p=vpp.git tcp: accept sack reneging as a cc event Type: fix Change-Id: Iead1303ca3dec7593eb3ce54f291b82d94c821a4 Signed-off-by: Florin Coras --- diff --git a/src/vnet/tcp/tcp_input.c b/src/vnet/tcp/tcp_input.c index c94e5babc50..52d73169654 100755 --- a/src/vnet/tcp/tcp_input.c +++ b/src/vnet/tcp/tcp_input.c @@ -1400,6 +1400,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 */ @@ -1530,10 +1534,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)); }