android_kernel_msm-6.1_noth.../tools/include/uapi/linux
Martin KaFai Lau 8904d8848b bpf: Add BPF_FIB_LOOKUP_SKIP_NEIGH for bpf_fib_lookup
[ Upstream commit 31de4105f00d64570139bc5494a201b0bd57349f ]

The bpf_fib_lookup() also looks up the neigh table.
This was done before bpf_redirect_neigh() was added.

In the use case that does not manage the neigh table
and requires bpf_fib_lookup() to lookup a fib to
decide if it needs to redirect or not, the bpf prog can
depend only on using bpf_redirect_neigh() to lookup the
neigh. It also keeps the neigh entries fresh and connected.

This patch adds a bpf_fib_lookup flag, SKIP_NEIGH, to avoid
the double neigh lookup when the bpf prog always call
bpf_redirect_neigh() to do the neigh lookup. The params->smac
output is skipped together when SKIP_NEIGH is set because
bpf_redirect_neigh() will figure out the smac also.

Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20230217205515.3583372-1-martin.lau@linux.dev
Stable-dep-of: 5baa0433a15e ("neighbour: fix data-races around n->output")
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-10-10 22:00:42 +02:00
..
tc_act
bpf.h bpf: Add BPF_FIB_LOOKUP_SKIP_NEIGH for bpf_fib_lookup 2023-10-10 22:00:42 +02:00
bpf_common.h
bpf_perf_event.h
btf.h
const.h
erspan.h
ethtool.h
fadvise.h
fcntl.h
filter.h
fs.h
fscrypt.h
hw_breakpoint.h
if_link.h
if_tun.h
if_xdp.h
in.h
kcmp.h
kvm.h
mman.h
mount.h
netlink.h
openat2.h
perf_event.h
pkt_cls.h
pkt_sched.h
prctl.h
sched.h
seg6.h
seg6_local.h
stat.h
stddef.h
tcp.h
tls.h
types.h
usbdevice_fs.h
vhost.h