We're working on it in https://github.com/openwisp/netjsonconfig/pull/363.

On Tuesday, July 15, 2025 at 9:54:15 AM UTC-3 f.capoano wrote:

> Merging won't work, but you could try using the custom syntax:
>
> https://netjsonconfig.openwisp.org/en/stable/backends/openwrt.html#all-the-other-settings
>
> That's another possibility. We'll be working to improve this in a couple 
> of weeks, I'll get in touch when we have news.
>
> Best regards
> *Federico Capoano*
> OpenWISP OÜ
> Kotkapoja tn 2a-10, 10615, Harju maakond, Tallinn, Estonia
> VAT: EE101989729
> +372 59361689 <+372%205936%201689>
> *openwisp.io* <http://openwisp.io>
>
> On Tue, 15 Jul 2025 at 09:47, 'Marten Lucas' via OpenWISP <
> [email protected]> wrote:
>
>> I just tried deploying via files. This works.
>>
>> But do I loose the modularity? 
>> If I assign multiple templates with /etc/config/network files to the 
>> device will they merge or override? 
>> Can I combine file and netjsonconfig - e.g. I have a untagged debug port 
>> that was well deployed with the template. Can I keep this template and 
>> deploy the vlans with file? Will it merge?
>>
>> thxs for the help
>> f.capoano schrieb am Donnerstag, 10. Juli 2025 um 16:44:29 UTC+2:
>>
>>> I tried parsing the configuration file generated via UCI that you have 
>>> provided, but the library can't parse it, which is not a good sign.
>>>
>>> Can you share the UCI configuration in /etc/config/network?
>>>
>>> The Bridge VLAN fitlering implementation needs to be improved, I opened 
>>> an issue for this:
>>> https://github.com/openwisp/netjsonconfig/issues/356
>>> If you can share the UCI code I'll add it to the issue (or you can add 
>>> it yourself there).
>>>
>>> In the meantime as a workaround, could you define the configuration you 
>>> need by supplying files?
>>> It's a bit uncomfortable but it will help you get around this issue, you 
>>> can also use variables freely in files which is nice.
>>>
>>> Best regards
>>> *Federico Capoano*
>>> OpenWISP OÜ
>>> Kotkapoja tn 2a-10, 10615, Harju maakond, Tallinn, Estonia
>>> VAT: EE101989729
>>> +372 59361689 <+372%205936%201689>
>>> *openwisp.io* <http://openwisp.io>
>>>
>>>
>>> On Thu, 10 Jul 2025 at 10:49, 'Marten Lucas' via OpenWISP <
>>> [email protected]> wrote:
>>>
>>>> Hi,
>>>> first of all great project. I am new to openwrt but still managed to 
>>>> get openwisp running with several devices. But now I am struggeling with a 
>>>> VLAN setup for a ZyXEL GS1900-8
>>>> v2 (with DSA).
>>>>
>>>> The switch is connected via a trunked port to the mainrouter which is 
>>>> the dhcp server.
>>>> The target config is this 4 VLANs with different ports that get the IPs 
>>>> from the mainrouter.
>>>>
>>>> This is the template I created:
>>>>
>>>> {
>>>>   "interfaces": [
>>>>     {
>>>>       "type": "bridge",
>>>>       "bridge_members": [
>>>>         "lan1",
>>>>         "lan2",
>>>>         "lan3",
>>>>         "lan4",
>>>>         "lan5",
>>>>         "lan6",
>>>>         "lan7"
>>>>       ],
>>>>       "name": "br-lan",
>>>>       "vlan_filtering": [
>>>>         {
>>>>           "vlan": 178,
>>>>           "ports": [
>>>>             {
>>>>               "ifname": "lan1",
>>>>               "tagging": "t"
>>>>             },
>>>>             {
>>>>               "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"
>>>>             }
>>>>           ]
>>>>         },
>>>>         {
>>>>           "vlan": 80,
>>>>           "ports": [
>>>>             {
>>>>               "ifname": "lan1",
>>>>               "tagging": "t"
>>>>             },
>>>>             {
>>>>               "ifname": "lan4",
>>>>               "tagging": "t"
>>>>             },
>>>>             {
>>>>               "ifname": "lan7",
>>>>               "tagging": "u"
>>>>             }
>>>>           ]
>>>>         },
>>>>         {
>>>>           "vlan": 100,
>>>>           "ports": [
>>>>             {
>>>>               "ifname": "lan1",
>>>>               "tagging": "u"
>>>>             },
>>>>             {
>>>>               "ifname": "lan2",
>>>>               "tagging": "u"
>>>>             },
>>>>             {
>>>>               "ifname": "lan3",
>>>>               "tagging": "u"
>>>>             },
>>>>             {
>>>>               "ifname": "lan4",
>>>>               "tagging": "u"
>>>>             },
>>>>             {
>>>>               "ifname": "lan5",
>>>>               "tagging": "u"
>>>>             }
>>>>           ]
>>>>         }
>>>>       ]
>>>>     },
>>>>     {
>>>>       "type": "other",
>>>>       "name": "infra",
>>>>       "device": "br-lan.100",
>>>>       "proto": "dhcp",
>>>>       "ifname": "infra"
>>>>     },
>>>>     {
>>>>       "type": "other",
>>>>       "name": "user",
>>>>       "device": "br-lan.178",
>>>>       "proto": "dhcp",
>>>>       "ifname": "user"
>>>>     },
>>>>     {
>>>>       "type": "other",
>>>>       "name": "server",
>>>>       "device": "br-lan.70",
>>>>       "proto": "dhcp",
>>>>       "ifname": "server"
>>>>     },
>>>>     {
>>>>       "type": "other",
>>>>       "name": "jail",
>>>>       "device": "br-lan.80",
>>>>       "proto": "dhcp",
>>>>       "ifname": "jail"
>>>>     }
>>>>   ]
>>>> }
>>>>
>>>> After I applied it to the switch without error, the /etc/config/network 
>>>> on the device is:
>>>> config interface 'infra'
>>>> option proto 'dhcp'
>>>> option device 'br-lan.100'
>>>> option ifname 'infra'
>>>>
>>>> config interface 'br_lan'
>>>> option device 'br-lan'
>>>> option proto 'none'
>>>>
>>>> config interface 'vlan_br_lan_70'
>>>> option device 'br-lan.70'
>>>> option proto 'none'
>>>>
>>>> config interface 'vlan_br_lan_178'
>>>> option device 'br-lan.178'
>>>> option proto 'none'
>>>>
>>>> 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'
>>>>
>>>> config interface 'vlan_br_lan_100'
>>>> option device 'br-lan.100'
>>>> option proto 'none'
>>>>
>>>> config interface 'user'
>>>> option device 'br-lan.178'
>>>> option ifname 'user'
>>>> option proto 'dhcp'
>>>>
>>>> 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'
>>>>
>>>> config interface 'vlan_br_lan_80'
>>>> option device 'br-lan.80'
>>>> option proto 'none'
>>>>
>>>> config interface 'server'
>>>> option device 'br-lan.70'
>>>> option ifname 'server'
>>>> option proto 'dhcp'
>>>>
>>>> config bridge-vlan
>>>> option device 'br-lan'
>>>> option vlan '100'
>>>> list ports 'lan1'
>>>>
>>>> You see the port tagging is not applied.
>>>>
>>>> When I manually setup the config with VLANs in luci it works and I get 
>>>> the following config:
>>>>
>>>> config interface 'infra'
>>>>     option proto 'dhcp'
>>>> option device 'br-lan.100'
>>>> option ifname 'infra'
>>>>
>>>> config interface 'br_lan'
>>>> option device 'br-lan'
>>>> option proto 'none'
>>>>
>>>> config interface 'vlan_br_lan_70'
>>>> option device 'br-lan.70'
>>>> option proto 'none'
>>>>
>>>> config interface 'vlan_br_lan_178'
>>>> option device 'br-lan.178'
>>>> option proto 'none'
>>>>
>>>> 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'
>>>>
>>>> config interface 'vlan_br_lan_100'
>>>> option device 'br-lan.100'
>>>> option proto 'none'
>>>>
>>>> config interface 'user'
>>>> option device 'br-lan.178'
>>>> option ifname 'user'
>>>> option proto 'dhcp'
>>>>
>>>> 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'
>>>>
>>>> config interface 'vlan_br_lan_80'
>>>> option device 'br-lan.80'
>>>> option proto 'none'
>>>>
>>>> config interface 'server'
>>>> option device 'br-lan.70'
>>>> option ifname 'server'
>>>> option proto 'dhcp'
>>>>
>>>> config bridge-vlan
>>>> option device 'br-lan'
>>>> option vlan '100'
>>>> list ports 'lan1'
>>>> list ports 'lan2'
>>>> list ports 'lan3'
>>>> list ports 'lan4'
>>>>
>>>> config bridge-vlan
>>>> option device 'br-lan'
>>>> 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 'br-lan'
>>>> option vlan '80'
>>>> list ports 'lan1:t'
>>>> list ports 'lan4:t'
>>>> list ports 'lan6'
>>>>
>>>> config bridge-vlan
>>>> option device 'br-lan'
>>>> option vlan '70'
>>>> list ports 'lan1:t'
>>>> list ports 'lan4:t'
>>>> list ports 'lan7'
>>>>
>>>> I also tried the programmable switch but it not deploy without error. 
>>>> The template was:
>>>> {
>>>>   "interfaces": [
>>>>     {
>>>>       "type": "bridge",
>>>>       "name": "br-lan",
>>>>       "bridge_members": [ 
>>>> "lan1","lan2","lan3","lan4","lan5","lan6","lan7" ]
>>>>     },
>>>>     { "type":"other", "name":"infra",   "device":"br-lan.100", 
>>>> "proto":"dhcp", "ifname":"infra" },
>>>>     { "type":"other", "name":"user",    "device":"br-lan.178", 
>>>> "proto":"dhcp", "ifname":"user" },
>>>>     { "type":"other", "name":"server",  "device":"br-lan.70", 
>>>>  "proto":"dhcp", "ifname":"server" },
>>>>     { "type":"other", "name":"jail",    "device":"br-lan.80", 
>>>>  "proto":"dhcp", "ifname":"jail" }
>>>>   ],
>>>>   "switch": [
>>>>     {
>>>>       "name":       "br-lan",
>>>>       "reset":      true,
>>>>       "enable_vlan":true,
>>>>       "vlan": [
>>>>         { "device":"br-lan", "vlan":178, "ports":"lan1t lan2t lan3t 
>>>> lan4t" },
>>>>         { "device":"br-lan", "vlan":70,  "ports":"lan1t lan4t lan6u" },
>>>>         { "device":"br-lan", "vlan":80,  "ports":"lan1t lan4t lan7u" },
>>>>         { "device":"br-lan", "vlan":100, "ports":"lan1u lan2u lan3u 
>>>> lan4u lan5u" }
>>>>       ]
>>>>     }
>>>>   ]
>>>> }
>>>>
>>>> I also saw the  https://github.com/openwisp/netjsonconfig/pull/261 and 
>>>> assumed it is now merged.
>>>>
>>>> Can you please help me to either correct the template which correctly 
>>>> sets up the VLAN tagging or help me refine my requirements for a easier 
>>>> implementation.
>>>>
>>>> Thank you so much.
>>>>
>>>>
>>>> DISCLAIMER: The Templates were generated with the help of AI
>>>>
>>>> -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "OpenWISP" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to [email protected].
>>>> To view this discussion, visit 
>>>> https://groups.google.com/d/msgid/openwisp/7d00ca6c-b098-4cbb-ad52-682a366e6465n%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/openwisp/7d00ca6c-b098-4cbb-ad52-682a366e6465n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "OpenWISP" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected].
>>
> To view this discussion, visit 
>> https://groups.google.com/d/msgid/openwisp/c0a1a744-8b93-4436-b023-6b20d5301b9fn%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/openwisp/c0a1a744-8b93-4436-b023-6b20d5301b9fn%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"OpenWISP" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion, visit 
https://groups.google.com/d/msgid/openwisp/efdcc4b3-d15b-4a15-be43-569fcba8f298n%40googlegroups.com.

Reply via email to