From 3c8ead274c9daf901851269a6684b652a749a86e Mon Sep 17 00:00:00 2001 From: Aleksander Jan Bajkowski Date: Wed, 30 Oct 2024 00:12:52 +0100 Subject: [PATCH] luci-mod-status: channel_analysis: detect 160 MHz capable AP Implement a workaround to detect an 160MHz capable AP. It was introduced in the mac80211 in 2016 with 802.11ac Wave 2. APs capable of 160 MHz are detected by the shift of central frequencies. More detailed description in the link [1]. Every AP I have seen presents support for 160 MHz in this way. [1] https://github.com/torvalds/linux/commit/23665aaf9170ae6328cc4f68250c529a628af2ab Fixes: #6262 Signed-off-by: Aleksander Jan Bajkowski --- .../resources/view/status/channel_analysis.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/modules/luci-mod-status/htdocs/luci-static/resources/view/status/channel_analysis.js b/modules/luci-mod-status/htdocs/luci-static/resources/view/status/channel_analysis.js index fa6d26538c54..8f2d9d9e29c7 100644 --- a/modules/luci-mod-status/htdocs/luci-static/resources/view/status/channel_analysis.js +++ b/modules/luci-mod-status/htdocs/luci-static/resources/view/status/channel_analysis.js @@ -314,6 +314,22 @@ return view.extend({ if (res.vht_operation.channel_width == 80) { chan_width = 8; res.channel_width = "80 MHz"; + + /* If needed, adjust based on the newer interop workaround. */ + if (res.vht_operation.center_freq_2) { + var diff = Math.abs(res.vht_operation.center_freq_2 - + res.vht_operation.center_freq_1); + + if (diff == 8) { + chan_width = 16; + res.channel_width = "160 MHz"; + center_channels.push(res.vht_operation.center_freq_2); + } else if (diff > 8) { + chan_width = 8; + res.channel_width = "80+80 MHz"; + center_channels.push(res.vht_operation.center_freq_2); + } + } } else if (res.vht_operation.channel_width == 8080) { res.channel_width = "80+80 MHz"; chan_width = 8;