diff options
author | Alexey Kuznetsov <kuznet@ms2.inr.ac.ru> | 2006-09-19 12:52:50 -0700 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-09-22 15:19:05 -0700 |
commit | 1ef9696c909060ccdae3ade245ca88692b49285b (patch) | |
tree | 3a2df5bbd6b448a4f873125ab5dd7c7a0cc7ae05 /include/net | |
parent | 4eb327b517cf85f6cb7dcd5691e7b748cbe8c343 (diff) | |
download | linux-1ef9696c909060ccdae3ade245ca88692b49285b.tar.gz linux-1ef9696c909060ccdae3ade245ca88692b49285b.tar.bz2 linux-1ef9696c909060ccdae3ade245ca88692b49285b.zip |
[TCP]: Send ACKs each 2nd received segment.
It does not affect either mss-sized connections (obviously) or
connections controlled by Nagle (because there is only one small
segment in flight).
The idea is to record the fact that a small segment arrives on a
connection, where one small segment has already been received and
still not-ACKed. In this case ACK is forced after tcp_recvmsg() drains
receive buffer.
In other words, it is a "soft" each-2nd-segment ACK, which is enough
to preserve ACK clock even when ABC is enabled.
Signed-off-by: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/inet_connection_sock.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/net/inet_connection_sock.h b/include/net/inet_connection_sock.h index 9bf73fe50948..de4e83b6da4b 100644 --- a/include/net/inet_connection_sock.h +++ b/include/net/inet_connection_sock.h @@ -147,7 +147,8 @@ extern struct sock *inet_csk_clone(struct sock *sk, enum inet_csk_ack_state_t { ICSK_ACK_SCHED = 1, ICSK_ACK_TIMER = 2, - ICSK_ACK_PUSHED = 4 + ICSK_ACK_PUSHED = 4, + ICSK_ACK_PUSHED2 = 8 }; extern void inet_csk_init_xmit_timers(struct sock *sk, |