tcp: remove thin_dupack feature
Thin stream DUPACK is to start fast recovery on only one DUPACK provided the connection is a thin stream (i.e., low inflight). But this older feature is now subsumed with RACK. If a connection receives only a single DUPACK, RACK would arm a reordering timer and soon starts fast recovery instead of timeout if no further ACKs are received. The socket option (THIN_DUPACK) is kept as a nop for compatibility. Note that this patch does not change another thin-stream feature which enables linear RTO. Although it might be good to generalize that in the future (i.e., linear RTO for the first say 3 retries). Signed-off-by: Yuchung Cheng <ycheng@google.com> Signed-off-by: Neal Cardwell <ncardwell@google.com> Acked-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
ac229dca7e
commit
4a7f600944
@@ -95,9 +95,6 @@ int sysctl_tcp_rfc1337 __read_mostly;
|
||||
int sysctl_tcp_max_orphans __read_mostly = NR_FILE;
|
||||
int sysctl_tcp_frto __read_mostly = 2;
|
||||
int sysctl_tcp_min_rtt_wlen __read_mostly = 300;
|
||||
|
||||
int sysctl_tcp_thin_dupack __read_mostly;
|
||||
|
||||
int sysctl_tcp_moderate_rcvbuf __read_mostly = 1;
|
||||
int sysctl_tcp_early_retrans __read_mostly = 3;
|
||||
int sysctl_tcp_invalid_ratelimit __read_mostly = HZ/2;
|
||||
@@ -2170,16 +2167,6 @@ static bool tcp_time_to_recover(struct sock *sk, int flag)
|
||||
if (tcp_dupack_heuristics(tp) > tp->reordering)
|
||||
return true;
|
||||
|
||||
/* If a thin stream is detected, retransmit after first
|
||||
* received dupack. Employ only if SACK is supported in order
|
||||
* to avoid possible corner-case series of spurious retransmissions
|
||||
* Use only if there are no unsent data.
|
||||
*/
|
||||
if ((tp->thin_dupack || sysctl_tcp_thin_dupack) &&
|
||||
tcp_stream_is_thin(tp) && tcp_dupack_heuristics(tp) > 1 &&
|
||||
tcp_is_sack(tp) && !tcp_send_head(sk))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user