Folks, Are you serious with it:
typedef uint16_t (*eth_rx_burst_t)(void *rxq, struct rte_mbuf **rx_pkts, uint16_t nb_pkts); typedef uint16_t (*eth_tx_burst_t)(void *txq, struct rte_mbuf **tx_pkts, uint16_t nb_pkts); I’m not surprised that every PMD stores port_id in every and each queue as having just the queue as an argument doesn’t allow to get the device. So the question is - why not to use something like: typedef uint16_t (*eth_rx_burst_t)(void *dev, uint16_t queue_id, struct rte_mbuf **rx_pkts, uint16_t nb_pkts); typedef uint16_t (*eth_tx_burst_t)(void *dev, uint16_t queue_id, struct rte_mbuf **tx_pkts, uint16_t nb_pkts); Ilya.