bpf: Add PROG_TEST_RUN support for sk_lookup programs
authorLorenz Bauer <lmb@cloudflare.com>
Wed, 3 Mar 2021 10:18:13 +0000 (10:18 +0000)
committerAlexei Starovoitov <ast@kernel.org>
Fri, 5 Mar 2021 03:11:29 +0000 (19:11 -0800)
commit7c32e8f8bc33a5f4b113a630857e46634e3e143b
tree460341732415db4d3ca17d9f44d4cc255148ff00
parent607b9cc92bd7208338d714a22b8082fe83bcb177
bpf: Add PROG_TEST_RUN support for sk_lookup programs

Allow to pass sk_lookup programs to PROG_TEST_RUN. User space
provides the full bpf_sk_lookup struct as context. Since the
context includes a socket pointer that can't be exposed
to user space we define that PROG_TEST_RUN returns the cookie
of the selected socket or zero in place of the socket pointer.

We don't support testing programs that select a reuseport socket,
since this would mean running another (unrelated) BPF program
from the sk_lookup test handler.

Signed-off-by: Lorenz Bauer <lmb@cloudflare.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20210303101816.36774-3-lmb@cloudflare.com
include/linux/bpf.h
include/uapi/linux/bpf.h
net/bpf/test_run.c
net/core/filter.c
tools/include/uapi/linux/bpf.h