bond: Sending learning packets on active-backup.
authorEthan Jackson <ethan@nicira.com>
Mon, 25 Jun 2012 22:46:44 +0000 (15:46 -0700)
committerEthan Jackson <ethan@nicira.com>
Thu, 5 Jul 2012 22:03:34 +0000 (15:03 -0700)
Suppose we have an active bond with two ports, eth1 and eth2,
attached to a standard L2 learning switch which does not know it's
participating in a bond (i.e. isn't running LACP).  Suppose eth1 is
active and therefore the L2 learning switch is forwarding traffic
to eth1 as instructed by its learning table.  Now suppose, for some
reason, OVS fails over from eth1 to eth2.  For each destination
MAC, the L2 learning switch will continue sending traffic to eth1,
which will be dropped, until either traffic from that MAC appears
on eth2, or the learning table entries expire.

To alleviate this issue, this patch sends learning packets on newly
active interfaces in active-backup bonds in order to educate the
upstream network of the change.

Requested-by: Frido Roose <fr.roose@gmail.com>
Signed-off-by: Ethan Jackson <ethan@nicira.com>
AUTHORS
lib/bond.c

diff --git a/AUTHORS b/AUTHORS
index bf8c149dc501b0cdadd19707ce2e75c47b2254b3..dec478b9df625bb3c64cbf9e74e39a28da97c0ea 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -99,6 +99,7 @@ DK Moon                 dkmoon@nicira.com
 Edwin Chiu              echiu@nicira.com
 Eivind Bulie Haanaes
 Eric Lopez              elopez@nicira.com
+Frido Roose             fr.roose@gmail.com
 Gaetano Catalli         gaetano.catalli@gmail.com
 George Shuklin          amarao@desunote.ru
 Ghanem Bahri            bahri.ghanem@gmail.com
index b9d58b46446a2fd1f2b75af98291beeb17236fb0..4d711c0346521bb2df33cdddd59ace18e6cb9c4b 100644 (file)
@@ -488,7 +488,6 @@ static bool
 may_send_learning_packets(const struct bond *bond)
 {
     return bond->lacp_status == LACP_DISABLED
-        && bond->balance != BM_AB
         && bond->balance != BM_STABLE
         && bond->active_slave;
 }