On 5/29/24 3:04 PM, Lorenzo Bianconi wrote:
Introduce e2e selftest for bpf_xdp_flow_lookup kfunc through xdp_flowtable utility. Signed-off-by: Lorenzo Bianconi <lorenzo@xxxxxxxxxx>
[...]
+struct flow_offload_tuple_rhash * +bpf_xdp_flow_lookup(struct xdp_md *, struct bpf_fib_lookup *, + struct bpf_flowtable_opts___local *, u32) __ksym;
Btw, this fails CI build : https://github.com/kernel-patches/bpf/actions/runs/9499749947/job/26190382116 [...] progs/xdp_flowtable.c:20:1: error: conflicting types for 'bpf_xdp_flow_lookup' 20 | bpf_xdp_flow_lookup(struct xdp_md *, struct bpf_fib_lookup *, | ^ /tmp/work/bpf/bpf/tools/testing/selftests/bpf/tools/include/vmlinux.h:106755:41: note: previous declaration is here 106755 | extern struct flow_offload_tuple_rhash *bpf_xdp_flow_lookup(struct xdp_md *ctx, struct bpf_fib_lookup *fib_tuple, struct bpf_flowtable_opts *opts, u32 opts_len) __weak __ksym; | ^ progs/xdp_flowtable.c:134:47: error: incompatible pointer types passing 'struct bpf_flowtable_opts___local *' to parameter of type 'struct bpf_flowtable_opts *' [-Werror,-Wincompatible-pointer-types] 134 | tuplehash = bpf_xdp_flow_lookup(ctx, &tuple, &opts, sizeof(opts)); | ^~~~~ /tmp/work/bpf/bpf/tools/testing/selftests/bpf/tools/include/vmlinux.h:106755:142: note: passing argument to parameter 'opts' here 106755 | extern struct flow_offload_tuple_rhash *bpf_xdp_flow_lookup(struct xdp_md *ctx, struct bpf_fib_lookup *fib_tuple, struct bpf_flowtable_opts *opts, u32 opts_len) __weak __ksym; | ^ 2 errors generated. CLNG-BPF [test_maps] kprobe_multi_override.bpf.o CLNG-BPF [test_maps] tailcall_bpf2bpf1.bpf.o make: *** [Makefile:654: /tmp/work/bpf/bpf/tools/testing/selftests/bpf/xdp_flowtable.bpf.o] Error 1 make: *** Waiting for unfinished jobs.... make: Leaving directory '/tmp/work/bpf/bpf/tools/testing/selftests/bpf' Error: Process completed with exit code 2.