[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20181126132528.4969-1-daniel@iogearbox.net>
Date: Mon, 26 Nov 2018 14:25:28 +0100
From: Daniel Borkmann <daniel@...earbox.net>
To: davem@...emloft.net
Cc: daniel@...earbox.net, ast@...nel.org, netdev@...r.kernel.org
Subject: pull-request: bpf-next 2018-11-26
Hi David,
The following pull-request contains BPF updates for your *net-next* tree.
The main changes are:
1) Extend BTF to support function call types and improve the BPF
symbol handling with this info for kallsyms and bpftool program
dump to make debugging easier, from Martin and Yonghong.
2) Optimize LPM lookups by making longest_prefix_match() handle
multiple bytes at a time, from Eric.
3) Adds support for loading and attaching flow dissector BPF progs
from bpftool, from Stanislav.
4) Extend the sk_lookup() helper to be supported from XDP, from Nitin.
5) Enable verifier to support narrow context loads with offset > 0
to adapt to LLVM code generation (currently only offset of 0 was
supported). Add test cases as well, from Andrey.
6) Simplify passing device functions for offloaded BPF progs by
adding callbacks to bpf_prog_offload_ops instead of ndo_bpf.
Also convert nfp and netdevsim to make use of them, from Quentin.
7) Add support for sock_ops based BPF programs to send events to
the perf ring-buffer through perf_event_output helper, from
Sowmini and Daniel.
8) Add read / write support for skb->tstamp from tc BPF and cg BPF
programs to allow for supporting rate-limiting in EDT qdiscs
like fq from BPF side, from Vlad.
9) Extend libbpf API to support map in map types and add test cases
for it as well to BPF kselftests, from Nikita.
10) Account the maximum packet offset accessed by a BPF program in
the verifier and use it for optimizing nfp JIT, from Jiong.
11) Fix error handling regarding kprobe_events in BPF sample loader,
from Daniel T.
12) Add support for queue and stack map type in bpftool, from David.
Please consider pulling these changes from:
git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git
Note, there is a tiny merge conflict in BPF's kselftest Makefile.
Resolution is to take both chunks, like:
[...]
test_sk_lookup_kern.o test_xdp_vlan.o test_queue_map.o test_stack_map.o \
xdp_dummy.o test_map_in_map.o
Thanks a lot!
----------------------------------------------------------------
The following changes since commit f601a85bd7883708f48911d8c88e69fe5bde2b4d:
net: hns3: Remove set but not used variable 'reset_level' (2018-11-07 11:46:37 -0800)
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 ffac28f95a98a87db0850801cd98771a08bb1dec:
bpf: align map type names formatting. (2018-11-26 01:31:16 +0100)
----------------------------------------------------------------
Alexei Starovoitov (5):
Merge branch 'device-ops-as-cb'
Merge branch 'bpftool-flow-dissector'
Merge branch 'narrow-loads'
Merge branch 'socket-lookup-cg_sock'
Merge branch 'btf-func-info'
Andrey Ignatov (6):
bpf: Allow narrow loads with offset > 0
selftests/bpf: Test narrow loads with off > 0 in test_verifier
selftests/bpf: Test narrow loads with off > 0 for bpf_sock_addr
bpf: Fix IPv6 dport byte order in bpf_sk_lookup_udp
bpf: Support socket lookup in CGROUP_SOCK_ADDR progs
selftest/bpf: Use bpf_sk_lookup_{tcp, udp} in test_sock_addr
Colin Ian King (3):
bpf: fix null pointer dereference on pointer offload
tools/bpf: fix spelling mistake "memeory" -> "memory"
bpf: btf: fix spelling mistake "Memmber" -> "Member"
Daniel Borkmann (3):
Merge branch 'bpf-max-pkt-offset'
Merge branch 'bpf-zero-hash-seed'
Merge branch 'bpf-libbpf-mapinmap'
Daniel T. Lee (1):
samples: bpf: fix: error handling regarding kprobe_events
David Ahern (1):
bpftool: Improve handling of ENOENT on map dumps
David Calavera (2):
bpf: Add BPF_MAP_TYPE_QUEUE and BPF_MAP_TYPE_STACK to bpftool-map
bpf: align map type names formatting.
Eric Dumazet (1):
bpf, lpm: make longest_prefix_match() faster
Jiong Wang (2):
bpf: let verifier to calculate and record max_pkt_offset
nfp: bpf: relax prog rejection through max_pkt_offset
Joe Stringer (1):
selftests/bpf: Fix uninitialized duration warning
Lorenz Bauer (4):
bpf: allow zero-initializing hash map seed
bpf: move BPF_F_QUERY_EFFECTIVE after map flags
tools: sync linux/bpf.h
tools: add selftest for BPF_F_ZERO_SEED
Martin KaFai Lau (5):
bpf: libbpf: Fix bpf_program__next() API
bpf: btf: Break up btf_type_is_void()
bpf: btf: Add BTF_KIND_FUNC and BTF_KIND_FUNC_PROTO
tools/bpf: Sync kernel btf.h header
tools/bpf: Add tests for BTF_KIND_FUNC_PROTO and BTF_KIND_FUNC
Nathan Chancellor (1):
bpf: Remove unused variable in nsim_bpf
Nikita V. Shirokov (3):
bpf: adding support for map in map in libbpf
bpf: adding tests for map_in_map helpber in libbpf
libbpf: make bpf_object__open default to UNSPEC
Nitin Hande (1):
bpf: Extend the sk_lookup() helper to XDP hookpoint.
Quentin Monnet (11):
selftests/bpf: enable (uncomment) all tests in test_libbpf.sh
tools: bpftool: adjust rlimit RLIMIT_MEMLOCK when loading programs, maps
nfp: bpf: move nfp_bpf_analyzer_ops from verifier.c to offload.c
bpf: pass a struct with offload callbacks to bpf_offload_dev_create()
bpf: call verify_insn from its callback in struct bpf_offload_dev
bpf: call finalize() from its callback in struct bpf_offload_dev
bpf: call verifier_prep from its callback in struct bpf_offload_dev
bpf: pass translate() as a callback and remove its ndo_bpf subcommand
bpf: pass destroy() as a callback and remove its ndo_bpf subcommand
bpf: pass prog instead of env to bpf_prog_offload_verifier_prep()
bpf: do not pass netdev to translate() and prepare() offload callbacks
Rustam Kovhaev (1):
bpf, tags: Fix DEFINE_PER_CPU expansion
Shannon Nelson (1):
bpf_load: add map name to load_maps error message
Sowmini Varadhan (2):
bpf: add perf event notificaton support for sock_ops
selftests/bpf: add a test case for sock_ops perf-event notification
Stanislav Fomichev (13):
selftests/bpf: rename flow dissector section to flow_dissector
libbpf: cleanup after partial failure in bpf_object__pin
libbpf: bpf_program__pin: add special case for instances.nr == 1
libbpf: add internal pin_name
bpftool: add loadall command
bpftool: add pinmaps argument to the load/loadall
bpftool: support loading flow dissector
bpftool: make libbfd optional
bpf: libbpf: retry map creation without the name
libbpf: make sure bpf headers are c++ include-able
bpf, libbpf: introduce bpf_object__probe_caps to test BPF capabilities
bpf: libbpf: remove map name retry from bpf_create_map_xattr
bpf: libbpf: don't specify prog name if kernel doesn't support it
Vlad Dumitrescu (1):
bpf: add skb->tstamp r/w access from tc clsact and cg skb progs
Yonghong Song (11):
bpf: Introduce bpf_func_info
tools/bpf: sync kernel uapi bpf.h header to tools directory
tools/bpf: add new fields for program load in lib/bpf
tools/bpf: extends test_btf to test load/retrieve func_type info
tools/bpf: add support to read .BTF.ext sections
tools/bpf: do not use pahole if clang/llvm can generate BTF sections
tools/bpf: refactor to implement btf_get_from_id() in lib/bpf
tools/bpf: enhance test_btf file testing to test func info
tools/bpf: bpftool: add support for func types
bpf: fix a compilation error when CONFIG_BPF_SYSCALL is not defined
bpf: fix a libbpf loader issue
drivers/net/ethernet/netronome/nfp/bpf/main.c | 2 +-
drivers/net/ethernet/netronome/nfp/bpf/main.h | 6 +-
drivers/net/ethernet/netronome/nfp/bpf/offload.c | 43 +-
drivers/net/ethernet/netronome/nfp/bpf/verifier.c | 11 +-
drivers/net/netdevsim/bpf.c | 52 +-
include/linux/bpf.h | 14 +-
include/linux/bpf_verifier.h | 3 +-
include/linux/btf.h | 16 +
include/linux/filter.h | 16 +-
include/linux/netdevice.h | 12 -
include/uapi/linux/bpf.h | 27 +-
include/uapi/linux/btf.h | 18 +-
kernel/bpf/btf.c | 422 ++++++++--
kernel/bpf/core.c | 13 +
kernel/bpf/hashtab.c | 13 +-
kernel/bpf/local_storage.c | 3 +-
kernel/bpf/lpm_trie.c | 59 +-
kernel/bpf/offload.c | 76 +-
kernel/bpf/syscall.c | 59 +-
kernel/bpf/verifier.c | 155 +++-
net/core/filter.c | 206 ++++-
samples/bpf/Makefile | 8 +
samples/bpf/bpf_load.c | 37 +-
tools/bpf/bpftool/Documentation/bpftool-map.rst | 3 +-
tools/bpf/bpftool/Documentation/bpftool-prog.rst | 42 +-
tools/bpf/bpftool/Makefile | 13 +-
tools/bpf/bpftool/bash-completion/bpftool | 21 +-
tools/bpf/bpftool/btf_dumper.c | 136 +++
tools/bpf/bpftool/common.c | 39 +-
tools/bpf/bpftool/jit_disasm.c | 8 +-
tools/bpf/bpftool/main.c | 3 -
tools/bpf/bpftool/main.h | 19 +
tools/bpf/bpftool/map.c | 132 +--
tools/bpf/bpftool/prog.c | 244 ++++--
tools/bpf/bpftool/xlated_dumper.c | 33 +
tools/bpf/bpftool/xlated_dumper.h | 3 +
tools/include/uapi/linux/bpf.h | 27 +-
tools/include/uapi/linux/btf.h | 18 +-
tools/lib/bpf/Makefile | 15 +-
tools/lib/bpf/bpf.c | 50 +-
tools/lib/bpf/bpf.h | 13 +
tools/lib/bpf/btf.c | 347 ++++++++
tools/lib/bpf/btf.h | 59 ++
tools/lib/bpf/libbpf.c | 555 +++++++++++--
tools/lib/bpf/libbpf.h | 29 +
tools/lib/bpf/test_libbpf.cpp | 18 +
tools/testing/selftests/bpf/Makefile | 25 +-
tools/testing/selftests/bpf/bpf_flow.c | 2 +-
tools/testing/selftests/bpf/connect4_prog.c | 43 +-
tools/testing/selftests/bpf/connect6_prog.c | 56 +-
tools/testing/selftests/bpf/test_btf.c | 923 ++++++++++++++++++++-
tools/testing/selftests/bpf/test_btf_haskv.c | 16 +-
tools/testing/selftests/bpf/test_btf_nokv.c | 16 +-
tools/testing/selftests/bpf/test_flow_dissector.sh | 2 +-
tools/testing/selftests/bpf/test_libbpf.sh | 14 +-
tools/testing/selftests/bpf/test_map_in_map.c | 49 ++
tools/testing/selftests/bpf/test_maps.c | 154 +++-
tools/testing/selftests/bpf/test_progs.c | 2 +-
tools/testing/selftests/bpf/test_sock_addr.c | 28 +-
tools/testing/selftests/bpf/test_tcpnotify.h | 19 +
tools/testing/selftests/bpf/test_tcpnotify_kern.c | 95 +++
tools/testing/selftests/bpf/test_tcpnotify_user.c | 186 +++++
tools/testing/selftests/bpf/test_verifier.c | 77 +-
63 files changed, 4209 insertions(+), 596 deletions(-)
create mode 100644 tools/lib/bpf/test_libbpf.cpp
create mode 100644 tools/testing/selftests/bpf/test_map_in_map.c
create mode 100644 tools/testing/selftests/bpf/test_tcpnotify.h
create mode 100644 tools/testing/selftests/bpf/test_tcpnotify_kern.c
create mode 100644 tools/testing/selftests/bpf/test_tcpnotify_user.c
Powered by blists - more mailing lists