diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2016-05-20 07:13:32 -0600 |
|---|---|---|
| committer | Linux Build Service Account <lnxbuild@localhost> | 2016-05-20 07:13:32 -0600 |
| commit | d660a0127fc500e2a9db4177e362ae9f4386e3c4 (patch) | |
| tree | 0d6511244ef16e4c9c1fe7042dc249c1166e6dcf | |
| parent | a8325dbdadd0095eeb2783d66daae3be1b1e5443 (diff) | |
| parent | 62cd79d473cda37895c02c7a003bcf7c5ea03603 (diff) | |
| download | android_external_wpa_supplicant_8-d660a0127fc500e2a9db4177e362ae9f4386e3c4.tar.gz android_external_wpa_supplicant_8-d660a0127fc500e2a9db4177e362ae9f4386e3c4.tar.bz2 android_external_wpa_supplicant_8-d660a0127fc500e2a9db4177e362ae9f4386e3c4.zip | |
Promotion of wlan-service.lnx.1.0-00049.
CRs Change ID Subject
--------------------------------------------------------------------------------------------------------------
681619 Id460ff592648f2afb4ffec373badb7f6004b67f3 hostap: Provide option to disable HT20/40 COEX
Change-Id: I54217adae988a2c0a860e4e0d002deeacfd67e22
CRs-Fixed: 681619
| -rw-r--r-- | hostapd/config_file.c | 8 | ||||
| -rw-r--r-- | hostapd/hostapd.conf | 8 | ||||
| -rw-r--r-- | src/ap/ap_config.h | 1 | ||||
| -rw-r--r-- | src/ap/hw_features.c | 3 | ||||
| -rw-r--r-- | src/ap/ieee802_11_ht.c | 3 |
5 files changed, 23 insertions, 0 deletions
diff --git a/hostapd/config_file.c b/hostapd/config_file.c index 795fc370..5540059d 100644 --- a/hostapd/config_file.c +++ b/hostapd/config_file.c @@ -2793,6 +2793,14 @@ static int hostapd_config_fill(struct hostapd_config *conf, conf->require_ht = atoi(pos); } else if (os_strcmp(buf, "obss_interval") == 0) { conf->obss_interval = atoi(pos); + } else if (os_strcmp(buf, "ht2040_coex_disable") == 0) { + int val = atoi(pos); + if (val == 1 || val == 0) { + conf->ht2040_coex_disable = val; + } else { + wpa_printf(MSG_ERROR, "ht2040_coex_disable: " + "invalid value: %d", val); + } #endif /* CONFIG_IEEE80211N */ #ifdef CONFIG_IEEE80211AC } else if (os_strcmp(buf, "ieee80211ac") == 0) { diff --git a/hostapd/hostapd.conf b/hostapd/hostapd.conf index 6a4964e6..c9c4d7e3 100644 --- a/hostapd/hostapd.conf +++ b/hostapd/hostapd.conf @@ -517,6 +517,14 @@ wmm_ac_vo_acm=0 # no co-existence issues with neighboring devices are found. #obss_interval=0 +# ht2040_coex_disable: Whether to disable HT20/40 CoEx or not. If this +# entry is removed, it is same as the value set to 0, i.e., HT20/40 +# CoEx is enabled. +# 0 = enable (default) +# 1 = disable +# Note: HT20/40 CoEx is mandatory for any device supporting HT in the standard. +#ht2040_coex_disable=0 + ##### IEEE 802.11ac related configuration ##################################### # ieee80211ac: Whether IEEE 802.11ac (VHT) is enabled diff --git a/src/ap/ap_config.h b/src/ap/ap_config.h index 6cf44c7e..71fc06e4 100644 --- a/src/ap/ap_config.h +++ b/src/ap/ap_config.h @@ -623,6 +623,7 @@ struct hostapd_config { int secondary_channel; int require_ht; int obss_interval; + int ht2040_coex_disable; u32 vht_capab; int ieee80211ac; int require_vht; diff --git a/src/ap/hw_features.c b/src/ap/hw_features.c index 28324a8e..fcda6ab1 100644 --- a/src/ap/hw_features.c +++ b/src/ap/hw_features.c @@ -466,6 +466,9 @@ static int ieee80211n_check_40mhz(struct hostapd_iface *iface) struct wpa_driver_scan_params params; int ret; + if (iface->conf->ht2040_coex_disable == 1) + return 0; + if (!iface->conf->secondary_channel) return 0; /* HT40 not used */ diff --git a/src/ap/ieee802_11_ht.c b/src/ap/ieee802_11_ht.c index 11fde2a2..764e77b8 100644 --- a/src/ap/ieee802_11_ht.c +++ b/src/ap/ieee802_11_ht.c @@ -218,6 +218,9 @@ void hostapd_2040_coex_action(struct hostapd_data *hapd, HOSTAPD_LEVEL_DEBUG, "hostapd_public_action - action=%d", mgmt->u.action.u.public_action.action); + if (iface->conf->ht2040_coex_disable == 1) + return; + if (!(iface->conf->ht_capab & HT_CAP_INFO_SUPP_CHANNEL_WIDTH_SET)) return; |
