
On Wed, May 11, 2016 at 12:18:51 -0400, Laine Stump wrote:
This would previously be silently ignored.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1319044 --- src/network/bridge_driver.c | 25 +++++++++++++++++++++++++ src/qemu/qemu_domain.c | 21 ++++++++++++++++----- 2 files changed, 41 insertions(+), 5 deletions(-)
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index bef8a78..0fd2095 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -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; + } + } + }
Okay this part gets called in networkDefineXML, networkCreateXML and networkStartNetworkVirtual.
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++;
ACK to the code above.
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index f7356a2..4e32251 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -2119,12 +2119,23 @@ qemuDomainDeviceDefPostParse(virDomainDeviceDefPtr dev,
qemuCaps = virQEMUCapsCacheLookup(driver->qemuCapsCache, def->emulator);
- if (dev->type == VIR_DOMAIN_DEVICE_NET && - dev->data.net->type != VIR_DOMAIN_NET_TYPE_HOSTDEV && - !dev->data.net->model) { - if (VIR_STRDUP(dev->data.net->model, - qemuDomainDefaultNetModel(def, qemuCaps)) < 0) + if (dev->type == VIR_DOMAIN_DEVICE_NET) { + virDomainNetDefPtr net = dev->data.net; + + if (net->type != VIR_DOMAIN_NET_TYPE_HOSTDEV && !net->model && + VIR_STRDUP(net->model, qemuDomainDefaultNetModel(def, qemuCaps)) < 0) + goto cleanup; + + if (net->type == VIR_DOMAIN_NET_TYPE_HOSTDEV && + virDomainNetGetActualBandwidth(net)) { + /* bandwidth configuration via libvirt is not supported + * for hostdev network devices + */ + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("bandwidth settings are not supported " + "for hostdev interfaces")); goto cleanup;
NACK to this part. This makes vm configs that were previously accepted vanish. This can only be a start-time check.