diff options
| author | Yuchung Cheng <ycheng@google.com> | 2017-01-13 01:11:39 -0500 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2017-01-13 22:37:16 -0500 |
| commit | bec41a11dd3dc8c54f766b4f494140ca92ba7c10 (patch) | |
| tree | 62a888654cc55636c2ab85adf331db2361aae118 /include/net/tcp.h | |
| parent | 840a3cbe89694fad75578856976f180e852e69aa (diff) | |
tcp: remove early retransmit
This patch removes the support of RFC5827 early retransmit (i.e.,
fast recovery on small inflight with <3 dupacks) because it is
subsumed by the new RACK loss detection. More specifically when
RACK receives DUPACKs, it'll arm a reordering timer to start fast
recovery after a quarter of (min)RTT, hence it covers the early
retransmit except RACK does not limit itself to specific inflight
or dupack numbers.
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>
Diffstat (limited to 'include/net/tcp.h')
| -rw-r--r-- | include/net/tcp.h | 19 |
1 files changed, 0 insertions, 19 deletions
diff --git a/include/net/tcp.h b/include/net/tcp.h index 423438dd6fe9..c55d65f74f7f 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h | |||
| @@ -565,7 +565,6 @@ void tcp_skb_collapse_tstamp(struct sk_buff *skb, | |||
| 565 | const struct sk_buff *next_skb); | 565 | const struct sk_buff *next_skb); |
| 566 | 566 | ||
| 567 | /* tcp_input.c */ | 567 | /* tcp_input.c */ |
| 568 | void tcp_resume_early_retransmit(struct sock *sk); | ||
| 569 | void tcp_rearm_rto(struct sock *sk); | 568 | void tcp_rearm_rto(struct sock *sk); |
| 570 | void tcp_synack_rtt_meas(struct sock *sk, struct request_sock *req); | 569 | void tcp_synack_rtt_meas(struct sock *sk, struct request_sock *req); |
| 571 | void tcp_reset(struct sock *sk); | 570 | void tcp_reset(struct sock *sk); |
| @@ -1037,24 +1036,6 @@ static inline void tcp_enable_fack(struct tcp_sock *tp) | |||
| 1037 | tp->rx_opt.sack_ok |= TCP_FACK_ENABLED; | 1036 | tp->rx_opt.sack_ok |= TCP_FACK_ENABLED; |
| 1038 | } | 1037 | } |
| 1039 | 1038 | ||
| 1040 | /* TCP early-retransmit (ER) is similar to but more conservative than | ||
| 1041 | * the thin-dupack feature. Enable ER only if thin-dupack is disabled. | ||
| 1042 | */ | ||
| 1043 | static inline void tcp_enable_early_retrans(struct tcp_sock *tp) | ||
| 1044 | { | ||
| 1045 | struct net *net = sock_net((struct sock *)tp); | ||
| 1046 | |||
| 1047 | tp->do_early_retrans = sysctl_tcp_early_retrans && | ||
| 1048 | sysctl_tcp_early_retrans < 4 && !sysctl_tcp_thin_dupack && | ||
| 1049 | !(sysctl_tcp_recovery & TCP_RACK_LOSS_DETECTION) && | ||
| 1050 | net->ipv4.sysctl_tcp_reordering == 3; | ||
| 1051 | } | ||
| 1052 | |||
| 1053 | static inline void tcp_disable_early_retrans(struct tcp_sock *tp) | ||
| 1054 | { | ||
| 1055 | tp->do_early_retrans = 0; | ||
| 1056 | } | ||
| 1057 | |||
| 1058 | static inline unsigned int tcp_left_out(const struct tcp_sock *tp) | 1039 | static inline unsigned int tcp_left_out(const struct tcp_sock *tp) |
| 1059 | { | 1040 | { |
| 1060 | return tp->sacked_out + tp->lost_out; | 1041 | return tp->sacked_out + tp->lost_out; |
