[libvirt] [PATCH 2/9] virNetDevBandwidthUpdateRate: turn class_id into integer

Michal Privoznik mprivozn at redhat.com
Mon Aug 3 06:39:32 UTC 2015


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 at 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)
-- 
2.4.6




More information about the libvir-list mailing list