/Linux-v5.4/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 (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 …]
|
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.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() 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()
|
D | xdp.h | 64 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/ |
D | xsk.c | 81 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 …]
|
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, 240 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 | 256 $(call do_install,xsk.h,$(prefix)/include/bpf,644);
|
/Linux-v5.4/samples/bpf/ |
D | xdpsock_user.c | 91 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/ |
D | umem.c | 49 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 …]
|
D | setup.c | 14 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 …]
|
D | umem.h | 10 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);
|
D | rx.c | 27 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()
|
D | setup.h | 12 struct mlx5e_xsk_param *xsk, 15 struct mlx5e_xsk_param *xsk, struct xdp_umem *umem,
|
/Linux-v5.4/drivers/net/ethernet/mellanox/mlx5/core/ |
D | Makefile | 27 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
|
D | en_main.c | 375 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 …]
|
D | en.h | 269 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,
|
D | en_stats.c | 1571 (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()
|
D | en_ethtool.c | 396 if (priv->xsk.refcnt) { in mlx5e_ethtool_get_channels() 436 if (priv->xsk.refcnt) { in mlx5e_ethtool_set_channels()
|
/Linux-v5.4/net/xdp/ |
D | xdp_umem.c | 136 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()
|
D | Makefile | 2 obj-$(CONFIG_XDP_SOCKETS) += xsk.o xdp_umem.o xsk_queue.o
|
/Linux-v5.4/Documentation/networking/ |
D | af_xdp.rst | 227 The XDP code sample included in tools/lib/bpf/xsk.c is the following::
|
/Linux-v5.4/include/linux/ |
D | netdevice.h | 901 } xsk; member
|
/Linux-v5.4/drivers/net/ethernet/intel/ixgbe/ |
D | ixgbe_main.c | 10289 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/ |
D | i40e_main.c | 12826 return i40e_xsk_umem_setup(vsi, xdp->xsk.umem, in i40e_xdp() 12827 xdp->xsk.queue_id); in i40e_xdp()
|