Hi all. I wrote a program to recv and send pkt at the same port. First init the port then use below code to receive pkts and send pkts. It works OK.
Then I try the multi-process. I init the port in master app, and run the recv and send in slave spp. In this mode rx_eth_tx_burst() always return 0. while ( 1 ) { int nb_rx, t; int tmp; nb_rx = rte_eth_rx_burst(1, 0, pkt_mbuf, BURST_COUNT); if (nb_rx == 0) { rte_delay_us(20); continue; } t = 0; while (t < nb_rx) { tmp = rte_eth_tx_burst(1, 0, &pkt_mbuf[t], nb_rx - t); t += tmp; } } What I found is: In single-process mode, the tx_pkt_burst is set to ixgbe_xmit_pkts_vec. In multi-process mode, after the master app is up, it shows tx_pkt_burst is ixgbe_xmit_pkts_vec. But when the slave app is runing, "perf top" shows ixgbe_xmit_pkts is runing, not the ixgbe_xmit_pkts_vec. How can I make the slave app still call the ixgbe_xmit_pkts_vec? zengxg