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>
This commit is contained in:
committed by
David S. Miller
parent
0ec00f0392
commit
72659ecce6
@@ -520,6 +520,13 @@ done:
|
||||
return err;
|
||||
}
|
||||
|
||||
static int tcp_v6_rtx_synack(struct sock *sk, struct request_sock *req,
|
||||
struct request_values *rvp)
|
||||
{
|
||||
TCP_INC_STATS_BH(sock_net(sk), TCP_MIB_RETRANSSEGS);
|
||||
return tcp_v6_send_synack(sk, req, rvp);
|
||||
}
|
||||
|
||||
static inline void syn_flood_warning(struct sk_buff *skb)
|
||||
{
|
||||
#ifdef CONFIG_SYN_COOKIES
|
||||
@@ -890,10 +897,11 @@ static int tcp_v6_inbound_md5_hash (struct sock *sk, struct sk_buff *skb)
|
||||
struct request_sock_ops tcp6_request_sock_ops __read_mostly = {
|
||||
.family = AF_INET6,
|
||||
.obj_size = sizeof(struct tcp6_request_sock),
|
||||
.rtx_syn_ack = tcp_v6_send_synack,
|
||||
.rtx_syn_ack = tcp_v6_rtx_synack,
|
||||
.send_ack = tcp_v6_reqsk_send_ack,
|
||||
.destructor = tcp_v6_reqsk_destructor,
|
||||
.send_reset = tcp_v6_send_reset
|
||||
.send_reset = tcp_v6_send_reset,
|
||||
.syn_ack_timeout = tcp_syn_ack_timeout,
|
||||
};
|
||||
|
||||
#ifdef CONFIG_TCP_MD5SIG
|
||||
|
Reference in New Issue
Block a user