On Wed, 18 Feb 2026 09:48:04 +0100
Morten Brørup <[email protected]> wrote:

> > + *
> > + * A return value equal to *nb_pkts* means that all packets have been
> > + * consumed, and this is likely to signify that other output packets
> >   * could be immediately transmitted again. Applications that implement
> > a
> >   * "send as many packets to transmit as possible" policy can check
> > this
> >   * specific case and keep invoking the rte_eth_tx_burst() function
> > until
> >   * a value less than *nb_pkts* is returned.
> >   *
> > + * If a packet cannot be transmitted due to an error (for example, an
> > + * invalid offload flag), the driver must still consume it and free
> > the
> > + * mbuf, rather than stopping at that point. Such packets should be
> > + * counted in the *tx_errors* port statistic.  
> 
> The above paragraph is driver centric, it should be application centric.

Most of the applications are doing it right already since everybody
starts with l2fwd, or l3fwd. The problem I see is buggy drivers.

> Suggest rephrasing as:
> 
> If a packet cannot be transmitted due to an error (for example, an invalid 
> offload flag), the rte_eth_tx_burst() function will still consume it, rather 
> than stopping at that point.
> Such packets are counted in the *oerrors* port statistic.
> 
> NB: In struct rte_eth_stats [1], the error counter is named "oerrors", not 
> "tx_errors".
> 
> [1]: 
> https://elixir.bootlin.com/dpdk/v25.11/source/lib/ethdev/rte_ethdev.h#L273

Good point, I was thinking of the per-queue stats and xstats.

> While discussing details...
> Let's say a packet has 4 segments, and the driver only has 2 descriptors 
> remaining available.
> In that case, I think the driver should not consume the packet, but leave it 
> for the application to either drop it or retry transmitting it later.
> Do we want to mention this case too, or is it a semi-obvious case of the 
> descriptor ring having no more room?

There are also other cases of backpressure like when driver talks to kernel and 
gets EAGAIN or EBUSY

Reply via email to