Lines Matching refs:umem

139 	struct xsk_umem *umem;  member
146 struct xsk_umem_info *umem; member
483 struct xsk_umem *umem = xsks[0]->umem->umem; in xdpsock_cleanup() local
489 (void)xsk_umem__delete(umem); in xdpsock_cleanup()
785 static void gen_eth_frame(struct xsk_umem_info *umem, u64 addr) in gen_eth_frame() argument
787 memcpy(xsk_umem__get_data(umem->buffer, addr), pkt_data, in gen_eth_frame()
793 struct xsk_umem_info *umem; in xsk_configure_umem() local
812 umem = calloc(1, sizeof(*umem)); in xsk_configure_umem()
813 if (!umem) in xsk_configure_umem()
816 ret = xsk_umem__create(&umem->umem, buffer, size, &umem->fq, &umem->cq, in xsk_configure_umem()
821 umem->buffer = buffer; in xsk_configure_umem()
822 return umem; in xsk_configure_umem()
825 static void xsk_populate_fill_ring(struct xsk_umem_info *umem) in xsk_populate_fill_ring() argument
830 ret = xsk_ring_prod__reserve(&umem->fq, in xsk_populate_fill_ring()
835 *xsk_ring_prod__fill_addr(&umem->fq, idx++) = in xsk_populate_fill_ring()
837 xsk_ring_prod__submit(&umem->fq, XSK_RING_PROD__DEFAULT_NUM_DESCS * 2); in xsk_populate_fill_ring()
840 static struct xsk_socket_info *xsk_configure_socket(struct xsk_umem_info *umem, in xsk_configure_socket() argument
853 xsk->umem = umem; in xsk_configure_socket()
865 ret = xsk_socket__create(&xsk->xsk, opt_if, opt_queue, umem->umem, in xsk_configure_socket()
1104 struct xsk_umem_info *umem = xsk->umem; in complete_tx_l2fwd() local
1126 rcvd = xsk_ring_cons__peek(&umem->cq, ndescs, &idx_cq); in complete_tx_l2fwd()
1131 ret = xsk_ring_prod__reserve(&umem->fq, rcvd, &idx_fq); in complete_tx_l2fwd()
1135 if (xsk_ring_prod__needs_wakeup(&umem->fq)) { in complete_tx_l2fwd()
1139 ret = xsk_ring_prod__reserve(&umem->fq, rcvd, &idx_fq); in complete_tx_l2fwd()
1143 *xsk_ring_prod__fill_addr(&umem->fq, idx_fq++) = in complete_tx_l2fwd()
1144 *xsk_ring_cons__comp_addr(&umem->cq, idx_cq++); in complete_tx_l2fwd()
1146 xsk_ring_prod__submit(&xsk->umem->fq, rcvd); in complete_tx_l2fwd()
1147 xsk_ring_cons__release(&xsk->umem->cq, rcvd); in complete_tx_l2fwd()
1167 rcvd = xsk_ring_cons__peek(&xsk->umem->cq, batch_size, &idx); in complete_tx_only()
1169 xsk_ring_cons__release(&xsk->umem->cq, rcvd); in complete_tx_only()
1183 if (xsk_ring_prod__needs_wakeup(&xsk->umem->fq)) { in rx_drop()
1190 ret = xsk_ring_prod__reserve(&xsk->umem->fq, rcvd, &idx_fq); in rx_drop()
1194 if (xsk_ring_prod__needs_wakeup(&xsk->umem->fq)) { in rx_drop()
1198 ret = xsk_ring_prod__reserve(&xsk->umem->fq, rcvd, &idx_fq); in rx_drop()
1207 char *pkt = xsk_umem__get_data(xsk->umem->buffer, addr); in rx_drop()
1210 *xsk_ring_prod__fill_addr(&xsk->umem->fq, idx_fq++) = orig; in rx_drop()
1213 xsk_ring_prod__submit(&xsk->umem->fq, rcvd); in rx_drop()
1347 if (xsk_ring_prod__needs_wakeup(&xsk->umem->fq)) { in l2fwd()
1372 char *pkt = xsk_umem__get_data(xsk->umem->buffer, addr); in l2fwd()
1470 struct xsk_umem_info *umem; in main() local
1497 umem = xsk_configure_umem(bufs, NUM_FRAMES * opt_xsk_frame_size); in main()
1500 xsk_populate_fill_ring(umem); in main()
1505 xsks[num_socks++] = xsk_configure_socket(umem, rx, tx); in main()
1511 gen_eth_frame(umem, i * opt_xsk_frame_size); in main()