libbpf: Add support for cgroup unix socket address hooks
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Wed, 11 Oct 2023 18:51:07 +0000 (20:51 +0200)
committerMartin KaFai Lau <martin.lau@kernel.org>
Thu, 12 Oct 2023 00:27:55 +0000 (17:27 -0700)
Add the necessary plumbing to hook up the new cgroup unix sockaddr
hooks into libbpf.

Signed-off-by: Daan De Meyer <daan.j.demeyer@gmail.com>
Link: https://lore.kernel.org/r/20231011185113.140426-6-daan.j.demeyer@gmail.com
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
tools/lib/bpf/libbpf.c

index 31b8b252e6143abe2242946a6196742ab670a2c1..a295f6acf98fe7b8f31b70fda98cd9bc0a0101be 100644 (file)
@@ -82,17 +82,22 @@ static const char * const attach_type_name[] = {
        [BPF_CGROUP_INET6_BIND]         = "cgroup_inet6_bind",
        [BPF_CGROUP_INET4_CONNECT]      = "cgroup_inet4_connect",
        [BPF_CGROUP_INET6_CONNECT]      = "cgroup_inet6_connect",
+       [BPF_CGROUP_UNIX_CONNECT]       = "cgroup_unix_connect",
        [BPF_CGROUP_INET4_POST_BIND]    = "cgroup_inet4_post_bind",
        [BPF_CGROUP_INET6_POST_BIND]    = "cgroup_inet6_post_bind",
        [BPF_CGROUP_INET4_GETPEERNAME]  = "cgroup_inet4_getpeername",
        [BPF_CGROUP_INET6_GETPEERNAME]  = "cgroup_inet6_getpeername",
+       [BPF_CGROUP_UNIX_GETPEERNAME]   = "cgroup_unix_getpeername",
        [BPF_CGROUP_INET4_GETSOCKNAME]  = "cgroup_inet4_getsockname",
        [BPF_CGROUP_INET6_GETSOCKNAME]  = "cgroup_inet6_getsockname",
+       [BPF_CGROUP_UNIX_GETSOCKNAME]   = "cgroup_unix_getsockname",
        [BPF_CGROUP_UDP4_SENDMSG]       = "cgroup_udp4_sendmsg",
        [BPF_CGROUP_UDP6_SENDMSG]       = "cgroup_udp6_sendmsg",
+       [BPF_CGROUP_UNIX_SENDMSG]       = "cgroup_unix_sendmsg",
        [BPF_CGROUP_SYSCTL]             = "cgroup_sysctl",
        [BPF_CGROUP_UDP4_RECVMSG]       = "cgroup_udp4_recvmsg",
        [BPF_CGROUP_UDP6_RECVMSG]       = "cgroup_udp6_recvmsg",
+       [BPF_CGROUP_UNIX_RECVMSG]       = "cgroup_unix_recvmsg",
        [BPF_CGROUP_GETSOCKOPT]         = "cgroup_getsockopt",
        [BPF_CGROUP_SETSOCKOPT]         = "cgroup_setsockopt",
        [BPF_SK_SKB_STREAM_PARSER]      = "sk_skb_stream_parser",
@@ -8960,14 +8965,19 @@ static const struct bpf_sec_def section_defs[] = {
        SEC_DEF("cgroup/bind6",         CGROUP_SOCK_ADDR, BPF_CGROUP_INET6_BIND, SEC_ATTACHABLE),
        SEC_DEF("cgroup/connect4",      CGROUP_SOCK_ADDR, BPF_CGROUP_INET4_CONNECT, SEC_ATTACHABLE),
        SEC_DEF("cgroup/connect6",      CGROUP_SOCK_ADDR, BPF_CGROUP_INET6_CONNECT, SEC_ATTACHABLE),
+       SEC_DEF("cgroup/connect_unix",  CGROUP_SOCK_ADDR, BPF_CGROUP_UNIX_CONNECT, SEC_ATTACHABLE),
        SEC_DEF("cgroup/sendmsg4",      CGROUP_SOCK_ADDR, BPF_CGROUP_UDP4_SENDMSG, SEC_ATTACHABLE),
        SEC_DEF("cgroup/sendmsg6",      CGROUP_SOCK_ADDR, BPF_CGROUP_UDP6_SENDMSG, SEC_ATTACHABLE),
+       SEC_DEF("cgroup/sendmsg_unix",  CGROUP_SOCK_ADDR, BPF_CGROUP_UNIX_SENDMSG, SEC_ATTACHABLE),
        SEC_DEF("cgroup/recvmsg4",      CGROUP_SOCK_ADDR, BPF_CGROUP_UDP4_RECVMSG, SEC_ATTACHABLE),
        SEC_DEF("cgroup/recvmsg6",      CGROUP_SOCK_ADDR, BPF_CGROUP_UDP6_RECVMSG, SEC_ATTACHABLE),
+       SEC_DEF("cgroup/recvmsg_unix",  CGROUP_SOCK_ADDR, BPF_CGROUP_UNIX_RECVMSG, SEC_ATTACHABLE),
        SEC_DEF("cgroup/getpeername4",  CGROUP_SOCK_ADDR, BPF_CGROUP_INET4_GETPEERNAME, SEC_ATTACHABLE),
        SEC_DEF("cgroup/getpeername6",  CGROUP_SOCK_ADDR, BPF_CGROUP_INET6_GETPEERNAME, SEC_ATTACHABLE),
+       SEC_DEF("cgroup/getpeername_unix", CGROUP_SOCK_ADDR, BPF_CGROUP_UNIX_GETPEERNAME, SEC_ATTACHABLE),
        SEC_DEF("cgroup/getsockname4",  CGROUP_SOCK_ADDR, BPF_CGROUP_INET4_GETSOCKNAME, SEC_ATTACHABLE),
        SEC_DEF("cgroup/getsockname6",  CGROUP_SOCK_ADDR, BPF_CGROUP_INET6_GETSOCKNAME, SEC_ATTACHABLE),
+       SEC_DEF("cgroup/getsockname_unix", CGROUP_SOCK_ADDR, BPF_CGROUP_UNIX_GETSOCKNAME, SEC_ATTACHABLE),
        SEC_DEF("cgroup/sysctl",        CGROUP_SYSCTL, BPF_CGROUP_SYSCTL, SEC_ATTACHABLE),
        SEC_DEF("cgroup/getsockopt",    CGROUP_SOCKOPT, BPF_CGROUP_GETSOCKOPT, SEC_ATTACHABLE),
        SEC_DEF("cgroup/setsockopt",    CGROUP_SOCKOPT, BPF_CGROUP_SETSOCKOPT, SEC_ATTACHABLE),