Page MenuHomeVyOS Platform

Need commit validation for interfaces when mtu configured below 1280
Closed, ResolvedPublicBUG

Description

A traceback error is received if mtu is set to 1200 :

vyos@vyos# set interfaces vti vti10 mtu 1200
[edit]
vyos@vyos# compare
[interfaces]
+ vti vti10 {
+     mtu "1200"
+ }

[edit]
vyos@vyos# commit
[ interfaces vti vti10 ]
VyOS had an issue completing a command.

We are sorry that you encountered a problem while using VyOS.
There are a few things you can do to help us (and yourself):
- Contact us using the online help desk if you have a subscription:
  https://support.vyos.io/
- Make sure you are running the latest version of VyOS available at:
  https://vyos.net/get/
- Consult the community forum to see how to handle this issue:
  https://forum.vyos.io
- Join us on Slack where our users exchange help and advice:
  https://vyos.slack.com

When reporting problems, please include as much information as possible:
- do not obfuscate any data (feel free to contact us privately if your
  business policy requires it)
- and include all the information presented below

Report time:      2025-04-03 15:32:45
Image version:    VyOS 1.4.1
Release train:    sagitta

Built by:         VyOS Networks Iberia S.L.U.
Built on:         Thu 19 Dec 2024 16:39 UTC
Build UUID:       857ab426-c3d8-4254-b23a-0ad62a45ecc7
Build commit ID:  98c72c5c45a7a1-dirty

Architecture:     x86_64
Boot via:         installed image
System type:      KVM guest

Hardware vendor:  QEMU
Hardware model:   Standard PC (i440FX + PIIX, 1996)
Hardware S/N:
Hardware UUID:    5db0020c-9365-49cd-b766-f3182b56c327

Traceback (most recent call last):
  File "/usr/libexec/vyos/conf_mode/interfaces_vti.py", line 65, in <module>
    apply(c)
  File "/usr/libexec/vyos/conf_mode/interfaces_vti.py", line 56, in apply
    tmp.update(vti)
  File "/usr/lib/python3/dist-packages/vyos/ifconfig/interface.py", line 1649, e
    self.add_ipv6_eui64_address(link_local_prefix)
  File "/usr/lib/python3/dist-packages/vyos/ifconfig/interface.py", line 849, is
    self.add_addr(f'{eui64}/{prefixlen}')
  File "/usr/lib/python3/dist-packages/vyos/ifconfig/interface.py", line 1159, r
    self._cmd(tmp)
  File "/usr/lib/python3/dist-packages/vyos/ifconfig/control.py", line 52, in _d
    return cmd(command, self.debug)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/vyos/utils/process.py", line 155, in cmd
    raise OSError(code, feedback)
FileNotFoundError: [Errno 2] failed to run command: ip addr add fe80::f4aa:87ff0
returned:
exit code: 2

noteworthy:
cmd 'nft --check delete element inet vrf_zones ct_iface_map { "vti10" }'
returned (out):

returned (err):
Error: Could not process rule: No such file or directory
delete element inet vrf_zones ct_iface_map { vti10 }
                                             ^^^^^
cmd 'ip addr add fe80::f4aa:87ff:fed8:da6d/64 dev vti10'
returned (out):

returned (err):
RTNETLINK answers: Invalid argument

[[interfaces vti vti10]] failed
Commit failed
[edit]

Need validation like how it is available for other interfaces:

vyos@vyos# set int bonding bond0 mtu 1200
[edit]
vyos@vyos# compare
[interfaces]
+ bonding bond0 {
+     mtu "1200"
+ }

vyos@vyos# commit
[ interfaces bonding bond0 ]
link-local IPv6 address will be configured on interface "bond0", the
required minimum MTU is "1280"!
[[interfaces bonding bond0]] failed
Commit failed

This validation is missing for other interface as well and sub-interfaces for all types, only applied for these interfaces (but now missing for bridge) under this commit:
https://github.com/vyos/vyos-1x/commit/5db3d63160670c796ed74a170862c367048d89bb

Details

Version
1.4.1, 1.5
Is it a breaking change?
Unspecified (possibly destroys the router)
Issue type
Bug (incorrect behavior)