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;
        }
 
        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,
        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) {