Not a problem I was planing to push both patches in the morning (PST_ if we can resolve 2nd patch soon. At any rate, I will push this patch in the morning.
On Mon, Apr 14, 2014 at 12:46 AM, Joe Stringer <[email protected]> wrote: > Thanks. I don't have push access, could you take care of that? > > > On 14 April 2014 18:47, Andy Zhou <[email protected]> wrote: >> >> Looks good. Thanks. >> Acked-by: Andy Zhou <[email protected]> >> >> On Sun, Apr 13, 2014 at 10:30 PM, Joe Stringer <[email protected]> wrote: >> > From: Joe Stringer <[email protected]> >> > >> > Add a constant for the number of bond buckets, and other minor cleanups. >> > >> > Signed-off-by: Joe Stringer <[email protected]> >> > --- >> > ofproto/bond.c | 14 +++++++------- >> > 1 file changed, 7 insertions(+), 7 deletions(-) >> > >> > diff --git a/ofproto/bond.c b/ofproto/bond.c >> > index 49dd49e..8554955 100644 >> > --- a/ofproto/bond.c >> > +++ b/ofproto/bond.c >> > @@ -53,13 +53,13 @@ static struct ovs_rwlock rwlock = >> > OVS_RWLOCK_INITIALIZER; >> > static struct hmap all_bonds__ = HMAP_INITIALIZER(&all_bonds__); >> > static struct hmap *const all_bonds OVS_GUARDED_BY(rwlock) = >> > &all_bonds__; >> > >> > -/* Bit-mask for hashing a flow down to a bucket. >> > - * There are (BOND_MASK + 1) buckets. */ >> > +/* Bit-mask for hashing a flow down to a bucket. */ >> > #define BOND_MASK 0xff >> > +#define BOND_BUCKETS (BOND_MASK + 1) >> > #define RECIRC_RULE_PRIORITY 20 /* Priority level for internal rules >> > */ >> > >> > /* A hash bucket for mapping a flow to a slave. >> > - * "struct bond" has an array of (BOND_MASK + 1) of these. */ >> > + * "struct bond" has an array of BOND_BUCKETS of these. */ >> > struct bond_entry { >> > struct bond_slave *slave; /* Assigned slave, NULL if unassigned. >> > */ >> > uint64_t tx_bytes; /* Count of bytes recently transmitted. >> > */ >> > @@ -122,7 +122,7 @@ struct bond { >> > uint32_t basis; /* Basis for flow hash function. */ >> > >> > /* SLB specific bonding info. */ >> > - struct bond_entry *hash; /* An array of (BOND_MASK + 1) >> > elements. */ >> > + struct bond_entry *hash; /* An array of BOND_BUCKETS elements. >> > */ >> > int rebalance_interval; /* Interval between rebalances, in ms. >> > */ >> > long long int next_rebalance; /* Next rebalancing time. */ >> > bool send_learning_packets; >> > @@ -159,7 +159,7 @@ static void bond_enable_slave(struct bond_slave *, >> > bool enable) >> > static void bond_link_status_update(struct bond_slave *) >> > OVS_REQ_WRLOCK(rwlock); >> > static void bond_choose_active_slave(struct bond *) >> > - OVS_REQ_WRLOCK(rwlock);; >> > + OVS_REQ_WRLOCK(rwlock); >> > static unsigned int bond_hash_src(const uint8_t mac[ETH_ADDR_LEN], >> > uint16_t vlan, uint32_t basis); >> > static unsigned int bond_hash_tcp(const struct flow *, uint16_t vlan, >> > @@ -330,7 +330,7 @@ update_recirc_rules(struct bond *bond) >> > return; >> > } >> > >> > - for (i = 0; i < BOND_MASK + 1; i++) { >> > + for (i = 0; i < BOND_BUCKETS; i++) { >> > struct bond_slave *slave = bond->hash[i].slave; >> > >> > if (slave) { >> > @@ -1570,7 +1570,7 @@ static void >> > bond_entry_reset(struct bond *bond) >> > { >> > if (bond->balance != BM_AB) { >> > - size_t hash_len = (BOND_MASK + 1) * sizeof *bond->hash; >> > + size_t hash_len = BOND_BUCKETS * sizeof *bond->hash; >> > >> > if (!bond->hash) { >> > bond->hash = xmalloc(hash_len); >> > -- >> > 1.7.10.4 >> > > > _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
