summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--python/vyos/configverify.py21
-rw-r--r--python/vyos/ifconfig/interface.py4
2 files changed, 23 insertions, 2 deletions
diff --git a/python/vyos/configverify.py b/python/vyos/configverify.py
index afa6c7f06..6e5ba1df0 100644
--- a/python/vyos/configverify.py
+++ b/python/vyos/configverify.py
@@ -23,6 +23,27 @@
from vyos import ConfigError
+def verify_mtu(config):
+ """
+ Common helper function used by interface implementations to perform
+ recurring validation if the specified MTU can be used by the underlaying
+ hardware.
+ """
+ from vyos.ifconfig import Interface
+ if 'mtu' in config:
+ mtu = int(config['mtu'])
+
+ tmp = Interface(config['ifname'])
+ min_mtu = tmp.get_min_mtu()
+ max_mtu = tmp.get_max_mtu()
+
+ if mtu < min_mtu:
+ raise ConfigError(f'Interface MTU too low, ' \
+ f'minimum supported MTU is {min_mtu}!')
+ if mtu > max_mtu:
+ raise ConfigError(f'Interface MTU too high, ' \
+ f'maximum supported MTU is {max_mtu}!')
+
def verify_vrf(config):
"""
Common helper function used by interface implementations to perform
diff --git a/python/vyos/ifconfig/interface.py b/python/vyos/ifconfig/interface.py
index a0f0ffe04..d200fc7a8 100644
--- a/python/vyos/ifconfig/interface.py
+++ b/python/vyos/ifconfig/interface.py
@@ -299,7 +299,7 @@ class Interface(Control):
>>> Interface('eth0').get_min_mtu()
'60'
"""
- return self.get_interface('min_mtu')
+ return int(self.get_interface('min_mtu'))
def get_max_mtu(self):
"""
@@ -310,7 +310,7 @@ class Interface(Control):
>>> Interface('eth0').get_max_mtu()
'9000'
"""
- return self.get_interface('max_mtu')
+ return int(self.get_interface('max_mtu'))
def get_mtu(self):
"""