]> git.ipfire.org Git - thirdparty/ipxe.git/commit
[gve] Allow for out-of-order buffer consumption
authorMichael Brown <mcb30@ipxe.org>
Mon, 29 Sep 2025 11:41:06 +0000 (12:41 +0100)
committerMichael Brown <mcb30@ipxe.org>
Tue, 30 Sep 2025 10:09:45 +0000 (11:09 +0100)
commit86b322d9992542aeb2e05d6277f7dec98a1637da
treec8344e807739c3e04f03a9bf37b4a38958241241
parentb8dd3c384baeeab14c0455e4f1ce704c6e097c96
[gve] Allow for out-of-order buffer consumption

We currently assume that the buffer index is equal to the descriptor
ring index, which is correct only for in-order queues.

Out-of-order queues will include a buffer tag value that is copied
from the descriptor to the completion.  Redefine the data buffers as
being indexed by this tag value (rather than by the descriptor ring
index), and add a circular ring buffer to allow for tags to be reused
in whatever order they are released by the hardware.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/drivers/net/gve.c
src/drivers/net/gve.h