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_output.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_output.c')
-rw-r--r-- | net/ipv4/tcp_output.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index 26a2948dca95..06228e2d010e 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c | |||
@@ -171,7 +171,7 @@ static void tcp_event_data_sent(struct tcp_sock *tp, | |||
171 | * packet, enter pingpong mode. | 171 | * packet, enter pingpong mode. |
172 | */ | 172 | */ |
173 | if ((u32)(now - icsk->icsk_ack.lrcvtime) < icsk->icsk_ack.ato) | 173 | if ((u32)(now - icsk->icsk_ack.lrcvtime) < icsk->icsk_ack.ato) |
174 | icsk->icsk_ack.pingpong = 1; | 174 | inet_csk_enter_pingpong_mode(sk); |
175 | } | 175 | } |
176 | 176 | ||
177 | /* Account for an ACK we sent. */ | 177 | /* Account for an ACK we sent. */ |
@@ -3569,7 +3569,7 @@ void tcp_send_delayed_ack(struct sock *sk) | |||
3569 | const struct tcp_sock *tp = tcp_sk(sk); | 3569 | const struct tcp_sock *tp = tcp_sk(sk); |
3570 | int max_ato = HZ / 2; | 3570 | int max_ato = HZ / 2; |
3571 | 3571 | ||
3572 | if (icsk->icsk_ack.pingpong || | 3572 | if (inet_csk_in_pingpong_mode(sk) || |
3573 | (icsk->icsk_ack.pending & ICSK_ACK_PUSHED)) | 3573 | (icsk->icsk_ack.pending & ICSK_ACK_PUSHED)) |
3574 | max_ato = TCP_DELACK_MAX; | 3574 | max_ato = TCP_DELACK_MAX; |
3575 | 3575 | ||