diff options
author | Vijay Subramanian <subramanian.vijay@gmail.com> | 2013-01-31 03:24:19 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-02-04 13:06:27 -0500 |
commit | 5f1e942cb45d06968b0ce94472d97014e0e1fdc9 (patch) | |
tree | cc98d521570cd46d81d13fdfa252d9c647fc14e7 | |
parent | 848bf15f361c7c22da7998c81d50ed3dffbc827d (diff) |
tcp: ipv6: Update MIB counters for drops
This patch updates LINUX_MIB_LISTENDROPS and LINUX_MIB_LISTENOVERFLOWS in
tcp_v6_conn_request() and tcp_v6_err(). tcp_v6_conn_request() in particular can
drop SYNs for various reasons which are not currently tracked.
Signed-off-by: Vijay Subramanian <subramanian.vijay@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/ipv6/tcp_ipv6.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c index 93825dd3a7c0..4f43537197ef 100644 --- a/net/ipv6/tcp_ipv6.c +++ b/net/ipv6/tcp_ipv6.c | |||
@@ -423,6 +423,7 @@ static void tcp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, | |||
423 | } | 423 | } |
424 | 424 | ||
425 | inet_csk_reqsk_queue_drop(sk, req, prev); | 425 | inet_csk_reqsk_queue_drop(sk, req, prev); |
426 | NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_LISTENDROPS); | ||
426 | goto out; | 427 | goto out; |
427 | 428 | ||
428 | case TCP_SYN_SENT: | 429 | case TCP_SYN_SENT: |
@@ -958,8 +959,10 @@ static int tcp_v6_conn_request(struct sock *sk, struct sk_buff *skb) | |||
958 | goto drop; | 959 | goto drop; |
959 | } | 960 | } |
960 | 961 | ||
961 | if (sk_acceptq_is_full(sk) && inet_csk_reqsk_queue_young(sk) > 1) | 962 | if (sk_acceptq_is_full(sk) && inet_csk_reqsk_queue_young(sk) > 1) { |
963 | NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_LISTENOVERFLOWS); | ||
962 | goto drop; | 964 | goto drop; |
965 | } | ||
963 | 966 | ||
964 | req = inet6_reqsk_alloc(&tcp6_request_sock_ops); | 967 | req = inet6_reqsk_alloc(&tcp6_request_sock_ops); |
965 | if (req == NULL) | 968 | if (req == NULL) |
@@ -1108,6 +1111,7 @@ drop_and_release: | |||
1108 | drop_and_free: | 1111 | drop_and_free: |
1109 | reqsk_free(req); | 1112 | reqsk_free(req); |
1110 | drop: | 1113 | drop: |
1114 | NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_LISTENDROPS); | ||
1111 | return 0; /* don't send reset */ | 1115 | return 0; /* don't send reset */ |
1112 | } | 1116 | } |
1113 | 1117 | ||