From: Ethan Jackson Date: Mon, 25 Jun 2012 22:46:44 +0000 (-0700) Subject: bond: Sending learning packets on active-backup. X-Git-Tag: sliver-openvswitch-1.8.90-0~48^2~282 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=247cd777a12fae3ff37da762f8016fee82bbf411;p=sliver-openvswitch.git bond: Sending learning packets on active-backup. 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 Signed-off-by: Ethan Jackson --- diff --git a/AUTHORS b/AUTHORS index bf8c149dc..dec478b9d 100644 --- 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 diff --git a/lib/bond.c b/lib/bond.c index b9d58b464..4d711c034 100644 --- a/lib/bond.c +++ b/lib/bond.c @@ -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; }