From c132212e7169d44003a1d898cb827f8181f3460b Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sat, 10 Feb 2018 00:06:48 +0100 Subject: [PATCH] gluon-core: 200-wireless: upgrade 11ac radios to VHT20 Patch originally authored by @oleeander. Fixes #424 --- .../luasrc/lib/gluon/upgrade/200-wireless | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/package/gluon-core/luasrc/lib/gluon/upgrade/200-wireless b/package/gluon-core/luasrc/lib/gluon/upgrade/200-wireless index d8b7e1ff..72abfde4 100755 --- a/package/gluon-core/luasrc/lib/gluon/upgrade/200-wireless +++ b/package/gluon-core/luasrc/lib/gluon/upgrade/200-wireless @@ -3,6 +3,7 @@ local util = require 'gluon.util' local site = require 'gluon.site' local sysconfig = require 'gluon.sysconfig' +local iwinfo = require 'iwinfo' local uci = require('simple-uci').cursor() @@ -20,6 +21,15 @@ local function get_channel(radio, config) return channel or config.channel() end +local function get_htmode(radio) + local phy = util.find_phy(radio) + if iwinfo.nl80211.hwmodelist(phy).ac then + return 'VHT20' + else + return 'HT20' + end +end + local function is_disabled(name) if uci:get('wireless', name) then return uci:get_bool('wireless', name, 'disabled') @@ -152,11 +162,12 @@ util.foreach_radio(uci, function(radio, index, config) end local channel = get_channel(radio, config) + local htmode = get_htmode(radio) uci:delete('wireless', radio_name, 'disabled') uci:set('wireless', radio_name, 'channel', channel) - uci:set('wireless', radio_name, 'htmode', 'HT20') + uci:set('wireless', radio_name, 'htmode', htmode) uci:set('wireless', radio_name, 'country', site.regdom()) uci:set_list('wireless', radio_name, 'supported_rates', config.supported_rates())