OSDN Git Service

Merge branch 'net-SO_COOKIE'
authorDavid S. Miller <davem@davemloft.net>
Sat, 8 Apr 2017 15:07:02 +0000 (08:07 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sat, 8 Apr 2017 15:15:22 +0000 (08:15 -0700)
commit7cb164ef5b47b2e947d8361f6f2cd4823ff01557
tree566ff6609ee3fc6ff216b9c18d3118dc50b3bf30
parentc42cb98cfd18dc66b099f4d4a310e12ac8957630
parent00f660eaf37808aa0a537c288c9e2dee73bd4316
Merge branch 'net-SO_COOKIE'

Chenbo Feng says:

====================
New getsockopt option to retrieve socket cookie

In the current kernel socket cookie implementation, there is no simple
and direct way to retrieve the socket cookie based on file descriptor. A
process mat need to get it from sock fd if it want to correlate with
sock_diag output or use a bpf map with new socket cookie function.

If userspace wants to receive the socket cookie for a given socket fd,
it must send a SOCK_DIAG_BY_FAMILY dump request and look for the 5-tuple.
This is slow and can be ambiguous in the case of sockets that have the
same 5-tuple (e.g., tproxy / transparent sockets, SO_REUSEPORT sockets,
etc.).

As shown in the example program. The xt_eBPF program is using socket cookie
to record the network traffics statistics and with the socket cookie
retrieved by getsockopt. The program can directly access to a specific
socket data without scanning the whole bpf map.
====================

Acked-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>