The extra information passed back is no longer used outside bond.c.
Make the API simpler.

Signed-off-by: Andy Zhou <[email protected]>
---
 ofproto/bond.c               | 25 ++++++++++---------------
 ofproto/bond.h               |  3 +--
 ofproto/ofproto-dpif-xlate.c |  2 +-
 3 files changed, 12 insertions(+), 18 deletions(-)

diff --git a/ofproto/bond.c b/ofproto/bond.c
index 5bb124bda5ad..ef65a2a3c1b4 100644
--- a/ofproto/bond.c
+++ b/ofproto/bond.c
@@ -927,19 +927,9 @@ bond_recirculation_account(struct bond *bond)
 }
 
 bool
-bond_may_recirc(const struct bond *bond, uint32_t *recirc_id,
-                uint32_t *hash_bias)
+bond_may_recirc(const struct bond *bond)
 {
-    bool may_recirc = bond->balance == BM_TCP && bond->recirc_id;
-
-    if (recirc_id) {
-        *recirc_id = may_recirc ? bond->recirc_id : 0;
-    }
-    if (hash_bias) {
-        *hash_bias = may_recirc ? bond->basis : 0;
-    }
-
-    return may_recirc;
+    return bond->balance == BM_TCP && bond->recirc_id;
 }
 
 static void
@@ -971,8 +961,12 @@ bond_update_post_recirc_rules(struct bond *bond, uint32_t 
*recirc_id,
                               uint32_t *hash_basis)
 {
     ovs_rwlock_wrlock(&rwlock);
-    if (bond_may_recirc(bond, recirc_id, hash_basis)) {
+    if (bond_may_recirc(bond)) {
+        *recirc_id = bond->recirc_id;
+        *hash_basis = bond->basis;
         bond_update_post_recirc_rules__(bond, false);
+    } else {
+        *recirc_id = *hash_basis = 0;
     }
     ovs_rwlock_unlock(&rwlock);
 }
@@ -1159,7 +1153,7 @@ bond_rebalance(struct bond *bond)
     bond->next_rebalance = time_msec() + bond->rebalance_interval;
 
     use_recirc = bond->ofproto->backer->support.odp.recirc &&
-                 bond_may_recirc(bond, NULL, NULL);
+                 bond_may_recirc(bond);
 
     if (use_recirc) {
         bond_recirculation_account(bond);
@@ -1319,7 +1313,8 @@ bond_print_details(struct ds *ds, const struct bond *bond)
     ds_put_format(ds, "bond_mode: %s\n",
                   bond_mode_to_string(bond->balance));
 
-    may_recirc = bond_may_recirc(bond, &recirc_id, NULL);
+    may_recirc = bond_may_recirc(bond);
+    recirc_id = bond->recirc_id;
     ds_put_format(ds, "bond may use recirculation: %s, Recirc-ID : %d\n",
                   may_recirc ? "yes" : "no", may_recirc ? recirc_id: -1);
 
diff --git a/ofproto/bond.h b/ofproto/bond.h
index 6e1221d2381b..d3a2256402da 100644
--- a/ofproto/bond.h
+++ b/ofproto/bond.h
@@ -122,6 +122,5 @@ void bond_rebalance(struct bond *);
 */
 void bond_update_post_recirc_rules(struct bond *, uint32_t *recirc_id,
                                    uint32_t *hash_basis);
-bool bond_may_recirc(const struct bond *, uint32_t *recirc_id,
-                     uint32_t *hash_bias);
+bool bond_may_recirc(const struct bond *);
 #endif /* bond.h */
diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c
index 89fc3a44a0d1..8c16d028233b 100644
--- a/ofproto/ofproto-dpif-xlate.c
+++ b/ofproto/ofproto-dpif-xlate.c
@@ -1988,7 +1988,7 @@ output_normal(struct xlate_ctx *ctx, const struct xbundle 
*out_xbundle,
         struct ofport_dpif *ofport;
 
         if (ctx->xbridge->support.odp.recirc
-            && bond_may_recirc(out_xbundle->bond, NULL, NULL)) {
+            && bond_may_recirc(out_xbundle->bond)) {
             /* To avoid unnecessary locking, bond_may_recirc() is first
              * called outside of the 'rwlock'. After acquiring the lock,
              * bond_update_post_recirc_rules() will check again to make
-- 
1.9.1

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to