summaryrefslogtreecommitdiffhomepage
path: root/modules/luci-mod-status/htdocs
diff options
context:
space:
mode:
authorAleksander Jan Bajkowski <olek2@wp.pl>2024-10-30 00:12:52 +0100
committerAleksander Jan Bajkowski <olek2@wp.pl>2024-11-07 23:19:59 +0100
commitaa79c3f30dfe05ad122dfae125023a9ddab0a951 (patch)
tree45b05dac1c1a6e7a819013425ebbefc2fe54a47b /modules/luci-mod-status/htdocs
parent1de73e16f525a5edc80954afda50db88b3cf96da (diff)
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 <olek2@wp.pl>
Diffstat (limited to 'modules/luci-mod-status/htdocs')
-rw-r--r--modules/luci-mod-status/htdocs/luci-static/resources/view/status/channel_analysis.js16
1 files changed, 16 insertions, 0 deletions
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 fa6d26538c..feb27baef7 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 802.11ac Wave 2 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;