Page MenuHomeVyOS Platform

Don't set link local ipv6 address if MTU less then 1280
Closed, ResolvedPublicBUG

Description

Add checks of MTU before set link-local ipv6 address.

vyos@r4-1.3# set interfaces ethernet eth2 mtu 1280
[edit]
vyos@r4-1.3# commit
[edit]
vyos@r4-1.3# set interfaces ethernet eth2 mtu 1279
[edit]
vyos@r4-1.3# commit
[ interfaces ethernet eth2 ]
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:      2021-09-06 18:46:20
Image Version:    VyOS 1.3-beta-202109060342
Release Train:    equuleus

Built by:         autobuild@vyos.net
Built on:         Mon 06 Sep 2021 03:42 UTC
Build UUID:       3baeda17-59f8-46be-86c7-bdb0cb4ec628
Build Commit ID:  14583fc2b4dde3

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

Hardware vendor:  QEMU
Hardware model:   Standard PC (Q35 + ICH9, 2009)
Hardware S/N:     
Hardware UUID:    710e3d5f-968a-4d51-a408-5167c8cdd1f6

Traceback (most recent call last):
  File "/usr/libexec/vyos/conf_mode/interfaces-ethernet.py", line 164, in <module>
    apply(c)
  File "/usr/libexec/vyos/conf_mode/interfaces-ethernet.py", line 153, in apply
    e.update(ethernet)
  File "/usr/lib/python3/dist-packages/vyos/ifconfig/ethernet.py", line 360, in update
    super().update(config)
  File "/usr/lib/python3/dist-packages/vyos/ifconfig/interface.py", line 1272, in update
    self.add_ipv6_eui64_address('fe80::/64')
  File "/usr/lib/python3/dist-packages/vyos/ifconfig/interface.py", line 585, in add_ipv6_eui64_address
    self.add_addr(f'{eui64}/{prefixlen}')
  File "/usr/lib/python3/dist-packages/vyos/ifconfig/interface.py", line 878, in add_addr
    self._cmd(f'ip addr add "{addr}" '
  File "/usr/lib/python3/dist-packages/vyos/ifconfig/control.py", line 51, in _cmd
    return cmd(command, self.debug)
  File "/usr/lib/python3/dist-packages/vyos/util.py", line 161, in cmd
    raise OSError(code, feedback)
FileNotFoundError: [Errno 2] failed to run command: ip addr add "fe80::5054:ff:fe71:59f0/64" dev "eth2"
returned: 
exit code: 2

noteworthy:
cmd 'ethtool --show-pause eth2'
returned (out):
Pause parameters for eth2:
returned (err):
Cannot get device pause settings: Operation not supported
cmd 'ethtool --show-pause eth2'
returned (out):
Pause parameters for eth2:
returned (err):
Cannot get device pause settings: Operation not supported
cmd 'ethtool --show-pause eth2'
returned (out):
Pause parameters for eth2:
returned (err):
Cannot get device pause settings: Operation not supported
cmd 'ip addr add "fe80::5054:ff:fe71:59f0/64" dev "eth2"'
returned (out):

returned (err):
RTNETLINK answers: Invalid argument

[[interfaces ethernet eth2]] failed
Commit failed
[edit]
vyos@r4-1.3#

Details

Difficulty level
Normal (likely a few hours)
Version
VyOS 1.3-beta-202109060342
Why the issue appeared?
Design mistake
Is it a breaking change?
Perfectly compatible
Issue type
Bug (incorrect behavior)

Event Timeline

c-po changed the task status from Open to In progress.Sep 6 2021, 6:32 PM
c-po claimed this task.
c-po moved this task from Need Triage to Finished on the VyOS 1.4 Sagitta board.
c-po moved this task from Need Triage to Finished on the VyOS 1.3 Equuleus (1.3.0-epa1) board.
c-po changed Why the issue appeared? from Will be filled on close to Design mistake.
c-po changed Is it a breaking change? from Unspecified (possibly destroys the router) to Perfectly compatible.