Have the xskmap version of bpf_map_lookup_elem() return an XDP_SOCK type. This can be used to verify the existence of an entry, and then check the sock properties.
Further improvements would include passing the pointer directly to a helper for redirrection instead of referencing the map again. Jonathan Lemon (1): bpf: Allow bpf_map_lookup_elem() on an xskmap include/linux/bpf.h | 8 ++++ include/net/xdp_sock.h | 4 +- include/uapi/linux/bpf.h | 4 ++ kernel/bpf/verifier.c | 26 +++++++++++- kernel/bpf/xskmap.c | 7 ++++ net/core/filter.c | 40 +++++++++++++++++++ tools/include/uapi/linux/bpf.h | 4 ++ .../bpf/verifier/prevent_map_lookup.c | 15 ------- tools/testing/selftests/bpf/verifier/sock.c | 18 +++++++++ 9 files changed, 107 insertions(+), 19 deletions(-) -- 2.17.1