From d027c7b118fe7bfea7b4ac70f16665a82a657e0e Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Tue, 3 Feb 2015 12:29:37 +0200 Subject: [PATCH] Fix 20/40 MHz co-ex report processing with obss_interval=0 If OBSS scan interval is not set, the AP must not schedule a timeout to restore 40 MHz operation immediately after having moved to a 20 MHz channel based on an unsolicited co-ex report. Fix this by scheduling the timeout only if obss_interval is non-zero. Since we do not currently support AP doing OBSS scans after the initial BSS setup, this means practically that 40-to-20 MHz transition is allowed, but 20-to-40 MHz is not with obss_interval=0. The latter gets enabled if obss_interval is set to a non-zero value so that associated STAs can take care of OBSS scanning. Signed-off-by: Jouni Malinen --- src/ap/ieee802_11_ht.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ap/ieee802_11_ht.c b/src/ap/ieee802_11_ht.c index 3f299f3ee..4b0653de9 100644 --- a/src/ap/ieee802_11_ht.c +++ b/src/ap/ieee802_11_ht.c @@ -292,7 +292,8 @@ void hostapd_2040_coex_action(struct hostapd_data *hapd, iface->conf->secondary_channel = 0; ieee802_11_set_beacons(iface); } - if (!iface->num_sta_ht40_intolerant) { + if (!iface->num_sta_ht40_intolerant && + iface->conf->obss_interval) { unsigned int delay_time; delay_time = OVERLAPPING_BSS_TRANS_DELAY_FACTOR * iface->conf->obss_interval;