[dpdk-dev] rte_eth_rx_burst only returns up to 32 packets
Masood Moshref Javadi
masood.moshref.j at gmail.com
Sat Aug 29 15:55:19 CEST 2015
Thanks a lot.
So I assume the only way to see if there are more than 256 packets in the
queue is to count them using rte_eth_rx_count
On Aug 28, 2015 8:32 PM, "Gaohaifeng (A)" <gaohaifeng.gao at huawei.com> wrote:
> Please see _rece_raw_pkts_vec function.
>
> Here is part of its comments may explain this question
> /*
> * vPMD receive routine, now only accept (nb_pkts ==
> RTE_IXGBE_VPMD_RX_BURST)
> * in one loop
> *
> * Notice:
> * - nb_pkts < RTE_IXGBE_VPMD_RX_BURST, just return no packet
> * - nb_pkts > RTE_IXGBE_VPMD_RX_BURST, only scan RTE_IXGBE_VPMD_RX_BURST
> * numbers of DD bit
> */
>
>
>
> Hi,
>
> The documentation of this method says: Applications implementing a
> "retrieve as much received packets as possible" policy can check this
> specific case and keep invoking the rte_eth_rx_burst() <
> http://dpdk.org/doc/api/rte__ethdev_8h.html#aee7daffe261e67355a78b106627c4c45
> >function
> until a value less than nb_pkts is returned.
>
> But the function returns at most 32 packets regardless of the burst size
> parameter (nb_pkts). For example when I set the burst size to 256, it only
> returns 32 packets even though the queue has more packets. This means that
> I cannot rely on the returned value to know if there are >
> 256 packets in the queue or not.
>
> Where this number 32 comes from? Is it because "PMD:
> ixgbe_set_rx_function(): Vector rx enabled, please make sure RX burst size
> no less than 32." ?
>
> I use DPDK 2.0.0 and Intel 82599 10 G NIC.
>
> Thanks
>
More information about the dev
mailing list