On Tue, 8 Oct 2024 03:40:52 +0530
Lokesh Chakka <lvenkatakumarchakka@gmail.com> wrote:
> please find the full fledged code as attachment.
>
>
> Thanks & Regards
> --
> Lokesh Chakka.
>
>
> On Mon, Oct 7, 2024 at 9:32 PM Pathak, Pravin <pravin.pathak@intel.com>
> wrote:
>
> > I hope accidentally num_of_pkts_per_queue is not zero.
> >
> > Pravin
> >
> >
> >
> > *From:* Lokesh Chakka <lvenkatakumarchakka@gmail.com>
> > *Sent:* Monday, October 7, 2024 11:36 AM
> > *To:* Bing Zhao <bingz@nvidia.com>
> > *Cc:* users <users@dpdk.org>
> > *Subject:* Re: unable to capture packets
> >
> >
> >
> > I've tried TX. It's working fine.
> >
> > I'm sure problem is only with my code.
> >
> >
> >
> > On Mon, 7 Oct, 2024, 20:52 Bing Zhao, <bingz@nvidia.com> wrote:
> >
> > Which NIC are you using?
> >
> > Have you tried dpdk-testpmd or l2fwd on your setup to check if the packet
> > can be sent and received correctly?
> >
> >
> >
> > BR. Bing
> >
> >
> >
> > *From:* Lokesh Chakka <lvenkatakumarchakka@gmail.com>
> > *Sent:* Monday, October 7, 2024 9:52 PM
> > *To:* users <users@dpdk.org>
> > *Subject:* unable to capture packets
> >
> >
> >
> > *External email: Use caution opening links or attachments*
> >
> >
> >
> > hello,
> >
> >
> >
> > I'm trying to capture packets using the following piece of code :
> >
> >
> >
> > ==========================================================
> >
> > struct rte_eth_rxconf rxq_conf = dev_info.default_rxconf;
> > rxq_conf.offloads = port_conf.rxmode.offloads;
> > rte_eth_rx_queue_setup( 0, 0, num_of_pkts_per_queue, (unsigned int)sock,
> > &rxq_conf, mem_pool );
> > rte_eth_dev_start( 0 );
> > while( 1 )
> > {
> > num_of_pkts_rcvd = rte_eth_rx_burst( 0, 0, mbuf, num_of_pkts_per_queue );
> > fprintf( stderr, "num_of_pkts_rcvd: %u\n", num_of_pkts_rcvd );
> > }
> >
> > ==========================================================
> >
> > It's always printing num_of_pkts_rcvd as 0.
> >
> >
> >
> > Can someone help me understand what the issue is ....
> >
> >
> > Thanks & Regards
> > --
> > Lokesh Chakka.
> >
> >
Save yourself some pain, and make sure to initialize all structures like:
struct rte_eth_rxconf rxq_conf = { };
A rx queue depth of 4K is excessive; all the packets in mempool will be
tied up in the device. If you want to keep a pool size of 4K, try dropping
the rx descriptors to something much smaller like 128
After you receive a burst of packet you need to return them to the pool by freeing them.