passt in vhost-user mode doesn't support using multiple queues.

The path of the socket is auto-generated by libvirt for
vhost-user/passt; it can't be set by the user

The passt end of a vhost-user socket is always the server, and the
qemu end is always a client.

Signed-off-by: Laine Stump <la...@redhat.com>
---
 src/qemu/qemu_validate.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index 3e3e368da3..53affcdcff 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -1824,6 +1824,22 @@ qemuValidateDomainDeviceDefNetwork(const virDomainNetDef 
*net,
         net->backend.type == VIR_DOMAIN_NET_BACKEND_PASST) {
         if (qemuValidateDomainDefVhostUserRequireSharedMemory(def, "interface 
type=\"vhostuser\" backend type=\"passt\"") < 0)
             return -1;
+
+        if (net->driver.virtio.queues > 0) {
+            virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                           _("interface type=\"vhostuser\" backend 
type=\"passt\" does not support multiple queues"));
+            return -1;
+        }
+        if (net->data.vhostuser->data.nix.path) {
+            virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                           _("'path' attribute cannot be set for interface 
type=\"vhostuser\" backend type=\"passt\""));
+            return -1;
+        }
+        if (net->data.vhostuser->data.nix.listen) {
+            virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                           _("mode=\"server\" is not supported for interface 
type=\"vhostuser\" backend type=\"passt\""));
+            return -1;
+        }
     }
 
     if (net->type == VIR_DOMAIN_NET_TYPE_VDPA) {
-- 
2.48.1

Reply via email to