DPDK patches and discussions
 help / color / mirror / Atom feed
* Intel i40e rx burst API non-conformance?
@ 2025-07-09 14:59 Morten Brørup
  2025-07-09 15:28 ` Bruce Richardson
  0 siblings, 1 reply; 3+ messages in thread
From: Morten Brørup @ 2025-07-09 14:59 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev

Looking at the i40e driver source code, I think it doesn't conform to the API when requesting small bursts.

Let's say the hardware has received 31 packets.
rte_eth_rx_burst(...,16) will return 16 packets and leave 15 in the driver's staging buffer (which has capacity for 32 packets).

Time passes, and more packets are received.

Now, rte_eth_rx_burst(...,16) will only return the 15 packets from the staging buffer, and not proceed to check for more [1].
It thereby (according to my interpretation of the API description) informs the application that no more packets are ready to be received, which is incorrect.

[1]: https://elixir.bootlin.com/dpdk/v25.07-rc2/source/drivers/net/intel/i40e/i40e_rxtx.c#L640

PS: I stumbled across this while reviewing how the very old 32 packet limit bugs (where it truncated large rx/tx requests to 32 packets) had been fixed.


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2025-07-09 16:09 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-07-09 14:59 Intel i40e rx burst API non-conformance? Morten Brørup
2025-07-09 15:28 ` Bruce Richardson
2025-07-09 16:09   ` Morten Brørup

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).