diff mbox series

[v3] AP: Allow downgrading to 20MHz based on OBSS results

Message ID 20200526002141.8535-1-alokad@codeaurora.org
State New
Headers show
Series [v3] AP: Allow downgrading to 20MHz based on OBSS results | expand

Commit Message

Aloka Dixit May 26, 2020, 12:21 a.m. UTC
When auto channel selection (ACS) is used for HE 40MHz in 2.4GHz
band, AP sets center frequency after finding a 40MHz channel and
then runs a scan for overlapping BSSes in neighboring channels.
Upon OBSS detection, AP should downgrade to 20MHz bandwidth.

Currently this is broken because allowed_ht40_channel_pair() returns
true in this case and the steps to reset center frequency are not
executed causing failure to bring interface up.

Fix the condition to allow rollback to 20MHz.

Signed-off-by: Aloka Dixit <alokad@codeaurora.org>
---
v3: Rebased to latest. Modified commit description.

 src/ap/hw_features.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)


base-commit: 88436baaac4172fda2abbe41449ff0bf8994ee9d
diff mbox series

Patch

diff --git a/src/ap/hw_features.c b/src/ap/hw_features.c
index f6e69030d767..1563a9ee34a4 100644
--- a/src/ap/hw_features.c
+++ b/src/ap/hw_features.c
@@ -313,7 +313,7 @@  static void ieee80211n_check_scan(struct hostapd_iface *iface)
 {
 	struct wpa_scan_results *scan_res;
 	int oper40;
-	int res;
+	int res = 0;
 
 	/* Check list of neighboring BSSes (from scan) to see whether 40 MHz is
 	 * allowed per IEEE Std 802.11-2012, 10.15.3.2 */
@@ -349,7 +349,8 @@  static void ieee80211n_check_scan(struct hostapd_iface *iface)
 		}
 	}
 
-	res = ieee80211n_allowed_ht40_channel_pair(iface);
+	if (iface->conf->secondary_channel)
+		res = ieee80211n_allowed_ht40_channel_pair(iface);
 	if (!res) {
 		iface->conf->secondary_channel = 0;
 		hostapd_set_oper_centr_freq_seg0_idx(iface->conf, 0);