Hi David, The following pull-request contains BPF updates for your *net-next* tree.
The main changes are: 1) Initial work on BPF Type Format (BTF) is added, which is a meta data format which describes the data types of BPF programs / maps. BTF has its roots from CTF (Compact C-Type format) with a number of changes to it. First use case is to provide a generic pretty print capability for BPF maps inspection, later work will also add BTF to bpftool. pahole support to convert dwarf to BTF will be upstreamed as well (https://github.com/iamkafai/pahole/tree/btf), from Martin. 2) Add a new xdp_bpf_adjust_tail() BPF helper for XDP that allows for changing the data_end pointer. Only shrinking is currently supported which helps for crafting ICMP control messages. Minor changes in drivers have been added where needed so they recalc the packet's length also when data_end was adjusted, from Nikita. 3) Improve bpftool to make it easier to feed hex bytes via cmdline for map operations, from Quentin. 4) Add support for various missing BPF prog types and attach types that have been added to kernel recently but neither to bpftool nor libbpf yet. Doc and bash completion updates have been added as well for bpftool, from Andrey. 5) Proper fix for avoiding to leak info stored in frame data on page reuse for the two bpf_xdp_adjust_{head,meta} helpers by disallowing to move the pointers into struct xdp_frame area, from Jesper. 6) Follow-up compile fix from BTF in order to include stdbool.h in libbpf, from Björn. 7) Few fixes in BPF sample code, that is, a typo on the netdevice in a comment and fixup proper dump of XDP action code in the tracepoint exception, from Wang and Jesper. Please consider pulling these changes from: git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git Thanks a lot! ---------------------------------------------------------------- The following changes since commit a2d481b326c98b6b67eea8a378c858d57ca5ff3d: ipv6: send netlink notifications for manually configured addresses (2018-04-17 14:03:56 -0400) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git for you to fetch changes up to 878a4d328104fed86ea321c48a5245eed44fbe14: libbpf: fixed build error for samples/bpf/ (2018-04-20 10:12:19 +0200) ---------------------------------------------------------------- Andrey Ignatov (3): bpftool: Support new prog types and attach types libbpf: Support guessing post_bind{4,6} progs libbpf: Type functions for raw tracepoints Björn Töpel (1): libbpf: fixed build error for samples/bpf/ Daniel Borkmann (3): Merge branch 'bpf-libbpf-add-types' Merge branch 'bpf-xdp-adjust-tail' Merge branch 'bpf-type-format' Jesper Dangaard Brouer (2): samples/bpf: fix xdp_monitor user output for tracepoint exception bpf: reserve xdp_frame size in xdp headroom Martin KaFai Lau (10): bpf: btf: Introduce BPF Type Format (BTF) bpf: btf: Validate type reference bpf: btf: Check members of struct/union bpf: btf: Add pretty print capability for data with BTF type info bpf: btf: Add BPF_BTF_LOAD command bpf: btf: Add BPF_OBJ_GET_INFO_BY_FD support to BTF fd bpf: btf: Add pretty print support to the basic arraymap bpf: btf: Sync bpf.h and btf.h to tools/ bpf: btf: Add BTF support to libbpf bpf: btf: Add BTF tests Nikita V. Shirokov (11): bpf: adding bpf_xdp_adjust_tail helper bpf: make generic xdp compatible w/ bpf_xdp_adjust_tail bpf: make mlx4 compatible w/ bpf_xdp_adjust_tail bpf: make bnxt compatible w/ bpf_xdp_adjust_tail bpf: make cavium thunder compatible w/ bpf_xdp_adjust_tail bpf: make netronome nfp compatible w/ bpf_xdp_adjust_tail bpf: make tun compatible w/ bpf_xdp_adjust_tail bpf: make virtio compatible w/ bpf_xdp_adjust_tail bpf: making bpf_prog_test run aware of possible data_end ptr change bpf: adding tests for bpf_xdp_adjust_tail bpf: add bpf_xdp_adjust_tail sample prog Quentin Monnet (1): tools: bpftool: make it easier to feed hex bytes to bpftool Wang Sheng-Hui (1): samples/bpf: correct comment in sock_example.c drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c | 2 +- drivers/net/ethernet/cavium/thunder/nicvf_main.c | 2 +- drivers/net/ethernet/mellanox/mlx4/en_rx.c | 2 +- .../net/ethernet/netronome/nfp/nfp_net_common.c | 2 +- drivers/net/tun.c | 3 +- drivers/net/virtio_net.c | 7 +- include/linux/bpf.h | 20 +- include/linux/btf.h | 48 + include/uapi/linux/bpf.h | 22 +- include/uapi/linux/btf.h | 130 ++ kernel/bpf/Makefile | 1 + kernel/bpf/arraymap.c | 50 + kernel/bpf/btf.c | 2064 ++++++++++++++++++++ kernel/bpf/inode.c | 156 +- kernel/bpf/syscall.c | 51 +- net/bpf/test_run.c | 3 +- net/core/dev.c | 10 +- net/core/filter.c | 41 +- samples/bpf/Makefile | 4 + samples/bpf/sock_example.c | 4 +- samples/bpf/xdp_adjust_tail_kern.c | 152 ++ samples/bpf/xdp_adjust_tail_user.c | 142 ++ samples/bpf/xdp_monitor_user.c | 2 +- tools/bpf/bpftool/Documentation/bpftool-cgroup.rst | 11 +- tools/bpf/bpftool/Documentation/bpftool-map.rst | 29 +- tools/bpf/bpftool/bash-completion/bpftool | 14 +- tools/bpf/bpftool/cgroup.c | 15 +- tools/bpf/bpftool/map.c | 17 +- tools/bpf/bpftool/prog.c | 3 + tools/include/uapi/linux/bpf.h | 22 +- tools/include/uapi/linux/btf.h | 130 ++ tools/lib/bpf/Build | 2 +- tools/lib/bpf/bpf.c | 92 +- tools/lib/bpf/bpf.h | 17 + tools/lib/bpf/btf.c | 374 ++++ tools/lib/bpf/btf.h | 22 + tools/lib/bpf/libbpf.c | 156 +- tools/lib/bpf/libbpf.h | 5 + tools/testing/selftests/bpf/Makefile | 26 +- tools/testing/selftests/bpf/bpf_helpers.h | 5 + tools/testing/selftests/bpf/test_adjust_tail.c | 30 + tools/testing/selftests/bpf/test_btf.c | 1669 ++++++++++++++++ tools/testing/selftests/bpf/test_btf_haskv.c | 48 + tools/testing/selftests/bpf/test_btf_nokv.c | 43 + tools/testing/selftests/bpf/test_progs.c | 32 + 45 files changed, 5591 insertions(+), 89 deletions(-) create mode 100644 include/linux/btf.h create mode 100644 include/uapi/linux/btf.h create mode 100644 kernel/bpf/btf.c create mode 100644 samples/bpf/xdp_adjust_tail_kern.c create mode 100644 samples/bpf/xdp_adjust_tail_user.c create mode 100644 tools/include/uapi/linux/btf.h create mode 100644 tools/lib/bpf/btf.c create mode 100644 tools/lib/bpf/btf.h create mode 100644 tools/testing/selftests/bpf/test_adjust_tail.c create mode 100644 tools/testing/selftests/bpf/test_btf.c create mode 100644 tools/testing/selftests/bpf/test_btf_haskv.c create mode 100644 tools/testing/selftests/bpf/test_btf_nokv.c