MCPcopy Create free account
hub / github.com/F-Stack/f-stack / txgbe_alloc_rx_queue_mbufs

Function txgbe_alloc_rx_queue_mbufs

dpdk/drivers/net/txgbe/txgbe_rxtx.c:3882–3912  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3880}
3881
3882static int __rte_cold
3883txgbe_alloc_rx_queue_mbufs(struct txgbe_rx_queue *rxq)
3884{
3885 struct txgbe_rx_entry *rxe = rxq->sw_ring;
3886 uint64_t dma_addr;
3887 unsigned int i;
3888
3889 /* Initialize software ring entries */
3890 for (i = 0; i < rxq->nb_rx_desc; i++) {
3891 volatile struct txgbe_rx_desc *rxd;
3892 struct rte_mbuf *mbuf = rte_mbuf_raw_alloc(rxq->mb_pool);
3893
3894 if (mbuf == NULL) {
3895 PMD_INIT_LOG(ERR, "RX mbuf alloc failed queue_id=%u",
3896 (unsigned int)rxq->queue_id);
3897 return -ENOMEM;
3898 }
3899
3900 mbuf->data_off = RTE_PKTMBUF_HEADROOM;
3901 mbuf->port = rxq->port_id;
3902
3903 dma_addr =
3904 rte_cpu_to_le_64(rte_mbuf_data_iova_default(mbuf));
3905 rxd = &rxq->rx_ring[i];
3906 TXGBE_RXD_HDRADDR(rxd, 0);
3907 TXGBE_RXD_PKTADDR(rxd, dma_addr);
3908 rxe[i].mbuf = mbuf;
3909 }
3910
3911 return 0;
3912}
3913
3914static int
3915txgbe_config_vf_rss(struct rte_eth_dev *dev)

Callers 2

txgbe_dev_rx_queue_startFunction · 0.85
txgbevf_dev_rx_initFunction · 0.85

Calls 2

rte_mbuf_raw_allocFunction · 0.85

Tested by

no test coverage detected