Hi David, The following pull-request contains BPF updates for your *net-next* tree.
The main changes are: 1) Convert BPF sockmap and kTLS to both use a new sk_msg API and enable sk_msg BPF integration for the latter, from Daniel and John. 2) Enable BPF syscall side to indicate for maps that they do not support a map lookup operation as opposed to just missing key, from Prashant. 3) Add bpftool map create command which after map creation pins the map into bpf fs for further processing, from Jakub. 4) Add bpftool support for attaching programs to maps allowing sock_map and sock_hash to be used from bpftool, from John. 5) Improve syscall BPF map update/delete path for map-in-map types to wait a RCU grace period for pending references to complete, from Daniel. 6) Couple of follow-up fixes for the BPF socket lookup to get it enabled also when IPv6 is compiled as a module, from Joe. 7) Fix a generic-XDP bug to handle the case when the Ethernet header was mangled and thus update skb's protocol and data, from Jesper. 8) Add a missing BTF header length check between header copies from user space, from Wenwen. 9) Minor fixups in libbpf to use __u32 instead u32 types and include proper perf_event.h uapi header instead of perf internal one, from Yonghong. 10) Allow to pass user-defined flags through EXTRA_CFLAGS and EXTRA_LDFLAGS to bpftool's build, from Jiri. 11) BPF kselftest tweaks to add LWTUNNEL to config fragment and to install with_addr.sh script from flow dissector selftest, from Anders. 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 071a234ad744ab9a1e9c948874d5f646a2964734: Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next (2018-10-08 23:42:44 -0700) 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 0b592b5a01bef5416472ec610d3191e019c144a5: tools: bpftool: add map create command (2018-10-15 16:39:21 -0700) ---------------------------------------------------------------- Alexei Starovoitov (5): Merge branch 'unsupported-map-lookup' Merge branch 'xdp-vlan' Merge branch 'sockmap_and_ktls' Merge branch 'ipv6_sk_lookup_fixes' Merge branch 'bpftool_sockmap' Anders Roxell (2): selftests: bpf: add config fragment LWTUNNEL selftests: bpf: install script with_addr.sh Daniel Borkmann (5): tcp, ulp: enforce sock_owned_by_me upon ulp init and cleanup tcp, ulp: remove ulp bits from sockmap bpf, sockmap: convert to generic sk_msg interface tls: convert to generic sk_msg interface bpf, doc: add maintainers entry to related files Daniel Colascione (1): bpf: wait for running BPF programs when updating map-in-map Jakub Kicinski (1): tools: bpftool: add map create command Jesper Dangaard Brouer (3): net: fix generic XDP to handle if eth header was mangled bpf: make TC vlan bpf_helpers avail to selftests selftests/bpf: add XDP selftests for modifying and popping VLAN headers Jiri Olsa (2): bpftool: Allow to add compiler flags via EXTRA_CFLAGS variable bpftool: Allow add linker flags via EXTRA_LDFLAGS variable Joe Stringer (3): bpf: Fix dev pointer dereference from sk_skb bpf: Allow sk_lookup with IPv6 module bpf: Fix IPv6 dport byte-order in bpf_sk_lookup John Fastabend (5): tls: replace poll implementation with read hook tls: add bpf support to sk_msg handling bpf: add tls support for testing in test_sockmap bpf: bpftool, add support for attaching programs to maps bpf: bpftool, add flag to allow non-compat map definitions Prashant Bhole (6): bpf: error handling when map_lookup_elem isn't supported bpf: return EOPNOTSUPP when map lookup isn't supported tools/bpf: bpftool, split the function do_dump() tools/bpf: bpftool, print strerror when map lookup error occurs selftests/bpf: test_verifier, change names of fixup maps selftests/bpf: test_verifier, check bpf_map_lookup_elem access in bpf prog Wenwen Wang (1): bpf: btf: Fix a missing check bug Yonghong Song (1): tools/bpf: use proper type and uapi perf_event.h header for libbpf MAINTAINERS | 10 + include/linux/bpf.h | 33 +- include/linux/bpf_types.h | 2 +- include/linux/filter.h | 21 - include/linux/skmsg.h | 410 ++++ include/net/addrconf.h | 5 + include/net/sock.h | 4 - include/net/tcp.h | 28 +- include/net/tls.h | 24 +- kernel/bpf/Makefile | 5 - kernel/bpf/arraymap.c | 2 +- kernel/bpf/btf.c | 3 + kernel/bpf/core.c | 2 - kernel/bpf/sockmap.c | 2629 ---------------------- kernel/bpf/stackmap.c | 2 +- kernel/bpf/syscall.c | 28 +- kernel/bpf/xskmap.c | 2 +- net/Kconfig | 11 + net/core/Makefile | 2 + net/core/dev.c | 14 + net/core/filter.c | 290 +-- net/core/skmsg.c | 802 +++++++ net/core/sock.c | 61 - net/core/sock_map.c | 1002 +++++++++ net/ipv4/Makefile | 1 + net/ipv4/tcp_bpf.c | 655 ++++++ net/ipv4/tcp_ulp.c | 73 +- net/ipv6/af_inet6.c | 1 + net/strparser/Kconfig | 4 +- net/tls/Kconfig | 1 + net/tls/tls_device.c | 2 +- net/tls/tls_main.c | 11 +- net/tls/tls_sw.c | 900 +++++--- tools/bpf/bpftool/Documentation/bpftool-map.rst | 15 +- tools/bpf/bpftool/Documentation/bpftool-prog.rst | 11 + tools/bpf/bpftool/Documentation/bpftool.rst | 10 +- tools/bpf/bpftool/Makefile | 9 +- tools/bpf/bpftool/bash-completion/bpftool | 59 +- tools/bpf/bpftool/common.c | 21 + tools/bpf/bpftool/main.c | 7 +- tools/bpf/bpftool/main.h | 4 +- tools/bpf/bpftool/map.c | 212 +- tools/bpf/bpftool/prog.c | 101 +- tools/lib/bpf/Makefile | 2 +- tools/lib/bpf/bpf.h | 3 + tools/lib/bpf/libbpf.c | 35 +- tools/lib/bpf/libbpf.h | 2 + tools/testing/selftests/bpf/Makefile | 8 +- tools/testing/selftests/bpf/bpf_helpers.h | 4 + tools/testing/selftests/bpf/config | 1 + tools/testing/selftests/bpf/test_sockmap.c | 89 + tools/testing/selftests/bpf/test_verifier.c | 501 +++-- tools/testing/selftests/bpf/test_xdp_vlan.c | 292 +++ tools/testing/selftests/bpf/test_xdp_vlan.sh | 195 ++ 54 files changed, 4962 insertions(+), 3659 deletions(-) create mode 100644 include/linux/skmsg.h delete mode 100644 kernel/bpf/sockmap.c create mode 100644 net/core/skmsg.c create mode 100644 net/core/sock_map.c create mode 100644 net/ipv4/tcp_bpf.c create mode 100644 tools/testing/selftests/bpf/test_xdp_vlan.c create mode 100755 tools/testing/selftests/bpf/test_xdp_vlan.sh