[openwrt/openwrt] base-files: generate "device" UCI type section for bridge

LEDE Commits lede-commits at lists.infradead.org
Thu May 27 03:55:15 PDT 2021


rmilecki pushed a commit to openwrt/openwrt.git, branch openwrt-21.02:
https://git.openwrt.org/892fc7caa9eee9f5ef9e172677f871c02841bae8

commit 892fc7caa9eee9f5ef9e172677f871c02841bae8
Author: Rafał Miłecki <rafal at milecki.pl>
AuthorDate: Sat May 15 21:06:27 2021 +0200

    base-files: generate "device" UCI type section for bridge
    
    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 at milecki.pl>
    (cherry picked from commit 43fc720657c6e3b30c6ed89d7227ee6e646c158b)
---
 package/base-files/files/bin/config_generate | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

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. at device[-1].name='$1'
+			set network. at device[-1].type='bridge'
+		EOF
+		for port in $ports; do uci add_list network. at device[-1].ports="$port"; done
+		ifname=$1
+		type=
 	}
 
 	[ -n "$bridge" ] && {



More information about the lede-commits mailing list