On Wed, 6 Jul 2022 09:21:28 +0200 Antonio Di Bacco <[email protected]> wrote:
> I wonder why calling eth_dev_tx_burst in a tight loop doesn't allow to > write the packets into the transmit buffer. Only solution I found is > to include a small delay after the tx_burst that is less than the > estimated serialization time of the packet in order to be able to > saturate the ethernet line. > > Anyway I wonder if this is the right approach. > > Thx, > Antonio. > > On Sun, Jul 3, 2022 at 10:19 PM Gábor LENCSE <[email protected]> wrote: > > > > Dear Antonio, > > > > According to my experience, the rte_eth_tx_burst() function reports the > > packets as "sent" (by a non-zero return value), when they are still in > > the transmit buffer. > > > > (If you are interested in the details, you can see them in Section 3.6.5 > > of this paper: http://www.hit.bme.hu/~lencse/publications/e104-b_2_128.pdf ) > > > > Therefore, I think that the return value of 0 may mean that > > rte_eth_tx_burst() can't even commit itself for the future delivery of > > the packets. I could only guess why. E.g. all its resources have been > > exhausted. > > > > Best regards, > > > > Gábor > > > > > > 7/3/2022 5:57 PM keltezéssel, Antonio Di Bacco írta: > > > I'm trying to send packets continuously in a tight loop with a burst > > > size of 8 and packets are 9600 bytes long. > > > If I don't insert a delay after the rte_eth_tx_burst it always returns 0. > > > > > > What's the explanation of this behaviour ? > > > > > > Best regards, > > > Antonio. > > Which driver? How did you set the tx_free threshold. The driver will need to cleanup already transmitted packets.
