net/passt: Implement vhost-user backend support

This commit adds support for the vhost-user interface to the passt
network backend, enabling high-performance, accelerated networking for
guests using passt.

The passt backend can now operate in a vhost-user mode, where it
communicates with the guest's virtio-net device over a socket pair
using the vhost-user protocol. This offloads the datapath from the
main QEMU loop, significantly improving network performance.

When the vhost-user=on option is used with -netdev passt, the new
vhost initialization path is taken instead of the standard
stream-based connection.

Signed-off-by: Laurent Vivier <lvivier@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
This commit is contained in:
Laurent Vivier
2025-07-14 13:27:09 +08:00
committed by Jason Wang
parent 854ee02b22
commit da703b06a5
4 changed files with 369 additions and 2 deletions
+11 -1
View File
@@ -104,7 +104,7 @@ To use the passt backend interface
There is no need to start the daemon as QEMU will do it for you.
passt is started in the socket-based mode.
By default, passt will be started in the socket-based mode.
.. parsed-literal::
|qemu_system| [...OPTIONS...] -nic passt
@@ -128,6 +128,16 @@ passt is started in the socket-based mode.
virtio0: index=0,type=nic,model=virtio-net-pci,macaddr=9a:2b:2c:2d:2e:2f
\ netdev0: index=0,type=passt,stream,connected to pid 25428
To use the vhost-based interface, add the ``vhost-user=on`` parameter and
select the virtio-net device:
.. parsed-literal::
|qemu_system| [...OPTIONS...] -nic passt,model=virtio,vhost-user=on
(qemu) info network
virtio-net-pci.0: index=0,type=nic,model=virtio-net-pci,macaddr=52:54:00:12:34:56
\ #net006: index=0,type=passt,vhost-user,connected to pid 25731
To use socket based passt interface:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^