lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ