diff options
author | Aleksander Jan Bajkowski <olek2@wp.pl> | 2024-10-30 00:12:52 +0100 |
---|---|---|
committer | Aleksander Jan Bajkowski <olek2@wp.pl> | 2024-11-07 23:19:59 +0100 |
commit | aa79c3f30dfe05ad122dfae125023a9ddab0a951 (patch) | |
tree | 45b05dac1c1a6e7a819013425ebbefc2fe54a47b /modules/luci-mod-status/htdocs/luci-static | |
parent | 1de73e16f525a5edc80954afda50db88b3cf96da (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/luci-static')
-rw-r--r-- | modules/luci-mod-status/htdocs/luci-static/resources/view/status/channel_analysis.js | 16 |
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; |