bpf: Hooks for sys_sendmsg
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v4 Latest6 patches 1 replyIn review
- v35 patches 2 repliesApplied
- v25 patches 3 repliesSuperseded
Earlier versions · 1
| Version | Posted | Patches | Replies | Status |
|---|---|---|---|---|
| v1 | 5 patches | 6 replies | Superseded |
Changes in v4 from the cover letter
* handle static key correctly for CONFIG_CGROUP_BPF=n.
Patches in v4 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/6 | bpf: Define cgroup_bpf_enabled for CONFIG_CGROUP_BPF=ninclude/ | +1 | 1 reply | |
| 2/6 | bpf: Hooks for sys_sendmsginclude/ include/ include/ +5 more | +125 | 0 replies | |
| 3/6 | bpf: Sync bpf.h to tools/tools/ | +8 | 0 replies | |
| 4/6 | libbpf: Support guessing sendmsg{4,6} progstools/ | +2 | 0 replies | |
| 5/6 | selftests/bpf: Prepare test_sock_addr for extensiontools/ | +460 | 0 replies | |
| 6/6 | selftests/bpf: Selftest for sys_sendmsg hookstools/ tools/ tools/ +1 more | +628 | 0 replies |
Reviews trailers per patch
All 6 patches have a Reviewed-by or Acked-by.
| Patch | Alexei Starovoitov | Martin KaFai Lau |
|---|---|---|
| 1/6 | A-b | |
| 2/6 | A-b | A-b |
| 3/6 | A-b | A-b |
| 4/6 | A-b | A-b |
| 5/6 | A-b | A-b |
| 6/6 | A-b | A-b |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
Cover letter [PATCH v4 bpf-next 0/6] bpf: Hooks for sys_sendmsg
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.
Andrey Ignatov (6):
bpf: Define cgroup_bpf_enabled for CONFIG_CGROUP_BPF=n
bpf: Hooks for sys_sendmsg
bpf: Sync bpf.h to tools/
libbpf: Support guessing sendmsg{4,6} progs selftests/bpf: Prepare test_sock_addr for extension selftests/bpf: Selftest for sys_sendmsg hooks
include/linux/bpf-cgroup.h | 24 +- include/linux/filter.h | 1 + include/uapi/linux/bpf.h | 8 + kernel/bpf/cgroup.c | 11 +- kernel/bpf/syscall.c | 8 + net/core/filter.c | 39 + net/ipv4/udp.c | 20 +- net/ipv6/udp.c | 24 + tools/include/uapi/linux/bpf.h | 8 + tools/lib/bpf/libbpf.c | 2 + tools/testing/selftests/bpf/Makefile | 2 +- tools/testing/selftests/bpf/sendmsg4_prog.c | 49 ++ tools/testing/selftests/bpf/sendmsg6_prog.c | 60 ++ tools/testing/selftests/bpf/test_sock_addr.c | 1155 +++++++++++++++++++++----- 14 files changed, 1215 insertions(+), 196 deletions(-) create mode 100644 tools/testing/selftests/bpf/sendmsg4_prog.c create mode 100644 tools/testing/selftests/bpf/sendmsg6_prog.c
Signature · 1 line
2.9.5