From: Martin KaFai Lau Date: Thu, 8 Aug 2024 22:31:26 +0000 (-0700) Subject: Merge branch 'add TCP_BPF_SOCK_OPS_CB_FLAGS to bpf_*sockopt()' X-Git-Tag: v6.12-rc1~232^2~191^2~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=39e8111ce5ce76039a80eaf6dd71ae8bb6866f95;p=thirdparty%2Fkernel%2Flinux.git Merge branch 'add TCP_BPF_SOCK_OPS_CB_FLAGS to bpf_*sockopt()' Alan Maguire says: ==================== As previously discussed here [1], long-lived sockets can miss a chance to set additional callbacks if a sock ops program was not attached early in their lifetime. Adding support to bpf_setsockopt() to set callback flags (and bpf_getsockopt() to retrieve them) provides other opportunities to enable callbacks, either directly via a cgroup/setsockopt intercepted setsockopt() or via a socket iterator. Patch 1 adds bpf_[get|set]sockopt() support; patch 2 adds testing for it via a sockops programs, along with verification via a cgroup/getsockopt program. Changes since v1 [2]: - Removed unneeded READ_ONCE() (Martin, patch 1) - Reworked sockopt test to leave existing tests undisturbed while adding test_nonstandard_opt() test to cover the TCP_BPF_SOCK_OPS_CB_FLAGS case; test verifies that value set via bpf_setsockopt() is what we expect via a call to getsockopt() which is caught by a cgroup/getsockopt program to provide the flags value (Martin, patch 2) - Removed unneeded iterator test (Martin) [1] https://lore.kernel.org/bpf/f42f157b-6e52-dd4d-3d97-9b86c84c0b00@oracle.com/ [2] https://lore.kernel.org/bpf/20240802152929.2695863-1-alan.maguire@oracle.com/ ==================== Signed-off-by: Martin KaFai Lau --- 39e8111ce5ce76039a80eaf6dd71ae8bb6866f95