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?
Perfectly compatible
Issue type
Bug (incorrect behavior)

Event Timeline

dmbaturin moved this task from Backlog to Finished on the VyOS 1.4 Sagitta (1.4.3) board.
dmbaturin moved this task from Open to Finished on the VyOS 1.5 Circinus board.
dmbaturin moved this task from Need Triage to Completed on the VyOS Rolling board.
dmbaturin changed Is it a breaking change? from Unspecified (possibly destroys the router) to Perfectly compatible.