diff mbox series

hostapd: respect obss_interval on 40MHz intolerant disconnect

Message ID 20240429101405.99454-1-nico.escande@gmail.com
State New
Headers show
Series hostapd: respect obss_interval on 40MHz intolerant disconnect | expand

Commit Message

Nicolas Escande April 29, 2024, 10:13 a.m. UTC
When an AP is configured for HT operation on 40MHz but has overlapping BSS on
the secondary channel, it will fallback to 20MHz only. Also a 40MHz AP will
downgrade to 20MHz while at least 1 40MHz intolerant STA is connected.

However in the current code, on such an AP, we do not check the obss_interval
parameter on the last 40MHz intolerant STA disconnect & start a timer that will
unconditionnaly bring the AP to 40MHz operation even if it had overlapping BSS.

Signed-off-by: Nicolas Escande <nico.escande@gmail.com>
---
 src/ap/ieee802_11_ht.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Nicolas Escande Oct. 16, 2024, 1:46 p.m. UTC | #1
On Mon Apr 29, 2024 at 12:13 PM CEST, Nicolas Escande wrote:
> When an AP is configured for HT operation on 40MHz but has overlapping BSS on
> the secondary channel, it will fallback to 20MHz only. Also a 40MHz AP will
> downgrade to 20MHz while at least 1 40MHz intolerant STA is connected.
>
> However in the current code, on such an AP, we do not check the obss_interval
> parameter on the last 40MHz intolerant STA disconnect & start a timer that will
> unconditionnaly bring the AP to 40MHz operation even if it had overlapping BSS.
>
[...]

Hi Jouni,

I just realized this one never got any response. I guess it just slipped through
the cracks but is there something amiss with it ? Do I need to resend it maybe ?

Thanks,
diff mbox series

Patch

diff --git a/src/ap/ieee802_11_ht.c b/src/ap/ieee802_11_ht.c
index f90f1254e..af3ff9110 100644
--- a/src/ap/ieee802_11_ht.c
+++ b/src/ap/ieee802_11_ht.c
@@ -417,6 +417,7 @@  void ht40_intolerant_remove(struct hostapd_iface *iface, struct sta_info *sta)
 	iface->num_sta_ht40_intolerant--;
 
 	if (iface->num_sta_ht40_intolerant == 0 &&
+	    iface->conf->obss_interval &&
 	    (iface->conf->ht_capab & HT_CAP_INFO_SUPP_CHANNEL_WIDTH_SET) &&
 	    (iface->drv_flags & WPA_DRIVER_FLAGS_HT_2040_COEX)) {
 		unsigned int delay_time = OVERLAPPING_BSS_TRANS_DELAY_FACTOR *