[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230719175424.75717-1-alexei.starovoitov@gmail.com>
Date: Wed, 19 Jul 2023 10:54:24 -0700
From: Alexei Starovoitov <alexei.starovoitov@...il.com>
To: davem@...emloft.net
Cc: kuba@...nel.org,
edumazet@...gle.com,
pabeni@...hat.com,
daniel@...earbox.net,
andrii@...nel.org,
netdev@...r.kernel.org,
bpf@...r.kernel.org,
kernel-team@...com
Subject: pull-request: bpf-next 2023-07-19
Hi David, hi Jakub, hi Paolo, hi Eric,
The following pull-request contains BPF updates for your *net-next* tree.
We've added 45 non-merge commits during the last 3 day(s) which contain
a total of 71 files changed, 7808 insertions(+), 592 deletions(-).
The main changes are:
1) multi-buffer support in AF_XDP, from Maciej Fijalkowski, Magnus Karlsson, Tirthendu Sarkar.
2) BPF link support for tc BPF programs, from Daniel Borkmann.
3) Enable bpf_map_sum_elem_count kfunc for all program types, from Anton Protopopov.
4) Add 'owner' field to bpf_rb_node to fix races in shared ownership, Dave Marchevsky.
5) Prevent potential skb_header_pointer() misuse, from Alexei Starovoitov.
There should be no merge conflicts.
Please consider pulling these changes from:
git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git tags/for-netdev
Thanks a lot!
Also thanks to reporters, reviewers and testers of commits in this pull-request:
Andrii Nakryiko, Dan Carpenter, Jakub Kicinski, Quentin Monnet
----------------------------------------------------------------
The following changes since commit 60cc1f7d0605598b47ee3c0c2b4b6fbd4da50a06:
Merge branch 'phy-at803x-support' (2023-07-17 10:15:14 +0100)
are available in the Git repository at:
https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git tags/for-netdev
for you to fetch changes up to 6f5a630d7c57cd79b1f526a95e757311e32d41e5:
bpf, net: Introduce skb_pointer_if_linear(). (2023-07-19 10:27:33 -0700)
----------------------------------------------------------------
for-netdev
----------------------------------------------------------------
Alan Maguire (1):
bpf: sync tools/ uapi header with
Alexei Starovoitov (5):
Merge branch 'bpf-refcount-followups-2-owner-field'
Merge branch 'allow-bpf_map_sum_elem_count-for-all-program-types'
Merge branch 'xsk-multi-buffer-support'
Merge branch 'bpf-link-support-for-tc-bpf-programs'
bpf, net: Introduce skb_pointer_if_linear().
Anh Tuan Phan (1):
samples/bpf: README: Update build dependencies required
Anton Protopopov (4):
bpf: consider types listed in reg2btf_ids as trusted
bpf: consider CONST_PTR_TO_MAP as trusted pointer to struct bpf_map
bpf: make an argument const in the bpf_map_sum_elem_count kfunc
bpf: allow any program to use the bpf_map_sum_elem_count kfunc
Daniel Borkmann (8):
bpf: Add generic attach/detach/query API for multi-progs
bpf: Add fd-based tcx multi-prog infra with link support
libbpf: Add opts-based attach/detach/query API for tcx
libbpf: Add link-based API for tcx
libbpf: Add helper macro to clear opts structs
bpftool: Extend net dump with tcx progs
selftests/bpf: Add mprog API tests for BPF tcx opts
selftests/bpf: Add mprog API tests for BPF tcx links
Dave Marchevsky (4):
bpf: Introduce internal definitions for UAPI-opaque bpf_{rb,list}_node
bpf: Add 'owner' field to bpf_{list,rb}_node
selftests/bpf: Add rbtree test exercising race which 'owner' field prevents
selftests/bpf: Disable newly-added 'owner' field test until refcount re-enabled
Geliang Tang (1):
bpf: Drop useless btf_vmlinux in bpf_tcp_ca
Maciej Fijalkowski (8):
xsk: prepare both copy and zero-copy modes to co-exist
xsk: allow core/drivers to test EOP bit
xsk: add new netlink attribute dedicated for ZC max frags
xsk: support mbuf on ZC RX
ice: xsk: add RX multi-buffer support
xsk: support ZC Tx multi-buffer in batch API
ice: xsk: Tx multi-buffer support
selftests/xsk: reset NIC settings to default after running test suite
Magnus Karlsson (7):
xsk: add multi-buffer documentation
selftests/xsk: transmit and receive multi-buffer packets
selftests/xsk: add basic multi-buffer test
selftests/xsk: add unaligned mode test for multi-buffer
selftests/xsk: add invalid descriptor test for multi-buffer
selftests/xsk: add metadata copy test for multi-buff
selftests/xsk: add test for too many frags
Menglong Dong (1):
bpf, x86: initialize the variable "first_off" in save_args()
Tirthendu Sarkar (9):
xsk: prepare 'options' in xdp_desc for multi-buffer use
xsk: introduce XSK_USE_SG bind flag for xsk socket
xsk: move xdp_buff's data length check to xsk_rcv_check
xsk: add support for AF_XDP multi-buffer on Rx path
xsk: introduce wrappers and helpers for supporting multi-buffer in Tx path
xsk: add support for AF_XDP multi-buffer on Tx path
xsk: discard zero length descriptors in Tx path
i40e: xsk: add RX multi-buffer support
i40e: xsk: add TX multi-buffer support
Documentation/netlink/specs/netdev.yaml | 6 +
Documentation/networking/af_xdp.rst | 211 +-
MAINTAINERS | 5 +-
arch/x86/net/bpf_jit_comp.c | 2 +-
drivers/net/ethernet/intel/i40e/i40e_main.c | 6 +-
drivers/net/ethernet/intel/i40e/i40e_txrx.c | 4 +-
drivers/net/ethernet/intel/i40e/i40e_txrx.h | 2 +
drivers/net/ethernet/intel/i40e/i40e_xsk.c | 101 +-
drivers/net/ethernet/intel/ice/ice_base.c | 9 +-
drivers/net/ethernet/intel/ice/ice_main.c | 1 +
drivers/net/ethernet/intel/ice/ice_xsk.c | 221 +-
include/linux/bpf.h | 12 +
include/linux/bpf_mprog.h | 327 +++
include/linux/btf_ids.h | 1 +
include/linux/netdevice.h | 16 +-
include/linux/skbuff.h | 14 +-
include/net/sch_generic.h | 2 +-
include/net/tcx.h | 206 ++
include/net/xdp_sock.h | 7 +
include/net/xdp_sock_drv.h | 54 +
include/net/xsk_buff_pool.h | 7 +
include/uapi/linux/bpf.h | 72 +-
include/uapi/linux/if_xdp.h | 13 +
include/uapi/linux/netdev.h | 1 +
kernel/bpf/Kconfig | 1 +
kernel/bpf/Makefile | 3 +-
kernel/bpf/helpers.c | 55 +-
kernel/bpf/map_iter.c | 7 +-
kernel/bpf/mprog.c | 445 ++++
kernel/bpf/syscall.c | 82 +-
kernel/bpf/tcx.c | 348 +++
kernel/bpf/verifier.c | 22 +-
net/Kconfig | 5 +
net/core/dev.c | 266 ++-
net/core/filter.c | 11 +-
net/core/netdev-genl.c | 8 +
net/ipv4/bpf_tcp_ca.c | 2 -
net/sched/Kconfig | 4 +-
net/sched/sch_ingress.c | 61 +-
net/xdp/xsk.c | 365 +++-
net/xdp/xsk_buff_pool.c | 7 +
net/xdp/xsk_queue.h | 95 +-
samples/bpf/README.rst | 14 +-
tools/bpf/bpftool/Documentation/bpftool-net.rst | 26 +-
tools/bpf/bpftool/net.c | 98 +-
tools/bpf/bpftool/netlink_dumper.h | 8 +
tools/include/uapi/linux/bpf.h | 72 +-
tools/include/uapi/linux/if_xdp.h | 9 +
tools/include/uapi/linux/netdev.h | 1 +
tools/lib/bpf/bpf.c | 127 +-
tools/lib/bpf/bpf.h | 97 +-
tools/lib/bpf/libbpf.c | 70 +-
tools/lib/bpf/libbpf.h | 18 +-
tools/lib/bpf/libbpf.map | 2 +
tools/lib/bpf/libbpf_common.h | 16 +
tools/lib/bpf/netlink.c | 5 +
.../testing/selftests/bpf/prog_tests/linked_list.c | 78 +-
.../selftests/bpf/prog_tests/refcounted_kptr.c | 4 +
.../testing/selftests/bpf/prog_tests/tc_helpers.h | 72 +
tools/testing/selftests/bpf/prog_tests/tc_links.c | 1583 ++++++++++++++
tools/testing/selftests/bpf/prog_tests/tc_opts.c | 2239 ++++++++++++++++++++
tools/testing/selftests/bpf/progs/map_ptr_kern.c | 5 +
.../testing/selftests/bpf/progs/refcounted_kptr.c | 94 +-
tools/testing/selftests/bpf/progs/test_tc_link.c | 40 +
tools/testing/selftests/bpf/progs/xsk_xdp_progs.c | 6 +-
tools/testing/selftests/bpf/test_xsk.sh | 5 +
tools/testing/selftests/bpf/xsk.c | 136 +-
tools/testing/selftests/bpf/xsk.h | 2 +
tools/testing/selftests/bpf/xsk_prereqs.sh | 7 +
tools/testing/selftests/bpf/xskxceiver.c | 458 +++-
tools/testing/selftests/bpf/xskxceiver.h | 21 +-
71 files changed, 7808 insertions(+), 592 deletions(-)
create mode 100644 include/linux/bpf_mprog.h
create mode 100644 include/net/tcx.h
create mode 100644 kernel/bpf/mprog.c
create mode 100644 kernel/bpf/tcx.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/tc_helpers.h
create mode 100644 tools/testing/selftests/bpf/prog_tests/tc_links.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/tc_opts.c
create mode 100644 tools/testing/selftests/bpf/progs/test_tc_link.c
Powered by blists - more mailing lists