Home
last modified time | relevance | path

Searched refs:xsk (Results 1 – 25 of 43) sorted by relevance

12

/linux/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/
H A Dpool.c23 static int mlx5e_xsk_get_pools(struct mlx5e_xsk *xsk) in mlx5e_xsk_get_pools() argument
25 if (!xsk->pools) { in mlx5e_xsk_get_pools()
26 xsk->pools = kcalloc(MLX5E_MAX_NUM_CHANNELS, in mlx5e_xsk_get_pools()
27 sizeof(*xsk->pools), GFP_KERNEL); in mlx5e_xsk_get_pools()
28 if (unlikely(!xsk->pools)) in mlx5e_xsk_get_pools()
32 xsk->refcnt++; in mlx5e_xsk_get_pools()
33 xsk->ever_used = true; in mlx5e_xsk_get_pools()
38 static void mlx5e_xsk_put_pools(struct mlx5e_xsk *xsk) in mlx5e_xsk_put_pools() argument
40 if (!--xsk->refcnt) { in mlx5e_xsk_put_pools()
41 kfree(xsk->pools); in mlx5e_xsk_put_pools()
[all …]
H A Dpool.h10 struct mlx5e_xsk *xsk, u16 ix) in mlx5e_xsk_get_pool() argument
12 if (!xsk || !xsk->pools) in mlx5e_xsk_get_pool()
18 return xsk->pools[ix]; in mlx5e_xsk_get_pool()
22 void mlx5e_build_xsk_param(struct xsk_buff_pool *pool, struct mlx5e_xsk_param *xsk);
H A Dsetup.h12 struct mlx5e_xsk_param *xsk,
15 struct mlx5e_xsk_param *xsk, struct xsk_buff_pool *pool,
/linux/tools/testing/selftests/bpf/prog_tests/
H A Dxdp_metadata.c7 #include "xsk.h"
49 struct xsk { struct
59 static int open_xsk(int ifindex, struct xsk *xsk) in open_xsk() argument
80 xsk->umem_area = mmap(NULL, UMEM_SIZE, PROT_READ | PROT_WRITE, mmap_flags, -1, 0); in open_xsk()
81 if (!ASSERT_NEQ(xsk->umem_area, MAP_FAILED, "mmap")) in open_xsk()
84 ret = xsk_umem__create(&xsk->umem, in open_xsk()
85 xsk->umem_area, UMEM_SIZE, in open_xsk()
86 &xsk->fill, in open_xsk()
87 &xsk in open_xsk()
51 umemxsk global() argument
52 fillxsk global() argument
53 compxsk global() argument
54 txxsk global() argument
55 rxxsk global() argument
56 socketxsk global() argument
127 close_xsk(struct xsk * xsk) close_xsk() argument
136 generate_packet(struct xsk * xsk,__u16 dst_port) generate_packet() argument
227 complete_tx(struct xsk * xsk) complete_tx() argument
248 refill_rx(struct xsk * xsk,__u64 addr) refill_rx() argument
259 verify_xsk_metadata(struct xsk * xsk,bool sent_from_af_xdp) verify_xsk_metadata() argument
[all...]
/linux/tools/testing/selftests/bpf/
H A Dxdp_hw_metadata.c58 struct xsk { struct
70 struct xsk *rx_xsk; argument
92 static int open_xsk(int ifindex, struct xsk *xsk, __u32 queue_id) in open_xsk() argument
112 xsk->umem_area = mmap(NULL, UMEM_SIZE, PROT_READ | PROT_WRITE, mmap_flags, -1, 0); in open_xsk()
113 if (xsk->umem_area == MAP_FAILED) in open_xsk()
116 ret = xsk_umem__create(&xsk->umem, in open_xsk()
117 xsk->umem_area, UMEM_SIZE, in open_xsk()
118 &xsk->fill, in open_xsk()
119 &xsk->comp, in open_xsk()
124 ret = xsk_socket__create(&xsk->socket, ifindex, queue_id, in open_xsk()
[all …]
H A Dxsk.c97 int xsk_socket__fd(const struct xsk_socket *xsk) in xsk_socket__fd() argument
99 return xsk ? xsk->fd : -EINVAL; in xsk_socket__fd()
448 int xsk_update_xskmap(struct bpf_map *map, struct xsk_socket *xsk, u32 index) in xsk_update_xskmap() argument
453 sock_fd = xsk_socket__fd(xsk); in xsk_update_xskmap()
502 static struct xsk_ctx *xsk_create_ctx(struct xsk_socket *xsk, in xsk_create_ctx() argument
516 err = xsk_create_umem_rings(umem, xsk->fd, fill, comp); in xsk_create_ctx()
551 struct xsk_socket *xsk; in xsk_socket__create_shared() local
560 xsk = calloc(1, sizeof(*xsk)); in xsk_socket__create_shared()
561 if (!xsk) in xsk_socket__create_shared()
564 err = xsk_set_xdp_socket_config(&xsk->config, usr_config); in xsk_socket__create_shared()
[all …]
H A Dxskxceiver.c123 struct xsk_socket_info *xsk; in ifobj_zc_avail() local
143 xsk = calloc(1, sizeof(struct xsk_socket_info)); in ifobj_zc_avail()
144 if (!xsk) in ifobj_zc_avail()
148 xsk->rxqsize = XSK_RING_CONS__DEFAULT_NUM_DESCS; in ifobj_zc_avail()
149 ret = xsk_configure_socket(xsk, umem, ifobject, false); in ifobj_zc_avail()
153 xsk_socket__delete(xsk->xsk); in ifobj_zc_avail()
154 free(xsk); in ifobj_zc_avail()
H A Dxsk.h188 int xsk_socket__fd(const struct xsk_socket *xsk);
208 int xsk_update_xskmap(struct bpf_map *map, struct xsk_socket *xsk, u32 index);
224 int xsk_socket__create(struct xsk_socket **xsk,
241 void xsk_socket__delete(struct xsk_socket *xsk);
H A Dxskxceiver.h91 struct xsk_socket *xsk; global() member
132 struct xsk_socket_info *xsk; global() member
/linux/drivers/net/ethernet/mellanox/mlx5/core/en/
H A Dparams.c24 u8 mlx5e_mpwrq_page_shift(struct mlx5_core_dev *mdev, struct mlx5e_xsk_param *xsk) in mlx5e_mpwrq_page_shift() argument
26 u8 req_page_shift = xsk ? order_base_2(xsk->chunk_size) : PAGE_SHIFT; in mlx5e_mpwrq_page_shift()
30 if (WARN_ON_ONCE(!xsk && req_page_shift < min_page_shift)) in mlx5e_mpwrq_page_shift()
37 mlx5e_mpwrq_umr_mode(struct mlx5_core_dev *mdev, struct mlx5e_xsk_param *xsk) in mlx5e_mpwrq_umr_mode() argument
48 u8 page_shift = mlx5e_mpwrq_page_shift(mdev, xsk); in mlx5e_mpwrq_umr_mode()
49 bool unaligned = xsk ? xsk->unaligned : false; in mlx5e_mpwrq_umr_mode()
52 if (xsk) { in mlx5e_mpwrq_umr_mode()
53 oversized = xsk->chunk_size < (1 << page_shift); in mlx5e_mpwrq_umr_mode()
54 WARN_ON_ONCE(xsk->chunk_size > (1 << page_shift)); in mlx5e_mpwrq_umr_mode()
70 if (xsk->chunk_size % 3 == 0 && is_power_of_2(xsk->chunk_size / 3)) in mlx5e_mpwrq_umr_mode()
[all …]
/linux/tools/testing/selftests/bpf/progs/
H A Dxsk_xdp_progs.c16 } xsk SEC(".maps");
24 return bpf_redirect_map(&xsk, 0, XDP_DROP); in xsk_xdp_drop()
33 return bpf_redirect_map(&xsk, 0, XDP_DROP); in xsk_xdp_populate_metadata()
56 return bpf_redirect_map(&xsk, 0, XDP_DROP); in xsk_xdp_shared_umem()
73 return bpf_redirect_map(&xsk, idx, XDP_DROP);
93 return bpf_redirect_map(&xsk, 0, XDP_DROP);
120 return bpf_redirect_map(&xsk, 0, XDP_DROP);
H A Dxdp_metadata.c13 } xsk SEC(".maps");
102 return bpf_redirect_map(&xsk, ctx->rx_queue_index, XDP_PASS);
H A Dxdp_hw_metadata.c13 } xsk SEC(".maps");
114 return bpf_redirect_map(&xsk, ctx->rx_queue_index, XDP_PASS); in rx()
/linux/drivers/net/ethernet/intel/libeth/
H A Dtx.c13 DEFINE_STATIC_CALL_NULL(xsk, libeth_xsk_buff_free_slow);
28 static_call(xsk)); in libeth_tx_complete_any()
39 static_call_update(xsk, ops ? ops->xsk : NULL); in libeth_attach_xdp()
H A Dxsk.c18 libeth_xsk_buff_free_slow(bq[i].xsk); in libeth_xsk_tx_return_bulk()
133 const struct xdp_buff_xsk *xsk; in libeth_xsk_prog_exception() local
139 xsk = container_of(&xdp->base, typeof(*xsk), xdp); in libeth_xsk_prog_exception()
140 if (xsk_uses_need_wakeup(xsk->pool) && ret == -ENOBUFS) in libeth_xsk_prog_exception()
H A DMakefile12 libeth_xdp-y += xsk.o
H A Dpriv.h27 void (*xsk)(struct libeth_xdp_buff *xdp); member
/linux/include/net/libeth/
H A Dxsk.h28 .xsk = xdp, in libeth_xsk_tx_queue_head()
50 .xsk = frag, in libeth_xsk_tx_queue_frag()
115 struct libeth_xdp_buff *xdp = frm.xsk; in libeth_xsk_tx_fill_buf()
125 sqe->xsk = xdp; in libeth_xsk_tx_fill_buf()
549 __LIBETH_XDP_DEFINE_FLUSH_TX(name, prep, xmit, xsk)
557 u32 __LIBETH_XDP_DEFINE_RUN_PROG(name, flush, xsk)
566 bool __LIBETH_XDP_DEFINE_RUN_PASS(name, run, populate, xsk)
585 __LIBETH_XDP_DEFINE_FINALIZE(name, flush, finalize, xsk)
H A Dtx.h67 struct libeth_xdp_buff *xsk; member
H A Dxdp.h348 struct libeth_xdp_buff *xsk; member
1145 #define __libeth_xdp_tx_init_bulk(bq, pr, d, xdpsqs, num, xsk, ub, un) do { \ argument
1151 if (un || (xsk)) { \
1763 typeof(libeth_xsk_buff_free_slow) xsk) in __libeth_xdp_complete_tx() argument
1788 xsk(sqe->xsk); in __libeth_xdp_complete_tx()
/linux/Documentation/bpf/
H A Dmap_xskmap.rst21 | xsk A | xsk B | xsk C |<---+ User space
28 | | key | xsk | | |
30 | | | | 0 | xsk A | | |
32 | | | | 1 | xsk B | | |
34 | | prog | | 2 | xsk C | |
/linux/net/xdp/
H A DMakefile2 obj-$(CONFIG_XDP_SOCKETS) += xsk.o xdp_umem.o xsk_queue.o xskmap.o
H A Dxsk_buff_pool.c11 #include "xsk.h"
148 bpf.xsk.pool = NULL; in xp_disable_drv_zc()
149 bpf.xsk.queue_id = pool->queue_id; in xp_disable_drv_zc()
215 bpf.xsk.pool = pool; in xp_assign_dev()
216 bpf.xsk.queue_id = queue_id; in xp_assign_dev()
/linux/drivers/net/ethernet/freescale/dpaa2/
H A DMakefile10 …-eth-objs := dpaa2-eth.o dpaa2-ethtool.o dpni.o dpaa2-mac.o dpmac.o dpaa2-eth-devlink.o dpaa2-xsk.o
/linux/Documentation/networking/
H A Daf_xdp.rst212 in tools/testing/selftests/bpf/xsk.h for facilitating the use of
532 On the Rx path in copy-mode, the xsk core copies the XDP data into
641 void rx_packets(struct xsk_socket_info *xsk)
647 int rcvd = xsk_ring_cons__peek(&xsk->rx, opt_batch_size, &idx_rx);
649 xsk_ring_prod__reserve(&xsk->umem->fq, rcvd, &idx_fq);
652 struct xdp_desc *desc = xsk_ring_cons__rx_desc(&xsk->rx, idx_rx++);
653 char *frag = xsk_umem__get_data(xsk->umem->buffer, desc->addr);
666 *xsk_ring_prod__fill_addr(&xsk->umem->fq, idx_fq++) = desc->addr;
669 xsk_ring_prod__submit(&xsk->umem->fq, rcvd);
670 xsk_ring_cons__release(&xsk->rx, rcvd);
[all …]

12