[PATCH v3 0/4] RSS support for VirtioNet.

From: Andrew Melnychenko
Date: Tue Feb 08 2022 - 13:15:51 EST


Virtio-net supports "hardware" RSS with toeplitz key.
Also, it allows receiving calculated hash in vheader
that may be used with RPS.
Added ethtools callbacks to manipulate RSS.

Technically hash calculation may be set only for
SRC+DST and SRC+DST+PORTSRC+PORTDST hashflows.
The completely disabling hash calculation for TCP or UDP
would disable hash calculation for IP.

RSS/RXHASH is disabled by default.

Changes since v2:
* Fixed issue with calculating padded header length.
During review/tests, there was found an issue that
will crash the kernel if VIRTIO_NET_F_MRG_RXBUF
was not set. (thx to Jason Wang <jasowang@xxxxxxxxxx>)
* Refactored the code according to review.

Changes since v1:
* Refactored virtnet_set_hashflow.
* Refactored virtio_net_ctrl_rss.
* Moved hunks between patches a bit.

Changes since rfc:
* Code refactored.
* Patches reformatted.
* Added feature validation.

Andrew Melnychenko (4):
drivers/net/virtio_net: Fixed padded vheader to use v1 with hash.
drivers/net/virtio_net: Added basic RSS support.
drivers/net/virtio_net: Added RSS hash report.
drivers/net/virtio_net: Added RSS hash report control.

drivers/net/virtio_net.c | 382 +++++++++++++++++++++++++++++++++++++--
1 file changed, 369 insertions(+), 13 deletions(-)

--
2.34.1