1.3-epa cannot add wlan0 to bridge via configure

With the latest 1.3 build, I am unable to add my WiFi interface to a bridge:

vyos@vyos:~$ configure
[edit]
vyos@vyos# set interfaces bridge br0 member interface wlan0
[edit]
vyos@vyos# commit
[ interfaces bridge br0 ]
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-15 23:06:02
Image version:    VyOS 1.3.0-epa2
Release train:    equuleus

Built by:         root
Built on:         Fri 15 Oct 2021 17:11 UTC
Build UUID:       1caaac80-b99b-4570-b03b-0225ee260f3e
Build commit ID:  35fdd4f8cd4d36

Architecture:     x86_64
Boot via:         installed image
System type:      bare metal

Hardware vendor:  PC Engines
Hardware model:   apu1
Hardware S/N:     123456
Hardware UUID:    Unknown

Traceback (most recent call last):
  File "/usr/libexec/vyos/conf_mode/interfaces-bridge.py", line 172, in <module>
    apply(c)
  File "/usr/libexec/vyos/conf_mode/interfaces-bridge.py", line 163, in apply
    br.update(bridge)
  File "/usr/lib/python3/dist-packages/vyos/ifconfig/bridge.py", line 322, in update
    lower.set_port_isolation(value)
  File "/usr/lib/python3/dist-packages/vyos/ifconfig/interface.py", line 854, in set_port_isolation
    self.set_interface('bridge_port_isolation', on_or_off)
  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: bridge link set dev wlan0 isolated off
returned:
exit code: 255

noteworthy:
cmd 'bridge link set dev wlan0 isolated off'
returned (out):

returned (err):
RTNETLINK answers: Operation not supported

[[interfaces bridge br0]] failed
Commit failed
[edit]
vyos@vyos# discard

  Changes have been discarded

[edit]
vyos@vyos# exit
exit

Notice the above claims “Operation not supported” – however, observe the following results when executing commands by hand:

vyos@vyos:~$ sudo ip link set wlan0 master br0
vyos@vyos:~$ bridge link
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master br0 state forwarding priority 32 cost 100
7: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master br0 state forwarding priority 32 cost 100
vyos@vyos:~$ sudo bridge link set dev wlan0 isolated off
vyos@vyos:~$ bridge link
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master br0 state forwarding priority 32 cost 100
7: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master br0 state forwarding priority 32 cost 100
vyos@vyos:~$

Why am I receiving the error when I attempt to add wlan0 to my bridge in VyOS ?

For now, I have VyOS creating the bridge and adding my ethernet interface to it, and I am manually adding my wireless interface to the bridge after boot-up via /config/scripts/vyos-postconfig-bootup.script. Relevant config snippets below:

interfaces {
    bridge br0 {
        address 192.168.0.1/24
        member {
            interface eth2 {
            }
        }
    }
    ethernet eth2 {
        description INSIDE
        duplex auto
        hw-id 01:23:45:67:89:ab
        offload {
            gro
        }
        speed auto
    }
    wireless wlan0 {
        capabilities {
            ht {
                channel-set-width ht40+
            }
        }
        channel 1
        country-code us
        hw-id 01:23:45:67:89:ac
        mgmt-frame-protection disabled
        mode n
        policy {
        }
        security {
            wpa {
                cipher CCMP
                mode wpa+wpa2
                passphrase ****************
            }
        }
        ssid redacted
        type access-point
    }
}

As a workaround for now, I am manually adding the wlan0 interface to the bridge like so:

vyos@vyos:~$ cat /config/scripts/vyos-postconfig-bootup.script
#!/bin/sh
# This script is executed at boot time after VyOS configuration is fully applied.
# Any modifications required to work around unfixed bugs
# or use services not available through the VyOS CLI system can be placed here.

sudo ip link set dev wlan0 master br0
sudo bridge link set dev wlan0 isolated off

vyos@vyos:~$

This is working around the bug:

noteworthy:
cmd 'bridge link set dev wlan0 isolated off'
returned (out):

returned (err):
RTNETLINK answers: Operation not supported

I’d love to see it fixed eventually :slight_smile:

This problem still exists in 1.3.0-epa3. See below, where the error occurs and then I run the failing command by hand - and it works:

vyos@vyos-test# commit
[ interfaces bridge br0 ]
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-11-05 21:36:20
Image version:    VyOS 1.3.0-epa3
Release train:    equuleus

Built by:         Sentrium S.L.
Built on:         Sun 31 Oct 2021 17:38 UTC
Build UUID:       383e45ad-b32a-4359-8183-9baacc8e69d9
Build commit ID:  bb511522cc3bb2-dirty

Architecture:     x86_64
Boot via:         installed image
System type:      bare metal

Hardware vendor:  PC Engines
Hardware model:   apu1
Hardware S/N:     123456
Hardware UUID:    Unknown

Traceback (most recent call last):
  File "/usr/libexec/vyos/conf_mode/interfaces-bridge.py", line 172, in <module>
    apply(c)
  File "/usr/libexec/vyos/conf_mode/interfaces-bridge.py", line 163, in apply
    br.update(bridge)
  File "/usr/lib/python3/dist-packages/vyos/ifconfig/bridge.py", line 322, in update
    lower.set_port_isolation(value)
  File "/usr/lib/python3/dist-packages/vyos/ifconfig/interface.py", line 854, in set_port_isolation
    self.set_interface('bridge_port_isolation', on_or_off)
  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: bridge link set dev wlan0 isolated off
returned:
exit code: 255

noteworthy:
cmd 'bridge link set dev wlan0 isolated off'
returned (out):

returned (err):
RTNETLINK answers: Operation not supported

[[interfaces bridge br0]] failed
Commit failed
[edit]
vyos@vyos-test# sudo ip link set dev wlan0 master br0
[edit]
vyos@vyos-test# sudo bridge link set dev wlan0 isolated off
[edit]
vyos@vyos-test# bridge link
4: eth2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 master br0 state disabled priority 32 cost 100
7: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master br0 state forwarding priority 32 cost 100
[edit]
vyos@vyos-test#

What gives?