/Linux-v5.10/drivers/net/ethernet/mellanox/mlx5/core/en/ |
D | params.c | 7 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 (xsk) in mlx5e_get_linear_rq_headroom() 18 return xsk->headroom; in mlx5e_get_linear_rq_headroom() 21 if (mlx5e_rx_is_xdp(params, xsk)) in mlx5e_get_linear_rq_headroom() 30 struct mlx5e_xsk_param *xsk) in mlx5e_rx_get_min_frag_sz() argument 33 u16 linear_rq_headroom = mlx5e_get_linear_rq_headroom(params, xsk); in mlx5e_rx_get_min_frag_sz() 39 struct mlx5e_xsk_param *xsk) in mlx5e_rx_get_linear_frag_sz() argument 41 u32 frag_sz = mlx5e_rx_get_min_frag_sz(params, xsk); in mlx5e_rx_get_linear_frag_sz() [all …]
|
D | params.h | 78 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 …]
|
D | xdp.h | 49 int mlx5e_xdp_max_mtu(struct mlx5e_params *params, struct mlx5e_xsk_param *xsk);
|
D | xdp.c | 38 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()
|
/Linux-v5.10/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/ |
D | pool.c | 23 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 …]
|
D | setup.c | 15 struct mlx5e_xsk_param *xsk, in mlx5e_validate_xsk_param() argument 19 if (xsk->chunk_size > PAGE_SIZE || in mlx5e_validate_xsk_param() 20 xsk->chunk_size < MLX5E_MIN_XSK_CHUNK_SIZE) in mlx5e_validate_xsk_param() 24 if (mlx5e_rx_get_min_frag_sz(params, xsk) > xsk->chunk_size) in mlx5e_validate_xsk_param() 32 return mlx5e_rx_mpwqe_is_linear_skb(mdev, params, xsk); in mlx5e_validate_xsk_param() 34 return mlx5e_rx_is_linear_skb(params, xsk); in mlx5e_validate_xsk_param() 40 struct mlx5e_xsk_param *xsk, in mlx5e_build_xsk_cparam() argument 43 mlx5e_build_rq_param(priv, params, xsk, &cparam->rq); in mlx5e_build_xsk_cparam() 48 struct mlx5e_xsk_param *xsk, struct xsk_buff_pool *pool, in mlx5e_open_xsk() argument 54 if (!mlx5e_validate_xsk_param(params, xsk, priv->mdev)) in mlx5e_open_xsk() [all …]
|
D | pool.h | 10 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);
|
D | rx.h | 25 dma_info->xsk = xsk_buff_alloc(rq->xsk_pool); in mlx5e_xsk_page_alloc_pool() 26 if (!dma_info->xsk) in mlx5e_xsk_page_alloc_pool() 34 dma_info->addr = xsk_buff_xdp_get_frame_dma(dma_info->xsk); in mlx5e_xsk_page_alloc_pool()
|
D | setup.h | 12 struct mlx5e_xsk_param *xsk, 15 struct mlx5e_xsk_param *xsk, struct xsk_buff_pool *pool,
|
D | rx.c | 32 struct xdp_buff *xdp = wi->umr.dma_info[page_idx].xsk; in mlx5e_xsk_skb_from_cqe_mpwrq_linear() 85 struct xdp_buff *xdp = wi->di->xsk; in mlx5e_xsk_skb_from_cqe_linear()
|
/Linux-v5.10/tools/lib/bpf/ |
D | xsk.c | 107 int xsk_socket__fd(const struct xsk_socket *xsk) in xsk_socket__fd() argument 109 return xsk ? xsk->fd : -EINVAL; in xsk_socket__fd() 354 static int xsk_load_xdp_prog(struct xsk_socket *xsk) in xsk_load_xdp_prog() argument 357 struct xsk_ctx *ctx = xsk->ctx; in xsk_load_xdp_prog() 427 err = bpf_set_link_xdp_fd(xsk->ctx->ifindex, prog_fd, in xsk_load_xdp_prog() 428 xsk->config.xdp_flags); in xsk_load_xdp_prog() 438 static int xsk_get_max_queues(struct xsk_socket *xsk) in xsk_get_max_queues() argument 441 struct xsk_ctx *ctx = xsk->ctx; in xsk_get_max_queues() 476 static int xsk_create_bpf_maps(struct xsk_socket *xsk) in xsk_create_bpf_maps() argument 478 struct xsk_ctx *ctx = xsk->ctx; in xsk_create_bpf_maps() [all …]
|
D | xsk.h | 187 LIBBPF_API int xsk_socket__fd(const struct xsk_socket *xsk); 231 LIBBPF_API int xsk_socket__create(struct xsk_socket **xsk, 249 LIBBPF_API void xsk_socket__delete(struct xsk_socket *xsk);
|
D | Build | 2 netlink.o bpf_prog_linfo.o libbpf_probes.o xsk.o hashmap.o \
|
D | Makefile | 254 $(call do_install,xsk.h,$(prefix)/include/bpf,644); \
|
/Linux-v5.10/samples/bpf/ |
D | xdpsock_user.c | 147 struct xsk_socket *xsk; member 193 static int xsk_get_xdp_stats(int fd, struct xsk_socket_info *xsk) in xsk_get_xdp_stats() argument 205 xsk->ring_stats.rx_dropped_npkts = stats.rx_dropped; in xsk_get_xdp_stats() 206 xsk->ring_stats.rx_invalid_npkts = stats.rx_invalid_descs; in xsk_get_xdp_stats() 207 xsk->ring_stats.tx_invalid_npkts = stats.tx_invalid_descs; in xsk_get_xdp_stats() 208 xsk->ring_stats.rx_full_npkts = stats.rx_ring_full; in xsk_get_xdp_stats() 209 xsk->ring_stats.rx_fill_empty_npkts = stats.rx_fill_ring_empty_descs; in xsk_get_xdp_stats() 210 xsk->ring_stats.tx_empty_npkts = stats.tx_ring_empty_descs; in xsk_get_xdp_stats() 381 if (!xsk_get_xdp_stats(xsk_socket__fd(xsks[i]->xsk), xsks[i])) { in dump_stats() 488 xsk_socket__delete(xsks[i]->xsk); in xdpsock_cleanup() [all …]
|
D | xsk_fwd.c | 448 struct xsk_socket *xsk; member 466 if (p->xsk) in port_free() 467 xsk_socket__delete(p->xsk); in port_free() 499 status = xsk_socket__create_shared(&p->xsk, in port_init() 543 .fd = xsk_socket__fd(p->xsk), in port_rx_burst() 570 .fd = xsk_socket__fd(p->xsk), in port_rx_burst() 615 sendto(xsk_socket__fd(p->xsk), NULL, 0, MSG_DONTWAIT, in port_tx_burst() 626 sendto(xsk_socket__fd(p->xsk), NULL, 0, MSG_DONTWAIT, NULL, 0); in port_tx_burst()
|
/Linux-v5.10/drivers/net/ethernet/mellanox/mlx5/core/ |
D | Makefile | 27 en/reporter_tx.o en/reporter_rx.o en/params.o en/xsk/pool.o \ 28 en/xsk/setup.o en/xsk/rx.o en/xsk/tx.o en/devlink.o
|
D | en_main.c | 395 struct mlx5e_xsk_param *xsk, in mlx5e_alloc_rq() argument 435 if (xsk) in mlx5e_alloc_rq() 442 rq->buff.headroom = mlx5e_get_rq_headroom(mdev, params, xsk); in mlx5e_alloc_rq() 461 mlx5e_mpwqe_get_log_rq_size(params, xsk); in mlx5e_alloc_rq() 463 rq->mpwqe.log_stride_sz = mlx5e_mpwqe_get_log_stride_size(mdev, params, xsk); in mlx5e_alloc_rq() 465 BIT(mlx5e_mpwqe_get_log_num_strides(mdev, params, xsk)); in mlx5e_alloc_rq() 507 err = mlx5e_rq_set_handlers(rq, params, xsk); in mlx5e_alloc_rq() 511 if (xsk) { in mlx5e_alloc_rq() 863 struct mlx5e_rq_param *param, struct mlx5e_xsk_param *xsk, in mlx5e_open_rq() argument 868 err = mlx5e_alloc_rq(c, params, xsk, xsk_pool, param, rq); in mlx5e_open_rq() [all …]
|
D | en.h | 262 struct mlx5e_xsk *xsk; member 384 struct xdp_buff *xsk; member 548 int mlx5e_rq_set_handlers(struct mlx5e_rq *rq, struct mlx5e_params *params, bool xsk); 828 struct mlx5e_xsk xsk; member 911 struct mlx5e_rq_param *param, struct mlx5e_xsk_param *xsk, 1090 struct mlx5e_xsk *xsk,
|
D | en_rx.c | 330 xsk_buff_free(dma_info->xsk); in mlx5e_page_release() 1772 int mlx5e_rq_set_handlers(struct mlx5e_rq *rq, struct mlx5e_params *params, bool xsk) in mlx5e_rq_set_handlers() argument 1779 rq->mpwqe.skb_from_cqe_mpwrq = xsk ? in mlx5e_rq_set_handlers() 1800 rq->wqe.skb_from_cqe = xsk ? in mlx5e_rq_set_handlers()
|
D | en_stats.c | 1676 (NUM_XSKRQ_STATS * max_nch * priv->xsk.ever_used) + in MLX5E_DECLARE_STATS_GRP_OP_NUM_STATS() 1677 (NUM_XSKSQ_STATS * max_nch * priv->xsk.ever_used); in MLX5E_DECLARE_STATS_GRP_OP_NUM_STATS() 1682 bool is_xsk = priv->xsk.ever_used; in MLX5E_DECLARE_STATS_GRP_OP_FILL_STRS() 1724 bool is_xsk = priv->xsk.ever_used; in MLX5E_DECLARE_STATS_GRP_OP_FILL_STATS()
|
D | en_ethtool.c | 400 if (priv->xsk.refcnt) { in mlx5e_ethtool_get_channels() 440 if (priv->xsk.refcnt) { in mlx5e_ethtool_set_channels()
|
/Linux-v5.10/net/xdp/ |
D | Makefile | 2 obj-$(CONFIG_XDP_SOCKETS) += xsk.o xdp_umem.o xsk_queue.o xskmap.o
|
D | xsk_buff_pool.c | 113 bpf.xsk.pool = NULL; in xp_disable_drv_zc() 114 bpf.xsk.queue_id = pool->queue_id; in xp_disable_drv_zc() 169 bpf.xsk.pool = pool; in __xp_assign_dev() 170 bpf.xsk.queue_id = queue_id; in __xp_assign_dev()
|
/Linux-v5.10/Documentation/networking/ |
D | af_xdp.rst | 212 in tools/lib/bpf/xsk.h for facilitating the use of AF_XDP. It 464 The XDP code sample included in tools/lib/bpf/xsk.c is the following: 558 code in tools/lib/bpf/xsk.[ch].
|