mirror of
https://github.com/Telecominfraproject/wlan-ap.git
synced 2025-10-29 09:32:34 +00:00
hostapd: improve multi radio ACS
Fixes: WIFI-14402 Signed-off-by: John Crispin <john@phrozen.org>
This commit is contained in:
20
feeds/qca/hostapd/patches/zzz-110-fix_mld_warnings.patch
Normal file
20
feeds/qca/hostapd/patches/zzz-110-fix_mld_warnings.patch
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
--- a/src/ap/ieee802_11.c
|
||||||
|
+++ b/src/ap/ieee802_11.c
|
||||||
|
@@ -3103,7 +3103,7 @@ static void handle_auth(struct hostapd_d
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif /* CONFIG_SAE */
|
||||||
|
- {
|
||||||
|
+ if (hapd->mld) {
|
||||||
|
struct hostapd_ft_over_ds_ml_sta_entry *entry;
|
||||||
|
|
||||||
|
entry = ap_get_ft_ds_ml_sta(hapd, sa);
|
||||||
|
@@ -5589,7 +5589,7 @@ static void handle_assoc(struct hostapd_
|
||||||
|
if (sta && reassoc)
|
||||||
|
memcpy(sta->origin_ap, mgmt->u.reassoc_req.current_ap, 6);
|
||||||
|
#ifdef CONFIG_IEEE80211R_AP
|
||||||
|
- if (!sta) {
|
||||||
|
+ if (!sta && hapd->mld) {
|
||||||
|
wpa_printf(MSG_DEBUG,
|
||||||
|
"FT over DS: Check for STA entry with ML address");
|
||||||
|
sta = get_sta_from_ft_ds_list(hapd, mgmt, len, reassoc);
|
||||||
34
feeds/qca/hostapd/patches/zzz-120-fix_multi_radio_acs.patch
Normal file
34
feeds/qca/hostapd/patches/zzz-120-fix_multi_radio_acs.patch
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
--- a/src/drivers/driver_nl80211_scan.c
|
||||||
|
+++ b/src/drivers/driver_nl80211_scan.c
|
||||||
|
@@ -423,6 +423,9 @@ int wpa_driver_nl80211_scan(struct i802_
|
||||||
|
goto fail;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (ret == -EBUSY)
|
||||||
|
+ goto fail;
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* mac80211 does not allow scan requests in AP mode, so
|
||||||
|
* try to do this in station mode.
|
||||||
|
--- a/src/ap/acs.h
|
||||||
|
+++ b/src/ap/acs.h
|
||||||
|
@@ -15,7 +15,7 @@
|
||||||
|
enum hostapd_chan_status acs_init(struct hostapd_iface *iface);
|
||||||
|
void acs_cleanup(struct hostapd_iface *iface);
|
||||||
|
|
||||||
|
-#define ACS_SCAN_RETRY_MAX_COUNT 15
|
||||||
|
+#define ACS_SCAN_RETRY_MAX_COUNT 50
|
||||||
|
#define ACS_SCAN_RETRY_INTERVAL 5
|
||||||
|
|
||||||
|
#else /* CONFIG_ACS */
|
||||||
|
--- a/src/ap/acs.c
|
||||||
|
+++ b/src/ap/acs.c
|
||||||
|
@@ -1496,7 +1496,7 @@ static int acs_request_scan(struct hosta
|
||||||
|
|
||||||
|
if (ret == -EBUSY) {
|
||||||
|
iface->acs_num_retries++;
|
||||||
|
- wpa_printf(MSG_ERROR, "Failed to request acs scan ret=%d (%s) - try to scan after %d seconds",
|
||||||
|
+ wpa_printf(MSG_DEBUG, "Failed to request acs scan ret=%d (%s) - try to scan after %d seconds",
|
||||||
|
ret, strerror(-ret), ACS_SCAN_RETRY_INTERVAL);
|
||||||
|
eloop_cancel_timeout(acs_scan_retry, iface, NULL);
|
||||||
|
eloop_register_timeout(ACS_SCAN_RETRY_INTERVAL, 0,
|
||||||
Reference in New Issue
Block a user