[dpdk-users] rte_eth_tx_burst reliability

Stephen Hemminger stephen at networkplumber.org
Tue Oct 16 18:01:07 CEST 2018

On Tue, 16 Oct 2018 18:38:23 +0300
Amedeo Sapio <amedeo.sapio at polito.it> wrote:

> Dear all,
> while using rte_eth_tx_burst() to send packets in batches, I see that,
> sometimes, the amount of packets that the function says are sent, are not
> actually sent.
> I am accumulating the return value of rte_eth_tx_burst() in a variable and,
> at the end of the job, the value of the accumulator is greater than the
> value of  "opackets"  in the device "eth_stats".
> I see the same number of transmitted packets in eth_stats, eth_xstats and
> on the other side of the cable, and this number is less than the sum of the
> values returned by rte_eth_tx_burst().
> So, my question is: in what case the rte_eth_tx_burst() function returns a
> value that does not correspond to the real number of transmitted packets?
> According to the documentation, the function is returning only the number
> of packets that have been successfully inserted in the ring, so I assumed
> the return value was reliable.
> Testbed:
> NIC: Intel 82599ES
> DPDK driver: igb_uio
> DPDK version: 18.05
> Traffic: UDP packets, sized 174B, with IP and UDP checksum offload

If number sent < number requested it means the transmit descriptor
ring is full. Application needs to handle this and retransmit, or drop
in that case.

More information about the users mailing list