Lines Matching defs:bulk
278 * @LIBETH_XDP_TX_BULK: one bulk size at which it will be flushed to the queue
368 * struct libeth_xdp_tx_bulk - XDP Tx frame bulk for bulk sending
373 * @count: current number of frames in @bulk
374 * @bulk: array of queued frames for bulk Tx
376 * All XDP Tx operations except XSk xmit queue each frame to the bulk first
378 * the stack for performance. One bulk element contains all the data necessary
381 * to &libeth_xdp_tx_frame as they are compatible and the bulk structure is
391 struct libeth_xdp_tx_frame bulk[LIBETH_XDP_TX_BULK];
398 * Helper to declare a bulk on the stack with a compiler hint that it should
495 * @bulk: array of frames to send
517 libeth_xdp_tx_xmit_bulk(const struct libeth_xdp_tx_frame *bulk, void *xdpsq,
551 xmit(fill(bulk[i + j], base + j, &sq, priv),
558 xmit(fill(bulk[i], ntu + i - off, &sq, priv),
593 * @bq: XDP Tx bulk to queue the head frag to
603 bq->bulk[bq->count++] = (typeof(*bq->bulk)){
612 bq->bulk[bq->count - 1].len_fl |= LIBETH_XDP_TX_MULTI;
619 * @bq: XDP Tx bulk to queue the frag to
625 bq->bulk[bq->count++].frag = *frag;
630 * @bq: XDP Tx bulk to queue the frame to
632 * @flush_bulk: driver callback to flush the bulk to the HW queue
669 bq->bulk[bq->count - 1].len_fl |= LIBETH_XDP_TX_LAST;
705 * @frm: XDP Tx frame from the bulk
758 * __libeth_xdp_tx_flush_bulk - internal helper to flush one XDP Tx bulk
759 * @bq: bulk to flush
765 * Internal abstraction to create bulk flush functions for drivers. Used for
783 sent = libeth_xdp_tx_xmit_bulk(bq->bulk, bq->xdpsq,
801 * libeth_xdp_tx_flush_bulk - wrapper to define flush of one ``XDP_TX`` bulk
802 * @bq: bulk to flush
817 * libeth_xdp_xmit_init_bulk - internal helper to initialize bulk for XDP xmit
818 * @bq: bulk to initialize
866 * @bq: XDP Tx bulk to queue the head frag to
886 bq->bulk[bq->count++] = (typeof(*bq->bulk)){
894 bq->bulk[bq->count - 1].flags |= LIBETH_XDP_TX_MULTI;
901 * @bq: XDP Tx bulk to queue the frag to
917 bq->bulk[bq->count++] = (typeof(*bq->bulk)){
927 * @bq: XDP Tx bulk to queue the frame to
929 * @flush_bulk: driver callback to flush the bulk to the HW queue
971 bq->bulk[bq->count - 1].flags |= LIBETH_XDP_TX_LAST;
978 * @frm: XDP Tx frame from the bulk
1021 * libeth_xdp_xmit_flush_bulk - wrapper to define flush of one XDP xmit bulk
1022 * @bq: bulk to flush
1039 * @bq: XDP Tx bulk to queue frames to
1043 * @flush_bulk: driver callback to flush an XDP xmit bulk
1046 * Perform common checks, map the frags and queue them to the bulk, then flush
1047 * the bulk to the XDPSQ. If requested by the stack, finalize the queue.
1078 nxmit -= libeth_xdp_xmit_return_bulk(bq->bulk,
1096 * @fl: driver callback to flush an XDP xmit bulk
1129 * libeth_xdp_tx_init_bulk - initialize an XDP Tx bulk for Rx NAPI poll
1130 * @bq: bulk to initialize
1136 * Should be called on an onstack XDP Tx bulk before the NAPI polling loop.
1346 * @bq: buffer bulk for ``XDP_TX`` queueing
1391 * @bq: buffer bulk for ``XDP_TX`` queueing
1394 * @flush_bulk: driver callback for flushing a bulk
1429 * @bq: XDP Tx bulk to queue ``XDP_TX`` buffers
1430 * @fl: driver ``XDP_TX`` bulk flush callback
1447 * @bq: XDP Tx bulk to queue ``XDP_TX`` frames
1523 * @bq: XDP Tx bulk to queue ``XDP_TX`` frames
1539 * @bq: ``XDP_TX`` frame bulk
1540 * @flush: driver callback to flush the bulk
1543 * Flush the bulk if there are frames left to send, kick the queue and flush
1569 * Typical driver Rx flow would be (excl. bulk and buff init, frag attach):
1608 * LIBETH_XDP_DEFINE_FLUSH_TX - define a driver ``XDP_TX`` bulk flush function
1623 * LIBETH_XDP_DEFINE_FLUSH_XMIT - define a driver XDP xmit bulk flush function
1637 * @flush: driver callback to flush an ``XDP_TX`` bulk
1670 * @flush: driver callback to flush an ``XDP_TX`` bulk
1683 * @flush: driver callback to flush an ``XDP_TX`` bulk
1752 * @bulk: internal callback to bulk-free ``XDP_TX`` buffers
1762 typeof(libeth_xdp_return_buff_bulk) bulk,
1781 bulk(sqe->sinfo, cp->bq, sqe->nr_frags != 1);