wpa_supplicant 2.11 - thick-mac open AP won't pass data packets

Doug Smith Doug.Smith at ezurio.com
Thu Aug 15 11:49:51 PDT 2024


All,

Apologies in advance if this has already been addressed.

Found an issue using wpa_supplicant 2.11 (built with CONFIG_AP support) configured as an open AP.
After a station connects to the AP, data packets are not passed -- pings fail.

The issue occurs with a thick-mac radio due to the WPA_STA_AUTHORIZED flag not being pushed.

When the station connects, the AP handles the assoc event in wpa_supplicant_event_assoc():<wpa_supplicant/events.c>, and calls hostapd_notif_assoc():<src/ap/drv_callbacks.c>.
hostapd_notif_assoc call hostapd_set_sta_flags() to push the flags -- unfortunately the AUTHORIZED flag hasn't been set yet.
The AUTHORIZED flag isn't set until hostapd_new_assoc_sta() is called a few lines later.
hostapd_new_assoc_sta():<src/ap/hostapd.c> calls ap_sta_set_authorized() for the open AP -- unfortunately the flag isn't pushed.

One possible fix is to push the flag as follows:
diff --git a/src/ap/hostapd.c b/src/ap/hostapd.c
index c8ec1d624..d4a73510d 100644
--- a/src/ap/hostapd.c
+++ b/src/ap/hostapd.c
@@ -4042,6 +4042,8 @@ void hostapd_new_assoc_sta(struct hostapd_data *hapd, struct sta_info *sta,
         * been authorized. */
        if (!hapd->conf->ieee802_1x && !hapd->conf->wpa && !hapd->conf->osen) {
                ap_sta_set_authorized(hapd, sta, 1);
+               // fix no ping -- push the authorized flag
+               hostapd_set_sta_flags(hapd, sta);
                os_get_reltime(&sta->connected_time);
                accounting_sta_start(hapd, sta);
        }

Regards,
Doug
THE INFORMATION CONTAINED IN THIS DOCUMENT IS OF A PROPRIETARY NATURE AND IS INTENDED TO BE KEPT CONFIDENTIAL BETWEEN THE SENDER AND THE INTENDED RECIPIENT. IT MAY NOT BE REPRODUCED OR USED WITHOUT EXPRESS WRITTEN PERMISSION OF EZURIO



More information about the Hostap mailing list