Home
last modified time | relevance | path

Searched refs:xdpf (Results 1 – 25 of 57) sorted by relevance

123

/linux/drivers/net/ethernet/amazon/ena/
H A Dena_xdp.c13 if (likely(tx_info->xdpf)) in validate_xdp_req_id()
21 struct xdp_frame *xdpf, in ena_xdp_tx_map_frame() argument
31 tx_info->xdpf = xdpf; in ena_xdp_tx_map_frame()
32 data = tx_info->xdpf->data; in ena_xdp_tx_map_frame()
33 size = tx_info->xdpf->len; in ena_xdp_tx_map_frame()
77 struct xdp_frame *xdpf, in ena_xdp_xmit_frame() argument
90 rc = ena_xdp_tx_map_frame(tx_ring, tx_info, xdpf, &ena_tx_ctx); in ena_xdp_xmit_frame()
101 xdpf->len); in ena_xdp_xmit_frame()
116 tx_info->xdpf = NULL; in ena_xdp_xmit_frame()
381 struct xdp_frame *xdpf; in ena_clean_xdp_irq() local
[all …]
H A Dena_xdp.h40 struct xdp_frame *xdpf,
87 struct xdp_frame *xdpf; in ena_xdp_execute() local
96 xdpf = xdp_convert_buff_to_frame(xdp); in ena_xdp_execute()
97 if (unlikely(!xdpf)) { in ena_xdp_execute()
110 if (ena_xdp_xmit_frame(xdp_ring, rx_ring->adapter, xdpf, in ena_xdp_execute()
112 xdp_return_frame(xdpf); in ena_xdp_execute()
/linux/drivers/net/vmxnet3/
H A Dvmxnet3_xdp.c116 struct xdp_frame *xdpf, in vmxnet3_xdp_xmit_frame() argument
129 dw2 |= xdpf->len; in vmxnet3_xdp_xmit_frame()
133 buf_size = xdpf->len; in vmxnet3_xdp_xmit_frame()
145 xdpf->data, buf_size, in vmxnet3_xdp_xmit_frame()
153 page = virt_to_page(xdpf->data); in vmxnet3_xdp_xmit_frame()
155 (xdpf->data - (void *)xdpf); in vmxnet3_xdp_xmit_frame()
160 tbi->xdpf = xdpf; in vmxnet3_xdp_xmit_frame()
207 struct xdp_frame *xdpf) in vmxnet3_xdp_xmit_back() argument
220 err = vmxnet3_xdp_xmit_frame(adapter, xdpf, tq, false); in vmxnet3_xdp_xmit_back()
264 struct xdp_frame *xdpf; in vmxnet3_run_xdp() local
[all …]
/linux/kernel/bpf/
H A Dcpumap.c192 struct xdp_frame *xdpf = frames[i]; in cpu_map_bpf_prog_run_xdp() local
196 rxq.dev = xdpf->dev_rx; in cpu_map_bpf_prog_run_xdp()
197 rxq.mem.type = xdpf->mem_type; in cpu_map_bpf_prog_run_xdp()
200 xdp_convert_frame_to_buff(xdpf, &xdp); in cpu_map_bpf_prog_run_xdp()
205 err = xdp_update_frame_from_buff(&xdp, xdpf); in cpu_map_bpf_prog_run_xdp()
207 xdp_return_frame(xdpf); in cpu_map_bpf_prog_run_xdp()
210 frames[nframes++] = xdpf; in cpu_map_bpf_prog_run_xdp()
214 err = xdp_do_redirect(xdpf->dev_rx, &xdp, in cpu_map_bpf_prog_run_xdp()
217 xdp_return_frame(xdpf); in cpu_map_bpf_prog_run_xdp()
227 xdp_return_frame(xdpf); in cpu_map_bpf_prog_run_xdp()
[all …]
/linux/include/net/libeth/
H A Dxdp.h345 struct xdp_frame *xdpf; member
853 static inline void *__libeth_xdp_xmit_frame_dma(const struct xdp_frame *xdpf) in __libeth_xdp_xmit_frame_dma() argument
855 void *addr = (void *)(xdpf + 1); in __libeth_xdp_xmit_frame_dma()
858 __alignof(*xdpf) < sizeof(dma_addr_t)) in __libeth_xdp_xmit_frame_dma()
875 struct xdp_frame *xdpf, in libeth_xdp_xmit_queue_head() argument
880 dma = dma_map_single(dev, xdpf->data, xdpf->len, DMA_TO_DEVICE); in libeth_xdp_xmit_queue_head()
884 *libeth_xdp_xmit_frame_dma(xdpf) = dma; in libeth_xdp_xmit_queue_head()
887 .xdpf = xdpf, in libeth_xdp_xmit_queue_head()
888 __libeth_xdp_tx_len(xdpf->len, LIBETH_XDP_TX_FIRST), in libeth_xdp_xmit_queue_head()
891 if (!xdp_frame_has_frags(xdpf)) in libeth_xdp_xmit_queue_head()
[all …]
H A Dtx.h66 struct xdp_frame *xdpf; member
/linux/drivers/net/ethernet/intel/ixgbe/
H A Dixgbe_xsk.c104 struct xdp_frame *xdpf; in ixgbe_run_xdp_zc() local
125 xdpf = xdp_convert_buff_to_frame(xdp); in ixgbe_run_xdp_zc()
126 if (unlikely(!xdpf)) in ixgbe_run_xdp_zc()
131 result = ixgbe_xmit_xdp_ring(ring, xdpf); in ixgbe_run_xdp_zc()
418 tx_bi->xdpf = NULL; in ixgbe_xmit_zc()
451 xdp_return_frame(tx_bi->xdpf); in ixgbe_clean_xdp_tx_buffer()
478 if (tx_bi->xdpf) in ixgbe_clean_xdp_tx_irq()
483 tx_bi->xdpf = NULL; in ixgbe_clean_xdp_tx_irq()
552 if (tx_bi->xdpf) in ixgbe_xsk_clean_tx_ring()
557 tx_bi->xdpf = NULL; in ixgbe_xsk_clean_tx_ring()
H A Dixgbe_txrx_common.h17 struct xdp_frame *xdpf);
/linux/drivers/net/ethernet/sfc/siena/
H A Dtx.c213 struct xdp_frame *xdpf; in efx_siena_xdp_tx_buffers() local
255 xdpf = xdpfs[i]; in efx_siena_xdp_tx_buffers()
263 len = xdpf->len; in efx_siena_xdp_tx_buffers()
267 xdpf->data, len, in efx_siena_xdp_tx_buffers()
274 tx_buffer->xdpf = xdpf; in efx_siena_xdp_tx_buffers()
H A Drx.c257 struct xdp_frame *xdpf; in efx_do_xdp() local
312 xdpf = xdp_convert_buff_to_frame(&xdp); in efx_do_xdp()
313 err = efx_siena_xdp_tx_buffers(efx, 1, &xdpf, true); in efx_do_xdp()
/linux/drivers/net/ethernet/freescale/dpaa/
H A Ddpaa_eth.c1728 xdp_return_frame(swbp->xdpf); in dpaa_cleanup_tx_fd()
2215 struct xdp_frame *new_xdpf, *xdpf = *init_xdpf; in dpaa_a050385_wa_xdpf() local
2229 if (PTR_IS_ALIGNED(xdpf->data, DPAA_FD_DATA_ALIGNMENT) && in dpaa_a050385_wa_xdpf()
2230 xdpf->headroom >= priv->tx_headroom) { in dpaa_a050385_wa_xdpf()
2231 xdpf->headroom = priv->tx_headroom; in dpaa_a050385_wa_xdpf()
2239 aligned_data = PTR_ALIGN_DOWN(xdpf->data, DPAA_FD_DATA_ALIGNMENT); in dpaa_a050385_wa_xdpf()
2240 data_shift = xdpf->data - aligned_data; in dpaa_a050385_wa_xdpf()
2245 if (xdpf->headroom >= data_shift + priv->tx_headroom) { in dpaa_a050385_wa_xdpf()
2246 memmove(aligned_data, xdpf->data, xdpf->len); in dpaa_a050385_wa_xdpf()
2247 xdpf->data = aligned_data; in dpaa_a050385_wa_xdpf()
[all …]
/linux/drivers/net/ethernet/fungible/funeth/
H A Dfuneth_tx.c500 xdp_return_frame(q->info[reclaim_idx].xdpf); in fun_xdpq_clean()
514 bool fun_xdp_tx(struct funeth_txq *q, struct xdp_frame *xdpf) in fun_xdp_tx() argument
516 unsigned int idx, nfrags = 1, ndesc = 1, tot_len = xdpf->len; in fun_xdp_tx()
525 if (unlikely(xdp_frame_has_frags(xdpf))) { in fun_xdp_tx()
526 si = xdp_get_shared_info_from_frame(xdpf); in fun_xdp_tx()
527 tot_len = xdp_get_frame_len(xdpf); in fun_xdp_tx()
539 if (unlikely(fun_map_pkt(q->dma_dev, si, xdpf->data, xdpf->len, dma, in fun_xdp_tx()
558 q->info[idx].xdpf = xdpf; in fun_xdp_tx()
618 xdp_return_frame(q->info[idx].xdpf); in fun_xdpq_purge()
H A Dfuneth_txrx.h101 struct xdp_frame *xdpf; /* associated XDP frame (XDP path) */ member
250 bool fun_xdp_tx(struct funeth_txq *q, struct xdp_frame *xdpf);
H A Dfuneth_rx.c145 struct xdp_frame *xdpf; in fun_run_xdp() local
168 xdpf = xdp_convert_buff_to_frame(&xdp); in fun_run_xdp()
169 if (!xdpf || !fun_xdp_tx(xdp_q, xdpf)) in fun_run_xdp()
/linux/drivers/net/ethernet/aquantia/atlantic/
H A Daq_ring.c320 } else if (buff->xdpf) { in aq_ring_tx_clean()
323 self->stats.tx.bytes += xdp_get_frame_len(buff->xdpf); in aq_ring_tx_clean()
325 xdp_return_frame_rx_napi(buff->xdpf); in aq_ring_tx_clean()
330 buff->xdpf = NULL; in aq_ring_tx_clean()
377 struct xdp_frame *xdpf = frames[i]; in aq_xdp_xmit() local
379 if (aq_nic_xmit_xdpf(aq_nic, ring, xdpf) == NETDEV_TX_BUSY) in aq_xdp_xmit()
390 struct xdp_frame *xdpf; in aq_xdp_build_skb() local
393 xdpf = xdp_convert_buff_to_frame(xdp); in aq_xdp_build_skb()
394 if (unlikely(!xdpf)) in aq_xdp_build_skb()
397 skb = xdp_build_skb_from_frame(xdpf, dev); in aq_xdp_build_skb()
[all …]
H A Daq_nic.c576 struct xdp_frame *xdpf, in aq_nic_map_xdp() argument
592 sinfo = xdp_get_shared_info_from_frame(xdpf); in aq_nic_map_xdp()
593 total_len = xdpf->len; in aq_nic_map_xdp()
595 if (xdp_frame_has_frags(xdpf)) { in aq_nic_map_xdp()
599 dx_buff->pa = dma_map_single(dev, xdpf->data, dx_buff->len, in aq_nic_map_xdp()
649 dx_buff->xdpf = xdpf; in aq_nic_map_xdp()
800 dx_buff->xdpf = NULL; in aq_nic_map_skb()
830 struct xdp_frame *xdpf) in aq_nic_xmit_xdpf() argument
840 if (xdp_frame_has_frags(xdpf)) { in aq_nic_xmit_xdpf()
841 sinfo = xdp_get_shared_info_from_frame(xdpf); in aq_nic_xmit_xdpf()
[all …]
/linux/drivers/net/ethernet/socionext/
H A Dnetsec.c272 struct xdp_frame *xdpf; member
675 bytes += desc->xdpf->len; in netsec_clean_tx_dring()
677 xdp_return_frame_rx_napi(desc->xdpf); in netsec_clean_tx_dring()
679 xdp_return_frame_bulk(desc->xdpf, &bq); in netsec_clean_tx_dring()
821 dring->desc[idx].xdpf = buf; in netsec_set_tx_de()
829 struct xdp_frame *xdpf, bool is_ndo) in netsec_xdp_queue_one() argument
833 struct page *page = virt_to_page(xdpf->data); in netsec_xdp_queue_one()
851 dma_handle = dma_map_single(priv->dev, xdpf->data, xdpf->len, in netsec_xdp_queue_one()
865 dma_handle = page_pool_get_dma_addr(page) + xdpf->headroom + in netsec_xdp_queue_one()
866 sizeof(*xdpf); in netsec_xdp_queue_one()
[all …]
/linux/drivers/net/ethernet/qlogic/qede/
H A Dqede_fp.c306 u16 len, struct page *page, struct xdp_frame *xdpf) in qede_xdp_xmit() argument
333 xdp->xdpf = xdpf; in qede_xdp_xmit()
346 struct xdp_frame *xdpf; in qede_xdp_transmit() local
363 xdpf = frames[i]; in qede_xdp_transmit()
365 mapping = dma_map_single(dmadev, xdpf->data, xdpf->len, in qede_xdp_transmit()
370 if (unlikely(qede_xdp_xmit(xdp_tx, mapping, 0, xdpf->len, in qede_xdp_transmit()
371 NULL, xdpf))) in qede_xdp_transmit()
405 struct xdp_frame *xdpf; in qede_xdp_tx_int() local
413 xdpf = xdp_info->xdpf; in qede_xdp_tx_int()
415 if (xdpf) { in qede_xdp_tx_int()
[all …]
/linux/drivers/net/ethernet/microchip/lan966x/
H A Dlan966x_fdma.c374 xdp_return_frame_bulk(dcb_buf->data.xdpf, &bq); in lan966x_fdma_tx_clear_buf()
605 struct xdp_frame *xdpf; in lan966x_fdma_xmit_xdpf() local
627 xdpf = ptr; in lan966x_fdma_xmit_xdpf()
629 if (xdpf->headroom < IFH_LEN_BYTES) { in lan966x_fdma_xmit_xdpf()
634 ifh = xdpf->data - IFH_LEN_BYTES; in lan966x_fdma_xmit_xdpf()
640 xdpf->data - IFH_LEN_BYTES, in lan966x_fdma_xmit_xdpf()
641 xdpf->len + IFH_LEN_BYTES, in lan966x_fdma_xmit_xdpf()
648 next_dcb_buf->data.xdpf = xdpf; in lan966x_fdma_xmit_xdpf()
649 next_dcb_buf->len = xdpf->len + IFH_LEN_BYTES; in lan966x_fdma_xmit_xdpf()
H A Dlan966x_xdp.c62 struct xdp_frame *xdpf = frames[i]; in lan966x_xdp_xmit() local
65 err = lan966x_fdma_xmit_xdpf(port, xdpf, 0); in lan966x_xdp_xmit()
/linux/drivers/net/ethernet/intel/i40e/
H A Di40e_xsk.c615 xdp_return_frame(tx_bi->xdpf); in i40e_clean_xdp_tx_buffer()
655 if (tx_bi->xdpf) { in i40e_clean_xdp_tx_irq()
657 tx_bi->xdpf = NULL; in i40e_clean_xdp_tx_irq()
756 if (tx_bi->xdpf) in i40e_xsk_clean_tx_ring()
761 tx_bi->xdpf = NULL; in i40e_xsk_clean_tx_ring()
H A Di40e_txrx.c758 xdp_return_frame(tx_buffer->xdpf); in i40e_unmap_and_free_tx_resource()
965 xdp_return_frame(tx_buf->xdpf); in i40e_clean_tx_irq()
2243 static int i40e_xmit_xdp_ring(struct xdp_frame *xdpf,
2248 struct xdp_frame *xdpf = xdp_convert_buff_to_frame(xdp); in i40e_xmit_xdp_tx_ring() local
2250 if (unlikely(!xdpf)) in i40e_xmit_xdp_tx_ring()
2253 return i40e_xmit_xdp_ring(xdpf, xdp_ring); in i40e_xmit_xdp_tx_ring()
3775 static int i40e_xmit_xdp_ring(struct xdp_frame *xdpf, in i40e_xmit_xdp_ring() argument
3778 struct skb_shared_info *sinfo = xdp_get_shared_info_from_frame(xdpf); in i40e_xmit_xdp_ring()
3779 u8 nr_frags = unlikely(xdp_frame_has_frags(xdpf)) ? sinfo->nr_frags : 0; in i40e_xmit_xdp_ring()
3784 void *data = xdpf->data; in i40e_xmit_xdp_ring()
[all …]
/linux/drivers/net/ethernet/pensando/ionic/
H A Dionic_txrx.c288 xdp_return_frame_rx_napi(desc_info->xdpf); in ionic_xdp_tx_desc_clean()
290 xdp_return_frame(desc_info->xdpf); in ionic_xdp_tx_desc_clean()
293 xdp_return_frame_bulk(desc_info->xdpf, &bq); in ionic_xdp_tx_desc_clean()
300 desc_info->xdpf = NULL; in ionic_xdp_tx_desc_clean()
338 desc_info->xdpf = frame; in ionic_xdp_post_frame()
481 struct xdp_frame *xdpf; in ionic_run_xdp() local
548 xdpf = xdp_convert_buff_to_frame(&xdp_buf); in ionic_run_xdp()
549 if (!xdpf) { in ionic_run_xdp()
568 err = ionic_xdp_post_frame(txq, xdpf, XDP_TX, in ionic_run_xdp()
1186 if (desc_info->xdpf) { in ionic_tx_clean()
/linux/drivers/net/ethernet/marvell/octeontx2/nic/
H A Dotx2_txrx.c1417 void otx2_xdp_sqe_add_sg(struct otx2_snd_queue *sq, struct xdp_frame *xdpf, in otx2_xdp_sqe_add_sg() argument
1436 sq->sg[sq->head].skb = (u64)xdpf; in otx2_xdp_sqe_add_sg()
1454 bool otx2_xdp_sq_append_pkt(struct otx2_nic *pfvf, struct xdp_frame *xdpf, in otx2_xdp_sq_append_pkt() argument
1481 otx2_xdp_sqe_add_sg(sq, xdpf, iova, len, &offset, flags); in otx2_xdp_sq_append_pkt()
1497 struct xdp_frame *xdpf; in otx2_xdp_rcv_pkt_handler() local
1536 xdpf = xdp_convert_buff_to_frame(&xdp); in otx2_xdp_rcv_pkt_handler()
1537 return otx2_xdp_sq_append_pkt(pfvf, xdpf, in otx2_xdp_rcv_pkt_handler()
1560 xdpf = xdp_convert_buff_to_frame(&xdp); in otx2_xdp_rcv_pkt_handler()
1561 xdp_return_frame(xdpf); in otx2_xdp_rcv_pkt_handler()
/linux/drivers/net/ethernet/stmicro/stmmac/
H A Dstmmac_main.c1638 if (tx_q->xdpf[i] && in stmmac_free_tx_buffer()
1641 xdp_return_frame(tx_q->xdpf[i]); in stmmac_free_tx_buffer()
1642 tx_q->xdpf[i] = NULL; in stmmac_free_tx_buffer()
2662 tx_q->xdpf[entry] = NULL; in stmmac_xdp_xmit_zc()
2764 struct xdp_frame *xdpf; in stmmac_tx_clean() local
2771 xdpf = tx_q->xdpf[entry]; in stmmac_tx_clean()
2774 xdpf = NULL; in stmmac_tx_clean()
2777 xdpf = NULL; in stmmac_tx_clean()
2847 if (xdpf && in stmmac_tx_clean()
2849 xdp_return_frame_rx_napi(xdpf); in stmmac_tx_clean()
[all …]

123