VRX200 / BT Home Hub 5A does not correctly configure more than 2 switch VLANs
Username: Jonathan McDowell
Origin: https://bugs.openwrt.org/index.php?do=details&task_id=1279
Device: BT Home Hub 5A (xRX200 rev 1.2)
Version: LEDE 17.01.4
Kernel: 4.4.92 / swconfig: 11
I have configured up 3 VLANs using Luci. These are correctly added to /etc/config/network and “uci show | grep switch” shows the entries I’d expect. However only 2 VLANs are correctly configured. The 3rd can be brought up with a manual invocation of “swconfig”. I’ve tried the same thing on an DGN3500 (VR9 platform), also with LEDE 17.01.4, and it works there, leading me to suspect this is a kernel issue with the VRX200 driver.
The switch config in /etc/config/network looks like:
config switch option name 'switch0' option reset '1' option enable_vlan '1'
config switch_vlan option device 'switch0' option vlan '1' option vid '3' option ports '0 4 5t 6t'
config switch_vlan option device 'switch0' option vlan '2' option ports '2 6t' option vid '4'
config switch_vlan option device 'switch0' option vlan '3' option ports '1 5t 6t' option vid '5'
Running “swconfig dev switch0 load network” leads to the following switch config:
VLAN 1: vid: 3 enable: 1 ports: 0 4 5t 6t VLAN 2: vid: 4 enable: 1 ports: 2 6t
No other VLAN stanza are shown but ‘swconfig dev switch0 vlan 3 show’ shows that while no ports have been added VLAN ID 5 has been correctly configured:
VLAN 3: vid: 5 enable: 1 ports:
Manually executing “swconfig dev switch0 vlan 3 set ports ‘1 5t 6t’” brings up the VLAN as expected:
VLAN 3: vid: 5 enable: 1 ports: 1 5t 6t
uci shows the correct details (uci show | grep switch):
network.@switch[0]=switch network.@switch[0].name='switch0' network.@switch[0].reset='1' network.@switch[0].enable_vlan='1' network.@switch_vlan[0]=switch_vlan network.@switch_vlan[0].device='switch0' network.@switch_vlan[0].vlan='1' network.@switch_vlan[0].vid='3' network.@switch_vlan[0].ports='0 4 5t 6t' network.@switch_vlan[1]=switch_vlan network.@switch_vlan[1].device='switch0' network.@switch_vlan[1].vlan='2' network.@switch_vlan[1].ports='2 6t' network.@switch_vlan[1].vid='4' network.@switch_vlan[2]=switch_vlan network.@switch_vlan[2].device='switch0' network.@switch_vlan[2].vlan='3' network.@switch_vlan[2].ports='1 5t 6t' network.@switch_vlan[2].vid='5'