Use the band_cmp() function instead of duplicating code.  Also simplify
some of the band related code.

Suggested-by: Ales Musil <amu...@redhat.com>
Signed-off-by: Dumitru Ceara <dce...@redhat.com>
---
 northd/northd.c |   22 ++++------------------
 1 file changed, 4 insertions(+), 18 deletions(-)

diff --git a/northd/northd.c b/northd/northd.c
index 9a12a94ae2..13f2ae0565 100644
--- a/northd/northd.c
+++ b/northd/northd.c
@@ -16621,9 +16621,9 @@ band_cmp(const void *band1_, const void *band2_)
     const struct band_entry *band2p = band2_;
 
     if (band1p->rate != band2p->rate) {
-        return band1p->rate > band2p->rate ? -1 : 1;
+        return band1p->rate - band2p->rate;
     } else if (band1p->burst_size != band2p->burst_size) {
-        return band1p->burst_size > band2p->burst_size ? -1 : 1;
+        return band1p->burst_size - band2p->burst_size;
     } else {
         return strcmp(band1p->action, band2p->action);
     }
@@ -16637,17 +16637,6 @@ bands_need_update(const struct nbrec_meter *nb_meter,
         return true;
     }
 
-    /* A single band is the most common scenario, so speed up that
-     * check. */
-    if (nb_meter->n_bands == 1) {
-        struct nbrec_meter_band *nb_band = nb_meter->bands[0];
-        struct sbrec_meter_band *sb_band = sb_meter->bands[0];
-
-        return !(nb_band->rate == sb_band->rate
-                 && nb_band->burst_size == sb_band->burst_size
-                 && !strcmp(sb_band->action, nb_band->action));
-    }
-
     /* Place the Northbound entries in sorted order. */
     struct band_entry *nb_bands;
     nb_bands = xmalloc(sizeof *nb_bands * nb_meter->n_bands);
@@ -16674,15 +16663,12 @@ bands_need_update(const struct nbrec_meter *nb_meter,
 
     bool need_update = false;
     for (size_t i = 0; i < nb_meter->n_bands; i++) {
-        if (nb_bands[i].rate != sb_bands[i].rate
-            || nb_bands[i].burst_size != sb_bands[i].burst_size
-            || strcmp(nb_bands[i].action, sb_bands[i].action)) {
+        if (band_cmp(&nb_bands[i], &sb_bands[i])) {
             need_update = true;
-            goto done;
+            break;
         }
     }
 
-done:
     free(nb_bands);
     free(sb_bands);
 

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to