[PATCH grout 2/2] infra: fix invalid TCP/UDP checksums from virtio user

Andrei Rybchenko rybchenko.andrei at gmail.com
Thu Sep 10 14:59:16 CEST 2026


If Rx checksum offload is enabled, virtio is allowed to use
Tx checksum offload and packets comming from virtio user interface
have invalid checksums in TCP/UDP headers (prepared to be offloaded).

Signed-off-by: Andrei Rybchenko <rybchenko.andrei at gmail.com>
---
 modules/infra/control/port.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/modules/infra/control/port.c b/modules/infra/control/port.c
index ec9bfb1e..35e6516f 100644
--- a/modules/infra/control/port.c
+++ b/modules/infra/control/port.c
@@ -633,7 +633,8 @@ static int iface_port_init(struct iface *iface, const void *api_info) {
 	port->port_id = port_id;
 	if (rte_eth_dev_info_get(port_id, &info) < 0)
 		return errno_set(-ret);
-	port->virtio_offloads = strcmp(info.driver_name, "net_virtio") == 0
+	port->virtio_offloads = (strcmp(info.driver_name, "net_virtio") == 0
+				 || strcmp(info.driver_name, "net_virtio_user") == 0)
 		&& (info.rx_offload_capa & RTE_ETH_RX_OFFLOAD_TCP_CKSUM) != 0;
 
 	port->devargs = strndup(api->devargs, GR_PORT_DEVARGS_SIZE);
-- 
2.47.3



More information about the grout mailing list