[libvirt] [PATCH 07/16] network: Alter virNetworkObj @class_id to be @classIdMap

John Ferlan jferlan at redhat.com
Fri May 19 13:03:15 UTC 2017


Change the variable name to be a bit more descriptive and less confusing
when used with the data.network.actual->class_id.

In preparation for privatizing virNetworkObj, create accessor function to
fetch the @classIdMap.

Signed-off-by: John Ferlan <jferlan at redhat.com>
---
 src/conf/virnetworkobj.c    | 46 ++++++++++++++++++++++++++-------------------
 src/conf/virnetworkobj.h    |  5 ++++-
 src/libvirt_private.syms    |  1 +
 src/network/bridge_driver.c | 13 ++++++++-----
 4 files changed, 40 insertions(+), 25 deletions(-)

diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c
index e44684a..991916a 100644
--- a/src/conf/virnetworkobj.c
+++ b/src/conf/virnetworkobj.c
@@ -79,13 +79,13 @@ virNetworkObjNew(void)
     if (!(net = virObjectLockableNew(virNetworkObjClass)))
         return NULL;
 
-    if (!(net->class_id = virBitmapNew(CLASS_ID_BITMAP_SIZE)))
+    if (!(net->classIdMap = virBitmapNew(CLASS_ID_BITMAP_SIZE)))
         goto error;
 
     /* The first three class IDs are already taken */
-    ignore_value(virBitmapSetBit(net->class_id, 0));
-    ignore_value(virBitmapSetBit(net->class_id, 1));
-    ignore_value(virBitmapSetBit(net->class_id, 2));
+    ignore_value(virBitmapSetBit(net->classIdMap, 0));
+    ignore_value(virBitmapSetBit(net->classIdMap, 1));
+    ignore_value(virBitmapSetBit(net->classIdMap, 2));
 
     return net;
 
@@ -137,6 +137,13 @@ virNetworkObjSetRadvdPid(virNetworkObjPtr obj,
 }
 
 
+virBitmapPtr
+virNetworkObjGetClassIdMap(virNetworkObjPtr obj)
+{
+    return obj->classIdMap;
+}
+
+
 virMacMapPtr
 virNetworkObjGetMacMap(virNetworkObjPtr obj)
 {
@@ -388,7 +395,7 @@ virNetworkObjDispose(void *obj)
 
     virNetworkDefFree(net->def);
     virNetworkDefFree(net->newDef);
-    virBitmapFree(net->class_id);
+    virBitmapFree(net->classIdMap);
     virObjectUnref(net->macmap);
 }
 
@@ -728,17 +735,17 @@ virNetworkObjFormat(virNetworkObjPtr net,
                     unsigned int flags)
 {
     virBuffer buf = VIR_BUFFER_INITIALIZER;
-    char *class_id = virBitmapFormat(net->class_id);
+    char *classIdStr = virBitmapFormat(net->classIdMap);
     size_t i;
 
-    if (!class_id)
+    if (!classIdStr)
         goto error;
 
     virBufferAddLit(&buf, "<networkstatus>\n");
     virBufferAdjustIndent(&buf, 2);
-    virBufferAsprintf(&buf, "<class_id bitmap='%s'/>\n", class_id);
+    virBufferAsprintf(&buf, "<class_id bitmap='%s'/>\n", classIdStr);
     virBufferAsprintf(&buf, "<floor sum='%llu'/>\n", net->floor_sum);
-    VIR_FREE(class_id);
+    VIR_FREE(classIdStr);
 
     for (i = 0; i < VIR_NETWORK_TAINT_LAST; i++) {
         if (net->taint & (1 << i))
@@ -795,7 +802,7 @@ virNetworkLoadState(virNetworkObjListPtr nets,
     xmlDocPtr xml = NULL;
     xmlNodePtr node = NULL, *nodes = NULL;
     xmlXPathContextPtr ctxt = NULL;
-    virBitmapPtr class_id_map = NULL;
+    virBitmapPtr classIdMap = NULL;
     unsigned long long floor_sum_val = 0;
     unsigned int taint = 0;
     int n;
@@ -832,18 +839,19 @@ virNetworkLoadState(virNetworkObjListPtr nets,
     if (xmlStrEqual(node->name, BAD_CAST "networkstatus")) {
         /* Newer network status file. Contains useful
          * info which are not to be found in bare config XML */
-        char *class_id = NULL;
+        char *classIdStr = NULL;
         char *floor_sum = NULL;
 
         ctxt->node = node;
-        if ((class_id = virXPathString("string(./class_id[1]/@bitmap)", ctxt))) {
-            if (virBitmapParse(class_id, &class_id_map,
+        if ((classIdStr = virXPathString("string(./class_id[1]/@bitmap)",
+                                         ctxt))) {
+            if (virBitmapParse(classIdStr, &classIdMap,
                                CLASS_ID_BITMAP_SIZE) < 0) {
-                VIR_FREE(class_id);
+                VIR_FREE(classIdStr);
                 goto error;
             }
         }
-        VIR_FREE(class_id);
+        VIR_FREE(classIdStr);
 
         floor_sum = virXPathString("string(./floor[1]/@sum)", ctxt);
         if (floor_sum &&
@@ -885,9 +893,9 @@ virNetworkLoadState(virNetworkObjListPtr nets,
     /* do not put any "goto error" below this comment */
 
     /* assign status data stored in the network object */
-    if (class_id_map) {
-        virBitmapFree(net->class_id);
-        net->class_id = class_id_map;
+    if (classIdMap) {
+        virBitmapFree(net->classIdMap);
+        net->classIdMap = classIdMap;
     }
 
     if (floor_sum_val > 0)
@@ -904,7 +912,7 @@ virNetworkLoadState(virNetworkObjListPtr nets,
 
  error:
     VIR_FREE(nodes);
-    virBitmapFree(class_id_map);
+    virBitmapFree(classIdMap);
     virNetworkDefFree(def);
     goto cleanup;
 }
diff --git a/src/conf/virnetworkobj.h b/src/conf/virnetworkobj.h
index 9323692..eec38e2 100644
--- a/src/conf/virnetworkobj.h
+++ b/src/conf/virnetworkobj.h
@@ -38,7 +38,7 @@ struct _virNetworkObj {
     virNetworkDefPtr def; /* The current definition */
     virNetworkDefPtr newDef; /* New definition to activate at shutdown */
 
-    virBitmapPtr class_id; /* bitmap of class IDs for QoS */
+    virBitmapPtr classIdMap; /* bitmap of class IDs for QoS */
     unsigned long long floor_sum; /* sum of all 'floor'-s of attached NICs */
 
     unsigned int taint;
@@ -67,6 +67,9 @@ void
 virNetworkObjSetRadvdPid(virNetworkObjPtr obj,
                          pid_t radvdPid);
 
+virBitmapPtr
+virNetworkObjGetClassIdMap(virNetworkObjPtr obj);
+
 void
 virNetworkObjSetMacMap(virNetworkObjPtr obj,
                        virMacMapPtr macmap);
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 56b969c..20ab35b 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -931,6 +931,7 @@ virNetworkObjFindByName;
 virNetworkObjFindByNameLocked;
 virNetworkObjFindByUUID;
 virNetworkObjFindByUUIDLocked;
+virNetworkObjGetClassIdMap;
 virNetworkObjGetDnsmasqPid;
 virNetworkObjGetMacMap;
 virNetworkObjGetPersistentDef;
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index 31a3d40..879901a 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -5347,10 +5347,11 @@ static ssize_t
 networkNextClassID(virNetworkObjPtr obj)
 {
     ssize_t ret = 0;
+    virBitmapPtr classIdMap = virNetworkObjGetClassIdMap(obj);
 
-    ret = virBitmapNextClearBit(obj->class_id, -1);
+    ret = virBitmapNextClearBit(classIdMap, -1);
 
-    if (ret < 0 || virBitmapSetBit(obj->class_id, ret) < 0)
+    if (ret < 0 || virBitmapSetBit(classIdMap, ret) < 0)
         return -1;
 
     return ret;
@@ -5364,6 +5365,7 @@ networkPlugBandwidthImpl(virNetworkObjPtr obj,
                          unsigned long long new_rate)
 {
     virNetworkDriverStatePtr driver = networkGetDriver();
+    virBitmapPtr classIdMap = virNetworkObjGetClassIdMap(obj);
     ssize_t class_id = 0;
     int plug_ret;
     int ret = -1;
@@ -5388,7 +5390,7 @@ networkPlugBandwidthImpl(virNetworkObjPtr obj,
     obj->floor_sum += ifaceBand->in->floor;
     /* update status file */
     if (virNetworkObjSaveStatus(driver->stateDir, obj) < 0) {
-        ignore_value(virBitmapClearBit(obj->class_id, class_id));
+        ignore_value(virBitmapClearBit(classIdMap, class_id));
         obj->floor_sum -= ifaceBand->in->floor;
         iface->data.network.actual->class_id = 0;
         ignore_value(virNetDevBandwidthUnplug(obj->def->bridge, class_id));
@@ -5452,6 +5454,7 @@ static int
 networkUnplugBandwidth(virNetworkObjPtr obj,
                        virDomainNetDefPtr iface)
 {
+    virBitmapPtr classIdMap = virNetworkObjGetClassIdMap(obj);
     virNetworkDriverStatePtr driver = networkGetDriver();
     int ret = 0;
     unsigned long long new_rate;
@@ -5477,12 +5480,12 @@ networkUnplugBandwidth(virNetworkObjPtr obj,
         /* update sum of 'floor'-s of attached NICs */
         obj->floor_sum -= ifaceBand->in->floor;
         /* return class ID */
-        ignore_value(virBitmapClearBit(obj->class_id,
+        ignore_value(virBitmapClearBit(classIdMap,
                                        iface->data.network.actual->class_id));
         /* update status file */
         if (virNetworkObjSaveStatus(driver->stateDir, obj) < 0) {
             obj->floor_sum += ifaceBand->in->floor;
-            ignore_value(virBitmapSetBit(obj->class_id,
+            ignore_value(virBitmapSetBit(classIdMap,
                                          iface->data.network.actual->class_id));
             goto cleanup;
         }
-- 
2.9.3




More information about the libvir-list mailing list