summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorValent Turkovic2026-01-03 08:50:16 +0000
committerHauke Mehrtens2026-01-04 15:54:48 +0000
commit7214acd7599a25863d6185a036d878b593b4b16c (patch)
treeceed6e0c82c55bdebb6b298201cc53b94e73434b
parentb73fd273b38cb0ad6ae856b2b7e4d192f4f11698 (diff)
downloadopenwrt-7214acd7599a25863d6185a036d878b593b4b16c.tar.gz
wifi-scripts: wdev.uc: fix mesh mode frequency handling
Mesh mode interface creation fails when the freq parameter is empty or undefined. Unlike adhoc mode which checks if freq exists before using it, mesh mode blindly constructs the iw command with freq parameter, resulting in invalid syntax like: iw dev mesh0 mesh join ssid freq NOHT This causes the mesh interface to be created without joining the mesh network, leaving it in a DOWN state with no channel assigned. Fix by adding freq validation check similar to adhoc mode. Tested on two routers in parallel as mesh peers: - Xiaomi AX3000T (MediaTek MT7981) - OpenWrt One (MediaTek MT7981) - OpenWrt 6.6.119, 802.11s mesh on 5GHz (Channel 36, HE80) Signed-off-by: Valent Turkovic <valent@meshpointone.com> Link: https://github.com/openwrt/openwrt/pull/21373 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
-rw-r--r--package/network/config/wifi-scripts/files/usr/share/hostap/wdev.uc7
1 files changed, 6 insertions, 1 deletions
diff --git a/package/network/config/wifi-scripts/files/usr/share/hostap/wdev.uc b/package/network/config/wifi-scripts/files/usr/share/hostap/wdev.uc
index 166e9403df..a4f9bf7b84 100644
--- a/package/network/config/wifi-scripts/files/usr/share/hostap/wdev.uc
+++ b/package/network/config/wifi-scripts/files/usr/share/hostap/wdev.uc
@@ -44,7 +44,12 @@ function iface_start(wdev)
push(cmd, key, wdev[key]);
system(cmd);
} else if (wdev.mode == "mesh") {
- let cmd = [ "iw", "dev", ifname, "mesh", "join", wdev.ssid, "freq", wdev.freq, htmode ];
+ let cmd = [ "iw", "dev", ifname, "mesh", "join", wdev.ssid ];
+ if (wdev.freq) {
+ push(cmd, "freq", wdev.freq);
+ if (htmode && htmode != "NOHT")
+ push(cmd, htmode);
+ }
for (let key in [ "basic-rates", "mcast-rate", "beacon-interval" ])
if (wdev[key])
push(cmd, key, wdev[key]);