mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-11 15:27:47 +00:00
qemuDomainSetInterfaceParameters: Explicitly reject unsupported net types
For instance, NET_TYPE_MCAST doesn't support setting QoS. Instead of claiming success and doing nothing, we should be explicit about that and report an error. Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
dc162adb90
commit
98696fd170
@ -108,6 +108,7 @@
|
||||
#include "virnuma.h"
|
||||
#include "dirname.h"
|
||||
#include "network/bridge_driver.h"
|
||||
#include "netdev_bandwidth_conf.h"
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_QEMU
|
||||
|
||||
@ -11107,6 +11108,8 @@ qemuDomainSetInterfaceParameters(virDomainPtr dom,
|
||||
virNetDevBandwidthPtr bandwidth = NULL, newBandwidth = NULL;
|
||||
virQEMUDriverConfigPtr cfg = NULL;
|
||||
bool inboundSpecified = false, outboundSpecified = false;
|
||||
int actualType;
|
||||
bool qosSupported = true;
|
||||
|
||||
virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
|
||||
VIR_DOMAIN_AFFECT_CONFIG, -1);
|
||||
@ -11150,6 +11153,24 @@ qemuDomainSetInterfaceParameters(virDomainPtr dom,
|
||||
!(persistentNet = virDomainNetFind(persistentDef, device)))
|
||||
goto endjob;
|
||||
|
||||
if (net) {
|
||||
actualType = virDomainNetGetActualType(net);
|
||||
qosSupported = virNetDevSupportBandwidth(actualType);
|
||||
}
|
||||
|
||||
if (qosSupported && persistentNet) {
|
||||
actualType = virDomainNetGetActualType(persistentNet);
|
||||
qosSupported = virNetDevSupportBandwidth(actualType);
|
||||
}
|
||||
|
||||
if (!qosSupported) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("setting bandwidth on interfaces of "
|
||||
"type '%s' is not implemented yet"),
|
||||
virDomainNetTypeToString(actualType));
|
||||
goto endjob;
|
||||
}
|
||||
|
||||
if ((VIR_ALLOC(bandwidth) < 0) ||
|
||||
(VIR_ALLOC(bandwidth->in) < 0) ||
|
||||
(VIR_ALLOC(bandwidth->out) < 0))
|
||||
|
Loading…
Reference in New Issue
Block a user