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: <20190304111919.28550-1-daniel@iogearbox.net>
Date:   Mon,  4 Mar 2019 12:19:19 +0100
From:   Daniel Borkmann <daniel@...earbox.net>
To:     davem@...emloft.net
Cc:     daniel@...earbox.net, ast@...nel.org, netdev@...r.kernel.org,
        bpf@...r.kernel.org
Subject: pull-request: bpf-next 2019-03-04

Hi David,

The following pull-request contains BPF updates for your *net-next* tree.

The main changes are:

1) Add AF_XDP support to libbpf. Rationale is to facilitate writing
   AF_XDP applications by offering higher-level APIs that hide many
   of the details of the AF_XDP uapi. Sample programs are converted
   over to this new interface as well, from Magnus.

2) Introduce a new cant_sleep() macro for annotation of functions
   that cannot sleep and use it in BPF_PROG_RUN() to assert that
   BPF programs run under preemption disabled context, from Peter.

3) Introduce per BPF prog stats in order to monitor the usage
   of BPF; this is controlled by kernel.bpf_stats_enabled sysctl
   knob where monitoring tools can make use of this to efficiently
   determine the average cost of programs, from Alexei.

4) Split up BPF selftest's test_progs similarly as we already
   did with test_verifier. This allows to further reduce merge
   conflicts in future and to get more structure into our
   quickly growing BPF selftest suite, from Stanislav.

5) Fix a bug in BTF's dedup algorithm which can cause an infinite
   loop in some circumstances; also various BPF doc fixes and
   improvements, from Andrii.

6) Various BPF sample cleanups and migration to libbpf in order
   to further isolate the old sample loader code (so we can get
   rid of it at some point), from Jakub.

7) Add a new BPF helper for BPF cgroup skb progs that allows
   to set ECN CE code point and a Host Bandwidth Manager (HBM)
   sample program for limiting the bandwidth used by v2 cgroups,
   from Lawrence.

8) Enable write access to skb->queue_mapping from tc BPF egress
   programs in order to let BPF pick TX queue, from Jesper.

9) Fix a bug in BPF spinlock handling for map-in-map which did
   not propagate spin_lock_off to the meta map, from Yonghong.

10) Fix a bug in the new per-CPU BPF prog counters to properly
    initialize stats for each CPU, from Eric.

11) Add various BPF helper prototypes to selftest's bpf_helpers.h,
    from Willem.

12) Fix various BPF samples bugs in XDP and tracing progs,
    from Toke, Daniel and Yonghong.

13) Silence preemption splat in test_bpf after BPF_PROG_RUN()
    enforces it now everywhere, from Anders.

14) Fix a signedness bug in libbpf's btf_dedup_ref_type() to
    get error handling working, from Dan.

15) Fix bpftool documentation and auto-completion with regards
    to stream_{verdict,parser} attach types, from Alban.

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 c9b747dbc2036c917b1067fbb78dc38b105c4454:

  bnx2x: Remove set but not used variable 'mfw_vn' (2019-02-18 16:47:32 -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 87dab7c3d54ce0f1ff6b54840bf7279d0944bc6a:

  bpf: add test cases for non-pointer sanitiation logic (2019-03-04 10:54:20 +0100)

----------------------------------------------------------------
Alban Crequy (1):
      bpf: bpftool, fix documentation for attach types

Alexei Starovoitov (9):
      seccomp, bpf: disable preemption before calling into bpf prog
      bpf: enable program stats
      bpf: expose program stats via bpf_prog_info
      tools/bpf: sync bpf.h into tools
      tools/bpftool: recognize bpf_prog_info run_time_ns and run_cnt
      Merge branch 'inner_map_spin_lock-fix'
      bpf: fix build without bpf_syscall
      Merge branch 'bpf_skb_ecn_set_ce'
      Merge branch 'split-test_progs'

Anders Roxell (1):
      bpf: test_bpf: turn off preemption in function __run_once

Andrii Nakryiko (8):
      selftests/bpf: fix btf_dedup testing code
      libbpf: fix formatting for btf_ext__get_raw_data
      btf: allow to customize dedup hash table size
      btf: fix bug with resolving STRUCT/UNION into corresponding FWD
      selftests/bpf: add btf_dedup test of FWD/STRUCT resolution
      docs/btf: fix typos, improve wording
      docs/btf: reflow text to fill up to 78 characters
      docs/bpf: minor casing/punctuation fixes

Dan Carpenter (1):
      tools/libbpf: signedness bug in btf_dedup_ref_type()

Daniel Borkmann (6):
      Merge branch 'bpf-libbpf-af-xdp'
      Merge branch 'bpf-prog-stats'
      Merge branch 'bpf-samples-improvements'
      Merge branch 'bpf-dedup-fixes'
      Merge branch 'bpf-doc-improvements'
      bpf: add test cases for non-pointer sanitiation logic

Daniel T. Lee (1):
      samples: bpf: fix: broken sample regarding removed function

Eric Dumazet (1):
      bpf: fix u64_stats_init() usage in bpf_prog_alloc()

Jakub Kicinski (5):
      samples: bpf: force IPv4 in ping
      samples: bpf: remove load_sock_ops in favour of bpftool
      tools: libbpf: add a correctly named define for map iteration
      samples: bpf: use libbpf where easy
      tools: libbpf: make sure readelf shows full names in build checks

Jesper Dangaard Brouer (1):
      bpf: add skb->queue_mapping write access from tc clsact

Magnus Karlsson (3):
      libbpf: add support for using AF_XDP sockets
      samples/bpf: convert xdpsock to use libbpf for AF_XDP access
      xsk: add FAQ to facilitate for first time users

Peter Zijlstra (1):
      bpf: check that BPF programs run with preemption disabled

Stanislav Fomichev (10):
      bpf/test_run: fix unkillable BPF_PROG_TEST_RUN for flow dissector
      selftests/bpf: make sure signal interrupts BPF_PROG_TEST_RUN
      selftests/bpf: use __bpf_constant_htons in test_prog.c for flow dissector
      selftests: bpf: break up test_progs - preparations
      selftests: bpf: break up test_progs - pkt access
      selftests: bpf: break up test_progs - xdp
      selftests: bpf: break up test_progs - stackmap
      selftests: bpf: break up test_progs - tracepoint
      selftests: bpf: break up test_progs - spinlock
      selftests: bpf: break up test_progs - misc

Toke Høiland-Jørgensen (1):
      samples/bpf: Fix dummy program unloading for xdp_redirect samples

Willem de Bruijn (1):
      bpf: add missing entries to bpf_helpers.h

Yonghong Song (4):
      bpf: set inner_map_meta->spin_lock_off correctly
      tools/bpf: selftests: add map lookup to test_map_in_map bpf prog
      selftests/bpf: set unlimited RLIMIT_MEMLOCK for test_sock_fields
      samples/bpf: silence compiler warning for xdpsock_user.c

brakmo (5):
      bpf: add bpf helper bpf_skb_ecn_set_ce
      bpf: sync bpf.h to tools and update bpf_helpers.h
      bpf: Sample HBM BPF program to limit egress bw
      bpf: User program for testing HBM
      bpf: HBM test script

 Documentation/bpf/bpf_design_QA.rst                |   24 +-
 Documentation/bpf/btf.rst                          |  316 ++--
 Documentation/networking/af_xdp.rst                |   36 +-
 Documentation/networking/filter.txt                |    2 +-
 include/linux/bpf.h                                |    9 +
 include/linux/filter.h                             |   20 +-
 include/linux/kernel.h                             |   14 +-
 include/uapi/linux/bpf.h                           |   12 +-
 kernel/bpf/core.c                                  |   37 +-
 kernel/bpf/map_in_map.c                            |    1 +
 kernel/bpf/syscall.c                               |   39 +-
 kernel/bpf/verifier.c                              |    7 +-
 kernel/sched/core.c                                |   28 +
 kernel/seccomp.c                                   |    2 +
 kernel/sysctl.c                                    |   37 +
 lib/test_bpf.c                                     |    2 +
 net/bpf/test_run.c                                 |   26 +-
 net/core/filter.c                                  |   44 +-
 samples/bpf/.gitignore                             |    1 -
 samples/bpf/Makefile                               |   14 +-
 samples/bpf/do_hbm_test.sh                         |  436 +++++
 samples/bpf/fds_example.c                          |   10 +-
 samples/bpf/hbm.c                                  |  441 +++++
 samples/bpf/hbm.h                                  |   31 +
 samples/bpf/hbm_kern.h                             |  137 ++
 samples/bpf/hbm_out_kern.c                         |  157 ++
 samples/bpf/load_sock_ops.c                        |   97 -
 samples/bpf/sock_example.c                         |    2 +-
 samples/bpf/sockex1_user.c                         |   25 +-
 samples/bpf/sockex2_user.c                         |   23 +-
 samples/bpf/sockex3_user.c                         |    2 +-
 samples/bpf/task_fd_query_kern.c                   |    2 +-
 samples/bpf/task_fd_query_user.c                   |    2 +-
 samples/bpf/tcp_basertt_kern.c                     |    2 +-
 samples/bpf/tcp_bpf.readme                         |   14 +-
 samples/bpf/tcp_bufs_kern.c                        |    2 +-
 samples/bpf/tcp_clamp_kern.c                       |    2 +-
 samples/bpf/tcp_cong_kern.c                        |    2 +-
 samples/bpf/tcp_iw_kern.c                          |    2 +-
 samples/bpf/tcp_rwnd_kern.c                        |    2 +-
 samples/bpf/tcp_synrto_kern.c                      |    2 +-
 samples/bpf/tcp_tos_reflect_kern.c                 |    2 +-
 samples/bpf/tracex2_user.c                         |    2 +-
 samples/bpf/tracex3_kern.c                         |    2 +-
 samples/bpf/xdp_redirect_map_user.c                |    2 +-
 samples/bpf/xdp_redirect_user.c                    |    2 +-
 samples/bpf/xdpsock.h                              |   11 -
 samples/bpf/xdpsock_kern.c                         |   56 -
 samples/bpf/xdpsock_user.c                         |  841 +++-----
 tools/bpf/bpftool/Documentation/bpftool-prog.rst   |    6 +-
 tools/bpf/bpftool/bash-completion/bpftool          |    4 +-
 tools/bpf/bpftool/prog.c                           |   13 +-
 tools/include/uapi/linux/bpf.h                     |   12 +-
 tools/include/uapi/linux/ethtool.h                 |   51 +
 tools/include/uapi/linux/if_xdp.h                  |   78 +
 tools/lib/bpf/Build                                |    2 +-
 tools/lib/bpf/Makefile                             |    9 +-
 tools/lib/bpf/README.rst                           |   15 +-
 tools/lib/bpf/btf.c                                |   76 +-
 tools/lib/bpf/btf.h                                |    3 +-
 tools/lib/bpf/libbpf.c                             |    8 +-
 tools/lib/bpf/libbpf.h                             |    3 +-
 tools/lib/bpf/libbpf.map                           |    6 +
 tools/lib/bpf/xsk.c                                |  723 +++++++
 tools/lib/bpf/xsk.h                                |  203 ++
 tools/perf/util/bpf-loader.c                       |    4 +-
 tools/testing/selftests/bpf/.gitignore             |    1 +
 tools/testing/selftests/bpf/Makefile               |   27 +-
 tools/testing/selftests/bpf/bpf_helpers.h          |   32 +
 tools/testing/selftests/bpf/prog_tests/.gitignore  |    1 +
 .../testing/selftests/bpf/prog_tests/bpf_obj_id.c  |  249 +++
 .../selftests/bpf/prog_tests/flow_dissector.c      |   72 +
 .../selftests/bpf/prog_tests/get_stack_raw_tp.c    |  139 ++
 tools/testing/selftests/bpf/prog_tests/l4lb_all.c  |   90 +
 tools/testing/selftests/bpf/prog_tests/map_lock.c  |   75 +
 tools/testing/selftests/bpf/prog_tests/obj_name.c  |   71 +
 .../testing/selftests/bpf/prog_tests/pkt_access.c  |   29 +
 .../selftests/bpf/prog_tests/pkt_md_access.c       |   24 +
 .../selftests/bpf/prog_tests/prog_run_xattr.c      |   49 +
 .../selftests/bpf/prog_tests/queue_stack_map.c     |  103 +
 .../selftests/bpf/prog_tests/reference_tracking.c  |   48 +
 .../selftests/bpf/prog_tests/signal_pending.c      |   48 +
 tools/testing/selftests/bpf/prog_tests/spinlock.c  |   29 +
 .../selftests/bpf/prog_tests/stacktrace_build_id.c |  165 ++
 .../bpf/prog_tests/stacktrace_build_id_nmi.c       |  150 ++
 .../selftests/bpf/prog_tests/stacktrace_map.c      |  103 +
 .../bpf/prog_tests/stacktrace_map_raw_tp.c         |   59 +
 .../selftests/bpf/prog_tests/task_fd_query_rawtp.c |   78 +
 .../selftests/bpf/prog_tests/task_fd_query_tp.c    |   82 +
 .../testing/selftests/bpf/prog_tests/tcp_estats.c  |   19 +
 .../selftests/bpf/prog_tests/tp_attach_query.c     |  132 ++
 tools/testing/selftests/bpf/prog_tests/xdp.c       |   46 +
 .../selftests/bpf/prog_tests/xdp_adjust_tail.c     |   31 +
 .../selftests/bpf/prog_tests/xdp_noinline.c        |   82 +
 .../testing/selftests/bpf/progs/test_map_in_map.c  |    4 +
 tools/testing/selftests/bpf/test_btf.c             |   49 +-
 tools/testing/selftests/bpf/test_libbpf_open.c     |    2 +-
 tools/testing/selftests/bpf/test_progs.c           | 1999 +-------------------
 tools/testing/selftests/bpf/test_progs.h           |   93 +
 tools/testing/selftests/bpf/test_sock_fields.c     |    1 +
 .../selftests/bpf/verifier/value_ptr_arith.c       |   44 +-
 101 files changed, 5395 insertions(+), 3029 deletions(-)
 create mode 100755 samples/bpf/do_hbm_test.sh
 create mode 100644 samples/bpf/hbm.c
 create mode 100644 samples/bpf/hbm.h
 create mode 100644 samples/bpf/hbm_kern.h
 create mode 100644 samples/bpf/hbm_out_kern.c
 delete mode 100644 samples/bpf/load_sock_ops.c
 delete mode 100644 samples/bpf/xdpsock.h
 delete mode 100644 samples/bpf/xdpsock_kern.c
 create mode 100644 tools/include/uapi/linux/ethtool.h
 create mode 100644 tools/include/uapi/linux/if_xdp.h
 create mode 100644 tools/lib/bpf/xsk.c
 create mode 100644 tools/lib/bpf/xsk.h
 create mode 100644 tools/testing/selftests/bpf/prog_tests/.gitignore
 create mode 100644 tools/testing/selftests/bpf/prog_tests/bpf_obj_id.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/flow_dissector.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/get_stack_raw_tp.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/l4lb_all.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/map_lock.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/obj_name.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/pkt_access.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/pkt_md_access.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/prog_run_xattr.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/queue_stack_map.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/reference_tracking.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/signal_pending.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/spinlock.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/stacktrace_build_id.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/stacktrace_build_id_nmi.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/stacktrace_map.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/stacktrace_map_raw_tp.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/task_fd_query_rawtp.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/task_fd_query_tp.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/tcp_estats.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/tp_attach_query.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/xdp.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/xdp_adjust_tail.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/xdp_noinline.c
 create mode 100644 tools/testing/selftests/bpf/test_progs.h

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ