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

Reply via email to