Hi David, The following pull-request contains BPF updates for your *net-next* tree.
The main changes are: 1) Björn Töpel cleans up AF_XDP (removes rebind, explicit cache alignment from uapi, etc). 2) David Ahern adds mtu checks to bpf_ipv{4,6}_fib_lookup() helpers. 3) Jesper Dangaard Brouer adds bulking support to ndo_xdp_xmit. 4) Jiong Wang adds support for indirect and arithmetic shifts to NFP 5) Martin KaFai Lau cleans up BTF uapi and makes the btf_header extensible. 6) Mathieu Xhonneux adds an End.BPF action to seg6local with BPF helpers allowing to edit/grow/shrink a SRH and apply on a packet generic SRv6 actions. 7) Sandipan Das adds support for bpf2bpf function calls in ppc64 JIT. 8) Yonghong Song adds BPF_TASK_FD_QUERY command for introspection of tracing events. 9) other misc fixes from Gustavo A. R. Silva, Sirio Balmelli, John Fastabend, and Magnus Karlsson 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 b9f672af148bf7a08a6031743156faffd58dbc7e: Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next (2018-05-16 22:47:11 -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 10f678683e4026e43524b0492068a371d00fdeed: Merge branch 'xdp_xmit-bulking' (2018-05-24 18:36:16 -0700) ---------------------------------------------------------------- Alexei Starovoitov (2): Merge branch 'bpf-task-fd-query' Merge branch 'xdp_xmit-bulking' Björn Töpel (11): xsk: clean up SPDX headers xsk: remove newline at end of file xsk: fixed some cases of unnecessary parentheses xsk: proper '=' alignment xsk: remove rebind support xsk: fill hole in struct sockaddr_xdp xsk: remove explicit ring structure from uapi samples/bpf: adapt xdpsock to the new uapi xsk: add missing write- and data-dependency barrier xsk: simplified umem setup xsk: convert atomic_t to refcount_t Daniel Borkmann (8): Merge branch 'bpf-af-xdp-cleanups' Merge branch 'bpf-nfp-shift-insns' Merge branch 'bpf-sk-msg-fields' Merge branch 'bpf-af-xdp-cleanups' Merge branch 'bpf-fib-mtu-check' Merge branch 'btf-uapi-cleanups' Merge branch 'bpf-multi-prog-improvements' Merge branch 'bpf-ipv6-seg6-bpf-action' David Ahern (3): net/ipv4: Add helper to return path MTU based on fib result net/ipv6: Add helper to return path MTU based on fib result bpf: Add mtu checking to FIB forwarding helper Gustavo A. R. Silva (2): bpf: sockmap, fix uninitialized variable bpf: sockmap, fix double-free Jesper Dangaard Brouer (8): bpf: devmap introduce dev_map_enqueue bpf: devmap prepare xdp frames for bulking xdp: add tracepoint for devmap like cpumap have samples/bpf: xdp_monitor use tracepoint xdp:xdp_devmap_xmit xdp: introduce xdp_return_frame_rx_napi xdp: change ndo_xdp_xmit API to support bulking xdp/trace: extend tracepoint in devmap with an err samples/bpf: xdp_monitor use err code from tracepoint xdp:xdp_devmap_xmit Jiong Wang (3): nfp: bpf: support logic indirect shifts (BPF_[L|R]SH | BPF_X) nfp: bpf: support arithmetic right shift by constant (BPF_ARSH | BPF_K) nfp: bpf: support arithmetic indirect right shift (BPF_ARSH | BPF_X) John Fastabend (2): bpf: allow sk_msg programs to read sock fields bpf: add sk_msg prog sk access tests to test_verifier Magnus Karlsson (1): xsk: proper queue id check at bind Martin KaFai Lau (8): bpf: Expose check_uarg_tail_zero() bpf: btf: Change how section is supported in btf_header bpf: btf: Check array->index_type bpf: btf: Remove unused bits from uapi/linux/btf.h bpf: btf: Rename btf_key_id and btf_value_id in bpf_map_info bpf: btf: Sync bpf.h and btf.h to tools bpf: btf: Add tests for the btf uapi changes bpf: btf: Avoid variable length array Mathieu Xhonneux (6): ipv6: sr: make seg6.h includable without IPv6 ipv6: sr: export function lookup_nexthop bpf: Add IPv6 Segment Routing helpers bpf: Split lwt inout verifier structures ipv6: sr: Add seg6local action End.BPF selftests/bpf: test for seg6local End.BPF action Quentin Monnet (1): bpf: change eBPF helper doc parsing script to allow for smaller indent Sandipan Das (10): bpf: support 64-bit offsets for bpf function calls bpf: powerpc64: pad function address loads with NOPs bpf: powerpc64: add JIT support for multi-function programs bpf: get kernel symbol addresses via syscall tools: bpf: sync bpf uapi header tools: bpftool: resolve calls without using imm field bpf: fix multi-function JITed dump obtained via syscall bpf: get JITed image lengths of functions via syscall tools: bpf: sync bpf uapi header tools: bpftool: add delimiters to multi-function JITed dumps Sirio Balmelli (2): selftests/bpf: Makefile fix "missing" headers on build with -idirafter tools/lib/libbpf.c: fix string format to allow build on arm32 Yonghong Song (7): perf/core: add perf_get_event() to return perf_event given a struct file bpf: introduce bpf subcommand BPF_TASK_FD_QUERY tools/bpf: sync kernel header bpf.h and add bpf_task_fd_query in libbpf tools/bpf: add ksym_get_addr() in trace_helpers samples/bpf: add a samples/bpf test for BPF_TASK_FD_QUERY tools/bpf: add two BPF_TASK_FD_QUERY tests in test_progs tools/bpftool: add perf subcommand arch/powerpc/net/bpf_jit_comp64.c | 110 ++++- drivers/net/ethernet/intel/i40e/i40e_txrx.c | 26 +- drivers/net/ethernet/intel/i40e/i40e_txrx.h | 2 +- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 21 +- drivers/net/ethernet/netronome/nfp/bpf/jit.c | 410 ++++++++++++++-- drivers/net/ethernet/netronome/nfp/bpf/main.h | 28 ++ drivers/net/ethernet/netronome/nfp/bpf/offload.c | 2 + drivers/net/ethernet/netronome/nfp/bpf/verifier.c | 8 + drivers/net/ethernet/netronome/nfp/nfp_asm.h | 18 +- drivers/net/tun.c | 37 +- drivers/net/virtio_net.c | 66 ++- include/linux/bpf.h | 24 +- include/linux/bpf_types.h | 5 +- include/linux/filter.h | 1 + include/linux/netdevice.h | 14 +- include/linux/perf_event.h | 5 + include/linux/trace_events.h | 17 + include/net/addrconf.h | 2 + include/net/ip6_fib.h | 6 + include/net/ip6_route.h | 3 + include/net/ip_fib.h | 2 + include/net/page_pool.h | 5 +- include/net/seg6.h | 7 +- include/net/seg6_local.h | 32 ++ include/net/xdp.h | 1 + include/net/xdp_sock.h | 13 +- include/trace/events/xdp.h | 50 +- include/uapi/linux/bpf.h | 143 +++++- include/uapi/linux/btf.h | 37 +- include/uapi/linux/if_xdp.h | 59 +-- include/uapi/linux/seg6_local.h | 12 + kernel/bpf/arraymap.c | 2 +- kernel/bpf/btf.c | 334 +++++++++---- kernel/bpf/cpumap.c | 2 +- kernel/bpf/devmap.c | 131 ++++- kernel/bpf/sockmap.c | 4 +- kernel/bpf/syscall.c | 245 ++++++++- kernel/bpf/verifier.c | 23 +- kernel/bpf/xskmap.c | 9 - kernel/events/core.c | 8 + kernel/trace/bpf_trace.c | 48 ++ kernel/trace/trace_kprobe.c | 29 ++ kernel/trace/trace_uprobe.c | 22 + net/core/filter.c | 572 +++++++++++++++++++--- net/core/xdp.c | 20 +- net/ipv4/route.c | 31 ++ net/ipv6/Kconfig | 5 + net/ipv6/addrconf_core.c | 8 + net/ipv6/af_inet6.c | 1 + net/ipv6/route.c | 48 ++ net/ipv6/seg6_local.c | 190 ++++++- net/xdp/Makefile | 1 - net/xdp/xdp_umem.c | 96 ++-- net/xdp/xdp_umem.h | 18 +- net/xdp/xdp_umem_props.h | 13 +- net/xdp/xsk.c | 150 +++--- net/xdp/xsk_queue.c | 12 +- net/xdp/xsk_queue.h | 34 +- samples/bpf/Makefile | 4 + samples/bpf/task_fd_query_kern.c | 19 + samples/bpf/task_fd_query_user.c | 382 +++++++++++++++ samples/bpf/xdp_monitor_kern.c | 49 ++ samples/bpf/xdp_monitor_user.c | 69 ++- samples/bpf/xdpsock_user.c | 135 ++--- scripts/bpf_helpers_doc.py | 8 +- tools/bpf/bpftool/Documentation/bpftool-perf.rst | 81 +++ tools/bpf/bpftool/Documentation/bpftool.rst | 5 +- tools/bpf/bpftool/bash-completion/bpftool | 9 + tools/bpf/bpftool/main.c | 3 +- tools/bpf/bpftool/main.h | 1 + tools/bpf/bpftool/perf.c | 246 ++++++++++ tools/bpf/bpftool/prog.c | 97 +++- tools/bpf/bpftool/xlated_dumper.c | 14 +- tools/bpf/bpftool/xlated_dumper.h | 3 + tools/include/uapi/linux/bpf.h | 143 +++++- tools/include/uapi/linux/btf.h | 37 +- tools/lib/bpf/bpf.c | 27 +- tools/lib/bpf/bpf.h | 7 +- tools/lib/bpf/btf.c | 5 +- tools/lib/bpf/libbpf.c | 43 +- tools/lib/bpf/libbpf.h | 4 +- tools/testing/selftests/bpf/Makefile | 16 +- tools/testing/selftests/bpf/bpf_helpers.h | 12 + tools/testing/selftests/bpf/test_btf.c | 521 ++++++++++++++++---- tools/testing/selftests/bpf/test_lwt_seg6local.c | 437 +++++++++++++++++ tools/testing/selftests/bpf/test_lwt_seg6local.sh | 140 ++++++ tools/testing/selftests/bpf/test_progs.c | 158 ++++++ tools/testing/selftests/bpf/test_verifier.c | 115 +++++ tools/testing/selftests/bpf/trace_helpers.c | 12 + tools/testing/selftests/bpf/trace_helpers.h | 1 + 90 files changed, 5213 insertions(+), 812 deletions(-) create mode 100644 include/net/seg6_local.h create mode 100644 samples/bpf/task_fd_query_kern.c create mode 100644 samples/bpf/task_fd_query_user.c create mode 100644 tools/bpf/bpftool/Documentation/bpftool-perf.rst create mode 100644 tools/bpf/bpftool/perf.c create mode 100644 tools/testing/selftests/bpf/test_lwt_seg6local.c create mode 100755 tools/testing/selftests/bpf/test_lwt_seg6local.sh