diff options
| author | Octavian Purdila <opurdila@ixiacom.com> | 2010-01-17 22:09:39 -0500 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2010-01-17 22:09:39 -0500 |
| commit | 72659ecce68588b74f6c46862c2b4cec137d7a5a (patch) | |
| tree | 791c5900e2a2b219774904cef7fab90fa462b81c /net/ipv4/tcp_timer.c | |
| parent | 0ec00f0392b807d57a2281576a96552d7694b6bb (diff) | |
tcp: account SYN-ACK timeouts & retransmissions
Currently we don't increment SYN-ACK timeouts & retransmissions
although we do increment the same stats for SYN. We seem to have lost
the SYN-ACK accounting with the introduction of tcp_syn_recv_timer
(commit 2248761e in the netdev-vger-cvs tree).
This patch fixes this issue. In the process we also rename the v4/v6
syn/ack retransmit functions for clarity. We also add a new
request_socket operations (syn_ack_timeout) so we can keep code in
inet_connection_sock.c protocol agnostic.
Signed-off-by: Octavian Purdila <opurdila@ixiacom.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 | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/net/ipv4/tcp_timer.c b/net/ipv4/tcp_timer.c index 8816a20c2597..de7d1bf9114f 100644 --- a/net/ipv4/tcp_timer.c +++ b/net/ipv4/tcp_timer.c | |||
| @@ -474,6 +474,12 @@ static void tcp_synack_timer(struct sock *sk) | |||
| 474 | TCP_TIMEOUT_INIT, TCP_RTO_MAX); | 474 | TCP_TIMEOUT_INIT, TCP_RTO_MAX); |
| 475 | } | 475 | } |
| 476 | 476 | ||
| 477 | void tcp_syn_ack_timeout(struct sock *sk, struct request_sock *req) | ||
| 478 | { | ||
| 479 | NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_TCPTIMEOUTS); | ||
| 480 | } | ||
| 481 | EXPORT_SYMBOL(tcp_syn_ack_timeout); | ||
| 482 | |||
| 477 | void tcp_set_keepalive(struct sock *sk, int val) | 483 | void tcp_set_keepalive(struct sock *sk, int val) |
| 478 | { | 484 | { |
| 479 | if ((1 << sk->sk_state) & (TCPF_CLOSE | TCPF_LISTEN)) | 485 | if ((1 << sk->sk_state) & (TCPF_CLOSE | TCPF_LISTEN)) |
