]> xenbits.xensource.com Git - libvirt.git/commitdiff
network: log error when <bandwidth> is requested for hostdev interfaces
authorLaine Stump <laine@laine.org>
Wed, 27 Apr 2016 16:57:08 +0000 (12:57 -0400)
committerLaine Stump <laine@laine.org>
Fri, 13 May 2016 14:02:20 +0000 (10:02 -0400)
This would previously be silently ignored.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1319044

src/network/bridge_driver.c

index bef8a7848b256c3d82b08b28c88e5d67365f28df..0fd2095d8c13e256f2dfb7d32a6ee8ac5de0f97c 100644 (file)
@@ -3126,6 +3126,20 @@ networkValidate(virNetworkDriverStatePtr driver,
                        def->name);
         return -1;
     }
+
+    if (def->forward.type == VIR_NETWORK_FORWARD_HOSTDEV) {
+        for (i = 0; i < def->nPortGroups; i++) {
+            if (def->portGroups[i].bandwidth) {
+                virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+                               _("unsupported <bandwidth> element "
+                                 "in <portgroup name='%s'> of "
+                                 "network '%s' with forward mode='%s'"),
+                               def->portGroups[i].name, def->name,
+                               virNetworkForwardTypeToString(def->forward.type));
+                return -1;
+            }
+        }
+    }
     return 0;
 }
 
@@ -4305,6 +4319,17 @@ networkAllocateActualDevice(virDomainDefPtr dom,
             goto error;
         }
     }
+    if (virDomainNetGetActualBandwidth(iface)) {
+        /* bandwidth configuration via libvirt is not supported for
+         * hostdev network devices
+         */
+        if (actualType == VIR_DOMAIN_NET_TYPE_HOSTDEV) {
+            virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                           _("bandwidth settings are not supported "
+                             "for hostdev interfaces"));
+            goto error;
+        }
+    }
 
     if (netdef) {
         netdef->connections++;