mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-12-26 12:21:01 +01:00
Daniel Borkmann says: ==================== pull-request: bpf-next 2023-11-30 We've added 30 non-merge commits during the last 7 day(s) which contain a total of 58 files changed, 1598 insertions(+), 154 deletions(-). The main changes are: 1) Add initial TX metadata implementation for AF_XDP with support in mlx5 and stmmac drivers. Two types of offloads are supported right now, that is, TX timestamp and TX checksum offload, from Stanislav Fomichev with stmmac implementation from Song Yoong Siang. 2) Change BPF verifier logic to validate global subprograms lazily instead of unconditionally before the main program, so they can be guarded using BPF CO-RE techniques, from Andrii Nakryiko. 3) Add BPF link_info support for uprobe multi link along with bpftool integration for the latter, from Jiri Olsa. 4) Use pkg-config in BPF selftests to determine ld flags which is in particular needed for linking statically, from Akihiko Odaki. 5) Fix a few BPF selftest failures to adapt to the upcoming LLVM18, from Yonghong Song. * tag 'for-netdev' of https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next: (30 commits) bpf/tests: Remove duplicate JSGT tests selftests/bpf: Add TX side to xdp_hw_metadata selftests/bpf: Convert xdp_hw_metadata to XDP_USE_NEED_WAKEUP selftests/bpf: Add TX side to xdp_metadata selftests/bpf: Add csum helpers selftests/xsk: Support tx_metadata_len xsk: Add option to calculate TX checksum in SW xsk: Validate xsk_tx_metadata flags xsk: Document tx_metadata_len layout net: stmmac: Add Tx HWTS support to XDP ZC net/mlx5e: Implement AF_XDP TX timestamp and checksum offload tools: ynl: Print xsk-features from the sample xsk: Add TX timestamp and TX checksum offload support xsk: Support tx_metadata_len selftests/bpf: Use pkg-config for libelf selftests/bpf: Override PKG_CONFIG for static builds selftests/bpf: Choose pkg-config for the target bpftool: Add support to display uprobe_multi links selftests/bpf: Add link_info test for uprobe_multi link selftests/bpf: Use bpf_link__destroy in fill_link_info tests ... ==================== Conflicts: Documentation/netlink/specs/netdev.yaml:839ff60df3("net: page_pool: add nlspec for basic access to page pools")48eb03dd26("xsk: Add TX timestamp and TX checksum offload support") https://lore.kernel.org/all/20231201094705.1ee3cab8@canb.auug.org.au/ While at it also regen, tree is dirty after:48eb03dd26("xsk: Add TX timestamp and TX checksum offload support") looks like code wasn't re-rendered after "render-max" was removed. Link: https://lore.kernel.org/r/20231130145708.32573-1-daniel@iogearbox.net Signed-off-by: Jakub Kicinski <kuba@kernel.org>
126 lines
3.6 KiB
C
126 lines
3.6 KiB
C
/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
|
|
/* Do not edit directly, auto-generated from: */
|
|
/* Documentation/netlink/specs/netdev.yaml */
|
|
/* YNL-GEN uapi header */
|
|
|
|
#ifndef _UAPI_LINUX_NETDEV_H
|
|
#define _UAPI_LINUX_NETDEV_H
|
|
|
|
#define NETDEV_FAMILY_NAME "netdev"
|
|
#define NETDEV_FAMILY_VERSION 1
|
|
|
|
/**
|
|
* enum netdev_xdp_act
|
|
* @NETDEV_XDP_ACT_BASIC: XDP features set supported by all drivers
|
|
* (XDP_ABORTED, XDP_DROP, XDP_PASS, XDP_TX)
|
|
* @NETDEV_XDP_ACT_REDIRECT: The netdev supports XDP_REDIRECT
|
|
* @NETDEV_XDP_ACT_NDO_XMIT: This feature informs if netdev implements
|
|
* ndo_xdp_xmit callback.
|
|
* @NETDEV_XDP_ACT_XSK_ZEROCOPY: This feature informs if netdev supports AF_XDP
|
|
* in zero copy mode.
|
|
* @NETDEV_XDP_ACT_HW_OFFLOAD: This feature informs if netdev supports XDP hw
|
|
* offloading.
|
|
* @NETDEV_XDP_ACT_RX_SG: This feature informs if netdev implements non-linear
|
|
* XDP buffer support in the driver napi callback.
|
|
* @NETDEV_XDP_ACT_NDO_XMIT_SG: This feature informs if netdev implements
|
|
* non-linear XDP buffer support in ndo_xdp_xmit callback.
|
|
*/
|
|
enum netdev_xdp_act {
|
|
NETDEV_XDP_ACT_BASIC = 1,
|
|
NETDEV_XDP_ACT_REDIRECT = 2,
|
|
NETDEV_XDP_ACT_NDO_XMIT = 4,
|
|
NETDEV_XDP_ACT_XSK_ZEROCOPY = 8,
|
|
NETDEV_XDP_ACT_HW_OFFLOAD = 16,
|
|
NETDEV_XDP_ACT_RX_SG = 32,
|
|
NETDEV_XDP_ACT_NDO_XMIT_SG = 64,
|
|
|
|
/* private: */
|
|
NETDEV_XDP_ACT_MASK = 127,
|
|
};
|
|
|
|
/**
|
|
* enum netdev_xdp_rx_metadata
|
|
* @NETDEV_XDP_RX_METADATA_TIMESTAMP: Device is capable of exposing receive HW
|
|
* timestamp via bpf_xdp_metadata_rx_timestamp().
|
|
* @NETDEV_XDP_RX_METADATA_HASH: Device is capable of exposing receive packet
|
|
* hash via bpf_xdp_metadata_rx_hash().
|
|
*/
|
|
enum netdev_xdp_rx_metadata {
|
|
NETDEV_XDP_RX_METADATA_TIMESTAMP = 1,
|
|
NETDEV_XDP_RX_METADATA_HASH = 2,
|
|
};
|
|
|
|
/**
|
|
* enum netdev_xsk_flags
|
|
* @NETDEV_XSK_FLAGS_TX_TIMESTAMP: HW timestamping egress packets is supported
|
|
* by the driver.
|
|
* @NETDEV_XSK_FLAGS_TX_CHECKSUM: L3 checksum HW offload is supported by the
|
|
* driver.
|
|
*/
|
|
enum netdev_xsk_flags {
|
|
NETDEV_XSK_FLAGS_TX_TIMESTAMP = 1,
|
|
NETDEV_XSK_FLAGS_TX_CHECKSUM = 2,
|
|
};
|
|
|
|
enum {
|
|
NETDEV_A_DEV_IFINDEX = 1,
|
|
NETDEV_A_DEV_PAD,
|
|
NETDEV_A_DEV_XDP_FEATURES,
|
|
NETDEV_A_DEV_XDP_ZC_MAX_SEGS,
|
|
NETDEV_A_DEV_XDP_RX_METADATA_FEATURES,
|
|
NETDEV_A_DEV_XSK_FEATURES,
|
|
|
|
__NETDEV_A_DEV_MAX,
|
|
NETDEV_A_DEV_MAX = (__NETDEV_A_DEV_MAX - 1)
|
|
};
|
|
|
|
enum {
|
|
NETDEV_A_PAGE_POOL_ID = 1,
|
|
NETDEV_A_PAGE_POOL_IFINDEX,
|
|
NETDEV_A_PAGE_POOL_NAPI_ID,
|
|
NETDEV_A_PAGE_POOL_INFLIGHT,
|
|
NETDEV_A_PAGE_POOL_INFLIGHT_MEM,
|
|
NETDEV_A_PAGE_POOL_DETACH_TIME,
|
|
|
|
__NETDEV_A_PAGE_POOL_MAX,
|
|
NETDEV_A_PAGE_POOL_MAX = (__NETDEV_A_PAGE_POOL_MAX - 1)
|
|
};
|
|
|
|
enum {
|
|
NETDEV_A_PAGE_POOL_STATS_INFO = 1,
|
|
NETDEV_A_PAGE_POOL_STATS_ALLOC_FAST = 8,
|
|
NETDEV_A_PAGE_POOL_STATS_ALLOC_SLOW,
|
|
NETDEV_A_PAGE_POOL_STATS_ALLOC_SLOW_HIGH_ORDER,
|
|
NETDEV_A_PAGE_POOL_STATS_ALLOC_EMPTY,
|
|
NETDEV_A_PAGE_POOL_STATS_ALLOC_REFILL,
|
|
NETDEV_A_PAGE_POOL_STATS_ALLOC_WAIVE,
|
|
NETDEV_A_PAGE_POOL_STATS_RECYCLE_CACHED,
|
|
NETDEV_A_PAGE_POOL_STATS_RECYCLE_CACHE_FULL,
|
|
NETDEV_A_PAGE_POOL_STATS_RECYCLE_RING,
|
|
NETDEV_A_PAGE_POOL_STATS_RECYCLE_RING_FULL,
|
|
NETDEV_A_PAGE_POOL_STATS_RECYCLE_RELEASED_REFCNT,
|
|
|
|
__NETDEV_A_PAGE_POOL_STATS_MAX,
|
|
NETDEV_A_PAGE_POOL_STATS_MAX = (__NETDEV_A_PAGE_POOL_STATS_MAX - 1)
|
|
};
|
|
|
|
enum {
|
|
NETDEV_CMD_DEV_GET = 1,
|
|
NETDEV_CMD_DEV_ADD_NTF,
|
|
NETDEV_CMD_DEV_DEL_NTF,
|
|
NETDEV_CMD_DEV_CHANGE_NTF,
|
|
NETDEV_CMD_PAGE_POOL_GET,
|
|
NETDEV_CMD_PAGE_POOL_ADD_NTF,
|
|
NETDEV_CMD_PAGE_POOL_DEL_NTF,
|
|
NETDEV_CMD_PAGE_POOL_CHANGE_NTF,
|
|
NETDEV_CMD_PAGE_POOL_STATS_GET,
|
|
|
|
__NETDEV_CMD_MAX,
|
|
NETDEV_CMD_MAX = (__NETDEV_CMD_MAX - 1)
|
|
};
|
|
|
|
#define NETDEV_MCGRP_MGMT "mgmt"
|
|
#define NETDEV_MCGRP_PAGE_POOL "page-pool"
|
|
|
|
#endif /* _UAPI_LINUX_NETDEV_H */
|