Lines Matching refs:xdp_ring

205 	struct i40e_ring *xdp_ring;  in i40e_run_xdp_zc()  local
225 xdp_ring = rx_ring->vsi->xdp_rings[rx_ring->queue_index]; in i40e_run_xdp_zc()
226 result = i40e_xmit_xdp_tx_ring(xdp, xdp_ring); in i40e_run_xdp_zc()
466 static void i40e_xmit_pkt(struct i40e_ring *xdp_ring, struct xdp_desc *desc, in i40e_xmit_pkt() argument
472 dma = xsk_buff_raw_get_dma(xdp_ring->xsk_pool, desc->addr); in i40e_xmit_pkt()
473 xsk_buff_raw_dma_sync_for_device(xdp_ring->xsk_pool, dma, desc->len); in i40e_xmit_pkt()
475 tx_desc = I40E_TX_DESC(xdp_ring, xdp_ring->next_to_use++); in i40e_xmit_pkt()
483 static void i40e_xmit_pkt_batch(struct i40e_ring *xdp_ring, struct xdp_desc *desc, in i40e_xmit_pkt_batch() argument
486 u16 ntu = xdp_ring->next_to_use; in i40e_xmit_pkt_batch()
492 dma = xsk_buff_raw_get_dma(xdp_ring->xsk_pool, desc[i].addr); in i40e_xmit_pkt_batch()
493 xsk_buff_raw_dma_sync_for_device(xdp_ring->xsk_pool, dma, desc[i].len); in i40e_xmit_pkt_batch()
495 tx_desc = I40E_TX_DESC(xdp_ring, ntu++); in i40e_xmit_pkt_batch()
504 xdp_ring->next_to_use = ntu; in i40e_xmit_pkt_batch()
507 static void i40e_fill_tx_hw_ring(struct i40e_ring *xdp_ring, struct xdp_desc *descs, u32 nb_pkts, in i40e_fill_tx_hw_ring() argument
515 i40e_xmit_pkt_batch(xdp_ring, &descs[i], total_bytes); in i40e_fill_tx_hw_ring()
517 i40e_xmit_pkt(xdp_ring, &descs[i], total_bytes); in i40e_fill_tx_hw_ring()
520 static void i40e_set_rs_bit(struct i40e_ring *xdp_ring) in i40e_set_rs_bit() argument
522 u16 ntu = xdp_ring->next_to_use ? xdp_ring->next_to_use - 1 : xdp_ring->count - 1; in i40e_set_rs_bit()
525 tx_desc = I40E_TX_DESC(xdp_ring, ntu); in i40e_set_rs_bit()
536 static bool i40e_xmit_zc(struct i40e_ring *xdp_ring, unsigned int budget) in i40e_xmit_zc() argument
538 struct xdp_desc *descs = xdp_ring->xsk_pool->tx_descs; in i40e_xmit_zc()
542 nb_pkts = xsk_tx_peek_release_desc_batch(xdp_ring->xsk_pool, budget); in i40e_xmit_zc()
546 if (xdp_ring->next_to_use + nb_pkts >= xdp_ring->count) { in i40e_xmit_zc()
547 nb_processed = xdp_ring->count - xdp_ring->next_to_use; in i40e_xmit_zc()
548 i40e_fill_tx_hw_ring(xdp_ring, descs, nb_processed, &total_bytes); in i40e_xmit_zc()
549 xdp_ring->next_to_use = 0; in i40e_xmit_zc()
552 i40e_fill_tx_hw_ring(xdp_ring, &descs[nb_processed], nb_pkts - nb_processed, in i40e_xmit_zc()
556 i40e_set_rs_bit(xdp_ring); in i40e_xmit_zc()
557 i40e_xdp_ring_update_tail(xdp_ring); in i40e_xmit_zc()
559 i40e_update_tx_stats(xdp_ring, nb_pkts, total_bytes); in i40e_xmit_zc()