I think I'm going crazy. Granted my knowledge about VLANs is now more than a decade old I think I should still be able to understand basic concepts, even if I didn't have to configure it OpenWRT for years now.
Device is an ASUS RT-AX53U.
cat /etc/config/network
config interface 'loopback'
option device 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config globals 'globals'
option ula_prefix 'fdb3::…/48'
option packet_steering '1'
config device
option name 'br-lan'
option type 'bridge'
list ports 'lan1'
list ports 'lan2'
list ports 'lan3'
config interface 'lan'
option device 'br-lan'
option proto 'static'
option ipaddr '10.0.0.1'
option netmask '255.255.255.0'
option ip6assign '60'
list dns '10.0.0.2'
config interface 'wan'
option device 'wan'
option proto 'dhcp'
option peerdns '0'
list dns '10.0.0.2'
config interface 'wan6'
option device 'wan'
option proto 'dhcpv6'
option reqaddress 'try'
option reqprefix 'auto'
option peerdns '0'
list dns 'fdb3::…::2'
Then changes LUCI would make are very simple forward:
uci add network bridge-vlan # =cfg07a1b0
uci set network.@bridge-vlan[-1].device='br-lan'
uci set network.@bridge-vlan[-1].vlan='10'
uci add_list network.@bridge-vlan[-1].ports='lan1:u*'
uci add_list network.@bridge-vlan[-1].ports='lan2:u*'
uci add_list network.@bridge-vlan[-1].ports='lan3:u*'
uci set network.lan.device='br-lan.10'
Isn't that the same config, just with different naming?
And in addition, wouldn't it require all other configs referencing "lan" to now point to "vlan10"?
Truncating your example for VLAN 10 only, the commands I posted and the changes LUCI makes should result in the following config:
config device
option type 'bridge'
option name 'br-lan'
list ports 'lan1'
list ports 'lan2'
list ports 'lan3'
config interface 'lan'
option device 'br-lan.10'
option proto 'static'
option ipaddr '10.0.0.1'
option netmask '255.255.255.0'
option ip6assign '60'
list dns '10.0.0.2'
config bridge-vlan
option device 'br-lan'
option vlan '10'
list ports 'lan1:u*'
list ports 'lan2:u*'
list ports 'lan3:u*'
This would be your exact setup, except for the names. And that's also the config that doesn't work and results in a revert.