vhost-user with a passt backend 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 <laine@xxxxxxxxxx> --- Change since V1 - use single quotes instead of escaped double quotes src/qemu/qemu_validate.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 2479596628..9a91f92410 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -1823,6 +1823,24 @@ qemuValidateDomainDeviceDefNetwork(const virDomainNetDef *net, if (net->type == VIR_DOMAIN_NET_TYPE_VHOSTUSER) { if (qemuValidateDomainDefVhostUserRequireSharedMemory(def, "vhostuser") < 0) return -1; + + if (net->backend.type == VIR_DOMAIN_NET_BACKEND_PASST) { + 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