提交 98696fd1 编写于 作者: M Michal Privoznik

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: NMichal Privoznik <mprivozn@redhat.com>
上级 dc162adb
......@@ -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))
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册