summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau2025-08-04 10:08:27 +0000
committerFelix Fietkau2025-08-04 10:08:29 +0000
commit640c3984e31670be2aff1b60dd15c04a84bbbb7f (patch)
tree33223cad67420ec7b67a4a655a97c64399707697
parentde447b93e084862a105ecbddac1ea4d56309f888 (diff)
downloadopenwrt-640c3984e31670be2aff1b60dd15c04a84bbbb7f.tar.gz
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@nbd.name>
-rw-r--r--package/network/config/wifi-scripts/files/lib/netifd/wireless.uc38
1 files changed, 38 insertions, 0 deletions
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
@@ -186,6 +186,41 @@ function config_init(uci)
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: {
type: "wifi-iface"
},
});
@@ -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")