summaryrefslogtreecommitdiff
path: root/src/conf_mode
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2020-02-16 10:15:36 +0100
committerChristian Poessinger <christian@poessinger.com>2020-02-16 10:57:49 +0100
commitb6aa1e7f3fb40cea11813dad53b50aeeb28fc74e (patch)
treec78369e5260b119057fe4ea750b77ec597c5b310 /src/conf_mode
parenteab44d2757b67fa8801e9bb147ccacd01b081f7d (diff)
downloadvyos-1x-b6aa1e7f3fb40cea11813dad53b50aeeb28fc74e.tar.gz
vyos-1x-b6aa1e7f3fb40cea11813dad53b50aeeb28fc74e.zip
bond: T2030: fix incorrect delta calculation on member interfaces
THe delta check/calculation always returned False on system startup leading to a non functioning bond interface after a reboot as no physical interface actually enslaved. This was fixed by not calculating the current enslaved interfaces from the existing config but rather retrieving the interfaces from sysfs.
Diffstat (limited to 'src/conf_mode')
-rwxr-xr-xsrc/conf_mode/interfaces-bonding.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/conf_mode/interfaces-bonding.py b/src/conf_mode/interfaces-bonding.py
index 81574515f..6cdfb764c 100755
--- a/src/conf_mode/interfaces-bonding.py
+++ b/src/conf_mode/interfaces-bonding.py
@@ -208,8 +208,13 @@ def get_config():
# determine bond member interfaces (currently configured)
if conf.exists('member interface'):
bond['member'] = conf.return_values('member interface')
- eff_member = conf.return_effective_values('member interface')
- if not (bond['member'] == eff_member):
+
+ # We can not call conf.return_effective_values() as it would not work
+ # on reboots. Reboots/First boot will return that running config and
+ # saved config is the same, thus on a reboot the bond members will
+ # not be added all (https://phabricator.vyos.net/T2030)
+ live_members = BondIf(bond['intf']).get_slaves()
+ if not (bond['member'] == live_members):
bond['shutdown_required'] = True
# Primary device interface