summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlain Lamar <alain_lamar@yahoo.de>2020-04-11 18:36:06 +0200
committerAlain Lamar <alain_lamar@yahoo.de>2020-04-11 18:36:06 +0200
commit3f93be7ffa3361110fdc2ae839c1a197cc2d6ce2 (patch)
treec9b1245da3156355a7a866ab57151058335cd513
parentc27f13ab459ef5116eeac417d256abfabf2690c2 (diff)
downloadvyos-1x-3f93be7ffa3361110fdc2ae839c1a197cc2d6ce2.tar.gz
vyos-1x-3f93be7ffa3361110fdc2ae839c1a197cc2d6ce2.zip
wireless: T2213: bugfix: Use ieee80211n and ieee80211ac if require_vht not set
Use WiFi modes ieee80211ac and ieee80211n if VHT capabilities are optional. ieee80211n = 1 ieee80211ac = 1 Use only ieee80211ac if VHT capabilities are required (ieee80211n=0). ieee80211ac = 1 ieee80211n = 0 require_vht = 1 In order to make this decision, the desired WiFi operation mode needs to be known. Therefore, we must require users to set the WiFi mode. mode = (a|b|g|n|ac)
-rw-r--r--data/templates/wifi/hostapd.conf.tmpl7
-rwxr-xr-xsrc/conf_mode/interfaces-wireless.py3
2 files changed, 9 insertions, 1 deletions
diff --git a/data/templates/wifi/hostapd.conf.tmpl b/data/templates/wifi/hostapd.conf.tmpl
index 031fb6c90..e2fb9ca8f 100644
--- a/data/templates/wifi/hostapd.conf.tmpl
+++ b/data/templates/wifi/hostapd.conf.tmpl
@@ -73,7 +73,6 @@ channel={{ channel }}
# offloaded ACS is used.
{% if 'n' in mode -%}
hw_mode=g
-ieee80211n=1
{% elif 'ac' in mode -%}
hw_mode=a
ieee80211h=1
@@ -421,6 +420,12 @@ vht_capab=
ieee80211n=0
# Require stations to support VHT PHY (reject association if they do not)
require_vht=1
+{% else -%}
+{% if 'n' in mode or 'ac' in mode -%}
+ieee80211n=1
+{% else -%}
+ieee80211n=0
+{%- endif %}
{% endif %}
{% if cap_vht_center_freq_1 -%}
diff --git a/src/conf_mode/interfaces-wireless.py b/src/conf_mode/interfaces-wireless.py
index 07c4537b4..98bb9bafc 100755
--- a/src/conf_mode/interfaces-wireless.py
+++ b/src/conf_mode/interfaces-wireless.py
@@ -570,6 +570,9 @@ def verify(wifi):
if not wifi['phy']:
raise ConfigError('You must specify physical-device')
+ if not wifi['mode']:
+ raise ConfigError('You must specify a WiFi mode')
+
if wifi['op_mode'] == 'ap':
c = Config()
if not c.exists('system wifi-regulatory-domain'):