|
Jiri Slaby |
5da0cb |
From: Mahesh Bandewar <maheshb@google.com>
|
|
Jiri Slaby |
5da0cb |
Date: Fri, 6 Dec 2019 15:44:55 -0800
|
|
Jiri Slaby |
5da0cb |
Subject: bonding: fix active-backup transition after link failure
|
|
Jiri Slaby |
5da0cb |
Git-commit: 5d485ed88d48f8101a2067348e267c0aaf4ed486
|
|
Jiri Slaby |
5da0cb |
Patch-mainline: 5.5-rc3
|
|
Jiri Slaby |
5da0cb |
References: git-fixes
|
|
Jiri Slaby |
5da0cb |
|
|
Jiri Slaby |
5da0cb |
After the recent fix in commit 1899bb325149 ("bonding: fix state
|
|
Jiri Slaby |
5da0cb |
transition issue in link monitoring"), the active-backup mode with
|
|
Jiri Slaby |
5da0cb |
miimon initially come-up fine but after a link-failure, both members
|
|
Jiri Slaby |
5da0cb |
transition into backup state.
|
|
Jiri Slaby |
5da0cb |
|
|
Jiri Slaby |
5da0cb |
Following steps to reproduce the scenario (eth1 and eth2 are the
|
|
Jiri Slaby |
5da0cb |
slaves of the bond):
|
|
Jiri Slaby |
5da0cb |
|
|
Jiri Slaby |
5da0cb |
ip link set eth1 up
|
|
Jiri Slaby |
5da0cb |
ip link set eth2 down
|
|
Jiri Slaby |
5da0cb |
sleep 1
|
|
Jiri Slaby |
5da0cb |
ip link set eth2 up
|
|
Jiri Slaby |
5da0cb |
ip link set eth1 down
|
|
Jiri Slaby |
5da0cb |
cat /sys/class/net/eth1/bonding_slave/state
|
|
Jiri Slaby |
5da0cb |
cat /sys/class/net/eth2/bonding_slave/state
|
|
Jiri Slaby |
5da0cb |
|
|
Jiri Slaby |
5da0cb |
Fixes: 1899bb325149 ("bonding: fix state transition issue in link monitoring")
|
|
Jiri Slaby |
5da0cb |
CC: Jay Vosburgh <jay.vosburgh@canonical.com>
|
|
Jiri Slaby |
5da0cb |
Signed-off-by: Mahesh Bandewar <maheshb@google.com>
|
|
Jiri Slaby |
5da0cb |
Acked-by: Jay Vosburgh <jay.vosburgh@canonical.com>
|
|
Jiri Slaby |
5da0cb |
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
|
|
Jiri Slaby |
5da0cb |
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
|
|
Jiri Slaby |
5da0cb |
---
|
|
Jiri Slaby |
5da0cb |
drivers/net/bonding/bond_main.c | 3 ---
|
|
Jiri Slaby |
5da0cb |
1 file changed, 3 deletions(-)
|
|
Jiri Slaby |
5da0cb |
|
|
Jiri Slaby |
5da0cb |
--- a/drivers/net/bonding/bond_main.c
|
|
Jiri Slaby |
5da0cb |
+++ b/drivers/net/bonding/bond_main.c
|
|
Jiri Slaby |
5da0cb |
@@ -2177,9 +2177,6 @@ static void bond_miimon_commit(struct bo
|
|
Jiri Slaby |
5da0cb |
} else if (BOND_MODE(bond) != BOND_MODE_ACTIVEBACKUP) {
|
|
Jiri Slaby |
5da0cb |
/* make it immediately active */
|
|
Jiri Slaby |
5da0cb |
bond_set_active_slave(slave);
|
|
Jiri Slaby |
5da0cb |
- } else if (slave != primary) {
|
|
Jiri Slaby |
5da0cb |
- /* prevent it from being the active one */
|
|
Jiri Slaby |
5da0cb |
- bond_set_backup_slave(slave);
|
|
Jiri Slaby |
5da0cb |
}
|
|
Jiri Slaby |
5da0cb |
|
|
Jiri Slaby |
5da0cb |
netdev_info(bond->dev, "link status definitely up for interface %s, %u Mbps %s duplex\n",
|