bonding: Send ALB learning packets using the right source
authorVlad Yasevich <vyasevic@redhat.com>
Wed, 21 May 2014 17:19:48 +0000 (13:19 -0400)
committerDavid S. Miller <davem@davemloft.net>
Thu, 22 May 2014 19:47:58 +0000 (15:47 -0400)
commitd0c21d43a5a12aaebb1e42e10cf78e6491fc9e5a
tree7682d8f4fc2525322ce4efec46b3ba5f4bd60712
parentd6b694c0b3f20c3ee54d29d4109fa1978d11a033
bonding: Send ALB learning packets using the right source

ALB learning packets are currentlyalways sent using the slave mac
address for all vlans configured on top of bond.   This is not always
correct, as vlans may change their mac address.
This patch introduced a concept of strict matching where the
source of learning packets can either strictly match the address
passed in, or it can determine a more correct address to use.

There are 3 casese to consider:
  1) Switchover.  In this case, we have a new active slave and we need
     tell the switch about all addresses available on the slave.
  2) Monitor.  We'll periodically refresh learning info for all slaves.
     In this case, we refresh all addresses for current active, and just
     the slave address for other slaves.
  3) Teaching of disabled adddress.  This happens as part of the
     failover and in this case, we alwyas to use just the address
     provided.

CC: Jay Vosburgh <j.vosburgh@gmail.com>
CC: Veaceslav Falico <vfalico@gmail.com>
CC: Andy Gospodarek <andy@greyhouse.net>
Signed-off-by: Vlad Yasevich <vyasevic@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/bonding/bond_alb.c