Home
last modified time | relevance | path

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

123

/linux/tools/testing/selftests/bpf/prog_tests/
H A Dxdp_metadata.c49 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->comp, in open_xsk()
92 ret = xsk_socket__create(&xsk->socket, ifindex, QUEUE_ID, in open_xsk()
93 xsk->umem, in open_xsk()
[all …]
H A Dtest_xsk.c60 static void gen_eth_hdr(struct xsk_socket_info *xsk, struct ethhdr *eth_hdr) in gen_eth_hdr() argument
62 memcpy(eth_hdr->h_dest, xsk->dst_mac, ETH_ALEN); in gen_eth_hdr()
63 memcpy(eth_hdr->h_source, xsk->src_mac, ETH_ALEN); in gen_eth_hdr()
129 static int enable_busy_poll(struct xsk_socket_info *xsk) in enable_busy_poll() argument
134 if (setsockopt(xsk_socket__fd(xsk->xsk), SOL_SOCKET, SO_PREFER_BUSY_POLL, in enable_busy_poll()
139 if (setsockopt(xsk_socket__fd(xsk->xsk), SOL_SOCKET, SO_BUSY_POLL, in enable_busy_poll()
143 sock_opt = xsk->batch_size; in enable_busy_poll()
144 if (setsockopt(xsk_socket__fd(xsk->xsk), SOL_SOCKET, SO_BUSY_POLL_BUDGET, in enable_busy_poll()
151 int xsk_configure_socket(struct xsk_socket_info *xsk, struct xsk_umem_info *umem, in xsk_configure_socket() argument
158 xsk->umem = umem; in xsk_configure_socket()
[all …]
H A Dtest_xsk.h88 struct xsk_socket *xsk; member
98 int kick_rx(struct xsk_socket_info *xsk);
99 int kick_tx(struct xsk_socket_info *xsk);
126 struct xsk_socket_info *xsk; member
160 int xsk_configure_socket(struct xsk_socket_info *xsk, struct xsk_umem_info *umem,
/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.c124 struct xsk_socket_info *xsk; in ifobj_zc_avail() local
144 xsk = calloc(1, sizeof(struct xsk_socket_info)); in ifobj_zc_avail()
145 if (!xsk) in ifobj_zc_avail()
149 xsk->rxqsize = XSK_RING_CONS__DEFAULT_NUM_DESCS; in ifobj_zc_avail()
150 ret = xsk_configure_socket(xsk, umem, ifobject, false); in ifobj_zc_avail()
154 xsk_socket__delete(xsk->xsk); in ifobj_zc_avail()
155 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/xsk/
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);
/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_def_prog()
35 return bpf_redirect_map(&xsk, 0, XDP_DROP); in xsk_xdp_drop()
58 return bpf_redirect_map(&xsk, 0, XDP_DROP); in xsk_xdp_populate_metadata()
75 return bpf_redirect_map(&xsk, idx, XDP_DROP); in xsk_xdp_shared_umem()
95 return bpf_redirect_map(&xsk, 0, XDP_DROP); in xsk_xdp_adjust_tail()
122 return bpf_redirect_map(&xsk, 0, XDP_DROP); in xsk_xdp_adjust_tail()
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/mellanox/mlx5/core/en/
H A Dparams.c29 struct mlx5e_xsk_param *xsk = mlx5e_rqo_xsk_param(rqo); in mlx5e_mpwrq_page_shift() local
33 if (xsk) in mlx5e_mpwrq_page_shift()
34 req_page_shift = order_base_2(xsk->chunk_size); in mlx5e_mpwrq_page_shift()
41 if (WARN_ON_ONCE(!xsk && req_page_shift < min_page_shift)) in mlx5e_mpwrq_page_shift()
60 struct mlx5e_xsk_param *xsk = mlx5e_rqo_xsk_param(rqo); in mlx5e_mpwrq_umr_mode() local
62 bool unaligned = xsk ? xsk->unaligned : false; in mlx5e_mpwrq_umr_mode()
65 if (xsk) { in mlx5e_mpwrq_umr_mode()
66 oversized = xsk->chunk_size < (1 << page_shift); in mlx5e_mpwrq_umr_mode()
67 WARN_ON_ONCE(xsk->chunk_size > (1 << page_shift)); in mlx5e_mpwrq_umr_mode()
83 if (xsk->chunk_size % 3 == 0 && is_power_of_2(xsk->chunk_size / 3)) in mlx5e_mpwrq_umr_mode()
[all …]
/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/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"
154 bpf.xsk.pool = NULL; in xp_disable_drv_zc()
155 bpf.xsk.queue_id = pool->queue_id; in xp_disable_drv_zc()
244 bpf.xsk.pool = pool; in xp_assign_dev()
245 bpf.xsk.queue_id = queue_id; in xp_assign_dev()
/linux/drivers/net/ethernet/intel/idpf/
H A DMakefile24 idpf-y += xsk.o
H A Dxsk.c485 xdp = rxq->xsk; in idpf_xskrq_poll()
536 rxq->xsk = xdp; in idpf_xskrq_poll()
556 struct xsk_buff_pool *pool = bpf->xsk.pool; in idpf_xsk_pool_setup()
557 u32 qid = bpf->xsk.queue_id; in idpf_xsk_pool_setup()
/linux/include/net/libeth/
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/networking/
H A Daf_xdp.rst214 in tools/testing/selftests/bpf/xsk.h for facilitating the use of
538 On the Rx path in copy-mode, the xsk core copies the XDP data into
647 void rx_packets(struct xsk_socket_info *xsk)
653 int rcvd = xsk_ring_cons__peek(&xsk->rx, opt_batch_size, &idx_rx);
655 xsk_ring_prod__reserve(&xsk->umem->fq, rcvd, &idx_fq);
658 struct xdp_desc *desc = xsk_ring_cons__rx_desc(&xsk->rx, idx_rx++);
659 char *frag = xsk_umem__get_data(xsk->umem->buffer, desc->addr);
672 *xsk_ring_prod__fill_addr(&xsk->umem->fq, idx_fq++) = desc->addr;
675 xsk_ring_prod__submit(&xsk->umem->fq, rcvd);
676 xsk_ring_cons__release(&xsk->rx, rcvd);
[all …]

123