]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Force OFDM/HT/VHT to be disabled on channel 14
authorJouni Malinen <jouni@qca.qualcomm.com>
Tue, 25 Feb 2014 11:52:26 +0000 (13:52 +0200)
committerJouni Malinen <j@w1.fi>
Tue, 25 Feb 2014 11:55:10 +0000 (13:55 +0200)
The regulatory rules in Japan do not allow OFDM to be used on channel
14. While this was to some extend assumed to be enforced by drivers
(many of which apparently don't), it is safer to make hostapd enforce
this by disabling any OFDM-related functionality. This tries to avoid
backwards compatibility issues by downgrading the mode rather than
rejecting the invalid configuration.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
src/ap/hw_features.c

index 4e663795725950e95256e65714fc1b1c773098d4..7d36790c7a592f206f9eceb776851c3be975ade3 100644 (file)
@@ -943,6 +943,15 @@ int hostapd_select_hw_mode(struct hostapd_iface *iface)
        if (iface->num_hw_features < 1)
                return -1;
 
+       if ((iface->conf->hw_mode == HOSTAPD_MODE_IEEE80211G ||
+            iface->conf->ieee80211n || iface->conf->ieee80211ac) &&
+           iface->conf->channel == 14) {
+               wpa_printf(MSG_INFO, "Disable OFDM/HT/VHT on channel 14");
+               iface->conf->hw_mode = HOSTAPD_MODE_IEEE80211B;
+               iface->conf->ieee80211n = 0;
+               iface->conf->ieee80211ac = 0;
+       }
+
        iface->current_mode = NULL;
        for (i = 0; i < iface->num_hw_features; i++) {
                struct hostapd_hw_modes *mode = &iface->hw_features[i];