-
Notifications
You must be signed in to change notification settings - Fork 487
Description
Hi, I'm trying to run TRex 3.06 in STL software mode (for later EMU) and the problem is that no RX packets are received.
I was able to trace the issue down to this function in main_dpdk.h
inline uint16_t HOT_FUNC rx_burst(uint16_t queue_id, struct rte_mbuf **rx_pkts, uint16_t nb_pkts) {
if (likely( !m_is_dummy )) {
return rte_eth_rx_burst(m_repid, queue_id, rx_pkts, nb_pkts);
} else {
return 0;
}
I've confirmed that this function is called in polling mode, but rte_eth_rx_burst()
always returns 0. At the same time, the NIC counters are incrementing. After rx_good_packets
reaches the number of allocated RX descriptors, all subsequent packets are counted as rx_missed_errors
.
My analysis is that since rte_eth_rx_burst()
always returns 0, the NIC runs out of RX descriptors because they're never being consumed by the application. However, I'm not sure why rte_eth_rx_burst()
is returning 0 in the first place.
The testpmd
application from the same version od DPDK (24.03) on the same system with the same NIC works fine and properly receives packets through this function.
The NIC is dual-port Intel XXV710 25G.
Any ideas on what else I should check to diagnose this issue?