Interfaces keeps a class_id, which is an ID from which bridge
part of QoS settings is derived. We need to store class_id
in domain status file, so we can later pass it to
virNetDevBandwidthUnplug.
---
src/conf/domain_conf.c | 13 +++++++++++++
1 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 99aa08d..9f6d1e9 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -4777,6 +4777,17 @@ virDomainActualNetDefParseXML(xmlNodePtr node,
hostdev, flags) < 0) {
goto error;
}
+ } else if (actual->type == VIR_DOMAIN_NET_TYPE_NETWORK) {
+ char *class_id = virXPathString("string(./class/@id)", ctxt);
+ if (class_id &&
+ virStrToLong_ui(class_id, NULL, 10, &actual->class_id) < 0) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("Unable to parse class id '%s'"),
+ class_id);
+ VIR_FREE(class_id);
+ goto error;
+ }
+ VIR_FREE(class_id);
}
bandwidth_node = virXPathNode("./bandwidth", ctxt);
@@ -12467,6 +12478,8 @@ virDomainActualNetDefFormat(virBufferPtr buf,
break;
case VIR_DOMAIN_NET_TYPE_NETWORK:
+ if (def->class_id)
+ virBufferAsprintf(buf, "<class id='%u'/>",
def->class_id);
break;
default:
virReportError(VIR_ERR_INTERNAL_ERROR,
--
1.7.8.6