sock_diag: add SK_MEMINFO_DROPS
authorEric Dumazet <edumazet@google.com>
Fri, 1 Apr 2016 15:52:18 +0000 (08:52 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 5 Apr 2016 02:11:20 +0000 (22:11 -0400)
Reporting sk_drops to user space was available for UDP
sockets using /proc interface.

Add this to sock_diag, so that we can have the same information
available to ss users, and we'll be able to add sk_drops
indications for TCP sockets as well.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/uapi/linux/sock_diag.h
net/core/sock_diag.c

index bae2d80034d4a2e7b9d2e63172c64b312d82ddf1..7ff505d8a47ba3a9b060109a395549925da6a0ca 100644 (file)
@@ -20,6 +20,7 @@ enum {
        SK_MEMINFO_WMEM_QUEUED,
        SK_MEMINFO_OPTMEM,
        SK_MEMINFO_BACKLOG,
+       SK_MEMINFO_DROPS,
 
        SK_MEMINFO_VARS,
 };
index a996ce8c8fb25e016a674f6ce3e42c6d4de36485..ca9e35bbe13ca1f6f7100f755c046ea60f624a06 100644 (file)
@@ -67,6 +67,7 @@ int sock_diag_put_meminfo(struct sock *sk, struct sk_buff *skb, int attrtype)
        mem[SK_MEMINFO_WMEM_QUEUED] = sk->sk_wmem_queued;
        mem[SK_MEMINFO_OPTMEM] = atomic_read(&sk->sk_omem_alloc);
        mem[SK_MEMINFO_BACKLOG] = sk->sk_backlog.len;
+       mem[SK_MEMINFO_DROPS] = atomic_read(&sk->sk_drops);
 
        return nla_put(skb, attrtype, sizeof(mem), &mem);
 }