All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Borkmann <daniel@iogearbox.net>
To: davem@davemloft.net
Cc: daniel@iogearbox.net, ast@kernel.org, netdev@vger.kernel.org,
	bpf@vger.kernel.org
Subject: pull-request: bpf-next 2019-04-28
Date: Sun, 28 Apr 2019 12:59:09 +0200	[thread overview]
Message-ID: <20190428105909.9248-1-daniel@iogearbox.net> (raw)

Hi David,

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

The main changes are:

1) Introduce BPF socket local storage map so that BPF programs can store
   private data they associate with a socket (instead of e.g. separate hash
   table), from Martin.

2) Add support for bpftool to dump BTF types. This is done through a new
   `bpftool btf dump` sub-command, from Andrii.

3) Enable BPF-based flow dissector for skb-less eth_get_headlen() calls which
   was currently not supported since skb was used to lookup netns, from Stanislav.

4) Add an opt-in interface for tracepoints to expose a writable context
   for attached BPF programs, used here for NBD sockets, from Matt.

5) BPF xadd related arm64 JIT fixes and scalability improvements, from Daniel.

6) Change the skb->protocol for bpf_skb_adjust_room() helper in order to
   support tunnels such as sit. Add selftests as well, from Willem.

7) Various smaller misc fixes.

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

  net: systemport: Remove need for DMA descriptor (2019-04-22 22:20:15 -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 9076c49bdca2aa68c805f2677b2bccc4bde2bac1:

  Merge branch 'sk-local-storage' (2019-04-27 09:07:49 -0700)

----------------------------------------------------------------
Alexei Starovoitov (4):
      Merge branch 'libbpf-fixes'
      Merge branch 'btf-dump'
      Merge branch 'writeable-bpf-tracepoints'
      Merge branch 'sk-local-storage'

Andrew Hall (1):
      nbd: add tracepoints for send/receive timing

Andrii Nakryiko (4):
      bpftool: add ability to dump BTF types
      bpftool/docs: add btf sub-command documentation
      bpftool: add bash completions for btf command
      bpftool: fix indendation in bash-completion/bpftool

Benjamin Poirier (1):
      bpftool: Fix errno variable usage

Daniel Borkmann (6):
      Merge branch 'bpf-eth-get-headlen'
      Merge branch 'bpf-proto-fixes'
      bpf, libbpf: handle old kernels more graceful wrt global data sections
      bpf, libbpf: fix segfault in bpf_object__init_maps' pr_debug statement
      bpf, arm64: remove prefetch insn in xadd mapping
      bpf, arm64: use more scalable stadd over ldxr / stxr loop in xadd

Daniel T. Lee (2):
      libbpf: fix samples/bpf build failure due to undefined UINT32_MAX
      samples: bpf: add hbm sample to .gitignore

Martin KaFai Lau (7):
      bpf: Introduce bpf sk local storage
      bpf: Sync bpf.h to tools
      bpf: Support BPF_MAP_TYPE_SK_STORAGE in bpf map probing
      bpf: Refactor BTF encoding macro to test_btf.h
      bpf: Add verifier tests for the bpf_sk_storage
      bpf: Add BPF_MAP_TYPE_SK_STORAGE test to test_maps
      bpf: Add ene-to-end test for bpf_sk_storage_* helpers

Matt Mullins (4):
      bpf: add writable context for raw tracepoints
      nbd: trace sending nbd requests
      tools: sync bpf.h
      selftests: bpf: test writable buffers in raw tps

Stanislav Fomichev (11):
      flow_dissector: switch kernel context to struct bpf_flow_dissector
      bpf: when doing BPF_PROG_TEST_RUN for flow dissector use no-skb mode
      net: plumb network namespace into __skb_flow_dissect
      flow_dissector: handle no-skb use case
      net: pass net_device argument to the eth_get_headlen
      selftests/bpf: add flow dissector bpf_skb_load_bytes helper test
      selftests/bpf: run flow dissector tests in skb-less mode
      selftests/bpf: properly return error from bpf_flow_load
      bpf/flow_dissector: don't adjust nhoff by ETH_HLEN in BPF_PROG_TEST_RUN
      bpf: support BPF_PROG_QUERY for BPF_FLOW_DISSECTOR attach_type
      bpftool: show flow_dissector attachment status

Willem de Bruijn (2):
      bpf: update skb->protocol in bpf_skb_net_grow
      selftests/bpf: expand test_tc_tunnel with SIT encap

 MAINTAINERS                                        |   1 +
 arch/arm64/include/asm/insn.h                      |   8 +
 arch/arm64/kernel/insn.c                           |  40 +
 arch/arm64/net/bpf_jit.h                           |   8 +-
 arch/arm64/net/bpf_jit_comp.c                      |  29 +-
 drivers/block/nbd.c                                |  13 +
 drivers/net/ethernet/aquantia/atlantic/aq_ring.c   |   3 +-
 drivers/net/ethernet/broadcom/bnxt/bnxt.c          |   2 +-
 drivers/net/ethernet/hisilicon/hns/hns_enet.c      |   2 +-
 drivers/net/ethernet/hisilicon/hns3/hns3_enet.c    |   2 +-
 drivers/net/ethernet/intel/fm10k/fm10k_main.c      |   2 +-
 drivers/net/ethernet/intel/i40e/i40e_txrx.c        |   3 +-
 drivers/net/ethernet/intel/iavf/iavf_txrx.c        |   2 +-
 drivers/net/ethernet/intel/ice/ice_txrx.c          |   2 +-
 drivers/net/ethernet/intel/igb/igb_main.c          |   2 +-
 drivers/net/ethernet/intel/igc/igc_main.c          |   2 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c      |   2 +-
 drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c  |   3 +-
 drivers/net/ethernet/mellanox/mlx5/core/en_tx.c    |   2 +-
 drivers/net/tun.c                                  |   3 +-
 include/linux/bpf.h                                |   4 +
 include/linux/bpf_types.h                          |   2 +
 include/linux/etherdevice.h                        |   2 +-
 include/linux/skbuff.h                             |  36 +-
 include/linux/tracepoint-defs.h                    |   1 +
 include/net/bpf_sk_storage.h                       |  13 +
 include/net/flow_dissector.h                       |   7 +
 include/net/sch_generic.h                          |  11 +-
 include/net/sock.h                                 |   5 +
 include/trace/bpf_probe.h                          |  27 +-
 include/trace/events/bpf_test_run.h                |  50 ++
 include/trace/events/nbd.h                         | 107 +++
 include/uapi/linux/bpf.h                           |  45 +-
 kernel/bpf/syscall.c                               |  13 +-
 kernel/bpf/verifier.c                              |  58 +-
 kernel/trace/bpf_trace.c                           |  24 +
 net/bpf/test_run.c                                 |  54 +-
 net/core/Makefile                                  |   1 +
 net/core/bpf_sk_storage.c                          | 804 +++++++++++++++++++++
 net/core/filter.c                                  | 125 +++-
 net/core/flow_dissector.c                          | 129 ++--
 net/core/sock.c                                    |   5 +
 net/ethernet/eth.c                                 |   8 +-
 samples/bpf/.gitignore                             |   1 +
 tools/bpf/bpftool/Documentation/bpftool-btf.rst    | 222 ++++++
 tools/bpf/bpftool/Documentation/bpftool-cgroup.rst |   3 +-
 .../bpf/bpftool/Documentation/bpftool-feature.rst  |   3 +-
 tools/bpf/bpftool/Documentation/bpftool-map.rst    |   3 +-
 tools/bpf/bpftool/Documentation/bpftool-net.rst    |   3 +-
 tools/bpf/bpftool/Documentation/bpftool-perf.rst   |   3 +-
 tools/bpf/bpftool/Documentation/bpftool-prog.rst   |   3 +-
 tools/bpf/bpftool/Documentation/bpftool.rst        |   3 +-
 tools/bpf/bpftool/bash-completion/bpftool          |  68 +-
 tools/bpf/bpftool/btf.c                            | 586 +++++++++++++++
 tools/bpf/bpftool/main.c                           |   3 +-
 tools/bpf/bpftool/main.h                           |   1 +
 tools/bpf/bpftool/map.c                            |   3 +-
 tools/bpf/bpftool/net.c                            |  54 ++
 tools/include/uapi/linux/bpf.h                     |  54 +-
 tools/lib/bpf/bpf.h                                |   1 +
 tools/lib/bpf/libbpf.c                             | 106 ++-
 tools/lib/bpf/libbpf_probes.c                      |  75 +-
 tools/testing/selftests/bpf/Makefile               |  25 +-
 tools/testing/selftests/bpf/bpf_helpers.h          |   5 +
 tools/testing/selftests/bpf/config                 |   1 +
 tools/testing/selftests/bpf/flow_dissector_load.c  |   2 +-
 tools/testing/selftests/bpf/flow_dissector_load.h  |  24 +-
 .../selftests/bpf/map_tests/sk_storage_map.c       | 629 ++++++++++++++++
 .../selftests/bpf/prog_tests/flow_dissector.c      | 113 ++-
 .../bpf/prog_tests/flow_dissector_load_bytes.c     |  48 ++
 .../raw_tp_writable_reject_nbd_invalid.c           |  42 ++
 .../bpf/prog_tests/raw_tp_writable_test_run.c      |  80 ++
 tools/testing/selftests/bpf/progs/bpf_flow.c       |  79 +-
 .../selftests/bpf/progs/test_sock_fields_kern.c    |  53 ++
 tools/testing/selftests/bpf/progs/test_tc_tunnel.c |  64 +-
 tools/testing/selftests/bpf/test_btf.c             |  63 +-
 tools/testing/selftests/bpf/test_btf.h             |  69 ++
 tools/testing/selftests/bpf/test_maps.c            |  18 +-
 tools/testing/selftests/bpf/test_maps.h            |  17 +
 tools/testing/selftests/bpf/test_sock_fields.c     | 115 ++-
 tools/testing/selftests/bpf/test_tc_tunnel.sh      |  20 +-
 tools/testing/selftests/bpf/test_verifier.c        |  55 +-
 .../selftests/bpf/verifier/raw_tp_writable.c       |  34 +
 tools/testing/selftests/bpf/verifier/sock.c        | 116 +++
 84 files changed, 4168 insertions(+), 361 deletions(-)
 create mode 100644 include/net/bpf_sk_storage.h
 create mode 100644 include/trace/events/bpf_test_run.h
 create mode 100644 include/trace/events/nbd.h
 create mode 100644 net/core/bpf_sk_storage.c
 create mode 100644 tools/bpf/bpftool/Documentation/bpftool-btf.rst
 create mode 100644 tools/bpf/bpftool/btf.c
 create mode 100644 tools/testing/selftests/bpf/map_tests/sk_storage_map.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/flow_dissector_load_bytes.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/raw_tp_writable_reject_nbd_invalid.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/raw_tp_writable_test_run.c
 create mode 100644 tools/testing/selftests/bpf/test_btf.h
 create mode 100644 tools/testing/selftests/bpf/test_maps.h
 create mode 100644 tools/testing/selftests/bpf/verifier/raw_tp_writable.c

             reply	other threads:[~2019-04-28 10:59 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-28 10:59 Daniel Borkmann [this message]
2019-04-28 12:43 ` pull-request: bpf-next 2019-04-28 David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190428105909.9248-1-daniel@iogearbox.net \
    --to=daniel@iogearbox.net \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=davem@davemloft.net \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.