Lines Matching refs:umem
141 struct xsk_umem *umem; member
148 struct xsk_umem_info *umem; member
500 struct xsk_umem *umem = xsks[0]->umem->umem; in xdpsock_cleanup() local
506 (void)xsk_umem__delete(umem); in xdpsock_cleanup()
795 static void gen_eth_frame(struct xsk_umem_info *umem, u64 addr) in gen_eth_frame() argument
797 memcpy(xsk_umem__get_data(umem->buffer, addr), pkt_data, in gen_eth_frame()
803 struct xsk_umem_info *umem; in xsk_configure_umem() local
822 umem = calloc(1, sizeof(*umem)); in xsk_configure_umem()
823 if (!umem) in xsk_configure_umem()
826 ret = xsk_umem__create(&umem->umem, buffer, size, &umem->fq, &umem->cq, in xsk_configure_umem()
831 umem->buffer = buffer; in xsk_configure_umem()
832 return umem; in xsk_configure_umem()
835 static void xsk_populate_fill_ring(struct xsk_umem_info *umem) in xsk_populate_fill_ring() argument
840 ret = xsk_ring_prod__reserve(&umem->fq, in xsk_populate_fill_ring()
845 *xsk_ring_prod__fill_addr(&umem->fq, idx++) = in xsk_populate_fill_ring()
847 xsk_ring_prod__submit(&umem->fq, XSK_RING_PROD__DEFAULT_NUM_DESCS * 2); in xsk_populate_fill_ring()
850 static struct xsk_socket_info *xsk_configure_socket(struct xsk_umem_info *umem, in xsk_configure_socket() argument
863 xsk->umem = umem; in xsk_configure_socket()
875 ret = xsk_socket__create(&xsk->xsk, opt_if, opt_queue, umem->umem, in xsk_configure_socket()
1127 struct xsk_umem_info *umem = xsk->umem; in complete_tx_l2fwd() local
1149 rcvd = xsk_ring_cons__peek(&umem->cq, ndescs, &idx_cq); in complete_tx_l2fwd()
1154 ret = xsk_ring_prod__reserve(&umem->fq, rcvd, &idx_fq); in complete_tx_l2fwd()
1158 if (opt_busy_poll || xsk_ring_prod__needs_wakeup(&umem->fq)) { in complete_tx_l2fwd()
1163 ret = xsk_ring_prod__reserve(&umem->fq, rcvd, &idx_fq); in complete_tx_l2fwd()
1167 *xsk_ring_prod__fill_addr(&umem->fq, idx_fq++) = in complete_tx_l2fwd()
1168 *xsk_ring_cons__comp_addr(&umem->cq, idx_cq++); in complete_tx_l2fwd()
1170 xsk_ring_prod__submit(&xsk->umem->fq, rcvd); in complete_tx_l2fwd()
1171 xsk_ring_cons__release(&xsk->umem->cq, rcvd); in complete_tx_l2fwd()
1190 rcvd = xsk_ring_cons__peek(&xsk->umem->cq, batch_size, &idx); in complete_tx_only()
1192 xsk_ring_cons__release(&xsk->umem->cq, rcvd); in complete_tx_only()
1205 if (opt_busy_poll || xsk_ring_prod__needs_wakeup(&xsk->umem->fq)) { in rx_drop()
1212 ret = xsk_ring_prod__reserve(&xsk->umem->fq, rcvd, &idx_fq); in rx_drop()
1216 if (opt_busy_poll || xsk_ring_prod__needs_wakeup(&xsk->umem->fq)) { in rx_drop()
1220 ret = xsk_ring_prod__reserve(&xsk->umem->fq, rcvd, &idx_fq); in rx_drop()
1229 char *pkt = xsk_umem__get_data(xsk->umem->buffer, addr); in rx_drop()
1232 *xsk_ring_prod__fill_addr(&xsk->umem->fq, idx_fq++) = orig; in rx_drop()
1235 xsk_ring_prod__submit(&xsk->umem->fq, rcvd); in rx_drop()
1370 if (opt_busy_poll || xsk_ring_prod__needs_wakeup(&xsk->umem->fq)) { in l2fwd()
1396 char *pkt = xsk_umem__get_data(xsk->umem->buffer, addr); in l2fwd()
1584 struct xsk_umem_info *umem; in main() local
1632 umem = xsk_configure_umem(bufs, NUM_FRAMES * opt_xsk_frame_size); in main()
1635 xsk_populate_fill_ring(umem); in main()
1640 xsks[num_socks++] = xsk_configure_socket(umem, rx, tx); in main()
1649 gen_eth_frame(umem, i * opt_xsk_frame_size); in main()