Merge branch 'bpf-sendmsg-hook'
authorDaniel Borkmann <daniel@iogearbox.net>
Mon, 28 May 2018 15:43:17 +0000 (17:43 +0200)
committerDaniel Borkmann <daniel@iogearbox.net>
Mon, 28 May 2018 15:43:32 +0000 (17:43 +0200)
commitf198222f056745b2622c89190a13c5a485011014
treebbd9942a50c573ec135a3d31326b519a722c79f0
parent3b296633ae6b91bfff815eb005d220b6ad4a47b1
parent04b6ab731209eac1e130fa00281a29278eca2f57
Merge branch 'bpf-sendmsg-hook'

Andrey Ignatov says:

====================
v3 -> v4:
* handle static key correctly for CONFIG_CGROUP_BPF=n.

v2 -> v3:
* place BPF logic under static key in udp_sendmsg, udpv6_sendmsg;
* rebase.

v1 -> v2:
* return ENOTSUPP if bpf_prog rewrote IPv6-only with IPv4-mapped IPv6;
* add test for IPv4-mapped IPv6 use-case;
* fix build for CONFIG_CGROUP_BPF=n;
* rebase.

This path set adds BPF hooks for sys_sendmsg similar to existing hooks for
sys_bind and sys_connect.

Hooks allow to override source IP (including the case when it's set via
cmsg(3)) and destination IP:port for unconnected UDP (slow path). TCP and
connected UDP (fast path) are not affected. This makes UDP support
complete: connected UDP is handled by sys_connect hooks, unconnected by
sys_sendmsg ones.

Similar to sys_connect hooks, sys_sendmsg ones can be used to make system
calls such as sendmsg(2) and sendto(2) return EPERM.

Please see patch 0002 for more details.
====================

Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>