Page MenuHomeVyOS Platform

VRF - Delette vrf config on interface
Closed, ResolvedPublicBUG

Description

On vyos-1.3.0-epa1:
On fresh install, add:

set int eth eth2 vrf 'green'
set vrf name green table '1000'

After commit, configuration is stored correctly.
When removing vrf config on eht2:

vyos@vyos# del int eth eth2 vrf 
[edit]
vyos@vyos# 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-10-02 11:52:12
Image version:    VyOS 1.3.0-epa1
Release train:    equuleus

Built by:         Sentrium S.L.
Built on:         Tue 28 Sep 2021 14:11 UTC
Build UUID:       e67d1006-5116-444a-b984-e3c21de20f5d
Build commit ID:  701f08deb2cd8f

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:    ae57d426-8024-4a63-8146-e3293d6f90c3
Traceback (most recent call last):
  File "/usr/libexec/vyos/conf_mode/interfaces-ethernet.py", line 163, in <module>
    apply(c)
  File "/usr/libexec/vyos/conf_mode/interfaces-ethernet.py", line 152, in apply
    e.update(ethernet)
  File "/usr/lib/python3/dist-packages/vyos/ifconfig/ethernet.py", line 340, in update
    super().update(config)
  File "/usr/lib/python3/dist-packages/vyos/ifconfig/interface.py", line 1307, in update
    self.set_vrf(config.get('vrf', None))
  File "/usr/lib/python3/dist-packages/vyos/ifconfig/interface.py", line 505, in set_vrf
    self.set_interface('vrf', vrf)
  File "/usr/lib/python3/dist-packages/vyos/ifconfig/control.py", line 183, in set_interface
    return self._set_command(self.config, name, value)
  File "/usr/lib/python3/dist-packages/vyos/ifconfig/control.py", line 110, in _set_command
    return self._command_set[name].get('format', lambda _: _)(self._cmd(cmd))
  File "/usr/lib/python3/dist-packages/vyos/ifconfig/control.py", line 52, in _cmd
    return cmd(command, self.debug)
  File "/usr/lib/python3/dist-packages/vyos/util.py", line 161, in cmd
    raise OSError(code, feedback)
OSError: [Errno 255] failed to run command: ip link set dev eth2 master None
returned: 
exit code: 255

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 'ip link set dev eth2 master None'
returned (out):

returned (err):
Error: argument "None" is wrong: Device does not exist

Same config and removal in vyos-1.3.0-rc6 works:

vyos@vyos# del int eth eth2 vrf 
[edit]
vyos@vyos# commit
[edit]
vyos@vyos# run show conf
interfaces {
    ethernet eth0 {
        hw-id 0c:5a:02:a0:00:00
    }
    ethernet eth1 {
        hw-id 0c:5a:02:a0:00:01
    }
    ethernet eth2 {
        hw-id 0c:5a:02:a0:00:02
    }
    ethernet eth3 {
        hw-id 0c:5a:02:a0:00:03
    }
    loopback lo {
    }
}
system {

Details

Difficulty level
Normal (likely a few hours)
Version
1.3.0-epa1
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.Oct 2 2021, 3:45 PM
c-po claimed this task.
c-po triaged this task as High priority.
c-po changed Difficulty level from Unknown (require assessment) to Normal (likely a few hours).
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.
c-po moved this task from Need Triage to Finished on the VyOS 1.3 Equuleus (1.3.0-epa2) board.
c-po added a project: VyOS 1.4 Sagitta.
c-po moved this task from Need Triage to Finished on the VyOS 1.4 Sagitta board.