Home
last modified time | relevance | path

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

/Linux-v5.4/drivers/net/ethernet/mellanox/mlx5/core/en/
Dparams.c7 struct mlx5e_xsk_param *xsk) in mlx5e_rx_is_xdp() argument
9 return params->xdp_prog || xsk; in mlx5e_rx_is_xdp()
13 struct mlx5e_xsk_param *xsk) in mlx5e_get_linear_rq_headroom() argument
17 if (mlx5e_rx_is_xdp(params, xsk)) { in mlx5e_get_linear_rq_headroom()
19 if (xsk) in mlx5e_get_linear_rq_headroom()
20 headroom += xsk->headroom; in mlx5e_get_linear_rq_headroom()
29 struct mlx5e_xsk_param *xsk) in mlx5e_rx_get_min_frag_sz() argument
32 u16 linear_rq_headroom = mlx5e_get_linear_rq_headroom(params, xsk); in mlx5e_rx_get_min_frag_sz()
38 struct mlx5e_xsk_param *xsk) in mlx5e_rx_get_linear_frag_sz() argument
40 u32 frag_sz = mlx5e_rx_get_min_frag_sz(params, xsk); in mlx5e_rx_get_linear_frag_sz()
[all …]
Dparams.h78 struct mlx5e_xsk_param *xsk);
80 struct mlx5e_xsk_param *xsk);
82 struct mlx5e_xsk_param *xsk);
84 struct mlx5e_xsk_param *xsk);
86 struct mlx5e_xsk_param *xsk);
89 struct mlx5e_xsk_param *xsk);
91 struct mlx5e_xsk_param *xsk);
94 struct mlx5e_xsk_param *xsk);
97 struct mlx5e_xsk_param *xsk);
100 struct mlx5e_xsk_param *xsk);
[all …]
Dxdp.c38 int mlx5e_xdp_max_mtu(struct mlx5e_params *params, struct mlx5e_xsk_param *xsk) in mlx5e_xdp_max_mtu() argument
40 int hr = mlx5e_get_linear_rq_headroom(params, xsk); in mlx5e_xdp_max_mtu()
122 void *va, u16 *rx_headroom, u32 *len, bool xsk) in mlx5e_xdp_handle() argument
137 if (xsk) in mlx5e_xdp_handle()
138 xdp.handle = di->xsk.handle; in mlx5e_xdp_handle()
142 if (xsk) { in mlx5e_xdp_handle()
164 if (!xsk) in mlx5e_xdp_handle()
Dxdp.h64 int mlx5e_xdp_max_mtu(struct mlx5e_params *params, struct mlx5e_xsk_param *xsk);
66 void *va, u16 *rx_headroom, u32 *len, bool xsk);
/Linux-v5.4/tools/lib/bpf/
Dxsk.c81 int xsk_socket__fd(const struct xsk_socket *xsk) in xsk_socket__fd() argument
83 return xsk ? xsk->fd : -EINVAL; in xsk_socket__fd()
267 static int xsk_load_xdp_prog(struct xsk_socket *xsk) in xsk_load_xdp_prog() argument
293 BPF_LD_MAP_FD(BPF_REG_1, xsk->xsks_map_fd), in xsk_load_xdp_prog()
300 BPF_LD_MAP_FD(BPF_REG_1, xsk->xsks_map_fd), in xsk_load_xdp_prog()
317 err = bpf_set_link_xdp_fd(xsk->ifindex, prog_fd, xsk->config.xdp_flags); in xsk_load_xdp_prog()
323 xsk->prog_fd = prog_fd; in xsk_load_xdp_prog()
327 static int xsk_get_max_queues(struct xsk_socket *xsk) in xsk_get_max_queues() argument
338 memcpy(ifr.ifr_name, xsk->ifname, IFNAMSIZ - 1); in xsk_get_max_queues()
359 static int xsk_create_bpf_maps(struct xsk_socket *xsk) in xsk_create_bpf_maps() argument
[all …]
Dxsk.h187 LIBBPF_API int xsk_socket__fd(const struct xsk_socket *xsk);
231 LIBBPF_API int xsk_socket__create(struct xsk_socket **xsk,
240 LIBBPF_API void xsk_socket__delete(struct xsk_socket *xsk);
DBuild2 netlink.o bpf_prog_linfo.o libbpf_probes.o xsk.o hashmap.o \
DMakefile256 $(call do_install,xsk.h,$(prefix)/include/bpf,644);
/Linux-v5.4/samples/bpf/
Dxdpsock_user.c91 struct xsk_socket *xsk; member
203 xsk_socket__delete(xsks[0]->xsk); in int_exit()
313 struct xsk_socket_info *xsk; in xsk_configure_socket() local
318 xsk = calloc(1, sizeof(*xsk)); in xsk_configure_socket()
319 if (!xsk) in xsk_configure_socket()
322 xsk->umem = umem; in xsk_configure_socket()
328 ret = xsk_socket__create(&xsk->xsk, opt_if, opt_queue, umem->umem, in xsk_configure_socket()
329 &xsk->rx, &xsk->tx, &cfg); in xsk_configure_socket()
337 ret = xsk_ring_prod__reserve(&xsk->umem->fq, in xsk_configure_socket()
343 *xsk_ring_prod__fill_addr(&xsk->umem->fq, idx++) = in xsk_configure_socket()
[all …]
/Linux-v5.4/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/
Dumem.c49 static int mlx5e_xsk_get_umems(struct mlx5e_xsk *xsk) in mlx5e_xsk_get_umems() argument
51 if (!xsk->umems) { in mlx5e_xsk_get_umems()
52 xsk->umems = kcalloc(MLX5E_MAX_NUM_CHANNELS, in mlx5e_xsk_get_umems()
53 sizeof(*xsk->umems), GFP_KERNEL); in mlx5e_xsk_get_umems()
54 if (unlikely(!xsk->umems)) in mlx5e_xsk_get_umems()
58 xsk->refcnt++; in mlx5e_xsk_get_umems()
59 xsk->ever_used = true; in mlx5e_xsk_get_umems()
64 static void mlx5e_xsk_put_umems(struct mlx5e_xsk *xsk) in mlx5e_xsk_put_umems() argument
66 if (!--xsk->refcnt) { in mlx5e_xsk_put_umems()
67 kfree(xsk->umems); in mlx5e_xsk_put_umems()
[all …]
Dsetup.c14 struct mlx5e_xsk_param *xsk, in mlx5e_validate_xsk_param() argument
18 if (xsk->chunk_size > PAGE_SIZE || in mlx5e_validate_xsk_param()
19 xsk->chunk_size < MLX5E_MIN_XSK_CHUNK_SIZE) in mlx5e_validate_xsk_param()
23 if (mlx5e_rx_get_min_frag_sz(params, xsk) > xsk->chunk_size) in mlx5e_validate_xsk_param()
31 return mlx5e_rx_mpwqe_is_linear_skb(mdev, params, xsk); in mlx5e_validate_xsk_param()
33 return mlx5e_rx_is_linear_skb(params, xsk); in mlx5e_validate_xsk_param()
51 struct mlx5e_xsk_param *xsk, in mlx5e_build_xsk_cparam() argument
56 mlx5e_build_rq_param(priv, params, xsk, &cparam->rq); in mlx5e_build_xsk_cparam()
59 mlx5e_build_rx_cq_param(priv, params, xsk, &cparam->rx_cq); in mlx5e_build_xsk_cparam()
65 struct mlx5e_xsk_param *xsk, struct xdp_umem *umem, in mlx5e_open_xsk() argument
[all …]
Dumem.h10 struct mlx5e_xsk *xsk, u16 ix) in mlx5e_xsk_get_umem() argument
12 if (!xsk || !xsk->umems) in mlx5e_xsk_get_umem()
18 return xsk->umems[ix]; in mlx5e_xsk_get_umem()
22 void mlx5e_build_xsk_param(struct xdp_umem *umem, struct mlx5e_xsk_param *xsk);
29 u16 mlx5e_xsk_first_unused_channel(struct mlx5e_params *params, struct mlx5e_xsk *xsk);
Drx.c27 dma_info->xsk.handle = xsk_umem_adjust_offset(umem, handle, in mlx5e_xsk_page_alloc_umem()
29 dma_info->xsk.data = xdp_umem_get_data(umem, dma_info->xsk.handle); in mlx5e_xsk_page_alloc_umem()
58 mlx5e_xsk_recycle_frame(rq, dma_info->xsk.handle); in mlx5e_xsk_page_release()
113 va = di->xsk.data; in mlx5e_xsk_skb_from_cqe_mpwrq_linear()
169 va = di->xsk.data; in mlx5e_xsk_skb_from_cqe_linear()
Dsetup.h12 struct mlx5e_xsk_param *xsk,
15 struct mlx5e_xsk_param *xsk, struct xdp_umem *umem,
/Linux-v5.4/drivers/net/ethernet/mellanox/mlx5/core/
DMakefile27 en/reporter_tx.o en/reporter_rx.o en/params.o en/xsk/umem.o \
28 en/xsk/setup.o en/xsk/rx.o en/xsk/tx.o
Den_main.c375 struct mlx5e_xsk_param *xsk, in mlx5e_alloc_rq() argument
419 if (xsk) in mlx5e_alloc_rq()
426 rq->buff.headroom = mlx5e_get_rq_headroom(mdev, params, xsk); in mlx5e_alloc_rq()
427 rq->buff.umem_headroom = xsk ? xsk->headroom : 0; in mlx5e_alloc_rq()
441 if (xsk) in mlx5e_alloc_rq()
443 mlx5e_mpwqe_get_log_num_strides(mdev, params, xsk); in mlx5e_alloc_rq()
446 mlx5e_mpwqe_get_log_rq_size(params, xsk); in mlx5e_alloc_rq()
465 rq->mpwqe.skb_from_cqe_mpwrq = xsk ? in mlx5e_alloc_rq()
471 rq->mpwqe.log_stride_sz = mlx5e_mpwqe_get_log_stride_size(mdev, params, xsk); in mlx5e_alloc_rq()
473 BIT(mlx5e_mpwqe_get_log_num_strides(mdev, params, xsk)); in mlx5e_alloc_rq()
[all …]
Den.h269 struct mlx5e_xsk *xsk; member
433 } xsk; member
875 struct mlx5e_xsk xsk; member
1010 struct mlx5e_rq_param *param, struct mlx5e_xsk_param *xsk,
1179 struct mlx5e_xsk *xsk,
Den_stats.c1571 (NUM_XSKRQ_STATS * max_nch * priv->xsk.ever_used) + in mlx5e_grp_channels_get_num_stats()
1572 (NUM_XSKSQ_STATS * max_nch * priv->xsk.ever_used); in mlx5e_grp_channels_get_num_stats()
1578 bool is_xsk = priv->xsk.ever_used; in mlx5e_grp_channels_fill_strings()
1621 bool is_xsk = priv->xsk.ever_used; in mlx5e_grp_channels_fill_stats()
Den_ethtool.c396 if (priv->xsk.refcnt) { in mlx5e_ethtool_get_channels()
436 if (priv->xsk.refcnt) { in mlx5e_ethtool_set_channels()
/Linux-v5.4/net/xdp/
Dxdp_umem.c136 bpf.xsk.umem = umem; in xdp_umem_assign_dev()
137 bpf.xsk.queue_id = queue_id; in xdp_umem_assign_dev()
166 bpf.xsk.umem = NULL; in xdp_umem_clear_dev()
167 bpf.xsk.queue_id = umem->queue_id; in xdp_umem_clear_dev()
DMakefile2 obj-$(CONFIG_XDP_SOCKETS) += xsk.o xdp_umem.o xsk_queue.o
/Linux-v5.4/Documentation/networking/
Daf_xdp.rst227 The XDP code sample included in tools/lib/bpf/xsk.c is the following::
/Linux-v5.4/include/linux/
Dnetdevice.h901 } xsk; member
/Linux-v5.4/drivers/net/ethernet/intel/ixgbe/
Dixgbe_main.c10289 return ixgbe_xsk_umem_setup(adapter, xdp->xsk.umem, in ixgbe_xdp()
10290 xdp->xsk.queue_id); in ixgbe_xdp()
/Linux-v5.4/drivers/net/ethernet/intel/i40e/
Di40e_main.c12826 return i40e_xsk_umem_setup(vsi, xdp->xsk.umem, in i40e_xdp()
12827 xdp->xsk.queue_id); in i40e_xdp()