bpf: Change bpf_fib_lookup to return lookup status
authorDavid Ahern <dsahern@gmail.com>
Tue, 26 Jun 2018 23:21:18 +0000 (16:21 -0700)
committerDaniel Borkmann <daniel@iogearbox.net>
Thu, 28 Jun 2018 22:02:02 +0000 (00:02 +0200)
commit4c79579b44b1876444f4d04de31c1a37098a0350
tree260a0a5f0d8139c99ac26e1941cace8f838dc5cc
parent3203c9010060806ff88c9989aeab4dc8d9a474dc
bpf: Change bpf_fib_lookup to return lookup status

For ACLs implemented using either FIB rules or FIB entries, the BPF
program needs the FIB lookup status to be able to drop the packet.
Since the bpf_fib_lookup API has not reached a released kernel yet,
change the return code to contain an encoding of the FIB lookup
result and return the nexthop device index in the params struct.

In addition, inform the BPF program of any post FIB lookup reason as
to why the packet needs to go up the stack.

The fib result for unicast routes must have an egress device, so remove
the check that it is non-NULL.

Signed-off-by: David Ahern <dsahern@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
include/uapi/linux/bpf.h
net/core/filter.c
samples/bpf/xdp_fwd_kern.c