I've adressed John's nit in patch 3, and added the reviews and acks. Changes since v3: - Clarify !psock check in sock_map_link_no_progs Changes since v2: - Remove sk_psock_hooks based on Jakub's idea - Fix reference to tcp_bpf_clone in commit message - Add inet_csk_has_ulp helper Changes since v1: - Check newsk->sk_prot in tcp_bpf_clone - Fix compilation with BPF_STREAM_PARSER disabled - Use spin_lock_init instead of static initializer - Elaborate on TCPF_SYN_RECV - Cosmetic changes to TEST macros, and more tests - Add Jakub and me as maintainers Lorenz Bauer (12): bpf: sockmap: only check ULP for TCP sockets skmsg: update saved hooks only once bpf: tcp: move assertions into tcp_bpf_get_proto bpf: tcp: guard declarations with CONFIG_NET_SOCK_MSG bpf: sockmap: move generic sockmap hooks from BPF TCP bpf: sockmap: simplify sock_map_init_proto bpf: add sockmap hooks for UDP sockets bpf: sockmap: add UDP support selftests: bpf: don't listen() on UDP sockets selftests: bpf: add tests for UDP sockets in sockmap selftests: bpf: enable UDP sockmap reuseport tests bpf, doc: update maintainers for L7 BPF MAINTAINERS | 3 + include/linux/bpf.h | 4 +- include/linux/skmsg.h | 56 ++--- include/net/inet_connection_sock.h | 6 + include/net/tcp.h | 20 +- include/net/udp.h | 5 + net/core/sock_map.c | 157 +++++++++++--- net/ipv4/Makefile | 1 + net/ipv4/tcp_bpf.c | 114 ++-------- net/ipv4/tcp_ulp.c | 7 - net/ipv4/udp_bpf.c | 53 +++++ .../bpf/prog_tests/select_reuseport.c | 6 - .../selftests/bpf/prog_tests/sockmap_listen.c | 204 +++++++++++++----- 13 files changed, 402 insertions(+), 234 deletions(-) create mode 100644 net/ipv4/udp_bpf.c -- 2.20.1