diff options
author | Christian Poessinger <christian@poessinger.com> | 2020-02-16 10:15:36 +0100 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2020-02-16 10:57:49 +0100 |
commit | b6aa1e7f3fb40cea11813dad53b50aeeb28fc74e (patch) | |
tree | c78369e5260b119057fe4ea750b77ec597c5b310 /src | |
parent | eab44d2757b67fa8801e9bb147ccacd01b081f7d (diff) | |
download | vyos-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')
-rwxr-xr-x | src/conf_mode/interfaces-bonding.py | 9 |
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 |