Lines Matching full:xsk
23 An AF_XDP socket (XSK) is created with the normal socket()
24 syscall. Associated with each XSK are two rings: the RX ring and the
60 call and submits the XSK of the process it would like to share UMEM
61 with as well as its own newly created XSK socket. The new process will
72 user-space application can place an XSK at an arbitrary place in this
74 this map and at this point XDP validates that the XSK in that map was
78 program loaded (and one XSK in the XSKMAP) to be able to get any
79 traffic to user space through the XSK.
212 in tools/testing/selftests/bpf/xsk.h for facilitating the use of
532 On the Rx path in copy-mode, the xsk core copies the XDP data into
641 void rx_packets(struct xsk_socket_info *xsk)
647 int rcvd = xsk_ring_cons__peek(&xsk->rx, opt_batch_size, &idx_rx);
649 xsk_ring_prod__reserve(&xsk->umem->fq, rcvd, &idx_fq);
652 struct xdp_desc *desc = xsk_ring_cons__rx_desc(&xsk->rx, idx_rx++);
653 char *frag = xsk_umem__get_data(xsk->umem->buffer, desc->addr);
666 *xsk_ring_prod__fill_addr(&xsk->umem->fq, idx_fq++) = desc->addr;
669 xsk_ring_prod__submit(&xsk->umem->fq, rcvd);
670 xsk_ring_cons__release(&xsk->rx, rcvd);
683 void tx_packets(struct xsk_socket_info *xsk, struct pkt *pkts,
688 xsk_ring_prod__reserve(&xsk->tx, batch_size, &idx);
697 tx_desc = xsk_ring_prod__tx_desc(&xsk->tx, idx + i++);
720 xsk_ring_prod__submit(&xsk->tx, i);
782 code in tools/testing/selftests/bpf/xsk.[ch].