diff options
author | Christian Breunig <christian@breunig.cc> | 2023-10-03 20:51:21 +0200 |
---|---|---|
committer | Christian Breunig <christian@breunig.cc> | 2023-10-08 09:58:45 +0200 |
commit | ab2aeec41a2ef34730b9dc8894b184e0bf00b147 (patch) | |
tree | af51c0a604609874fe0a8d367fca92238d7657f5 | |
parent | 88c1fd3a35926d813967b3c969e01b41ea67771a (diff) | |
download | vyos-1x-ab2aeec41a2ef34730b9dc8894b184e0bf00b147.tar.gz vyos-1x-ab2aeec41a2ef34730b9dc8894b184e0bf00b147.zip |
pppoe: T5630: verify MRU is less or equal then MTU
(cherry picked from commit e357258e645cf85de0035d4ecfbf99db4dd90f7e)
-rwxr-xr-x | smoketest/scripts/cli/test_interfaces_pppoe.py | 11 | ||||
-rwxr-xr-x | src/conf_mode/interfaces-pppoe.py | 5 |
2 files changed, 13 insertions, 3 deletions
diff --git a/smoketest/scripts/cli/test_interfaces_pppoe.py b/smoketest/scripts/cli/test_interfaces_pppoe.py index 6774a86ba..2aaccbb13 100755 --- a/smoketest/scripts/cli/test_interfaces_pppoe.py +++ b/smoketest/scripts/cli/test_interfaces_pppoe.py @@ -64,7 +64,7 @@ class PPPoEInterfaceTest(VyOSUnitTestSHIM.TestCase): self.cli_set(base_path + [interface, 'authentication', 'password', passwd]) self.cli_set(base_path + [interface, 'default-route', 'auto']) self.cli_set(base_path + [interface, 'mtu', mtu]) - self.cli_set(base_path + [interface, 'mru', mru]) + self.cli_set(base_path + [interface, 'mru', '9000']) self.cli_set(base_path + [interface, 'no-peer-dns']) # check validate() - a source-interface is required @@ -72,8 +72,13 @@ class PPPoEInterfaceTest(VyOSUnitTestSHIM.TestCase): self.cli_commit() self.cli_set(base_path + [interface, 'source-interface', self._source_interface]) - # commit changes - self.cli_commit() + # check validate() - MRU needs to be less or equal then MTU + with self.assertRaises(ConfigSessionError): + self.cli_commit() + self.cli_set(base_path + [interface, 'mru', mru]) + + # commit changes + self.cli_commit() # verify configuration file(s) for interface in self._interfaces: diff --git a/src/conf_mode/interfaces-pppoe.py b/src/conf_mode/interfaces-pppoe.py index 6c4c6c95b..49714c558 100755 --- a/src/conf_mode/interfaces-pppoe.py +++ b/src/conf_mode/interfaces-pppoe.py @@ -59,6 +59,11 @@ def verify(pppoe): if {'connect_on_demand', 'vrf'} <= set(pppoe): raise ConfigError('On-demand dialing and VRF can not be used at the same time') + # both MTU and MRU have default values, thus we do not need to check + # if the key exists + if int(pppoe['mru']) > int(pppoe['mtu']): + raise ConfigError('PPPoE MRU needs to be lower then MTU!') + return None def generate(pppoe): |