[PATCH 3/8] qemu_validate: Validate net backends against QEMU caps

Michal Privoznik posted 8 patches 2 months, 2 weeks ago
[PATCH 3/8] qemu_validate: Validate net backends against QEMU caps
Posted by Michal Privoznik 2 months, 2 weeks ago
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 <mprivozn@redhat.com>
---
 src/qemu/qemu_validate.c | 26 +++++++++++++++++++++-----
 1 file changed, 21 insertions(+), 5 deletions(-)

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",
-- 
2.44.2
Re: [PATCH 3/8] qemu_validate: Validate net backends against QEMU caps
Posted by Peter Krempa 2 months, 2 weeks ago
On Fri, Jun 28, 2024 at 15:12:32 +0200, Michal Privoznik wrote:
> 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 <mprivozn@redhat.com>
> ---
>  src/qemu/qemu_validate.c | 26 +++++++++++++++++++++-----
>  1 file changed, 21 insertions(+), 5 deletions(-)

Reviewed-by: Peter Krempa <pkrempa@redhat.com>