On 08/03/2015 02:39 AM, Michal Privoznik wrote:
This is no functional change. It's just that later in the series
we
will need to pass class_id as an integer.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/network/bridge_driver.c | 4 ++--
src/util/virnetdevbandwidth.c | 10 +++++++---
src/util/virnetdevbandwidth.h | 2 +-
3 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index 3d6721b..17fc430 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -4840,7 +4840,7 @@ networkPlugBandwidth(virNetworkObjPtr net,
}
/* update rate for non guaranteed NICs */
new_rate -= net->floor_sum;
- if (virNetDevBandwidthUpdateRate(net->def->bridge, "1:2",
+ if (virNetDevBandwidthUpdateRate(net->def->bridge, 2,
net->def->bandwidth, new_rate) < 0)
VIR_WARN("Unable to update rate for 1:2 class on %s bridge",
net->def->bridge);
@@ -4891,7 +4891,7 @@ networkUnplugBandwidth(virNetworkObjPtr net,
}
/* update rate for non guaranteed NICs */
new_rate -= net->floor_sum;
- if (virNetDevBandwidthUpdateRate(net->def->bridge, "1:2",
+ if (virNetDevBandwidthUpdateRate(net->def->bridge, 2,
net->def->bandwidth, new_rate) < 0)
VIR_WARN("Unable to update rate for 1:2 class on %s bridge",
net->def->bridge);
diff --git a/src/util/virnetdevbandwidth.c b/src/util/virnetdevbandwidth.c
index 6ae0877..91201ae 100644
--- a/src/util/virnetdevbandwidth.c
+++ b/src/util/virnetdevbandwidth.c
@@ -638,7 +638,8 @@ virNetDevBandwidthUnplug(const char *brname,
/**
* virNetDevBandwidthUpdateRate:
* @ifname: interface name
- * @classid: ID of class to update
+ * @id: unique identifier (MUST be greater than 2)
+ * @bandwidth: used to derive 'ceil' of class with @id
* @new_rate: new rate
*
* This function updates the 'rate' attribute of HTB class.
@@ -650,16 +651,18 @@ virNetDevBandwidthUnplug(const char *brname,
*/
int
virNetDevBandwidthUpdateRate(const char *ifname,
- const char *class_id,
+ unsigned int id,
virNetDevBandwidthPtr bandwidth,
unsigned long long new_rate)
{
int ret = -1;
virCommandPtr cmd = NULL;
+ char *class_id = NULL;
char *rate = NULL;
char *ceil = NULL;
- if (virAsprintf(&rate, "%llukbps", new_rate) < 0 ||
+ if (virAsprintf(&class_id, "1:%x", id) < 0 ||
+ virAsprintf(&rate, "%llukbps", new_rate) < 0 ||
virAsprintf(&ceil, "%llukbps", bandwidth->in->peak ?
bandwidth->in->peak :
bandwidth->in->average) < 0)
@@ -677,6 +680,7 @@ virNetDevBandwidthUpdateRate(const char *ifname,
cleanup:
virCommandFree(cmd);
+ VIR_FREE(class_id);
VIR_FREE(rate);
VIR_FREE(ceil);
return ret;
diff --git a/src/util/virnetdevbandwidth.h b/src/util/virnetdevbandwidth.h
index 9b1d2a6..f42094c 100644
--- a/src/util/virnetdevbandwidth.h
+++ b/src/util/virnetdevbandwidth.h
@@ -68,7 +68,7 @@ int virNetDevBandwidthUnplug(const char *brname,
ATTRIBUTE_NONNULL(1) ATTRIBUTE_RETURN_CHECK;
int virNetDevBandwidthUpdateRate(const char *ifname,
- const char *class_id,
+ unsigned int id,
virNetDevBandwidthPtr bandwidth,
unsigned long long new_rate)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2)
You'll need to remove the ATTRIBUTE_NONNULL(2) to make Coverity builds
happy... You can move the ATTRIBUTE_RETURN_CHECK to the same line if
you want also.
ACK with that adjustment,
John