[dpdk-dev] Unable to configure ethdev in secondary process using ring PMD
Alexey Bogdanenko
abogdanenko at ecotelecom.ru
Mon Nov 30 17:17:08 CET 2015
Hello,
I would like to setup communication between two existing DPDK
applications and run them on the same host.
"Connecting their ports" in some way in order not to rewrite the
applications would be very desirable. Specifically, I would like one
process to send packets and the second process to receive the packets
using rte_eth_tx_burst() and rte_eth_rx_burst() respectively.
The most straightforward way to accomplish this seems to be by using
ring based PMD API as described in the documentation [1] and email [2].
To adapt the example from the documentation to multi-process scenario, I
call rte_ring_create() and rte_eth_from_rings() in the primary process,
rte_ring_lookup() and rte_eth_from_rings() in the secondary process.
After that each process calls rte_eth_dev_configure().
Unfortunately, the function returns -1001 in the secondary process,
which is explained in debug log:
PMD: rte_eth_dev_configure: Cannot run in secondary processes
Is it possible to connect the applications as described above? Any
advice would be appreciated.
References:
1. Network Interface Controller Drivers. Chapter 8.
Libpcap and Ring Based Poll Mode Drivers.
2. DPDK ML. Fri Dec 6 07:22:06 CET 2013. How to know corresponding
device from port number. Tetsuya.Mukawa
Thanks,
Alexey Bogdanenko
More information about the dev
mailing list