selftests/xsk: Support tx_metadata_len
authorStanislav Fomichev <sdf@google.com>
Mon, 27 Nov 2023 19:03:15 +0000 (11:03 -0800)
committerAlexei Starovoitov <ast@kernel.org>
Wed, 29 Nov 2023 22:59:41 +0000 (14:59 -0800)
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>
tools/testing/selftests/bpf/xsk.c
tools/testing/selftests/bpf/xsk.h

index e574711eeb84c7315e3b233985a48b7eb60dac9b..25d568abf0f200604e58466f20230ac5d4dc590d 100644 (file)
@@ -115,6 +115,7 @@ static void xsk_set_umem_config(struct xsk_umem_config *cfg,
                cfg->frame_size = XSK_UMEM__DEFAULT_FRAME_SIZE;
                cfg->frame_headroom = XSK_UMEM__DEFAULT_FRAME_HEADROOM;
                cfg->flags = XSK_UMEM__DEFAULT_FLAGS;
+               cfg->tx_metadata_len = 0;
                return;
        }
 
@@ -123,6 +124,7 @@ static void xsk_set_umem_config(struct xsk_umem_config *cfg,
        cfg->frame_size = usr_cfg->frame_size;
        cfg->frame_headroom = usr_cfg->frame_headroom;
        cfg->flags = usr_cfg->flags;
+       cfg->tx_metadata_len = usr_cfg->tx_metadata_len;
 }
 
 static int xsk_set_xdp_socket_config(struct xsk_socket_config *cfg,
@@ -252,6 +254,7 @@ int xsk_umem__create(struct xsk_umem **umem_ptr, void *umem_area,
        mr.chunk_size = umem->config.frame_size;
        mr.headroom = umem->config.frame_headroom;
        mr.flags = umem->config.flags;
+       mr.tx_metadata_len = umem->config.tx_metadata_len;
 
        err = setsockopt(umem->fd, SOL_XDP, XDP_UMEM_REG, &mr, sizeof(mr));
        if (err) {
index 771570bc37314356968d19d78f0f2ba8d534a349..93c2cc413cfcd03369ac98852c0393d4c66d4f07 100644 (file)
@@ -200,6 +200,7 @@ struct xsk_umem_config {
        __u32 frame_size;
        __u32 frame_headroom;
        __u32 flags;
+       __u32 tx_metadata_len;
 };
 
 int xsk_attach_xdp_program(struct bpf_program *prog, int ifindex, u32 xdp_flags);