[PATCH] base-files: simplify setting device MAC

Rafał Miłecki zajec5 at gmail.com
Thu May 27 23:18:08 PDT 2021


From: Rafał Miłecki <rafal at milecki.pl>

1. Move code above interface generation
   It results in more logical order. Device gets its config section
   above interface section.
2. Drop the loop
   We have separated code handling bridges now so $device should be
   guaranteed to contain a single device name.
3. Drop section name
   It's not required by netifd or LuCI & it's not needed by this script
   as $device contains a single device name now.

Signed-off-by: Rafał Miłecki <rafal at milecki.pl>
---
 package/base-files/files/bin/config_generate | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)

diff --git a/package/base-files/files/bin/config_generate b/package/base-files/files/bin/config_generate
index d895090309..0dca5549e8 100755
--- a/package/base-files/files/bin/config_generate
+++ b/package/base-files/files/bin/config_generate
@@ -133,6 +133,14 @@ generate_network() {
 		type=""
 	}
 
+	if [ -n "$macaddr" ]; then
+		uci -q batch <<-EOF
+			add network device
+			set network. at device[-1].name='$device'
+			set network. at device[-1].macaddr='$macaddr'
+		EOF
+	fi
+
 	uci -q batch <<-EOF
 		delete network.$1
 		set network.$1='interface'
@@ -141,17 +149,6 @@ generate_network() {
 		set network.$1.proto='none'
 	EOF
 
-	if [ -n "$macaddr" ]; then
-		for name in $device; do
-			uci -q batch <<-EOF
-				delete network.$1_${name/./_}_dev
-				set network.$1_${name/./_}_dev='device'
-				set network.$1_${name/./_}_dev.name='$name'
-				set network.$1_${name/./_}_dev.macaddr='$macaddr'
-			EOF
-		done
-	fi
-
 	case "$protocol" in
 		static)
 			local ipad
-- 
2.26.2




More information about the openwrt-devel mailing list