OSDN Git Service

bpf: sockmap redirect ingress support
authorJohn Fastabend <john.fastabend@gmail.com>
Wed, 28 Mar 2018 19:49:15 +0000 (12:49 -0700)
committerDaniel Borkmann <daniel@iogearbox.net>
Thu, 29 Mar 2018 22:09:43 +0000 (00:09 +0200)
commit8934ce2fd08171e8605f7fada91ee7619fe17ab8
tree9a75574aadb3cfad15d09bffa0fe9eb6cbd9a03d
parent22527437e0a0c96ee3153e9d0382942b0fd4f9dd
bpf: sockmap redirect ingress support

Add support for the BPF_F_INGRESS flag in sk_msg redirect helper.
To do this add a scatterlist ring for receiving socks to check
before calling into regular recvmsg call path. Additionally, because
the poll wakeup logic only checked the skb recv queue we need to
add a hook in TCP stack (similar to write side) so that we have
a way to wake up polling socks when a scatterlist is redirected
to that sock.

After this all that is needed is for the redirect helper to
push the scatterlist into the psock receive queue.

Signed-off-by: John Fastabend <john.fastabend@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
include/linux/filter.h
include/net/sock.h
kernel/bpf/sockmap.c
net/core/filter.c
net/ipv4/tcp.c