aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/tcp_ipv6.c
diff options
context:
space:
mode:
authorYuchung Cheng <ycheng@google.com>2014-03-03 15:31:36 -0500
committerDavid S. Miller <davem@davemloft.net>2014-03-03 15:58:03 -0500
commitf19c29e3e391a66a273e9afebaf01917245148cd (patch)
treeff123f596ed847774357b6d17526793bafb8b10a /net/ipv6/tcp_ipv6.c
parenta135e598c463baf9497b84e1e92f9a8f96d3521c (diff)
tcp: snmp stats for Fast Open, SYN rtx, and data pkts
Add the following snmp stats: TCPFastOpenActiveFail: Fast Open attempts (SYN/data) failed beacuse the remote does not accept it or the attempts timed out. TCPSynRetrans: number of SYN and SYN/ACK retransmits to break down retransmissions into SYN, fast-retransmits, timeout retransmits, etc. TCPOrigDataSent: number of outgoing packets with original data (excluding retransmission but including data-in-SYN). This counter is different from TcpOutSegs because TcpOutSegs also tracks pure ACKs. TCPOrigDataSent is more useful to track the TCP retransmission rate. Change TCPFastOpenActive to track only successful Fast Opens to be symmetric to TCPFastOpenPassive. Signed-off-by: Yuchung Cheng <ycheng@google.com> Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: Nandita Dukkipati <nanditad@google.com> Signed-off-by: Lawrence Brakmo <brakmo@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/tcp_ipv6.c')
-rw-r--r--net/ipv6/tcp_ipv6.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
index 889079b2ea85..3277680186b4 100644
--- a/net/ipv6/tcp_ipv6.c
+++ b/net/ipv6/tcp_ipv6.c
@@ -501,8 +501,10 @@ static int tcp_v6_rtx_synack(struct sock *sk, struct request_sock *req)
501 int res; 501 int res;
502 502
503 res = tcp_v6_send_synack(sk, NULL, &fl6, req, 0); 503 res = tcp_v6_send_synack(sk, NULL, &fl6, req, 0);
504 if (!res) 504 if (!res) {
505 TCP_INC_STATS_BH(sock_net(sk), TCP_MIB_RETRANSSEGS); 505 TCP_INC_STATS_BH(sock_net(sk), TCP_MIB_RETRANSSEGS);
506 NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_TCPSYNRETRANS);
507 }
506 return res; 508 return res;
507} 509}
508 510