Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

selftests/xsk: Support tx_metadata_len

Add new config field and propagate to UMEM registration setsockopt.

Signed-off-by: Stanislav Fomichev <sdf@google.com>
Link: https://lore.kernel.org/r/20231127190319.1190813-10-sdf@google.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>

authored by

Stanislav Fomichev and committed by
Alexei Starovoitov
df3ed000 11614723

+4
+3
tools/testing/selftests/bpf/xsk.c
··· 115 115 cfg->frame_size = XSK_UMEM__DEFAULT_FRAME_SIZE; 116 116 cfg->frame_headroom = XSK_UMEM__DEFAULT_FRAME_HEADROOM; 117 117 cfg->flags = XSK_UMEM__DEFAULT_FLAGS; 118 + cfg->tx_metadata_len = 0; 118 119 return; 119 120 } 120 121 ··· 124 123 cfg->frame_size = usr_cfg->frame_size; 125 124 cfg->frame_headroom = usr_cfg->frame_headroom; 126 125 cfg->flags = usr_cfg->flags; 126 + cfg->tx_metadata_len = usr_cfg->tx_metadata_len; 127 127 } 128 128 129 129 static int xsk_set_xdp_socket_config(struct xsk_socket_config *cfg, ··· 254 252 mr.chunk_size = umem->config.frame_size; 255 253 mr.headroom = umem->config.frame_headroom; 256 254 mr.flags = umem->config.flags; 255 + mr.tx_metadata_len = umem->config.tx_metadata_len; 257 256 258 257 err = setsockopt(umem->fd, SOL_XDP, XDP_UMEM_REG, &mr, sizeof(mr)); 259 258 if (err) {
+1
tools/testing/selftests/bpf/xsk.h
··· 200 200 __u32 frame_size; 201 201 __u32 frame_headroom; 202 202 __u32 flags; 203 + __u32 tx_metadata_len; 203 204 }; 204 205 205 206 int xsk_attach_xdp_program(struct bpf_program *prog, int ifindex, u32 xdp_flags);