bpf: Fix bpf_redirect_neigh helper api to support supplying nexthop
authorToke Høiland-Jørgensen <toke@redhat.com>
Tue, 20 Oct 2020 21:25:56 +0000 (23:25 +0200)
committerDaniel Borkmann <daniel@iogearbox.net>
Wed, 21 Oct 2020 23:28:54 +0000 (01:28 +0200)
commitba452c9e996d8a4c347b32805f91abb70de5de7e
tree7cc639674290dda9b607ed44dc572b30f55502a7
parentc5eb48e89286510d638844104a6f6582a4838a32
bpf: Fix bpf_redirect_neigh helper api to support supplying nexthop

Based on the discussion in [0], update the bpf_redirect_neigh() helper to
accept an optional parameter specifying the nexthop information. This makes
it possible to combine bpf_fib_lookup() and bpf_redirect_neigh() without
incurring a duplicate FIB lookup - since the FIB lookup helper will return
the nexthop information even if no neighbour is present, this can simply
be passed on to bpf_redirect_neigh() if bpf_fib_lookup() returns
BPF_FIB_LKUP_RET_NO_NEIGH. Thus fix & extend it before helper API is frozen.

  [0] https://lore.kernel.org/bpf/393e17fc-d187-3a8d-2f0d-a627c7c63fca@iogearbox.net/

Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Reviewed-by: David Ahern <dsahern@kernel.org>
Link: https://lore.kernel.org/bpf/160322915615.32199.1187570224032024535.stgit@toke.dk
include/linux/filter.h
include/uapi/linux/bpf.h
net/core/filter.c
scripts/bpf_helpers_doc.py
tools/include/uapi/linux/bpf.h