> -----Original Message----- > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Alexey Bogdanenko > Sent: Monday, November 30, 2015 4:17 PM > To: dev at dpdk.org > Subject: [dpdk-dev] Unable to configure ethdev in secondary process using > ring PMD > > 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
Hi Alexey, The ring PMDs returned from eth_from_rings should be all ready to be used without having to explicitly configure it or set up the queues. /Bruce