[openwrt/openwrt] wifi-scripts: add support for passing wifi-device settings via procd

LEDE Commits lede-commits at lists.infradead.org
Mon Aug 4 03:40:29 PDT 2025


nbd pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/640c3984e31670be2aff1b60dd15c04a84bbbb7f

commit 640c3984e31670be2aff1b60dd15c04a84bbbb7f
Author: Felix Fietkau <nbd at nbd.name>
AuthorDate: Mon Aug 4 12:08:27 2025 +0200

    wifi-scripts: add support for passing wifi-device settings via procd
    
    Allows either overriding individual device settings, or passing complete devices
    
    Signed-off-by: Felix Fietkau <nbd at nbd.name>
---
 .../wifi-scripts/files/lib/netifd/wireless.uc      | 38 ++++++++++++++++++++++
 1 file changed, 38 insertions(+)

diff --git a/package/network/config/wifi-scripts/files/lib/netifd/wireless.uc b/package/network/config/wifi-scripts/files/lib/netifd/wireless.uc
index a1ec40d79e..956ca54413 100644
--- a/package/network/config/wifi-scripts/files/lib/netifd/wireless.uc
+++ b/package/network/config/wifi-scripts/files/lib/netifd/wireless.uc
@@ -183,6 +183,41 @@ function config_init(uci)
 	}
 
 	let udata = ubus.call({
+		object: "service",
+		method: "get_data",
+		data: {
+			type: "wifi-device"
+		},
+	});
+	for (let svcname, svc in udata) {
+		for (let typename, data in svc) {
+			for (let radio, config in data) {
+				if (type(config) != "object")
+					continue;
+
+				let dev = devices[radio];
+				if (dev) {
+					dev.config = { ...dev.config, ...config };
+					continue;
+				}
+
+				let handler = wireless.handlers[config.type];
+				if (!handler)
+					continue;
+
+				dev = devices[radio] = {
+					name,
+					config,
+
+					vif: [],
+				};
+				handlers[radio] = handler;
+			}
+		}
+	}
+
+
+	udata = ubus.call({
 		object: "service",
 		method: "get_data",
 		data: {
@@ -193,6 +228,9 @@ function config_init(uci)
 	for (let svcname, svc in udata) {
 		for (let typename, data in svc) {
 			for (let radio, vifs in data) {
+				if (type(vifs) != "object")
+					continue;
+
 				for (let name, vif in vifs) {
 					let devs = vif.device;
 					if (type(devs) != "array")




More information about the lede-commits mailing list