diff options
| -rw-r--r-- | python/vyos/configverify.py | 21 | ||||
| -rw-r--r-- | python/vyos/ifconfig/interface.py | 4 | 
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):          """  | 
