From: Michal Privoznik Date: Thu, 27 Jun 2024 12:09:52 +0000 (+0200) Subject: qemu_validate: Validate net backends against QEMU caps X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=73fc20e2626654db3429e403174de46ed034873f;p=libvirt.git qemu_validate: Validate net backends against QEMU caps Now that we have a capability for each domain net backend we can start validating user's selection against QEMU capabilities. Signed-off-by: Michal Privoznik Reviewed-by: Peter Krempa --- diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index b392428f48..23d642c1ce 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -1705,11 +1705,27 @@ qemuValidateDomainDeviceDefNetwork(const virDomainNetDef *net, size_t i; if (net->type == VIR_DOMAIN_NET_TYPE_USER) { - if (net->backend.type == VIR_DOMAIN_NET_BACKEND_PASST && - !virQEMUCapsGet(qemuCaps, QEMU_CAPS_NETDEV_STREAM)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("the passt network backend is not supported with this QEMU binary")); - return -1; + switch (net->backend.type) { + case VIR_DOMAIN_NET_BACKEND_DEFAULT: + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_NETDEV_USER)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("the '%1$s' network backend is not supported with this QEMU binary"), + virDomainNetBackendTypeToString(net->backend.type)); + return -1; + } + break; + + case VIR_DOMAIN_NET_BACKEND_PASST: + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_NETDEV_STREAM)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("the '%1$s' network backend is not supported with this QEMU binary"), + virDomainNetBackendTypeToString(net->backend.type)); + return -1; + } + break; + + case VIR_DOMAIN_NET_BACKEND_LAST: + break; } if (net->guestIP.nroutes) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",