]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu_validate: Use domaincaps to validate supported net backend type
authorMichal Privoznik <mprivozn@redhat.com>
Fri, 28 Jun 2024 07:53:10 +0000 (09:53 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Mon, 1 Jul 2024 10:39:10 +0000 (12:39 +0200)
Now that the logic for detecting supported net backend types has
been moved to domain capabilities generation, we can just use it
when validating net backend type. Just like we do for device
models and so on.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
src/qemu/qemu_validate.c

index 23d642c1cefc81cb9a67e7147f3a0e0b59bb46d6..8840306bfd19a27c18a68a9d0378b2b76b7d31c9 100644 (file)
@@ -1705,28 +1705,18 @@ qemuValidateDomainDeviceDefNetwork(const virDomainNetDef *net,
     size_t i;
 
     if (net->type == VIR_DOMAIN_NET_TYPE_USER) {
-        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;
+        virDomainCapsDeviceNet netCaps = { };
 
-        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;
+        virQEMUCapsFillDomainDeviceNetCaps(qemuCaps, &netCaps);
 
-        case VIR_DOMAIN_NET_BACKEND_LAST:
-            break;
+        if (!VIR_DOMAIN_CAPS_ENUM_IS_SET(netCaps.backendType,
+                                         net->backend.type)) {
+            virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+                           _("the '%1$s' network backend is not supported with this QEMU binary"),
+                           virDomainNetBackendTypeToString(net->backend.type));
+            return -1;
         }
+
         if (net->guestIP.nroutes) {
             virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
                            _("Invalid attempt to set network interface guest-side IP route, not supported by QEMU"));