From 2d1ba9efafaec61e17229f3f9edeedf281a747ed Mon Sep 17 00:00:00 2001 From: Aditya Kumar Singh Date: Wed, 24 Jan 2024 18:24:08 +0530 Subject: [PATCH] hostapd: fix bandwidth downgrade in DFS case Currently when DFS interference is detected and no available channel definition is found, it tries to reduce the bandwidth one by one to find the next available chandef. During 320 MHz operation, as per the enum definition, next bandwidth is not 160 MHz which leads to selecting some wrong bandwidth config and hence bandwidth is reduced drastically and at times it leads to wrong chandef calculation. Fix this issue by selecting 160 MHz when current bandwidth is 320 MHz. From 160 MHz, all other bandwidth are continous. Signed-off-by: Aditya Kumar Singh --- src/ap/dfs.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/ap/dfs.c b/src/ap/dfs.c index 74fc6ec936db..64fd08dd68ac 100644 --- a/src/ap/dfs.c +++ b/src/ap/dfs.c @@ -1527,7 +1527,10 @@ dfs_downgrade_bandwidth(struct hostapd_iface *iface, int *secondary_channel, continue; } *channel_type = DFS_AVAILABLE; - hostapd_set_oper_chwidth(iface->conf, oper_chwidth - 1); + hostapd_set_oper_chwidth(iface->conf, + oper_chwidth == CONF_OPER_CHWIDTH_320MHZ ? + CONF_OPER_CHWIDTH_160MHZ : + oper_chwidth - 1); } } -- 2.34.1