Do you mean the UCI of the working config? That would be the following:
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 'fd48:e132:af34::/48'
option packet_steering '1'
config device 'switch'
option name 'switch'
option type 'bridge'
option macaddr '4c:9e:ff:f2:b7:81'
list ports 'lan1'
list ports 'lan2'
list ports 'lan3'
list ports 'lan4'
list ports 'lan5'
list ports 'lan6'
list ports 'lan7'
config bridge-vlan 'lan_vlan'
option device 'switch'
option vlan '100'
list ports 'lan1'
list ports 'lan2'
list ports 'lan3'
list ports 'lan4'
list ports 'lan5'
list ports 'lan6'
list ports 'lan7'
config interface 'infra'
option proto 'dhcp'
option device 'switch.100'
config interface 'debug'
option device 'lan8'
option ipaddr '192.168.1.1'
option netmask '255.255.255.0'
option proto 'static'
config bridge-vlan
option device 'switch'
option vlan '178'
list ports 'lan1:t'
list ports 'lan2:t'
list ports 'lan3:t'
list ports 'lan4:t'
list ports 'lan5'
config bridge-vlan
option device 'switch'
option vlan '70'
list ports 'lan1:t'
list ports 'lan4:t'
list ports 'lan6'
config bridge-vlan
option device 'switch'
option vlan '80'
list ports 'lan1:t'
list ports 'lan7'
config interface 'user'
option proto 'dhcp'
option device 'switch.178'
config interface 'server'
option proto 'dhcp'
option device 'switch.70'
config interface 'jail'
option proto 'dhcp'
option device 'switch.80'
In the mean time I found one error on my side. I had a timezone-template assigned to the device which broke the vlan template (globals).
Now I can render the following device config preview:
package system
config system 'system'
option hostname 'switch-eg'
option timezone 'CET-1CEST,M3.5.0,M10.5.0/3'
option zonename 'Europe/Berlin'
config timeserver 'ntp'
option enable_server '0'
option enabled '1'
list server '
0.openwrt.pool.ntp.org'
list server '
1.openwrt.pool.ntp.org'
list server '
2.openwrt.pool.ntp.org'
list server '
3.openwrt.pool.ntp.org'
package network
config device 'device_br_lan'
option name 'br-lan'
list ports 'lan1'
list ports 'lan2'
list ports 'lan3'
list ports 'lan4'
list ports 'lan5'
list ports 'lan6'
list ports 'lan7'
option type 'bridge'
option vlan_filtering '1'
config bridge-vlan 'vlan_br_lan_178'
option device 'br-lan'
list ports 'lan1:t*'
list ports 'lan2:t'
list ports 'lan3:t'
list ports 'lan4:t'
option vlan '178'
config bridge-vlan 'vlan_br_lan_70'
option device 'br-lan'
list ports 'lan1:t'
list ports 'lan4:t'
list ports 'lan6:u*'
option vlan '70'
config bridge-vlan 'vlan_br_lan_80'
option device 'br-lan'
list ports 'lan1:t'
list ports 'lan4:t'
list ports 'lan7:u*'
option vlan '80'
config bridge-vlan 'vlan_br_lan_100'
option device 'br-lan'
list ports 'lan2:u*'
list ports 'lan3:u'
list ports 'lan4:u'
list ports 'lan5:u'
option vlan '100'
config interface 'vlan_br_lan_178'
option device 'br-lan.178'
option proto 'none'
config interface 'vlan_br_lan_70'
option device 'br-lan.70'
option proto 'none'
config interface 'vlan_br_lan_80'
option device 'br-lan.80'
option proto 'none'
config interface 'vlan_br_lan_100'
option device 'br-lan.100'
option proto 'none'
config interface 'br_lan'
option device 'br-lan'
option proto 'none'
config interface 'infra'
option device 'br-lan.100'
option ifname 'infra'
option proto 'dhcp'
config interface 'user'
option device 'br-lan.178'
option ifname 'user'
option proto 'dhcp'
config interface 'server'
option device 'br-lan.70'
option ifname 'server'
option proto 'dhcp'
config interface 'jail'
option device 'br-lan.80'
option ifname 'jail'
option proto 'dhcp'
config interface 'debug'
option device 'lan8'
option ipaddr '192.168.1.1'
option netmask '255.255.255.0'
option proto 'static'
package dhcp
config dnsmasq 'dnsmasq_1'
option authoritative '1'
option cachesize '1000'
option domain 'lan'
option domainneeded '1'
option ednspacket_max '1232'
option expandhosts '1'
option leasefile '/tmp/dhcp.leases'
option local '/lan/'
option localise_queries '1'
option localservice '1'
option readethers '1'
option rebind_localhost '1'
option rebind_protection '1'
option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
config dhcp 'debug'
option dhcpv4 'server'
option interface 'debug'
option leasetime '12h'
option limit '100'
option start '10'
# ---------- files ---------- #
# path: /etc/dropbear/authorized_keys
# mode: 0644
ssh-ed25519 AAA....
from this template for the vlans & dhcp:
{
Ā Ā "interfaces": [
Ā Ā Ā Ā {
Ā Ā Ā Ā Ā Ā "type": "bridge",
Ā Ā Ā Ā Ā Ā "bridge_members": [
Ā Ā Ā Ā Ā Ā Ā Ā "lan1",
Ā Ā Ā Ā Ā Ā Ā Ā "lan2",
Ā Ā Ā Ā Ā Ā Ā Ā "lan3",
Ā Ā Ā Ā Ā Ā Ā Ā "lan4",
Ā Ā Ā Ā Ā Ā Ā Ā "lan5",
Ā Ā Ā Ā Ā Ā Ā Ā "lan6",
Ā Ā Ā Ā Ā Ā Ā Ā "lan7"
Ā Ā Ā Ā Ā Ā ],
Ā Ā Ā Ā Ā Ā "name": "br-lan",
Ā Ā Ā Ā Ā Ā "vlan_filtering": [
Ā Ā Ā Ā Ā Ā Ā Ā {
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "vlan": 178,
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "ports": [
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā {
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "ifname": "lan1",
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "tagging": "t",
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "primary_vid": true
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā },
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā {
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "ifname": "lan2",
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "tagging": "t"
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā },
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā {
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "ifname": "lan3",
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "tagging": "t"
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā },
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā {
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "ifname": "lan4",
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "tagging": "t"
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā }
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā ]
Ā Ā Ā Ā Ā Ā Ā Ā },
Ā Ā Ā Ā Ā Ā Ā Ā {
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "vlan": 70,
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "ports": [
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā {
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "ifname": "lan1",
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "tagging": "t"
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā },
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā {
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "ifname": "lan4",
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "tagging": "t"
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā },
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā {
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "ifname": "lan6",
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "tagging": "u",
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "primary_vid": true
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā }
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā ]
Ā Ā Ā Ā Ā Ā Ā Ā },
Ā Ā Ā Ā Ā Ā Ā Ā {
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "vlan": 80,
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "ports": [
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā {
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "ifname": "lan1",
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "tagging": "t"
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā },
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā {
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "ifname": "lan4",
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "tagging": "t"
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā },
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā {
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "ifname": "lan7",
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "tagging": "u",
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "primary_vid": true
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā }
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā ]
Ā Ā Ā Ā Ā Ā Ā Ā },
Ā Ā Ā Ā Ā Ā Ā Ā {
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "vlan": 100,
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "ports": [
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā {
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "ifname": "lan2",
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "tagging": "u",
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā "primary_vid": true
BEfore the error was that the Port Tagging did not apply.
Now the new error is that the config does not deploy and gets roled back:
Error reported from the device:
Fri Jul 11 22:13:52 2025
daemon.info openwisp: The following uci configs
have been renamed: network.bridge_vlan1, network.bridge_vlan2,
network.bridge_vlan3
Fri Jul 11 22:13:53 2025 daemon.crit openwisp: Could not apply configuration, openwisp-update-config exit code was 2
Fri Jul 11 22:13:53 2025 daemon.crit openwisp: ERROR: invalid UCI configuration file: network
Fri Jul 11 22:13:59 2025
daemon.info openwisp: The most recent configuration backup was restored