packet_diag: disclose meminfo values
authorNicolas Dichtel <nicolas.dichtel@6wind.com>
Thu, 25 Apr 2013 06:53:53 +0000 (06:53 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 29 Apr 2013 17:21:30 +0000 (13:21 -0400)
sk_rmem_alloc is disclosed via /proc/net/packet but not via netlink messages.
The goal is to have the same level of information.

Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/uapi/linux/packet_diag.h
net/packet/diag.c

index 84f83a47b6f66c6204bbed7f7188132a109652e7..c0802c18c8ad8e4255ac045098ec65d865aae54c 100644 (file)
@@ -16,6 +16,7 @@ struct packet_diag_req {
 #define PACKET_SHOW_MCLIST     0x00000002 /* A set of packet_diag_mclist-s */
 #define PACKET_SHOW_RING_CFG   0x00000004 /* Rings configuration parameters */
 #define PACKET_SHOW_FANOUT     0x00000008
+#define PACKET_SHOW_MEMINFO    0x00000010
 
 struct packet_diag_msg {
        __u8    pdiag_family;
@@ -33,6 +34,7 @@ enum {
        PACKET_DIAG_TX_RING,
        PACKET_DIAG_FANOUT,
        PACKET_DIAG_UID,
+       PACKET_DIAG_MEMINFO,
 
        __PACKET_DIAG_MAX,
 };
index 04c8219a2d0632a8b484c488272b2b661b971a4c..822fe9b33a49b0baa012ef82f81b740e68b383a7 100644 (file)
@@ -166,6 +166,10 @@ static int sk_diag_fill(struct sock *sk, struct sk_buff *skb,
                        pdiag_put_fanout(po, skb))
                goto out_nlmsg_trim;
 
+       if ((req->pdiag_show & PACKET_SHOW_MEMINFO) &&
+           sock_diag_put_meminfo(sk, skb, PACKET_DIAG_MEMINFO))
+               goto out_nlmsg_trim;
+
        return nlmsg_end(skb, nlh);
 
 out_nlmsg_trim: