| /linux-6.15/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/ |
| H A D | pool.c | 25 if (!xsk->pools) { 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() 40 if (!--xsk->refcnt) { in mlx5e_xsk_put_pools() 41 kfree(xsk->pools); in mlx5e_xsk_put_pools() 42 xsk->pools = NULL; in mlx5e_xsk_put_pools() 54 xsk->pools[ix] = pool; in mlx5e_xsk_add_pool() 60 xsk->pools[ix] = NULL; in mlx5e_xsk_remove_pool() 62 mlx5e_xsk_put_pools(xsk); in mlx5e_xsk_remove_pool() [all …]
|
| H A D | setup.c | 12 struct mlx5e_xsk_param *xsk) in mlx5e_legacy_rq_validate_xsk() argument 14 if (!mlx5e_rx_is_linear_skb(mdev, params, xsk)) { in mlx5e_legacy_rq_validate_xsk() 28 struct mlx5e_xsk_param *xsk, in mlx5e_validate_xsk_param() argument 34 if ((size_t)xsk->chunk_size > PAGE_SIZE || xsk->chunk_size < MLX5E_MIN_XSK_CHUNK_SIZE) { in mlx5e_validate_xsk_param() 45 return !mlx5e_mpwrq_validate_xsk(mdev, params, xsk); in mlx5e_validate_xsk_param() 53 struct mlx5e_xsk_param *xsk, in mlx5e_build_xsk_cparam() argument 56 mlx5e_build_rq_param(mdev, params, xsk, &cparam->rq); in mlx5e_build_xsk_cparam() 63 struct mlx5e_xsk_param *xsk, in mlx5e_init_xsk_rq() argument 86 err = mlx5e_rq_set_handlers(rq, params, xsk); in mlx5e_init_xsk_rq() 95 struct mlx5e_xsk_param *xsk) in mlx5e_open_xsk_rq() argument [all …]
|
| H A 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);
|
| H A D | setup.h | 12 struct mlx5e_xsk_param *xsk, 15 struct mlx5e_xsk_param *xsk, struct xsk_buff_pool *pool,
|
| /linux-6.15/tools/testing/selftests/bpf/prog_tests/ |
| H A D | xdp_metadata.c | 49 struct xsk { struct 59 static int open_xsk(int ifindex, struct xsk *xsk) in open_xsk() argument 93 xsk->umem, in open_xsk() 94 &xsk->rx, in open_xsk() 95 &xsk->tx, in open_xsk() 127 static void close_xsk(struct xsk *xsk) in close_xsk() argument 129 if (xsk->umem) in close_xsk() 131 if (xsk->socket) in close_xsk() 136 static int generate_packet(struct xsk *xsk, __u16 dst_port) in generate_packet() argument 227 static void complete_tx(struct xsk *xsk) in complete_tx() argument [all …]
|
| /linux-6.15/tools/testing/selftests/bpf/ |
| H A D | xdp_hw_metadata.c | 58 struct xsk { struct 125 xsk->umem, in open_xsk() 126 &xsk->rx, in open_xsk() 127 &xsk->tx, in open_xsk() 154 static void close_xsk(struct xsk *xsk) in close_xsk() argument 156 if (xsk->umem) in close_xsk() 163 static void refill_rx(struct xsk *xsk, __u64 addr) in refill_rx() argument 174 static int kick_tx(struct xsk *xsk) in kick_tx() argument 179 static int kick_rx(struct xsk *xsk) in kick_rx() argument 304 static bool complete_tx(struct xsk *xsk, clockid_t clock_id) in complete_tx() argument [all …]
|
| H A D | xsk.c | 99 return xsk ? xsk->fd : -EINVAL; in xsk_socket__fd() 560 xsk = calloc(1, sizeof(*xsk)); in xsk_socket__create_shared() 561 if (!xsk) in xsk_socket__create_shared() 593 xsk->ctx = ctx; in xsk_socket__create_shared() 643 xsk->rx = rx; in xsk_socket__create_shared() 667 xsk->tx = tx; in xsk_socket__create_shared() 685 *xsk_ptr = xsk; in xsk_socket__create_shared() 704 free(xsk); in xsk_socket__create_shared() 754 if (!xsk) in xsk_socket__delete() 757 ctx = xsk->ctx; in xsk_socket__delete() [all …]
|
| H A D | xskxceiver.c | 310 if (!xsk) in ifobj_zc_avail() 319 xsk_socket__delete(xsk->xsk); in ifobj_zc_avail() 1133 fds.fd = xsk_socket__fd(xsk->xsk); in __receive_pkts() 1317 fds.fd = xsk_socket__fd(xsk->xsk); in __send_pkts() 1320 while (xsk_ring_prod__reserve(&xsk->tx, xsk->batch_size, &idx) < xsk->batch_size) { in __send_pkts() 1340 complete_pkts(xsk, xsk->batch_size); in __send_pkts() 1441 complete_pkts(xsk, xsk->batch_size); in wait_for_tx_completion() 1511 struct xsk_socket *xsk = ifobject->xsk->xsk; in validate_rx_dropped() local 1538 struct xsk_socket *xsk = ifobject->xsk->xsk; in validate_rx_full() local 1559 struct xsk_socket *xsk = ifobject->xsk->xsk; in validate_fill_empty() local [all …]
|
| H A D | xsk.h | 188 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 D | xskxceiver.h | 91 struct xsk_socket *xsk; member 131 struct xsk_socket_info *xsk; member
|
| /linux-6.15/drivers/net/ethernet/mellanox/mlx5/core/en/ |
| H A D | params.c | 25 u8 req_page_shift = xsk ? order_base_2(xsk->chunk_size) : PAGE_SHIFT; in mlx5e_mpwrq_page_shift() 48 bool unaligned = xsk ? xsk->unaligned : false; in mlx5e_mpwrq_umr_mode() 51 if (xsk) { in mlx5e_mpwrq_umr_mode() 69 if (xsk->chunk_size % 3 == 0 && is_power_of_2(xsk->chunk_size / 3)) in mlx5e_mpwrq_umr_mode() 231 if (xsk) in mlx5e_get_linear_rq_headroom() 232 return xsk->headroom; in mlx5e_get_linear_rq_headroom() 248 return xsk->headroom + hw_mtu; in mlx5e_rx_get_linear_sz_xsk() 274 if (xsk) in mlx5e_rx_get_linear_stride_sz() 321 if (xsk && mlx5e_rx_get_linear_sz_xsk(params, xsk) > xsk->chunk_size) in mlx5e_rx_is_linear_skb() 1166 xsk.unaligned = true; in mlx5e_build_icosq_log_wq_sz() [all …]
|
| H A D | params.h | 82 struct mlx5e_xsk_param *xsk); 88 struct mlx5e_xsk_param *xsk); 91 struct mlx5e_xsk_param *xsk); 94 struct mlx5e_xsk_param *xsk); 97 struct mlx5e_xsk_param *xsk); 113 struct mlx5e_xsk_param *xsk); 116 struct mlx5e_xsk_param *xsk); 120 struct mlx5e_xsk_param *xsk); 127 struct mlx5e_xsk_param *xsk, 141 struct mlx5e_xsk_param *xsk, [all …]
|
| H A D | rx_res.h | 47 unsigned int ix, bool xsk);
|
| /linux-6.15/tools/testing/selftests/bpf/progs/ |
| H A D | xsk_xdp_progs.c | 14 } xsk SEC(".maps"); 21 return bpf_redirect_map(&xsk, 0, XDP_DROP); in xsk_def_prog() 30 return bpf_redirect_map(&xsk, 0, XDP_DROP); in xsk_xdp_drop() 53 return bpf_redirect_map(&xsk, 0, XDP_DROP); in xsk_xdp_populate_metadata() 70 return bpf_redirect_map(&xsk, idx, XDP_DROP); in xsk_xdp_shared_umem()
|
| H A D | xdp_metadata.c | 13 } xsk SEC(".maps"); 95 return bpf_redirect_map(&xsk, ctx->rx_queue_index, XDP_PASS); in rx()
|
| H A D | xdp_hw_metadata.c | 13 } xsk SEC(".maps"); 114 return bpf_redirect_map(&xsk, ctx->rx_queue_index, XDP_PASS); in rx()
|
| /linux-6.15/Documentation/bpf/ |
| H A D | map_xskmap.rst | 21 | 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-6.15/net/xdp/ |
| H A D | Makefile | 2 obj-$(CONFIG_XDP_SOCKETS) += xsk.o xdp_umem.o xsk_queue.o xskmap.o
|
| H A D | xsk_buff_pool.c | 151 bpf.xsk.pool = NULL; in xp_disable_drv_zc() 152 bpf.xsk.queue_id = pool->queue_id; in xp_disable_drv_zc() 222 bpf.xsk.pool = pool; in xp_assign_dev() 223 bpf.xsk.queue_id = queue_id; in xp_assign_dev()
|
| /linux-6.15/drivers/net/ethernet/mellanox/mlx5/core/ |
| H A D | Makefile | 29 en/reporter_tx.o en/reporter_rx.o en/params.o en/xsk/pool.o \ 30 en/xsk/setup.o en/xsk/rx.o en/xsk/tx.o en/devlink.o en/ptp.o \
|
| H A D | en_main.c | 818 struct mlx5e_xsk_param *xsk, in mlx5e_alloc_rq() argument 914 if (xsk) { in mlx5e_alloc_rq() 2662 struct mlx5e_xsk_param xsk; in mlx5e_open_channel() local 2716 mlx5e_build_xsk_param(xsk_pool, &xsk); in mlx5e_open_channel() 4404 if (priv->xsk.refcnt) { in mlx5e_fix_features() 4407 priv->xsk.refcnt); in mlx5e_fix_features() 4412 priv->xsk.refcnt); in mlx5e_fix_features() 4450 struct mlx5e_xsk_param xsk; in mlx5e_xsk_validate_mtu() local 4539 if (priv->xsk.refcnt && in mlx5e_change_mtu() 5101 xdp->xsk.queue_id); in mlx5e_xdp() [all …]
|
| H A D | en.h | 314 struct mlx5e_xsk *xsk; member 600 int mlx5e_rq_set_handlers(struct mlx5e_rq *rq, struct mlx5e_params *params, bool xsk); 936 struct mlx5e_xsk xsk; member 1029 struct mlx5e_xsk_param *xsk, int node, u16 q_counter, 1227 void mlx5e_build_nic_params(struct mlx5e_priv *priv, struct mlx5e_xsk *xsk, u16 mtu);
|
| /linux-6.15/Documentation/netlink/specs/ |
| H A D | netdev.yaml | 28 name: xsk-zerocopy 63 name: xsk-flags 117 name: xsk-features 120 enum: xsk-flags 284 name: xsk-info 306 the xsk attribute. 323 name: xsk 326 nested-attributes: xsk-info 567 - xsk-features 671 - xsk
|
| /linux-6.15/drivers/net/ethernet/freescale/dpaa2/ |
| H A D | Makefile | 10 …-eth-objs := dpaa2-eth.o dpaa2-ethtool.o dpni.o dpaa2-mac.o dpmac.o dpaa2-eth-devlink.o dpaa2-xsk.o
|
| /linux-6.15/Documentation/networking/ |
| H A D | af_xdp.rst | 212 in tools/lib/bpf/xsk.h for facilitating the use of AF_XDP. It 527 On the Rx path in copy-mode, the xsk core copies the XDP data into 557 The XDP code sample included in tools/lib/bpf/xsk.c is the following: 636 void rx_packets(struct xsk_socket_info *xsk) 644 xsk_ring_prod__reserve(&xsk->umem->fq, rcvd, &idx_fq); 664 xsk_ring_prod__submit(&xsk->umem->fq, rcvd); 665 xsk_ring_cons__release(&xsk->rx, rcvd); 678 void tx_packets(struct xsk_socket_info *xsk, struct pkt *pkts, 683 xsk_ring_prod__reserve(&xsk->tx, batch_size, &idx); 715 xsk_ring_prod__submit(&xsk->tx, i); [all …]
|