Sometimes it's handy to know when the socket gets freed. In particular, we'd like to try to use a smarter allocation of ports for bpf_bind and explore the possibility of limiting the number of SOCK_DGRAM sockets the process can have. There is already existing BPF_CGROUP_INET_SOCK_CREATE hook that triggers upon socket creation; let's add new hook (BPF_CGROUP_INET_SOCK_RELEASE) that triggers on socket release. v3: * s/CHECK_FAIL/CHECK/ (Andrii Nakryiko) * s/bpf_prog_attach/bpf_program__attach_cgroup/ (Andrii Nakryiko) * fix &in_use in BPF program (Andrii Nakryiko) v2: * fix compile issue with CONFIG_CGROUP_BPF=n (kernel test robot) Stanislav Fomichev (4): bpf: add BPF_CGROUP_INET_SOCK_RELEASE hook libbpf: add support for BPF_CGROUP_INET_SOCK_RELEASE bpftool: add support for BPF_CGROUP_INET_SOCK_RELEASE selftests/bpf: test BPF_CGROUP_INET_SOCK_RELEASE include/linux/bpf-cgroup.h | 4 ++ include/uapi/linux/bpf.h | 1 + kernel/bpf/syscall.c | 3 + net/core/filter.c | 1 + net/ipv4/af_inet.c | 3 + tools/bpf/bpftool/common.c | 1 + tools/include/uapi/linux/bpf.h | 1 + tools/lib/bpf/libbpf.c | 4 ++ .../selftests/bpf/prog_tests/udp_limit.c | 72 +++++++++++++++++++ tools/testing/selftests/bpf/progs/udp_limit.c | 42 +++++++++++ 10 files changed, 132 insertions(+) create mode 100644 tools/testing/selftests/bpf/prog_tests/udp_limit.c create mode 100644 tools/testing/selftests/bpf/progs/udp_limit.c -- 2.27.0.212.ge8ba1cc988-goog