linux/include/uapi
Joe Stringer 6acc9b432e bpf: Add helper to retrieve socket in BPF
This patch adds new BPF helper functions, bpf_sk_lookup_tcp() and
bpf_sk_lookup_udp() which allows BPF programs to find out if there is a
socket listening on this host, and returns a socket pointer which the
BPF program can then access to determine, for instance, whether to
forward or drop traffic. bpf_sk_lookup_xxx() may take a reference on the
socket, so when a BPF program makes use of this function, it must
subsequently pass the returned pointer into the newly added sk_release()
to return the reference.

By way of example, the following pseudocode would filter inbound
connections at XDP if there is no corresponding service listening for
the traffic:

  struct bpf_sock_tuple tuple;
  struct bpf_sock_ops *sk;

  populate_tuple(ctx, &tuple); // Extract the 5tuple from the packet
  sk = bpf_sk_lookup_tcp(ctx, &tuple, sizeof tuple, netns, 0);
  if (!sk) {
    // Couldn't find a socket listening for this traffic. Drop.
    return TC_ACT_SHOT;
  }
  bpf_sk_release(sk, 0);
  return TC_ACT_OK;

Signed-off-by: Joe Stringer <joe@wand.net.nz>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
2018-10-03 02:53:47 +02:00
..
asm-generic Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2018-08-15 15:04:25 -07:00
drm drm: add msm compressed format modifiers 2018-07-26 10:39:21 -04:00
linux bpf: Add helper to retrieve socket in BPF 2018-10-03 02:53:47 +02:00
misc ocxl: Add an IOCTL so userspace knows what OCXL features are available 2018-06-03 20:40:32 +10:00
mtd ubi: expose the volume CRC check skip flag 2018-08-15 00:25:21 +02:00
rdma qedr: Add user space support for SRQ 2018-08-14 16:31:54 -06:00
scsi
sound ASoC: uapi: fix sound/skl-tplg-interface.h userspace compilation errors 2018-08-14 15:08:07 +01:00
video
xen xen/gntdev: Add initial support for dma-buf UAPI 2018-07-26 23:05:14 -04:00