Symbol: xsk
drivers/net/ethernet/engleder/tsnep_main.c
2297
return tsnep_xdp_setup_pool(adapter, bpf->xsk.pool,
drivers/net/ethernet/engleder/tsnep_main.c
2298
bpf->xsk.queue_id);
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
1190
dma_unmap_single(dev, fd_addr, swa->xsk.sgt_size,
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
1727
swa->xsk.xdp_buff = xdp_buffs[i];
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
2807
return dpaa2_xsk_setup_pool(dev, xdp->xsk.pool, xdp->xsk.queue_id);
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
300
xdp_buff = swa->xsk.xdp_buff;
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h
165
} xsk;
drivers/net/ethernet/freescale/dpaa2/dpaa2-xsk.c
365
swa->xsk.sgt_size = sgt_buf_size;
drivers/net/ethernet/freescale/dpaa2/dpaa2-xsk.c
50
xdp_buff = swa->xsk.xdp_buff;
drivers/net/ethernet/freescale/fec_main.c
2184
static struct sk_buff *fec_build_skb_zc(struct xdp_buff *xsk,
drivers/net/ethernet/freescale/fec_main.c
2187
size_t len = xdp_get_buff_len(xsk);
drivers/net/ethernet/freescale/fec_main.c
2192
xsk_buff_free(xsk);
drivers/net/ethernet/freescale/fec_main.c
2196
skb_put_data(skb, xsk->data, len);
drivers/net/ethernet/freescale/fec_main.c
2197
xsk_buff_free(xsk);
drivers/net/ethernet/freescale/fec_main.c
2203
struct xdp_buff *xsk, int cpu,
drivers/net/ethernet/freescale/fec_main.c
2208
u32 offset = xsk->data - xsk->data_hard_start;
drivers/net/ethernet/freescale/fec_main.c
2210
u32 len = xsk->data_end - xsk->data;
drivers/net/ethernet/freescale/fec_main.c
2232
dma = xsk_buff_xdp_get_frame_dma(xsk) + headroom + offset;
drivers/net/ethernet/freescale/fec_main.c
2236
txq->tx_buf[index].buf_p = xsk;
drivers/net/ethernet/freescale/fec_main.c
2279
struct xdp_buff *xsk;
drivers/net/ethernet/freescale/fec_main.c
2302
xsk = rxq->rx_buf[index].xdp;
drivers/net/ethernet/freescale/fec_main.c
2303
if (unlikely(!xsk)) {
drivers/net/ethernet/freescale/fec_main.c
2339
xsk->data = xsk->data_hard_start + data_start;
drivers/net/ethernet/freescale/fec_main.c
2341
xsk->data_end = xsk->data + pkt_len;
drivers/net/ethernet/freescale/fec_main.c
2342
xsk->data_meta = xsk->data;
drivers/net/ethernet/freescale/fec_main.c
2343
xsk_buff_dma_sync_for_cpu(xsk);
drivers/net/ethernet/freescale/fec_main.c
2353
act = bpf_prog_run_xdp(prog, xsk);
drivers/net/ethernet/freescale/fec_main.c
2358
skb = fec_build_skb_zc(xsk, &fep->napi);
drivers/net/ethernet/freescale/fec_main.c
2369
err = fec_enet_xsk_tx_xmit(fep, xsk, cpu, queue);
drivers/net/ethernet/freescale/fec_main.c
2372
xsk_buff_free(xsk);
drivers/net/ethernet/freescale/fec_main.c
2380
err = xdp_do_redirect(ndev, xsk, prog);
drivers/net/ethernet/freescale/fec_main.c
2386
xsk_buff_free(xsk);
drivers/net/ethernet/freescale/fec_main.c
2400
xsk_buff_free(xsk);
drivers/net/ethernet/freescale/fec_main.c
3853
bool xsk = !!rxq->xsk_pool;
drivers/net/ethernet/freescale/fec_main.c
3862
if (xsk)
drivers/net/ethernet/freescale/fec_main.c
3871
if (!xsk) {
drivers/net/ethernet/freescale/fec_main.c
4503
static void fec_init_rxq_bd_buffers(struct fec_enet_priv_rx_q *rxq, bool xsk)
drivers/net/ethernet/freescale/fec_main.c
4510
if (xsk)
drivers/net/ethernet/freescale/fec_main.c
4667
return fec_setup_xsk_pool(fep, bpf->xsk.pool,
drivers/net/ethernet/freescale/fec_main.c
4668
bpf->xsk.queue_id);
drivers/net/ethernet/google/gve/gve_main.c
1816
if (xdp->xsk.pool)
drivers/net/ethernet/google/gve/gve_main.c
1817
return gve_xsk_pool_enable(dev, xdp->xsk.pool, xdp->xsk.queue_id);
drivers/net/ethernet/google/gve/gve_main.c
1819
return gve_xsk_pool_disable(dev, xdp->xsk.queue_id);
drivers/net/ethernet/intel/i40e/i40e_main.c
13584
return i40e_xsk_pool_setup(vsi, xdp->xsk.pool,
drivers/net/ethernet/intel/i40e/i40e_main.c
13585
xdp->xsk.queue_id);
drivers/net/ethernet/intel/ice/ice_main.c
3001
ret = ice_xsk_pool_setup(vsi, xdp->xsk.pool, xdp->xsk.queue_id);
drivers/net/ethernet/intel/ice/ice_txrx.h
319
struct libeth_xdp_buff *xsk;
drivers/net/ethernet/intel/ice/ice_xsk.c
571
struct xdp_buff *first = (struct xdp_buff *)rx_ring->xsk;
drivers/net/ethernet/intel/ice/ice_xsk.c
677
rx_ring->xsk = (struct libeth_xdp_buff *)first;
drivers/net/ethernet/intel/idpf/idpf_txrx.h
563
struct libeth_xdp_buff *xsk;
drivers/net/ethernet/intel/idpf/xsk.c
485
xdp = rxq->xsk;
drivers/net/ethernet/intel/idpf/xsk.c
536
rxq->xsk = xdp;
drivers/net/ethernet/intel/idpf/xsk.c
556
struct xsk_buff_pool *pool = bpf->xsk.pool;
drivers/net/ethernet/intel/idpf/xsk.c
557
u32 qid = bpf->xsk.queue_id;
drivers/net/ethernet/intel/igb/igb_main.c
2949
return igb_xsk_pool_setup(adapter, xdp->xsk.pool,
drivers/net/ethernet/intel/igb/igb_main.c
2950
xdp->xsk.queue_id);
drivers/net/ethernet/intel/igc/igc_main.c
6863
return igc_xdp_setup_pool(adapter, bpf->xsk.pool,
drivers/net/ethernet/intel/igc/igc_main.c
6864
bpf->xsk.queue_id);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
10995
return ixgbe_xsk_pool_setup(adapter, xdp->xsk.pool,
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
10996
xdp->xsk.queue_id);
drivers/net/ethernet/intel/libeth/priv.h
27
void (*xsk)(struct libeth_xdp_buff *xdp);
drivers/net/ethernet/intel/libeth/tx.c
13
DEFINE_STATIC_CALL_NULL(xsk, libeth_xsk_buff_free_slow);
drivers/net/ethernet/intel/libeth/tx.c
28
static_call(xsk));
drivers/net/ethernet/intel/libeth/tx.c
39
static_call_update(xsk, ops ? ops->xsk : NULL);
drivers/net/ethernet/intel/libeth/xdp.c
432
.xsk = libeth_xsk_buff_free_slow,
drivers/net/ethernet/intel/libeth/xsk.c
133
const struct xdp_buff_xsk *xsk;
drivers/net/ethernet/intel/libeth/xsk.c
139
xsk = container_of(&xdp->base, typeof(*xsk), xdp);
drivers/net/ethernet/intel/libeth/xsk.c
140
if (xsk_uses_need_wakeup(xsk->pool) && ret == -ENOBUFS)
drivers/net/ethernet/intel/libeth/xsk.c
18
libeth_xsk_buff_free_slow(bq[i].xsk);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c
2890
return otx2_xsk_pool_setup(pf, xdp->xsk.pool, xdp->xsk.queue_id);
drivers/net/ethernet/mellanox/mlx5/core/en.h
1293
void mlx5e_build_nic_params(struct mlx5e_priv *priv, struct mlx5e_xsk *xsk, u16 mtu);
drivers/net/ethernet/mellanox/mlx5/core/en.h
318
struct mlx5e_xsk *xsk;
drivers/net/ethernet/mellanox/mlx5/core/en.h
620
int mlx5e_rq_set_handlers(struct mlx5e_rq *rq, struct mlx5e_params *params, bool xsk);
drivers/net/ethernet/mellanox/mlx5/core/en.h
978
struct mlx5e_xsk xsk;
drivers/net/ethernet/mellanox/mlx5/core/en/params.c
1162
struct mlx5e_xsk_param xsk = {0};
drivers/net/ethernet/mellanox/mlx5/core/en/params.c
1169
rqo.xsk = &xsk;
drivers/net/ethernet/mellanox/mlx5/core/en/params.c
1188
xsk.chunk_size = 1 << frame_shift;
drivers/net/ethernet/mellanox/mlx5/core/en/params.c
1189
xsk.unaligned = false;
drivers/net/ethernet/mellanox/mlx5/core/en/params.c
1194
xsk.unaligned = true;
drivers/net/ethernet/mellanox/mlx5/core/en/params.c
1201
xsk.chunk_size -= 1;
drivers/net/ethernet/mellanox/mlx5/core/en/params.c
1206
xsk.chunk_size = (1 << frame_shift) / 4 * 3;
drivers/net/ethernet/mellanox/mlx5/core/en/params.c
1323
struct mlx5e_xsk_param *xsk,
drivers/net/ethernet/mellanox/mlx5/core/en/params.c
1326
cparam->rq_opt.xsk = xsk;
drivers/net/ethernet/mellanox/mlx5/core/en/params.c
246
return rqo->xsk->headroom;
drivers/net/ethernet/mellanox/mlx5/core/en/params.c
258
struct mlx5e_xsk_param *xsk)
drivers/net/ethernet/mellanox/mlx5/core/en/params.c
262
return xsk->headroom + hw_mtu;
drivers/net/ethernet/mellanox/mlx5/core/en/params.c
282
struct mlx5e_xsk_param *xsk = mlx5e_rqo_xsk_param(rqo);
drivers/net/ethernet/mellanox/mlx5/core/en/params.c
289
if (xsk) {
drivers/net/ethernet/mellanox/mlx5/core/en/params.c
29
struct mlx5e_xsk_param *xsk = mlx5e_rqo_xsk_param(rqo);
drivers/net/ethernet/mellanox/mlx5/core/en/params.c
323
struct mlx5e_xsk_param *xsk = mlx5e_rqo_xsk_param(rqo);
drivers/net/ethernet/mellanox/mlx5/core/en/params.c
33
if (xsk)
drivers/net/ethernet/mellanox/mlx5/core/en/params.c
335
if (mlx5e_rx_get_linear_sz_skb(params, !!xsk) > PAGE_SIZE)
drivers/net/ethernet/mellanox/mlx5/core/en/params.c
339
if (xsk && mlx5e_rx_get_linear_sz_xsk(params, xsk) > xsk->chunk_size)
drivers/net/ethernet/mellanox/mlx5/core/en/params.c
34
req_page_shift = order_base_2(xsk->chunk_size);
drivers/net/ethernet/mellanox/mlx5/core/en/params.c
41
if (WARN_ON_ONCE(!xsk && req_page_shift < min_page_shift))
drivers/net/ethernet/mellanox/mlx5/core/en/params.c
469
rqo && rqo->xsk);
drivers/net/ethernet/mellanox/mlx5/core/en/params.c
572
struct mlx5e_xsk_param *xsk = mlx5e_rqo_xsk_param(rqo);
drivers/net/ethernet/mellanox/mlx5/core/en/params.c
591
mlx5e_mpwrq_max_log_rq_pkts(mdev, page_shift, xsk->unaligned));
drivers/net/ethernet/mellanox/mlx5/core/en/params.c
595
xsk->chunk_size);
drivers/net/ethernet/mellanox/mlx5/core/en/params.c
60
struct mlx5e_xsk_param *xsk = mlx5e_rqo_xsk_param(rqo);
drivers/net/ethernet/mellanox/mlx5/core/en/params.c
62
bool unaligned = xsk ? xsk->unaligned : false;
drivers/net/ethernet/mellanox/mlx5/core/en/params.c
65
if (xsk) {
drivers/net/ethernet/mellanox/mlx5/core/en/params.c
66
oversized = xsk->chunk_size < (1 << page_shift);
drivers/net/ethernet/mellanox/mlx5/core/en/params.c
67
WARN_ON_ONCE(xsk->chunk_size > (1 << page_shift));
drivers/net/ethernet/mellanox/mlx5/core/en/params.c
83
if (xsk->chunk_size % 3 == 0 && is_power_of_2(xsk->chunk_size / 3))
drivers/net/ethernet/mellanox/mlx5/core/en/params.h
153
struct mlx5e_xsk_param *xsk,
drivers/net/ethernet/mellanox/mlx5/core/en/params.h
16
struct mlx5e_xsk_param *xsk;
drivers/net/ethernet/mellanox/mlx5/core/en/params.h
179
return rqo ? rqo->xsk : NULL;
drivers/net/ethernet/mellanox/mlx5/core/en/rx_res.c
659
unsigned int ix, bool xsk)
drivers/net/ethernet/mellanox/mlx5/core/en/rx_res.c
663
if (xsk)
drivers/net/ethernet/mellanox/mlx5/core/en/rx_res.h
48
unsigned int ix, bool xsk);
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
101
err = mlx5e_xsk_add_pool(&priv->xsk, pool, ix);
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
105
mlx5e_build_xsk_param(pool, &xsk);
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
106
mlx5e_build_xsk_channel_param(priv->mdev, params, &xsk, cparam);
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
111
const char *recommendation = is_power_of_2(xsk.chunk_size) ?
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
115
xsk.chunk_size, recommendation);
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
153
mlx5e_xsk_remove_pool(&priv->xsk, ix);
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
180
&priv->xsk, ix);
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
205
mlx5e_xsk_remove_pool(&priv->xsk, ix);
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
23
static int mlx5e_xsk_get_pools(struct mlx5e_xsk *xsk)
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
25
if (!xsk->pools) {
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
26
xsk->pools = kzalloc_objs(*xsk->pools, MLX5E_MAX_NUM_CHANNELS);
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
27
if (unlikely(!xsk->pools))
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
31
xsk->refcnt++;
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
32
xsk->ever_used = true;
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
37
static void mlx5e_xsk_put_pools(struct mlx5e_xsk *xsk)
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
39
if (!--xsk->refcnt) {
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
40
kfree(xsk->pools);
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
41
xsk->pools = NULL;
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
45
static int mlx5e_xsk_add_pool(struct mlx5e_xsk *xsk, struct xsk_buff_pool *pool, u16 ix)
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
49
err = mlx5e_xsk_get_pools(xsk);
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
53
xsk->pools[ix] = pool;
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
57
static void mlx5e_xsk_remove_pool(struct mlx5e_xsk *xsk, u16 ix)
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
59
xsk->pools[ix] = NULL;
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
61
mlx5e_xsk_put_pools(xsk);
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
70
void mlx5e_build_xsk_param(struct xsk_buff_pool *pool, struct mlx5e_xsk_param *xsk)
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
72
xsk->headroom = xsk_pool_get_headroom(pool);
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
73
xsk->chunk_size = xsk_pool_get_chunk_size(pool);
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
74
xsk->unaligned = pool->unaligned;
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
83
struct mlx5e_xsk_param xsk;
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
87
if (unlikely(mlx5e_xsk_get_pool(&priv->channels.params, &priv->xsk, ix)))
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.h
10
struct mlx5e_xsk *xsk, u16 ix)
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.h
12
if (!xsk || !xsk->pools)
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.h
18
return xsk->pools[ix];
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.h
22
void mlx5e_build_xsk_param(struct xsk_buff_pool *pool, struct mlx5e_xsk_param *xsk);
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c
100
err = mlx5e_init_xsk_rq(c, params, pool, rqo->xsk, xskrq);
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c
31
struct mlx5e_xsk_param *xsk = mlx5e_rqo_xsk_param(rqo);
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c
33
if (WARN_ON(!xsk))
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c
39
if ((size_t)xsk->chunk_size > PAGE_SIZE || xsk->chunk_size < MLX5E_MIN_XSK_CHUNK_SIZE) {
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c
40
mlx5_core_err(mdev, "XSK chunk size %u out of bounds [%u, %lu]\n", xsk->chunk_size,
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c
59
struct mlx5e_xsk_param *xsk,
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c
82
err = mlx5e_rq_set_handlers(rq, params, xsk);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2835
struct mlx5e_xsk_param xsk;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2892
mlx5e_build_xsk_param(xsk_pool, &xsk);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2893
mlx5e_build_xsk_channel_param(priv->mdev, params, &xsk, cparam);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2985
xsk_pool = mlx5e_xsk_get_pool(&chs->params, chs->params.xsk, i);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
4598
if (priv->xsk.refcnt) {
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
4601
priv->xsk.refcnt);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
4606
priv->xsk.refcnt);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
4650
mlx5e_xsk_get_pool(&chs->params, chs->params.xsk, ix);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
4652
struct mlx5e_xsk_param xsk;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
4658
mlx5e_build_xsk_param(xsk_pool, &xsk);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
4659
rqo.xsk = &xsk;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
4672
max_mtu_frame = MLX5E_HW2SW_MTU(new_params, xsk.chunk_size - hr);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
4741
if (priv->xsk.refcnt &&
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
5268
return mlx5e_xsk_setup_pool(dev, xdp->xsk.pool,
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
5269
xdp->xsk.queue_id);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
5365
void mlx5e_build_nic_params(struct mlx5e_priv *priv, struct mlx5e_xsk *xsk, u16 mtu)
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
5417
params->xsk = xsk;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
6034
mlx5e_build_nic_params(priv, &priv->xsk, netdev->mtu);
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
2645
int mlx5e_rq_set_handlers(struct mlx5e_rq *rq, struct mlx5e_params *params, bool xsk)
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
2653
rq->mpwqe.skb_from_cqe_mpwrq = xsk ?
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
2677
rq->wqe.skb_from_cqe = xsk ?
drivers/net/ethernet/mellanox/mlx5/core/en_stats.c
2624
(NUM_XSKRQ_STATS * max_nch * priv->xsk.ever_used) +
drivers/net/ethernet/mellanox/mlx5/core/en_stats.c
2625
(NUM_XSKSQ_STATS * max_nch * priv->xsk.ever_used);
drivers/net/ethernet/mellanox/mlx5/core/en_stats.c
2631
bool is_xsk = priv->xsk.ever_used;
drivers/net/ethernet/mellanox/mlx5/core/en_stats.c
2664
bool is_xsk = priv->xsk.ever_used;
drivers/net/ethernet/netronome/nfp/nfp_net_common.c
2230
return nfp_net_xsk_setup_pool(netdev, xdp->xsk.pool,
drivers/net/ethernet/netronome/nfp/nfp_net_common.c
2231
xdp->xsk.queue_id);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
6934
return stmmac_xdp_setup_pool(priv, bpf->xsk.pool,
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
6935
bpf->xsk.queue_id);
drivers/net/ethernet/ti/icssg/icssg_prueth.c
1585
return bpf->xsk.pool ?
drivers/net/ethernet/ti/icssg/icssg_prueth.c
1586
prueth_xsk_pool_enable(emac, bpf->xsk.pool, bpf->xsk.queue_id) :
drivers/net/ethernet/ti/icssg/icssg_prueth.c
1587
prueth_xsk_pool_disable(emac, bpf->xsk.queue_id);
drivers/net/netkit.c
265
if (xdp->xsk.queue_id >= dev->real_num_rx_queues)
drivers/net/netkit.c
268
rxq = __netif_get_rx_queue(dev, xdp->xsk.queue_id);
drivers/net/netkit.c
276
create = xdp->xsk.pool;
drivers/net/netkit.c
278
xdp_lower.xsk.queue_id = get_netdev_rx_queue_index(rxq->lease);
drivers/net/virtio_net.c
108
u64 xsk;
drivers/net/virtio_net.c
1451
if (stats.xsk)
drivers/net/virtio_net.c
1452
xsk_tx_completed(sq->xsk_pool, stats.xsk);
drivers/net/virtio_net.c
5999
if (xdp->xsk.pool)
drivers/net/virtio_net.c
6000
return virtnet_xsk_pool_enable(dev, xdp->xsk.pool,
drivers/net/virtio_net.c
6001
xdp->xsk.queue_id);
drivers/net/virtio_net.c
6003
return virtnet_xsk_pool_disable(dev, xdp->xsk.queue_id);
drivers/net/virtio_net.c
617
stats->xsk++;
drivers/net/virtio_net.c
631
if (stats->xsk)
drivers/net/virtio_net.c
632
virtnet_xsk_completed(sq, stats->xsk);
include/linux/netdevice.h
1027
} xsk;
include/net/libeth/tx.h
67
struct libeth_xdp_buff *xsk;
include/net/libeth/xdp.h
1145
#define __libeth_xdp_tx_init_bulk(bq, pr, d, xdpsqs, num, xsk, ub, un) do { \
include/net/libeth/xdp.h
1151
if (un || (xsk)) { \
include/net/libeth/xdp.h
1763
typeof(libeth_xsk_buff_free_slow) xsk)
include/net/libeth/xdp.h
1788
xsk(sqe->xsk);
include/net/libeth/xdp.h
348
struct libeth_xdp_buff *xsk;
include/net/libeth/xsk.h
115
struct libeth_xdp_buff *xdp = frm.xsk;
include/net/libeth/xsk.h
125
sqe->xsk = xdp;
include/net/libeth/xsk.h
28
.xsk = xdp,
include/net/libeth/xsk.h
50
.xsk = frag,
include/net/libeth/xsk.h
549
__LIBETH_XDP_DEFINE_FLUSH_TX(name, prep, xmit, xsk)
include/net/libeth/xsk.h
557
u32 __LIBETH_XDP_DEFINE_RUN_PROG(name, flush, xsk)
include/net/libeth/xsk.h
566
bool __LIBETH_XDP_DEFINE_RUN_PASS(name, run, populate, xsk)
include/net/libeth/xsk.h
585
__LIBETH_XDP_DEFINE_FINALIZE(name, flush, finalize, xsk)
net/xdp/xsk_buff_pool.c
154
bpf.xsk.pool = NULL;
net/xdp/xsk_buff_pool.c
155
bpf.xsk.queue_id = pool->queue_id;
net/xdp/xsk_buff_pool.c
244
bpf.xsk.pool = pool;
net/xdp/xsk_buff_pool.c
245
bpf.xsk.queue_id = queue_id;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1018
rcvd = xsk_ring_cons__peek(&xsk->rx, xsk->batch_size, &idx_rx);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1035
const struct xdp_desc *desc = xsk_ring_cons__rx_desc(&xsk->rx, idx_rx++);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1081
xsk_ring_cons__cancel(&xsk->rx, nb_frags);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1094
xsk_ring_cons__release(&xsk->rx, frags_processed);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1104
bool all_packets_received(struct test_spec *test, struct xsk_socket_info *xsk, u32 sock_num,
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1107
struct pkt_stream *pkt_stream = xsk->pkt_stream;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1127
struct xsk_socket_info *xsk;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1140
xsk = &test->ifobj_rx->xsk_arr[sock_num];
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1142
if ((all_packets_received(test, xsk, sock_num, bitmap)))
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1145
res = __receive_pkts(test, xsk);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1163
static int __send_pkts(struct ifobject *ifobject, struct xsk_socket_info *xsk,
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1167
struct pkt_stream *pkt_stream = xsk->pkt_stream;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1168
struct xsk_umem_info *umem = xsk->umem;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1175
if (pkts_in_flight >= (int)((umem_size(umem) - xsk->batch_size * buffer_len) /
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1177
ret = kick_tx(xsk);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1183
fds.fd = xsk_socket__fd(xsk->xsk);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1186
while (xsk_ring_prod__reserve(&xsk->tx, xsk->batch_size, &idx) < xsk->batch_size) {
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1206
complete_pkts(xsk, xsk->batch_size);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1209
for (i = 0; i < xsk->batch_size; i++) {
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1217
if (nb_frags > xsk->batch_size - i) {
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1219
xsk_ring_prod__cancel(&xsk->tx, xsk->batch_size - i);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1225
struct xdp_desc *tx_desc = xsk_ring_prod__tx_desc(&xsk->tx, idx + i);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1239
pkt_generate(xsk, umem, tx_desc->addr, tx_desc->len, pkt->pkt_nb,
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1262
xsk_ring_prod__submit(&xsk->tx, i);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1263
xsk->outstanding_tx += valid_frags;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1277
if (complete_pkts(xsk, i))
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1287
static int wait_for_tx_completion(struct xsk_socket_info *xsk)
tools/testing/selftests/bpf/prog_tests/test_xsk.c
129
static int enable_busy_poll(struct xsk_socket_info *xsk)
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1297
while (xsk->outstanding_tx) {
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1306
complete_pkts(xsk, xsk->batch_size);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
134
if (setsockopt(xsk_socket__fd(xsk->xsk), SOL_SOCKET, SO_PREFER_BUSY_POLL,
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1351
static int get_xsk_stats(struct xsk_socket *xsk, struct xdp_statistics *stats)
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1353
int fd = xsk_socket__fd(xsk), err;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1376
struct xsk_socket *xsk = ifobject->xsk->xsk;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1380
err = kick_rx(ifobject->xsk);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1384
err = get_xsk_stats(xsk, &stats);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
139
if (setsockopt(xsk_socket__fd(xsk->xsk), SOL_SOCKET, SO_BUSY_POLL,
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1394
if (stats.rx_dropped == ifobject->xsk->pkt_stream->nb_pkts / 2 ||
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1395
stats.rx_dropped == ifobject->xsk->pkt_stream->nb_pkts / 2 - 1)
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1403
struct xsk_socket *xsk = ifobject->xsk->xsk;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1408
err = kick_rx(ifobject->xsk);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1412
err = get_xsk_stats(xsk, &stats);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1424
struct xsk_socket *xsk = ifobject->xsk->xsk;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1429
err = kick_rx(ifobject->xsk);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
143
sock_opt = xsk->batch_size;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1433
err = get_xsk_stats(xsk, &stats);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
144
if (setsockopt(xsk_socket__fd(xsk->xsk), SOL_SOCKET, SO_BUSY_POLL_BUDGET,
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1445
struct xsk_socket *xsk = ifobject->xsk->xsk;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1446
int fd = xsk_socket__fd(xsk);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1459
if (stats.tx_invalid_descs != ifobject->xsk->pkt_stream->nb_pkts / 2) {
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1463
ifobject->xsk->pkt_stream->nb_pkts);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
151
int xsk_configure_socket(struct xsk_socket_info *xsk, struct xsk_umem_info *umem,
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1519
ifobject->xsk = &ifobject->xsk_arr[0];
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1573
struct xsk_umem_info *umem = ifobject->xsk->umem;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
158
xsk->umem = umem;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
159
cfg.rx_size = xsk->rxqsize;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1607
ifobject->xsk = &ifobject->xsk_arr[0];
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1612
ret = xsk_populate_fill_ring(umem, ifobject->xsk->pkt_stream,
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1618
ret = xsk_update_xskmap(ifobject->xskmap, ifobject->xsk_arr[i].xsk, i);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1666
err = xsk_update_xskmap(ifobject->xskmap, ifobject->xsk->xsk, 0);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1706
struct xsk_umem_info *umem = ifobj->xsk->umem;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
171
txr = ifobject->tx_on ? &xsk->tx : NULL;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
172
rxr = ifobject->rx_on ? &xsk->rx : NULL;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
173
return xsk_socket__create(&xsk->xsk, ifobject->ifindex, 0, umem->umem, rxr, txr, &cfg);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1779
xsk_socket__delete(ifobj->xsk_arr[i].xsk);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1828
pkt_stream_reset(ifobj2->xsk->pkt_stream);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1832
pkt_stream_reset(ifobj1->xsk->pkt_stream);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1874
if ((ifobj_rx->xsk->umem->unaligned_mode && !ifobj_rx->unaligned_supp) ||
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1875
(ifobj_tx->xsk->umem->unaligned_mode && !ifobj_tx->unaligned_supp)) {
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1951
test->ifobj_tx->xsk = &test->ifobj_tx->xsk_arr[1];
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1952
test->ifobj_rx->xsk = &test->ifobj_rx->xsk_arr[1];
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1954
ret = xsk_update_xskmap(test->ifobj_rx->xskmap, test->ifobj_rx->xsk->xsk, 0);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1980
test->ifobj_rx->xsk->umem->frame_headroom = UMEM_HEADROOM_TEST_SIZE;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
1986
struct xsk_umem_info *umem = test->ifobj_rx->xsk->umem;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
2019
test->ifobj_tx->xsk->pkt_stream = tmp;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
2024
test->ifobj_rx->xsk->pkt_stream = tmp;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
2026
test->ifobj_rx->xsk->rxqsize = DEFAULT_UMEM_BUFFERS;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
2039
test->ifobj_tx->xsk->pkt_stream = tmp;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
2044
test->ifobj_rx->xsk->pkt_stream = tmp;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
2090
struct xsk_umem_info *umem = test->ifobj_tx->xsk->umem;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
212
ifobj->xsk = &ifobj->xsk_arr[0];
tools/testing/selftests/bpf/prog_tests/test_xsk.c
2134
struct xsk_umem_info *umem = test->ifobj_tx->xsk->umem;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
2184
skel_rx->maps.xsk, skel_tx->maps.xsk);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
2198
skel_rx->maps.xsk, skel_tx->maps.xsk);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
2217
skel_rx->maps.xsk, skel_tx->maps.xsk);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
2243
test->ifobj_tx->xsk->umem->frame_size = 2048;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
230
struct xsk_socket_info *xsk = &ifobj->xsk_arr[j];
tools/testing/selftests/bpf/prog_tests/test_xsk.c
2314
test->ifobj_rx->xsk->pkt_stream->pkts[2].valid = false;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
2315
test->ifobj_rx->xsk->pkt_stream->nb_valid_entries--;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
232
memset(xsk, 0, sizeof(*xsk));
tools/testing/selftests/bpf/prog_tests/test_xsk.c
233
xsk->rxqsize = XSK_RING_CONS__DEFAULT_NUM_DESCS;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
235
xsk->umem_real = umem_real;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
236
xsk->umem = umem_real;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
237
xsk->batch_size = DEFAULT_BATCH_SIZE;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
239
xsk->pkt_stream = test->tx_pkt_stream_default;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
241
xsk->pkt_stream = test->rx_pkt_stream_default;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
243
memcpy(xsk->src_mac, g_mac, ETH_ALEN);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
2435
umem_sz = umem_size(test->ifobj_tx->xsk->umem);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
244
memcpy(xsk->dst_mac, g_mac, ETH_ALEN);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
245
xsk->src_mac[5] += ((j * 2) + 0);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
246
xsk->dst_mac[5] += ((j * 2) + 1);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
2472
test->ifobj_tx->xsk->batch_size = 1;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
2473
test->ifobj_rx->xsk->batch_size = 1;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
2479
test->ifobj_tx->xsk->batch_size = DEFAULT_BATCH_SIZE - 1;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
2480
test->ifobj_rx->xsk->batch_size = DEFAULT_BATCH_SIZE - 1;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
249
ifobj->xsk->umem->num_frames = DEFAULT_UMEM_BUFFERS;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
2493
test->ifobj_rx->xsk->umem->num_frames = max_descs;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
2494
test->ifobj_rx->xsk->umem->fill_size = max_descs;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
2495
test->ifobj_rx->xsk->umem->comp_size = max_descs;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
2496
test->ifobj_tx->xsk->batch_size = XSK_RING_PROD__DEFAULT_NUM_DESCS;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
2497
test->ifobj_rx->xsk->batch_size = XSK_RING_PROD__DEFAULT_NUM_DESCS;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
250
ifobj->xsk->umem->frame_size = XSK_UMEM__DEFAULT_FRAME_SIZE;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
2506
test->ifobj_tx->xsk->batch_size = test->ifobj_tx->ring.tx_max_pending - 8;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
2507
test->ifobj_rx->xsk->batch_size = test->ifobj_tx->ring.tx_max_pending - 8;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
2525
skel_rx->maps.xsk, skel_tx->maps.xsk);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
2618
test->ifobj_tx->xsk->batch_size = nr_packets;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
2619
test->ifobj_tx->xsk->check_consumer = true;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
267
test->xskmap_rx = ifobj_rx->xdp_progs->maps.xsk;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
269
test->xskmap_tx = ifobj_tx->xdp_progs->maps.xsk;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
309
test->ifobj_tx->xsk->umem->unaligned_mode = true;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
310
test->ifobj_rx->xsk->umem->unaligned_mode = true;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
315
test->ifobj_tx->xsk->umem->frame_size = size;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
316
test->ifobj_rx->xsk->umem->frame_size = size;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
384
struct pkt_stream *tx_pkt_stream = test->ifobj_tx->xsk->pkt_stream;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
385
struct pkt_stream *rx_pkt_stream = test->ifobj_rx->xsk->pkt_stream;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
388
pkt_stream_delete(test->ifobj_tx->xsk->pkt_stream);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
389
test->ifobj_tx->xsk->pkt_stream = test->tx_pkt_stream_default;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
393
pkt_stream_delete(test->ifobj_rx->xsk->pkt_stream);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
394
test->ifobj_rx->xsk->pkt_stream = test->rx_pkt_stream_default;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
502
ifobj->xsk->pkt_stream = pkt_stream_generate(nb_pkts, pkt_len);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
504
if (!ifobj->xsk->pkt_stream)
tools/testing/selftests/bpf/prog_tests/test_xsk.c
527
pkt_stream = pkt_stream_clone(ifobj->xsk->pkt_stream);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
531
for (i = 1; i < ifobj->xsk->pkt_stream->nb_pkts; i += 2)
tools/testing/selftests/bpf/prog_tests/test_xsk.c
534
ifobj->xsk->pkt_stream = pkt_stream;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
551
struct pkt_stream *pkt_stream = test->ifobj_tx->xsk->pkt_stream;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
554
if (test->ifobj_rx->xsk->pkt_stream != test->rx_pkt_stream_default)
tools/testing/selftests/bpf/prog_tests/test_xsk.c
559
pkt_stream_delete(test->ifobj_rx->xsk->pkt_stream);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
561
test->ifobj_rx->xsk->pkt_stream = pkt_stream_generate(pkt_stream->nb_pkts,
tools/testing/selftests/bpf/prog_tests/test_xsk.c
563
if (!test->ifobj_rx->xsk->pkt_stream)
tools/testing/selftests/bpf/prog_tests/test_xsk.c
566
pkt_stream = test->ifobj_rx->xsk->pkt_stream;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
60
static void gen_eth_hdr(struct xsk_socket_info *xsk, struct ethhdr *eth_hdr)
tools/testing/selftests/bpf/prog_tests/test_xsk.c
601
struct pkt_stream *later_free_tx = test->ifobj_tx->xsk->pkt_stream;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
602
struct pkt_stream *later_free_rx = test->ifobj_rx->xsk->pkt_stream;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
62
memcpy(eth_hdr->h_dest, xsk->dst_mac, ETH_ALEN);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
627
static void pkt_generate(struct xsk_socket_info *xsk, struct xsk_umem_info *umem, u64 addr, u32 len,
tools/testing/selftests/bpf/prog_tests/test_xsk.c
63
memcpy(eth_hdr->h_source, xsk->src_mac, ETH_ALEN);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
636
gen_eth_hdr(xsk, data);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
705
test->ifobj_tx->xsk->pkt_stream = pkt_stream;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
710
test->ifobj_rx->xsk->pkt_stream = pkt_stream;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
898
static bool kick_tx_with_check(struct xsk_socket_info *xsk, int *ret)
tools/testing/selftests/bpf/prog_tests/test_xsk.c
904
cons = load_value(xsk->tx.consumer);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
905
ready_to_send = load_value(xsk->tx.producer) - cons;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
906
*ret = sendto(xsk_socket__fd(xsk->xsk), NULL, 0, MSG_DONTWAIT, NULL, 0);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
908
delta = load_value(xsk->tx.consumer) - cons;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
922
int kick_tx(struct xsk_socket_info *xsk)
tools/testing/selftests/bpf/prog_tests/test_xsk.c
926
if (xsk->check_consumer) {
tools/testing/selftests/bpf/prog_tests/test_xsk.c
927
if (!kick_tx_with_check(xsk, &ret))
tools/testing/selftests/bpf/prog_tests/test_xsk.c
930
ret = sendto(xsk_socket__fd(xsk->xsk), NULL, 0, MSG_DONTWAIT, NULL, 0);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
941
int kick_rx(struct xsk_socket_info *xsk)
tools/testing/selftests/bpf/prog_tests/test_xsk.c
945
ret = recvfrom(xsk_socket__fd(xsk->xsk), NULL, 0, MSG_DONTWAIT, NULL, NULL);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
952
static int complete_pkts(struct xsk_socket_info *xsk, int batch_size)
tools/testing/selftests/bpf/prog_tests/test_xsk.c
958
if (xsk_ring_prod__needs_wakeup(&xsk->tx)) {
tools/testing/selftests/bpf/prog_tests/test_xsk.c
959
ret = kick_tx(xsk);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
964
rcvd = xsk_ring_cons__peek(&xsk->umem->cq, batch_size, &idx);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
966
if (rcvd > xsk->outstanding_tx) {
tools/testing/selftests/bpf/prog_tests/test_xsk.c
967
u64 addr = *xsk_ring_cons__comp_addr(&xsk->umem->cq, idx + rcvd - 1);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
975
xsk_ring_cons__release(&xsk->umem->cq, rcvd);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
976
xsk->outstanding_tx -= rcvd;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
982
static int __receive_pkts(struct test_spec *test, struct xsk_socket_info *xsk)
tools/testing/selftests/bpf/prog_tests/test_xsk.c
986
struct pkt_stream *pkt_stream = xsk->pkt_stream;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
988
struct xsk_umem_info *umem = xsk->umem;
tools/testing/selftests/bpf/prog_tests/test_xsk.c
994
fds.fd = xsk_socket__fd(xsk->xsk);
tools/testing/selftests/bpf/prog_tests/test_xsk.c
997
ret = kick_rx(xsk);
tools/testing/selftests/bpf/prog_tests/test_xsk.h
126
struct xsk_socket_info *xsk;
tools/testing/selftests/bpf/prog_tests/test_xsk.h
160
int xsk_configure_socket(struct xsk_socket_info *xsk, struct xsk_umem_info *umem,
tools/testing/selftests/bpf/prog_tests/test_xsk.h
88
struct xsk_socket *xsk;
tools/testing/selftests/bpf/prog_tests/test_xsk.h
98
int kick_rx(struct xsk_socket_info *xsk);
tools/testing/selftests/bpf/prog_tests/test_xsk.h
99
int kick_tx(struct xsk_socket_info *xsk);
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
106
printf("%p: tx_desc[%d] -> %lx\n", xsk, i, addr);
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
111
ret = xsk_ring_prod__reserve(&xsk->fill, UMEM_NUM / 2, &idx);
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
119
printf("%p: rx_desc[%d] -> %lx\n", xsk, i, addr);
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
120
*xsk_ring_prod__fill_addr(&xsk->fill, i) = addr;
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
122
xsk_ring_prod__submit(&xsk->fill, ret);
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
127
static void close_xsk(struct xsk *xsk)
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
129
if (xsk->socket)
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
130
xsk_socket__delete(xsk->socket);
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
131
if (xsk->umem)
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
132
xsk_umem__delete(xsk->umem);
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
133
munmap(xsk->umem_area, UMEM_SIZE);
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
136
static int generate_packet(struct xsk *xsk, __u16 dst_port)
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
147
ret = xsk_ring_prod__reserve(&xsk->tx, 1, &idx);
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
151
tx_desc = xsk_ring_prod__tx_desc(&xsk->tx, idx);
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
153
printf("%p: tx_desc[%u]->addr=%llx\n", xsk, idx, tx_desc->addr);
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
154
data = xsk_umem__get_data(xsk->umem_area, tx_desc->addr);
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
194
xsk_ring_prod__submit(&xsk->tx, 1);
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
196
ret = sendto(xsk_socket__fd(xsk->socket), NULL, 0, MSG_DONTWAIT, NULL, 0);
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
227
static void complete_tx(struct xsk *xsk)
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
234
if (ASSERT_EQ(xsk_ring_cons__peek(&xsk->comp, 1, &idx), 1, "xsk_ring_cons__peek")) {
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
235
addr = *xsk_ring_cons__comp_addr(&xsk->comp, idx);
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
237
printf("%p: complete tx idx=%u addr=%llx\n", xsk, idx, addr);
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
239
data = xsk_umem__get_data(xsk->umem_area, addr);
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
244
xsk_ring_cons__release(&xsk->comp, 1);
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
248
static void refill_rx(struct xsk *xsk, __u64 addr)
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
252
if (ASSERT_EQ(xsk_ring_prod__reserve(&xsk->fill, 1, &idx), 1, "xsk_ring_prod__reserve")) {
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
253
printf("%p: complete idx=%u addr=%llx\n", xsk, idx, addr);
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
254
*xsk_ring_prod__fill_addr(&xsk->fill, idx) = addr;
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
255
xsk_ring_prod__submit(&xsk->fill, 1);
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
259
static int verify_xsk_metadata(struct xsk *xsk, bool sent_from_af_xdp)
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
273
ret = recvfrom(xsk_socket__fd(xsk->socket), NULL, 0, MSG_DONTWAIT, NULL, NULL);
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
277
fds.fd = xsk_socket__fd(xsk->socket);
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
284
ret = xsk_ring_cons__peek(&xsk->rx, 1, &idx);
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
288
rx_desc = xsk_ring_cons__rx_desc(&xsk->rx, idx);
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
292
xsk, idx, rx_desc->addr, addr, comp_addr);
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
293
data = xsk_umem__get_data(xsk->umem_area, addr);
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
331
xsk_ring_cons__release(&xsk->rx, 1);
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
332
refill_rx(xsk, comp_addr);
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
358
struct xsk tx_xsk = {};
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
359
struct xsk rx_xsk = {};
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
455
ret = bpf_map_update_elem(bpf_map__fd(bpf_obj->maps.xsk), &queue_id, &sock_fd, 0);
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
59
static int open_xsk(int ifindex, struct xsk *xsk)
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
80
xsk->umem_area = mmap(NULL, UMEM_SIZE, PROT_READ | PROT_WRITE, mmap_flags, -1, 0);
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
81
if (!ASSERT_NEQ(xsk->umem_area, MAP_FAILED, "mmap"))
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
84
ret = xsk_umem__create(&xsk->umem,
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
85
xsk->umem_area, UMEM_SIZE,
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
86
&xsk->fill,
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
87
&xsk->comp,
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
92
ret = xsk_socket__create(&xsk->socket, ifindex, QUEUE_ID,
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
93
xsk->umem,
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
94
&xsk->rx,
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
95
&xsk->tx,
tools/testing/selftests/bpf/progs/xdp_hw_metadata.c
114
return bpf_redirect_map(&xsk, ctx->rx_queue_index, XDP_PASS);
tools/testing/selftests/bpf/progs/xdp_hw_metadata.c
13
} xsk SEC(".maps");
tools/testing/selftests/bpf/progs/xdp_metadata.c
102
return bpf_redirect_map(&xsk, ctx->rx_queue_index, XDP_PASS);
tools/testing/selftests/bpf/progs/xdp_metadata.c
13
} xsk SEC(".maps");
tools/testing/selftests/bpf/progs/xsk_xdp_progs.c
122
return bpf_redirect_map(&xsk, 0, XDP_DROP);
tools/testing/selftests/bpf/progs/xsk_xdp_progs.c
16
} xsk SEC(".maps");
tools/testing/selftests/bpf/progs/xsk_xdp_progs.c
24
return bpf_redirect_map(&xsk, 0, XDP_DROP);
tools/testing/selftests/bpf/progs/xsk_xdp_progs.c
35
return bpf_redirect_map(&xsk, 0, XDP_DROP);
tools/testing/selftests/bpf/progs/xsk_xdp_progs.c
58
return bpf_redirect_map(&xsk, 0, XDP_DROP);
tools/testing/selftests/bpf/progs/xsk_xdp_progs.c
75
return bpf_redirect_map(&xsk, idx, XDP_DROP);
tools/testing/selftests/bpf/progs/xsk_xdp_progs.c
95
return bpf_redirect_map(&xsk, 0, XDP_DROP);
tools/testing/selftests/bpf/xdp_hw_metadata.c
112
xsk->umem_area = mmap(NULL, UMEM_SIZE, PROT_READ | PROT_WRITE, mmap_flags, -1, 0);
tools/testing/selftests/bpf/xdp_hw_metadata.c
113
if (xsk->umem_area == MAP_FAILED)
tools/testing/selftests/bpf/xdp_hw_metadata.c
116
ret = xsk_umem__create(&xsk->umem,
tools/testing/selftests/bpf/xdp_hw_metadata.c
117
xsk->umem_area, UMEM_SIZE,
tools/testing/selftests/bpf/xdp_hw_metadata.c
118
&xsk->fill,
tools/testing/selftests/bpf/xdp_hw_metadata.c
119
&xsk->comp,
tools/testing/selftests/bpf/xdp_hw_metadata.c
124
ret = xsk_socket__create(&xsk->socket, ifindex, queue_id,
tools/testing/selftests/bpf/xdp_hw_metadata.c
125
xsk->umem,
tools/testing/selftests/bpf/xdp_hw_metadata.c
126
&xsk->rx,
tools/testing/selftests/bpf/xdp_hw_metadata.c
127
&xsk->tx,
tools/testing/selftests/bpf/xdp_hw_metadata.c
138
printf("%p: tx_desc[%d] -> %lx\n", xsk, i, addr);
tools/testing/selftests/bpf/xdp_hw_metadata.c
143
ret = xsk_ring_prod__reserve(&xsk->fill, UMEM_NUM / 2, &idx);
tools/testing/selftests/bpf/xdp_hw_metadata.c
146
printf("%p: rx_desc[%d] -> %lx\n", xsk, i, addr);
tools/testing/selftests/bpf/xdp_hw_metadata.c
147
*xsk_ring_prod__fill_addr(&xsk->fill, idx + i) = addr;
tools/testing/selftests/bpf/xdp_hw_metadata.c
149
xsk_ring_prod__submit(&xsk->fill, ret);
tools/testing/selftests/bpf/xdp_hw_metadata.c
154
static void close_xsk(struct xsk *xsk)
tools/testing/selftests/bpf/xdp_hw_metadata.c
156
if (xsk->umem)
tools/testing/selftests/bpf/xdp_hw_metadata.c
157
xsk_umem__delete(xsk->umem);
tools/testing/selftests/bpf/xdp_hw_metadata.c
158
if (xsk->socket)
tools/testing/selftests/bpf/xdp_hw_metadata.c
159
xsk_socket__delete(xsk->socket);
tools/testing/selftests/bpf/xdp_hw_metadata.c
160
munmap(xsk->umem_area, UMEM_SIZE);
tools/testing/selftests/bpf/xdp_hw_metadata.c
163
static void refill_rx(struct xsk *xsk, __u64 addr)
tools/testing/selftests/bpf/xdp_hw_metadata.c
167
if (xsk_ring_prod__reserve(&xsk->fill, 1, &idx) == 1) {
tools/testing/selftests/bpf/xdp_hw_metadata.c
168
printf("%p: complete rx idx=%u addr=%llx\n", xsk, idx, addr);
tools/testing/selftests/bpf/xdp_hw_metadata.c
169
*xsk_ring_prod__fill_addr(&xsk->fill, idx) = addr;
tools/testing/selftests/bpf/xdp_hw_metadata.c
170
xsk_ring_prod__submit(&xsk->fill, 1);
tools/testing/selftests/bpf/xdp_hw_metadata.c
174
static int kick_tx(struct xsk *xsk)
tools/testing/selftests/bpf/xdp_hw_metadata.c
176
return sendto(xsk_socket__fd(xsk->socket), NULL, 0, MSG_DONTWAIT, NULL, 0);
tools/testing/selftests/bpf/xdp_hw_metadata.c
179
static int kick_rx(struct xsk *xsk)
tools/testing/selftests/bpf/xdp_hw_metadata.c
181
return recvfrom(xsk_socket__fd(xsk->socket), NULL, 0, MSG_DONTWAIT, NULL, NULL);
tools/testing/selftests/bpf/xdp_hw_metadata.c
304
static bool complete_tx(struct xsk *xsk, clockid_t clock_id)
tools/testing/selftests/bpf/xdp_hw_metadata.c
311
if (!xsk_ring_cons__peek(&xsk->comp, 1, &idx))
tools/testing/selftests/bpf/xdp_hw_metadata.c
314
addr = *xsk_ring_cons__comp_addr(&xsk->comp, idx);
tools/testing/selftests/bpf/xdp_hw_metadata.c
315
data = xsk_umem__get_data(xsk->umem_area, addr);
tools/testing/selftests/bpf/xdp_hw_metadata.c
318
printf("%p: complete tx idx=%u addr=%llx\n", xsk, idx, addr);
tools/testing/selftests/bpf/xdp_hw_metadata.c
339
xsk_ring_cons__release(&xsk->comp, 1);
tools/testing/selftests/bpf/xdp_hw_metadata.c
352
static void ping_pong(struct xsk *xsk, void *rx_packet, clockid_t clock_id)
tools/testing/selftests/bpf/xdp_hw_metadata.c
366
ret = xsk_ring_prod__reserve(&xsk->tx, 1, &idx);
tools/testing/selftests/bpf/xdp_hw_metadata.c
368
printf("%p: failed to reserve tx slot\n", xsk);
tools/testing/selftests/bpf/xdp_hw_metadata.c
372
tx_desc = xsk_ring_prod__tx_desc(&xsk->tx, idx);
tools/testing/selftests/bpf/xdp_hw_metadata.c
374
data = xsk_umem__get_data(xsk->umem_area, tx_desc->addr);
tools/testing/selftests/bpf/xdp_hw_metadata.c
389
printf("%p: failed to detect IP version for ping pong %04x\n", xsk, eth->h_proto);
tools/testing/selftests/bpf/xdp_hw_metadata.c
390
xsk_ring_prod__cancel(&xsk->tx, 1);
tools/testing/selftests/bpf/xdp_hw_metadata.c
423
xsk, ntohs(udph->check), ntohs(want_csum),
tools/testing/selftests/bpf/xdp_hw_metadata.c
441
xsk_ring_prod__submit(&xsk->tx, 1);
tools/testing/selftests/bpf/xdp_hw_metadata.c
444
static int verify_metadata(struct xsk *rx_xsk, int rxq, int server_fd, clockid_t clock_id)
tools/testing/selftests/bpf/xdp_hw_metadata.c
493
struct xsk *xsk = &rx_xsk[i];
tools/testing/selftests/bpf/xdp_hw_metadata.c
495
ret = xsk_ring_cons__peek(&xsk->rx, 1, &idx);
tools/testing/selftests/bpf/xdp_hw_metadata.c
500
rx_desc = xsk_ring_cons__rx_desc(&xsk->rx, idx);
tools/testing/selftests/bpf/xdp_hw_metadata.c
505
xsk, idx, rx_desc->addr, addr, comp_addr, is_eop ? " EoP" : "");
tools/testing/selftests/bpf/xdp_hw_metadata.c
507
verify_xdp_metadata(xsk_umem__get_data(xsk->umem_area, addr),
tools/testing/selftests/bpf/xdp_hw_metadata.c
513
ping_pong(xsk, xsk_umem__get_data(xsk->umem_area, addr),
tools/testing/selftests/bpf/xdp_hw_metadata.c
516
ret = kick_tx(xsk);
tools/testing/selftests/bpf/xdp_hw_metadata.c
525
if (complete_tx(xsk, clock_id))
tools/testing/selftests/bpf/xdp_hw_metadata.c
534
xsk_ring_cons__release(&xsk->rx, 1);
tools/testing/selftests/bpf/xdp_hw_metadata.c
535
refill_rx(xsk, comp_addr);
tools/testing/selftests/bpf/xdp_hw_metadata.c
70
struct xsk *rx_xsk;
tools/testing/selftests/bpf/xdp_hw_metadata.c
828
rx_xsk = malloc(sizeof(struct xsk) * rxq);
tools/testing/selftests/bpf/xdp_hw_metadata.c
869
ret = bpf_map_update_elem(bpf_map__fd(bpf_obj->maps.xsk), &queue_id, &sock_fd, 0);
tools/testing/selftests/bpf/xdp_hw_metadata.c
92
static int open_xsk(int ifindex, struct xsk *xsk, __u32 queue_id)
tools/testing/selftests/bpf/xsk.c
448
int xsk_update_xskmap(struct bpf_map *map, struct xsk_socket *xsk, u32 index)
tools/testing/selftests/bpf/xsk.c
453
sock_fd = xsk_socket__fd(xsk);
tools/testing/selftests/bpf/xsk.c
502
static struct xsk_ctx *xsk_create_ctx(struct xsk_socket *xsk,
tools/testing/selftests/bpf/xsk.c
516
err = xsk_create_umem_rings(umem, xsk->fd, fill, comp);
tools/testing/selftests/bpf/xsk.c
551
struct xsk_socket *xsk;
tools/testing/selftests/bpf/xsk.c
560
xsk = calloc(1, sizeof(*xsk));
tools/testing/selftests/bpf/xsk.c
561
if (!xsk)
tools/testing/selftests/bpf/xsk.c
564
err = xsk_set_xdp_socket_config(&xsk->config, usr_config);
tools/testing/selftests/bpf/xsk.c
569
xsk->fd = socket(AF_XDP, SOCK_RAW | SOCK_CLOEXEC, 0);
tools/testing/selftests/bpf/xsk.c
570
if (xsk->fd < 0) {
tools/testing/selftests/bpf/xsk.c
575
xsk->fd = umem->fd;
tools/testing/selftests/bpf/xsk.c
587
ctx = xsk_create_ctx(xsk, umem, ifindex, queue_id, fill, comp);
tools/testing/selftests/bpf/xsk.c
593
xsk->ctx = ctx;
tools/testing/selftests/bpf/xsk.c
596
err = setsockopt(xsk->fd, SOL_XDP, XDP_RX_RING,
tools/testing/selftests/bpf/xsk.c
597
&xsk->config.rx_size,
tools/testing/selftests/bpf/xsk.c
598
sizeof(xsk->config.rx_size));
tools/testing/selftests/bpf/xsk.c
603
if (xsk->fd == umem->fd)
tools/testing/selftests/bpf/xsk.c
607
err = setsockopt(xsk->fd, SOL_XDP, XDP_TX_RING,
tools/testing/selftests/bpf/xsk.c
608
&xsk->config.tx_size,
tools/testing/selftests/bpf/xsk.c
609
sizeof(xsk->config.tx_size));
tools/testing/selftests/bpf/xsk.c
614
if (xsk->fd == umem->fd)
tools/testing/selftests/bpf/xsk.c
618
err = xsk_get_mmap_offsets(xsk->fd, &off);
tools/testing/selftests/bpf/xsk.c
626
xsk->config.rx_size * sizeof(struct xdp_desc),
tools/testing/selftests/bpf/xsk.c
628
xsk->fd, XDP_PGOFF_RX_RING);
tools/testing/selftests/bpf/xsk.c
634
rx->mask = xsk->config.rx_size - 1;
tools/testing/selftests/bpf/xsk.c
635
rx->size = xsk->config.rx_size;
tools/testing/selftests/bpf/xsk.c
643
xsk->rx = rx;
tools/testing/selftests/bpf/xsk.c
647
xsk->config.tx_size * sizeof(struct xdp_desc),
tools/testing/selftests/bpf/xsk.c
649
xsk->fd, XDP_PGOFF_TX_RING);
tools/testing/selftests/bpf/xsk.c
655
tx->mask = xsk->config.tx_size - 1;
tools/testing/selftests/bpf/xsk.c
656
tx->size = xsk->config.tx_size;
tools/testing/selftests/bpf/xsk.c
665
tx->cached_cons = *tx->consumer + xsk->config.tx_size;
tools/testing/selftests/bpf/xsk.c
667
xsk->tx = tx;
tools/testing/selftests/bpf/xsk.c
676
sxdp.sxdp_flags = xsk->config.bind_flags;
tools/testing/selftests/bpf/xsk.c
679
err = bind(xsk->fd, (struct sockaddr *)&sxdp, sizeof(sxdp));
tools/testing/selftests/bpf/xsk.c
685
*xsk_ptr = xsk;
tools/testing/selftests/bpf/xsk.c
693
xsk->config.tx_size * sizeof(struct xdp_desc));
tools/testing/selftests/bpf/xsk.c
697
xsk->config.rx_size * sizeof(struct xdp_desc));
tools/testing/selftests/bpf/xsk.c
702
close(xsk->fd);
tools/testing/selftests/bpf/xsk.c
704
free(xsk);
tools/testing/selftests/bpf/xsk.c
746
void xsk_socket__delete(struct xsk_socket *xsk)
tools/testing/selftests/bpf/xsk.c
754
if (!xsk)
tools/testing/selftests/bpf/xsk.c
757
ctx = xsk->ctx;
tools/testing/selftests/bpf/xsk.c
762
err = xsk_get_mmap_offsets(xsk->fd, &off);
tools/testing/selftests/bpf/xsk.c
764
if (xsk->rx) {
tools/testing/selftests/bpf/xsk.c
765
munmap(xsk->rx->ring - off.rx.desc,
tools/testing/selftests/bpf/xsk.c
766
off.rx.desc + xsk->config.rx_size * desc_sz);
tools/testing/selftests/bpf/xsk.c
768
if (xsk->tx) {
tools/testing/selftests/bpf/xsk.c
769
munmap(xsk->tx->ring - off.tx.desc,
tools/testing/selftests/bpf/xsk.c
770
off.tx.desc + xsk->config.tx_size * desc_sz);
tools/testing/selftests/bpf/xsk.c
778
if (xsk->fd != umem->fd)
tools/testing/selftests/bpf/xsk.c
779
close(xsk->fd);
tools/testing/selftests/bpf/xsk.c
780
free(xsk);
tools/testing/selftests/bpf/xsk.c
97
int xsk_socket__fd(const struct xsk_socket *xsk)
tools/testing/selftests/bpf/xsk.c
99
return xsk ? xsk->fd : -EINVAL;
tools/testing/selftests/bpf/xsk.h
188
int xsk_socket__fd(const struct xsk_socket *xsk);
tools/testing/selftests/bpf/xsk.h
208
int xsk_update_xskmap(struct bpf_map *map, struct xsk_socket *xsk, u32 index);
tools/testing/selftests/bpf/xsk.h
224
int xsk_socket__create(struct xsk_socket **xsk,
tools/testing/selftests/bpf/xsk.h
241
void xsk_socket__delete(struct xsk_socket *xsk);
tools/testing/selftests/bpf/xskxceiver.c
124
struct xsk_socket_info *xsk;
tools/testing/selftests/bpf/xskxceiver.c
144
xsk = calloc(1, sizeof(struct xsk_socket_info));
tools/testing/selftests/bpf/xskxceiver.c
145
if (!xsk)
tools/testing/selftests/bpf/xskxceiver.c
149
xsk->rxqsize = XSK_RING_CONS__DEFAULT_NUM_DESCS;
tools/testing/selftests/bpf/xskxceiver.c
150
ret = xsk_configure_socket(xsk, umem, ifobject, false);
tools/testing/selftests/bpf/xskxceiver.c
154
xsk_socket__delete(xsk->xsk);
tools/testing/selftests/bpf/xskxceiver.c
155
free(xsk);