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.

Reply via email to