diff options
| author | Christian Breunig <christian@breunig.cc> | 2025-11-24 16:06:35 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-24 16:06:35 +0100 |
| commit | 1aec97d70ceaba9f89db8c592478e10ed1c0aefc (patch) | |
| tree | 4df77ba2f641151cd60b343d6744c7a9adbbe940 /src | |
| parent | 844d517fa43f2b31dee9320e4e2cb19e2b351684 (diff) | |
| parent | 6285a2fd7fec1239bdd1ccc8b4e40e10a9086c48 (diff) | |
| download | vyos-1x-1aec97d70ceaba9f89db8c592478e10ed1c0aefc.tar.gz vyos-1x-1aec97d70ceaba9f89db8c592478e10ed1c0aefc.zip | |
Merge pull request #4861 from c-po/bond-member-mtu
bond: T8023: validate member interface min/max MTU
Diffstat (limited to 'src')
| -rwxr-xr-x | src/conf_mode/interfaces_bonding.py | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/conf_mode/interfaces_bonding.py b/src/conf_mode/interfaces_bonding.py index 68c2885bc..f844d0a21 100755 --- a/src/conf_mode/interfaces_bonding.py +++ b/src/conf_mode/interfaces_bonding.py @@ -248,6 +248,17 @@ def verify(bond): continue raise ConfigError(error_msg + f'it has a "{option_path.replace(".", " ")}" assigned!') + if mtu := bond.get('mtu'): + mtu = int(mtu) + max_mtu = int(EthernetIf(interface).get_max_mtu()) + min_mtu = int(EthernetIf(interface).get_min_mtu()) + if mtu > max_mtu: + raise ConfigError('Configured MTU is greater then member '\ + f'interface "{interface}" maximum of {max_mtu}!') + if mtu < min_mtu: + raise ConfigError('Configured MTU is less then member '\ + f'interface "{interface}" minimum of {min_mtu}!') + if 'primary' in bond: if bond['primary'] not in bond['member']['interface']: raise ConfigError(f'Primary interface of bond "{bond_name}" must be a member interface') |
