summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau2025-11-13 11:52:47 +0000
committerFelix Fietkau2025-11-13 11:56:39 +0000
commit75791ea634beb422dae5bef6bfadc7a15e9993c6 (patch)
tree506585bb03e4acbd31360a941271f597822fd589
parent2fb3cbda58dba4ad4b5f1be9f58bba409338c616 (diff)
downloadopenwrt-75791ea634beb422dae5bef6bfadc7a15e9993c6.tar.gz
wifi-scripts: fix MLO AP setup with disabled radios
When an MLO interface specifies multiple radios and the first radio is disabled, the MLO configuration was never created because the code only attempted to create it when processing the first device in the list (which gets skipped if disabled). Fix by creating the MLO config for the first enabled device instead of only when processing dev_names[0]. Reported-by: Michael-cy Lee (李峻宇) <Michael-cy.Lee@mediatek.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
-rw-r--r--package/network/config/wifi-scripts/files/lib/netifd/wireless.uc4
1 files changed, 3 insertions, 1 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 5be01aaa2a..5f64104c8b 100644
--- a/package/network/config/wifi-scripts/files/lib/netifd/wireless.uc
+++ b/package/network/config/wifi-scripts/files/lib/netifd/wireless.uc
@@ -135,6 +135,7 @@ function config_init(uci)
radios = filter(radios, (v) => v != null);
let radio_config = map(dev_names, (v) => devices[v].config);
let ifname;
+ let mlo_created = false;
for (let dev_name in dev_names) {
let dev = devices[dev_name];
@@ -148,7 +149,7 @@ function config_init(uci)
let config = parse_attribute_list(data, handler.iface);
config.radios = radios;
- if (mlo_vif && dev_name == dev_names[0]) {
+ if (mlo_vif && !mlo_created) {
let mlo_config = { ...config };
if (config.wds)
@@ -162,6 +163,7 @@ function config_init(uci)
}
mlo_vifs[ifname] = mlo_config;
+ mlo_created = true;
}
if (ifname)