diff options
author | Wei Wang <weiwan@google.com> | 2019-01-25 13:53:19 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-01-27 16:29:43 -0500 |
commit | 31954cd8bb667030b1c0d3d77f28fe71f06999f9 (patch) | |
tree | f00b43f2669ac70db625d8babe06e89cd0a731e2 /net/ipv4/tcp_timer.c | |
parent | fb1b69999130e9800c4e341a2b0f0991cdd8fcfc (diff) |
tcp: Refactor pingpong code
Instead of using pingpong as a single bit information, we refactor the
code to treat it as a counter. When interactive session is detected,
we set pingpong count to TCP_PINGPONG_THRESH. And when pingpong count
is >= TCP_PINGPONG_THRESH, we consider the session in pingpong mode.
This patch is a pure refactor and sets foundation for the next patch.
This patch itself does not change any pingpong logic.
Signed-off-by: Wei Wang <weiwan@google.com>
Signed-off-by: Yuchung Cheng <ycheng@google.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/tcp_timer.c')
-rw-r--r-- | net/ipv4/tcp_timer.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/ipv4/tcp_timer.c b/net/ipv4/tcp_timer.c index d7399a89469d..f0c86398e6a7 100644 --- a/net/ipv4/tcp_timer.c +++ b/net/ipv4/tcp_timer.c | |||
@@ -277,14 +277,14 @@ void tcp_delack_timer_handler(struct sock *sk) | |||
277 | icsk->icsk_ack.pending &= ~ICSK_ACK_TIMER; | 277 | icsk->icsk_ack.pending &= ~ICSK_ACK_TIMER; |
278 | 278 | ||
279 | if (inet_csk_ack_scheduled(sk)) { | 279 | if (inet_csk_ack_scheduled(sk)) { |
280 | if (!icsk->icsk_ack.pingpong) { | 280 | if (!inet_csk_in_pingpong_mode(sk)) { |
281 | /* Delayed ACK missed: inflate ATO. */ | 281 | /* Delayed ACK missed: inflate ATO. */ |
282 | icsk->icsk_ack.ato = min(icsk->icsk_ack.ato << 1, icsk->icsk_rto); | 282 | icsk->icsk_ack.ato = min(icsk->icsk_ack.ato << 1, icsk->icsk_rto); |
283 | } else { | 283 | } else { |
284 | /* Delayed ACK missed: leave pingpong mode and | 284 | /* Delayed ACK missed: leave pingpong mode and |
285 | * deflate ATO. | 285 | * deflate ATO. |
286 | */ | 286 | */ |
287 | icsk->icsk_ack.pingpong = 0; | 287 | inet_csk_exit_pingpong_mode(sk); |
288 | icsk->icsk_ack.ato = TCP_ATO_MIN; | 288 | icsk->icsk_ack.ato = TCP_ATO_MIN; |
289 | } | 289 | } |
290 | tcp_mstamp_refresh(tcp_sk(sk)); | 290 | tcp_mstamp_refresh(tcp_sk(sk)); |