Skip to content

Commit 087d22a

Browse files
DaanDeMeyerqmonnet
authored andcommitted
bpftool: Add support for cgroup unix socket address hooks
Add the necessary plumbing to hook up the new cgroup unix sockaddr hooks into bpftool. Signed-off-by: Daan De Meyer <[email protected]> Acked-by: Quentin Monnet <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Martin KaFai Lau <[email protected]>
1 parent e4ddc81 commit 087d22a

File tree

5 files changed

+38
-23
lines changed

5 files changed

+38
-23
lines changed

bash-completion/bpftool

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -480,13 +480,13 @@ _bpftool()
480480
action tracepoint raw_tracepoint \
481481
xdp perf_event cgroup/skb cgroup/sock \
482482
cgroup/dev lwt_in lwt_out lwt_xmit \
483-
lwt_seg6local sockops sk_skb sk_msg \
484-
lirc_mode2 cgroup/bind4 cgroup/bind6 \
485-
cgroup/connect4 cgroup/connect6 \
486-
cgroup/getpeername4 cgroup/getpeername6 \
487-
cgroup/getsockname4 cgroup/getsockname6 \
488-
cgroup/sendmsg4 cgroup/sendmsg6 \
489-
cgroup/recvmsg4 cgroup/recvmsg6 \
483+
lwt_seg6local sockops sk_skb sk_msg lirc_mode2 \
484+
cgroup/bind4 cgroup/bind6 \
485+
cgroup/connect4 cgroup/connect6 cgroup/connect_unix \
486+
cgroup/getpeername4 cgroup/getpeername6 cgroup/getpeername_unix \
487+
cgroup/getsockname4 cgroup/getsockname6 cgroup/getsockname_unix \
488+
cgroup/sendmsg4 cgroup/sendmsg6 cgroup/sendmsg_unix \
489+
cgroup/recvmsg4 cgroup/recvmsg6 cgroup/recvmsg_unix \
490490
cgroup/post_bind4 cgroup/post_bind6 \
491491
cgroup/sysctl cgroup/getsockopt \
492492
cgroup/setsockopt cgroup/sock_release struct_ops \

docs/bpftool-cgroup.rst

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,14 @@ CGROUP COMMANDS
3636
| **cgroup_device** | **cgroup_inet4_bind** | **cgroup_inet6_bind** |
3737
| **cgroup_inet4_post_bind** | **cgroup_inet6_post_bind** |
3838
| **cgroup_inet4_connect** | **cgroup_inet6_connect** |
39-
| **cgroup_inet4_getpeername** | **cgroup_inet6_getpeername** |
39+
| **cgroup_unix_connect** | **cgroup_inet4_getpeername** |
40+
| **cgroup_inet6_getpeername** | **cgroup_unix_getpeername** |
4041
| **cgroup_inet4_getsockname** | **cgroup_inet6_getsockname** |
41-
| **cgroup_udp4_sendmsg** | **cgroup_udp6_sendmsg** |
42+
| **cgroup_unix_getsockname** | **cgroup_udp4_sendmsg** |
43+
| **cgroup_udp6_sendmsg** | **cgroup_unix_sendmsg** |
4244
| **cgroup_udp4_recvmsg** | **cgroup_udp6_recvmsg** |
43-
| **cgroup_sysctl** | **cgroup_getsockopt** | **cgroup_setsockopt** |
45+
| **cgroup_unix_recvmsg** | **cgroup_sysctl** |
46+
| **cgroup_getsockopt** | **cgroup_setsockopt** |
4447
| **cgroup_inet_sock_release** }
4548
| *ATTACH_FLAGS* := { **multi** | **override** }
4649
@@ -102,21 +105,28 @@ DESCRIPTION
102105
**post_bind6** return from bind(2) for an inet6 socket (since 4.17);
103106
**connect4** call to connect(2) for an inet4 socket (since 4.17);
104107
**connect6** call to connect(2) for an inet6 socket (since 4.17);
108+
**connect_unix** call to connect(2) for a unix socket (since 6.7);
105109
**sendmsg4** call to sendto(2), sendmsg(2), sendmmsg(2) for an
106110
unconnected udp4 socket (since 4.18);
107111
**sendmsg6** call to sendto(2), sendmsg(2), sendmmsg(2) for an
108112
unconnected udp6 socket (since 4.18);
113+
**sendmsg_unix** call to sendto(2), sendmsg(2), sendmmsg(2) for
114+
an unconnected unix socket (since 6.7);
109115
**recvmsg4** call to recvfrom(2), recvmsg(2), recvmmsg(2) for
110116
an unconnected udp4 socket (since 5.2);
111117
**recvmsg6** call to recvfrom(2), recvmsg(2), recvmmsg(2) for
112118
an unconnected udp6 socket (since 5.2);
119+
**recvmsg_unix** call to recvfrom(2), recvmsg(2), recvmmsg(2) for
120+
an unconnected unix socket (since 6.7);
113121
**sysctl** sysctl access (since 5.2);
114122
**getsockopt** call to getsockopt (since 5.3);
115123
**setsockopt** call to setsockopt (since 5.3);
116124
**getpeername4** call to getpeername(2) for an inet4 socket (since 5.8);
117125
**getpeername6** call to getpeername(2) for an inet6 socket (since 5.8);
126+
**getpeername_unix** call to getpeername(2) for a unix socket (since 6.7);
118127
**getsockname4** call to getsockname(2) for an inet4 socket (since 5.8);
119128
**getsockname6** call to getsockname(2) for an inet6 socket (since 5.8).
129+
**getsockname_unix** call to getsockname(2) for a unix socket (since 6.7);
120130
**sock_release** closing an userspace inet socket (since 5.9).
121131

122132
**bpftool cgroup detach** *CGROUP* *ATTACH_TYPE* *PROG*

docs/bpftool-prog.rst

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,11 @@ PROG COMMANDS
4747
| **cgroup/sock** | **cgroup/dev** | **lwt_in** | **lwt_out** | **lwt_xmit** |
4848
| **lwt_seg6local** | **sockops** | **sk_skb** | **sk_msg** | **lirc_mode2** |
4949
| **cgroup/bind4** | **cgroup/bind6** | **cgroup/post_bind4** | **cgroup/post_bind6** |
50-
| **cgroup/connect4** | **cgroup/connect6** | **cgroup/getpeername4** | **cgroup/getpeername6** |
51-
| **cgroup/getsockname4** | **cgroup/getsockname6** | **cgroup/sendmsg4** | **cgroup/sendmsg6** |
52-
| **cgroup/recvmsg4** | **cgroup/recvmsg6** | **cgroup/sysctl** |
50+
| **cgroup/connect4** | **cgroup/connect6** | **cgroup/connect_unix** |
51+
| **cgroup/getpeername4** | **cgroup/getpeername6** | **cgroup/getpeername_unix** |
52+
| **cgroup/getsockname4** | **cgroup/getsockname6** | **cgroup/getsockname_unix** |
53+
| **cgroup/sendmsg4** | **cgroup/sendmsg6** | **cgroup/sendmsg_unix** |
54+
| **cgroup/recvmsg4** | **cgroup/recvmsg6** | **cgroup/recvmsg_unix** | **cgroup/sysctl** |
5355
| **cgroup/getsockopt** | **cgroup/setsockopt** | **cgroup/sock_release** |
5456
| **struct_ops** | **fentry** | **fexit** | **freplace** | **sk_lookup**
5557
| }

src/cgroup.c

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,15 @@
2828
" cgroup_device | cgroup_inet4_bind |\n" \
2929
" cgroup_inet6_bind | cgroup_inet4_post_bind |\n" \
3030
" cgroup_inet6_post_bind | cgroup_inet4_connect |\n" \
31-
" cgroup_inet6_connect | cgroup_inet4_getpeername |\n" \
32-
" cgroup_inet6_getpeername | cgroup_inet4_getsockname |\n" \
33-
" cgroup_inet6_getsockname | cgroup_udp4_sendmsg |\n" \
34-
" cgroup_udp6_sendmsg | cgroup_udp4_recvmsg |\n" \
35-
" cgroup_udp6_recvmsg | cgroup_sysctl |\n" \
36-
" cgroup_getsockopt | cgroup_setsockopt |\n" \
37-
" cgroup_inet_sock_release }"
31+
" cgroup_inet6_connect | cgroup_unix_connect |\n" \
32+
" cgroup_inet4_getpeername | cgroup_inet6_getpeername |\n" \
33+
" cgroup_unix_getpeername | cgroup_inet4_getsockname |\n" \
34+
" cgroup_inet6_getsockname | cgroup_unix_getsockname |\n" \
35+
" cgroup_udp4_sendmsg | cgroup_udp6_sendmsg |\n" \
36+
" cgroup_unix_sendmsg | cgroup_udp4_recvmsg |\n" \
37+
" cgroup_udp6_recvmsg | cgroup_unix_recvmsg |\n" \
38+
" cgroup_sysctl | cgroup_getsockopt |\n" \
39+
" cgroup_setsockopt | cgroup_inet_sock_release }"
3840

3941
static unsigned int query_flags;
4042
static struct btf *btf_vmlinux;

src/prog.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2475,9 +2475,10 @@ static int do_help(int argc, char **argv)
24752475
" sk_reuseport | flow_dissector | cgroup/sysctl |\n"
24762476
" cgroup/bind4 | cgroup/bind6 | cgroup/post_bind4 |\n"
24772477
" cgroup/post_bind6 | cgroup/connect4 | cgroup/connect6 |\n"
2478-
" cgroup/getpeername4 | cgroup/getpeername6 |\n"
2479-
" cgroup/getsockname4 | cgroup/getsockname6 | cgroup/sendmsg4 |\n"
2480-
" cgroup/sendmsg6 | cgroup/recvmsg4 | cgroup/recvmsg6 |\n"
2478+
" cgroup/connect_unix | cgroup/getpeername4 | cgroup/getpeername6 |\n"
2479+
" cgroup/getpeername_unix | cgroup/getsockname4 | cgroup/getsockname6 |\n"
2480+
" cgroup/getsockname_unix | cgroup/sendmsg4 | cgroup/sendmsg6 |\n"
2481+
" cgroup/sendmsg°unix | cgroup/recvmsg4 | cgroup/recvmsg6 | cgroup/recvmsg_unix |\n"
24812482
" cgroup/getsockopt | cgroup/setsockopt | cgroup/sock_release |\n"
24822483
" struct_ops | fentry | fexit | freplace | sk_lookup }\n"
24832484
" ATTACH_TYPE := { sk_msg_verdict | sk_skb_verdict | sk_skb_stream_verdict |\n"

0 commit comments

Comments
 (0)