mirror_ubuntu-kernels/tools/include/uapi/linux
Andrey Ignatov e50b0a6f08 selftests/bpf: Selftest for sys_bind hooks
Add selftest to work with bpf_sock_addr context from
`BPF_PROG_TYPE_CGROUP_SOCK_ADDR` programs.

Try to bind(2) on IP:port and apply:
* loads to make sure context can be read correctly, including narrow
  loads (byte, half) for IP and full-size loads (word) for all fields;
* stores to those fields allowed by verifier.

All combination from IPv4/IPv6 and TCP/UDP are tested.

Both scenarios are tested:
* valid programs can be loaded and attached;
* invalid programs can be neither loaded nor attached.

Test passes when expected data can be read from context in the
BPF-program, and after the call to bind(2) socket is bound to IP:port
pair that was written by BPF-program to the context.

Example:
  # ./test_sock_addr
  Attached bind4 program.
  Test case #1 (IPv4/TCP):
          Requested: bind(192.168.1.254, 4040) ..
             Actual: bind(127.0.0.1, 4444)
  Test case #2 (IPv4/UDP):
          Requested: bind(192.168.1.254, 4040) ..
             Actual: bind(127.0.0.1, 4444)
  Attached bind6 program.
  Test case #3 (IPv6/TCP):
          Requested: bind(face:b00c:1234:5678::abcd, 6060) ..
             Actual: bind(::1, 6666)
  Test case #4 (IPv6/UDP):
          Requested: bind(face:b00c:1234:5678::abcd, 6060) ..
             Actual: bind(::1, 6666)
  ### SUCCESS

Signed-off-by: Andrey Ignatov <rdna@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
2018-03-31 02:15:30 +02:00
..
bpf_common.h bpf: Sync kernel ABI header with tooling header for bpf_common.h 2018-02-09 00:24:38 +01:00
bpf_perf_event.h selftests/bpf: sync kernel headers and introduce arch support in Makefile 2017-12-05 15:02:41 +01:00
bpf.h selftests/bpf: Selftest for sys_bind hooks 2018-03-31 02:15:30 +02:00
fcntl.h tools/headers: Synchronize kernel ABI headers 2017-11-04 09:27:46 +01:00
hw_breakpoint.h tools/headers: Synchronize kernel ABI headers 2017-11-04 09:27:46 +01:00
if_link.h tools/headers: Synchronize kernel ABI headers, v4.16-rc1 2018-02-15 10:01:46 -03:00
kcmp.h tools headers: Synchronize kernel ABI headers wrt SPDX tags 2017-11-28 14:29:20 -03:00
kvm.h tools headers: Sync copy of kvm UAPI headers 2018-03-05 11:56:40 -03:00
mman.h tools/headers: Synchronize kernel ABI headers 2017-11-04 09:27:46 +01:00
netlink.h tools: add netlink.h and if_link.h in tools uapi 2018-02-02 17:53:47 -08:00
perf_event.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2018-01-31 14:31:10 -08:00
prctl.h tools headers: Synchronize prctl.h ABI header 2017-11-28 14:31:30 -03:00
sched.h tools headers: Synchronize uapi/linux/sched.h 2018-02-02 17:17:13 -03:00
stat.h tools/headers: Synchronize kernel ABI headers 2017-11-04 09:27:46 +01:00
vhost.h tools/headers: Synchronize kernel ABI headers 2017-11-04 09:27:46 +01:00