I don't think the pdump application is doing the transmit/receive. Am I missing something in the command line arguments I passed below that would configure it to transmit/receive?
Passing in the rx-dev and tx-dev as pcap should not cause that right? The documentation mentions those as mandatory arguments. I tried specifying an interface as well and saw the same issue. Thanks Sameer Vaze -----Original Message----- From: Stephen Hemminger <[email protected]> Sent: Saturday, February 17, 2024 10:00 AM To: Sameer Vaze <[email protected]> Cc: [email protected] Subject: Re: DPDK Pdump tool is not able to attach to DPDK test pmd primary application WARNING: This email originated from outside of Qualcomm. Please be wary of any links or attachments, and do not enable macros. On Wed, 14 Feb 2024 22:44:46 +0000 Sameer Vaze <[email protected]> wrote: > Hey Folks, > > I see the following message when I attempt to attach pdump to the testpmd > sample application: > > Pdump output: > EAL: Failed to hotplug add device > EAL: Error - exiting with code: 1 > Cause: vdev creation failed:create_mp_ring_vdev:695 > > Testpmd output: > Reached maximum number of Ethernet ports > EAL: Driver cannot attach the device (net_pcap_rx_0) > EAL: Failed to hotplug add device on primary > > The primary and secondary applications were run using the following commands: > > Primary: sudo ./dpdk-testpmd --proc-type=primary --file-prefix=test -d > /path/to/pmd > Secondary: sudo ./dpdk-pdump --proc-type=secondary --file-prefix=test -d > /path/to/pmd -- --pdump 'port=0,queue=1,rx-dev=./rx.pcap,tx-dev=./tx.pcap' > > DPDK version: 22.11.1 > > Is this a known issue? Is there any known fix for this? > > Thanks > Sameer Vaze pdump and dumpcap can't work where the actual data transmit/receive is done in secondary process. The problem is in the design using callbacks and the way the pdump/dumpcap is initialized. The pdump/dumpcap works as an additional secondary process. At startup pdump/dumpcap communicates with primary process to enable callbacks on rx/tx but these work only in the primary process. In secondary process, there are no rx/tx callbacks.
