The diag interface for raw sockets is now in linux-net-next
http://git.kernel.org/cgit/linux/kernel/git/davem/net-next.git/commit/?id=432490f9d455fb842d70219f22d9d2c812371676
so here is early patches for misc/ss
While "showing" action works as expected, I see some weird effects on
"kill" socket actions. In particular I've a test program which binds
sockets to veth interface
# ip link add dev vm1 type veth peer name vm2
setsockopt(sk, SOL_SOCKET, SO_BINDTODEVICE, "vm1", 3);
setsockopt(sk6, SOL_SOCKET, SO_BINDTODEVICE, "vm1", 3);
setsockopt(skc, SOL_SOCKET, SO_BINDTODEVICE, "vm1", 3);
setsockopt(sk6, SOL_SOCKET, SO_BINDTODEVICE, "vm1", 3);
setsockopt(skicmp, SOL_SOCKET, SO_BINDTODEVICE, "vm1", 3);
so the output shows
[root@pcs7 iproute2]# ./misc/ss -A raw
State Recv-Q Send-Q Local Address:Port
Peer Address:Port
UNCONN 0 0 *%vm1:icmp
*:*
UNCONN 0 0
*:ipproto-255 *:*
UNCONN 0 0
*%vm1:ipproto-255 *:*
UNCONN 0 0
127.0.0.10%vm1:ipproto-255
*:*
UNCONN 0 0 :::ipv6-icmp
:::*
UNCONN 0 0 :::ipv6-icmp
:::*
ESTAB 0 0
::1:ipproto-255
::1:ipproto-9091
UNCONN 0 0
::1%vm1:ipproto-255 :::*
[root@pcs7 iproute2]#
But when I start killing sockets
[root@pcs7 iproute2]# ./misc/ss -aKw 'dev == vm1'
State Recv-Q Send-Q Local Address:Port
Peer Address:Port
UNCONN 0 0
*%vm1:ipproto-255 *:*
UNCONN 0 0
127.0.0.10%vm1:ipproto-255
*:*
UNCONN 0 0
::1%vm1:ipproto-255 :::*
[root@pcs7 iproute2]#
[root@pcs7 iproute2]# ./misc/ss -aKw 'dev == vm1'
State Recv-Q Send-Q Local Address:Port
Peer Address:Port
UNCONN 0 0
127.0.0.10%vm1:ipproto-255
*:*
[root@pcs7 iproute2]# ./misc/ss -aKw 'dev == vm1'
State Recv-Q Send-Q Local Address:Port
Peer Address:Port
UNCONN 0 0 *%vm1:icmp
*:*
[root@pcs7 iproute2]# ./misc/ss -aKw 'dev == vm1'
State Recv-Q Send-Q Local Address:Port
Peer Address:Port
[root@pcs7 iproute2]#
It doesn't do all this in one pass, so I suspect I miss something in second
patch?
Please take a look, once time permit.
Cyrill Gorcunov (2):
libnetlink: Add test for error code returned from netlink reply
ss: Add inet raw sockets information gathering via netlink diag
interface
include/linux/inet_diag.h | 15 +++++++++++++++
lib/libnetlink.c | 21 +++++++++++++++++++++
misc/ss.c | 20 ++++++++++++++++++--
3 files changed, 54 insertions(+), 2 deletions(-)
--
2.7.4