diff mbox series

base-files: generate "device" UCI type section for bridge

Message ID 20210515191240.29676-1-zajec5@gmail.com
State Accepted
Delegated to: Rafał Miłecki
Headers show
Series base-files: generate "device" UCI type section for bridge | expand

Commit Message

Rafał Miłecki May 15, 2021, 7:12 p.m. UTC
From: Rafał Miłecki <rafal@milecki.pl>

This switches from the old way of defining bridges in an "interface" UCI
section type (that should be used for layer 3 only). From now a defualt
board switch will have its own "device" UCI section type. It's a new &
preferred way of defining L2 devices.

Before:

config interface 'lan'
        option type 'bridge'
        option ifname 'lan1 lan2 lan3 lan4'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'

After:

config device
        option name 'lan'
        option type 'bridge'
        list ports 'lan1'
        list ports 'lan2'
        list ports 'lan3'
        list ports 'lan4'

config interface 'lan'
        option ifname 'lan'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
---
 package/base-files/files/bin/config_generate | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/package/base-files/files/bin/config_generate b/package/base-files/files/bin/config_generate
index 56f6c4423b..0f6f280cf0 100755
--- a/package/base-files/files/bin/config_generate
+++ b/package/base-files/files/bin/config_generate
@@ -110,8 +110,14 @@  generate_network() {
 	}
 
 	[ -n "$ports" ] && {
-		type="bridge"
-		ifname="$ports"
+		uci -q batch <<-EOF
+			add network device
+			set network.@device[-1].name='$1'
+			set network.@device[-1].type='bridge'
+		EOF
+		for port in $ports; do uci add_list network.@device[-1].ports="$port"; done
+		ifname=$1
+		type=
 	}
 
 	[ -n "$bridge" ] && {