On 11.12.2012 17:38, Laine Stump wrote:
On 12/11/2012 11:09 AM, Michal Privoznik wrote:
> 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 18e65ca..f5e2f71 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -4819,6 +4819,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);
> @@ -12511,6 +12522,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,
ACK.
Thanks, I've pushed the patches now.
Michal