[dpdk-dev] Unable to configure ethdev in secondary process using ring PMD

Richardson, Bruce bruce.richardson at intel.com
Mon Nov 30 17:53:03 CET 2015



> -----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



More information about the dev mailing list