linux-stable/net/core
Jakub Sitnicki 9fed9000c5 bpf: Allow selecting reuseport socket from a SOCKMAP/SOCKHASH
SOCKMAP & SOCKHASH now support storing references to listening
sockets. Nothing keeps us from using these map types a collection of
sockets to select from in BPF reuseport programs. Whitelist the map types
with the bpf_sk_select_reuseport helper.

The restriction that the socket has to be a member of a reuseport group
still applies. Sockets in SOCKMAP/SOCKHASH that don't have sk_reuseport_cb
set are not a valid target and we signal it with -EINVAL.

The main benefit from this change is that, in contrast to
REUSEPORT_SOCKARRAY, SOCK{MAP,HASH} don't impose a restriction that a
listening socket can be just one BPF map at the same time.

Signed-off-by: Jakub Sitnicki <jakub@cloudflare.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20200218171023.844439-9-jakub@cloudflare.com
2020-02-21 22:29:45 +01:00
..
Makefile
bpf_sk_storage.c bpf: Improve bucket_log calculation logic 2020-02-07 23:01:41 +01:00
datagram.c
datagram.h
dev.c core: Don't skip generic XDP program execution for cloned SKBs 2020-02-11 17:01:29 -08:00
dev_addr_lists.c
dev_ioctl.c
devlink.c devlink: report 0 after hitting end in region read 2020-02-05 14:23:20 +01:00
drop_monitor.c drop_monitor: Do not cancel uninitialized work item 2020-02-07 18:48:36 +01:00
dst.c
dst_cache.c
failover.c
fib_notifier.c
fib_rules.c
filter.c bpf: Allow selecting reuseport socket from a SOCKMAP/SOCKHASH 2020-02-21 22:29:45 +01:00
flow_dissector.c flow_dissector: Fix to use new variables for port ranges in bpf hook 2020-01-27 11:25:07 +01:00
flow_offload.c
gen_estimator.c
gen_stats.c
gro_cells.c
hwbm.c
link_watch.c
lwt_bpf.c
lwtunnel.c
neighbour.c neigh_stat_seq_next() should increase position index 2020-01-24 11:42:18 +01:00
net-procfs.c
net-sysfs.c
net-sysfs.h
net-traces.c
net_namespace.c netns: Constify exported functions 2020-01-17 13:25:24 +01:00
netclassid_cgroup.c
netevent.c
netpoll.c
netprio_cgroup.c
page_pool.c page_pool: refill page when alloc.count of pool is zero 2020-02-13 14:11:51 -08:00
pktgen.c proc: convert everything to "struct proc_ops" 2020-02-04 03:05:26 +00:00
ptp_classifier.c
request_sock.c
rtnetlink.c net: bridge: teach ndo_dflt_bridge_getlink() more brport flags 2020-02-17 14:36:40 -08:00
scm.c
secure_seq.c
skbuff.c net: Support GRO/GSO fraglist chaining. 2020-01-27 11:00:21 +01:00
skmsg.c net, sk_msg: Clear sk_user_data pointer on clone if tagged 2020-02-21 22:29:45 +01:00
sock.c net, sk_msg: Clear sk_user_data pointer on clone if tagged 2020-02-21 22:29:45 +01:00
sock_diag.c
sock_map.c bpf, sockmap: Let all kernel-land lookup values in SOCKMAP/SOCKHASH 2020-02-21 22:29:45 +01:00
sock_reuseport.c soreuseport: Cleanup duplicate initialization of more_reuse->max_socks. 2020-01-27 11:01:16 +01:00
stream.c
sysctl_net_core.c
timestamping.c
tso.c
utils.c net: Fix skb->csum update in inet_proto_csum_replace16(). 2020-01-24 20:54:30 +01:00
xdp.c