aboutsummaryrefslogtreecommitdiffstats
path: root/src/ap/wpa_auth_glue.c
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2011-04-02 19:03:05 (GMT)
committerJouni Malinen <j@w1.fi>2011-04-02 19:03:05 (GMT)
commit4378fc14ebfb355705e7674bf347ea659bcd77bc (patch)
tree7e5527738a060345f0f5c8f9828a4216847b93f3 /src/ap/wpa_auth_glue.c
parent439efd1eac41bed0606f6da66a0879b8f46c4df7 (diff)
downloadhostap-4378fc14ebfb355705e7674bf347ea659bcd77bc.zip
hostap-4378fc14ebfb355705e7674bf347ea659bcd77bc.tar.gz
hostap-4378fc14ebfb355705e7674bf347ea659bcd77bc.tar.bz2
nl80211: Send EAPOL frames as QoS data frames for QoS aware clients
This should fix EAPOL reauthentication and rekeying timeout issues with Intel clients when using WMM (e.g., with IEEE 802.11n). These stations do not seem to be able to handle EAPOL data frames as non-QoS Data frames after the initial setup. This adds STA flags to hapd_send_eapol() driver op to allow driver_nl80211.c to mark the EAPOL frames as QoS Data frame when injecting it through the monitor interface.
Diffstat (limited to 'src/ap/wpa_auth_glue.c')
-rw-r--r--src/ap/wpa_auth_glue.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/ap/wpa_auth_glue.c b/src/ap/wpa_auth_glue.c
index f7999b9..b35b7ba 100644
--- a/src/ap/wpa_auth_glue.c
+++ b/src/ap/wpa_auth_glue.c
@@ -243,8 +243,15 @@ static int hostapd_wpa_auth_send_eapol(void *ctx, const u8 *addr,
int encrypt)
{
struct hostapd_data *hapd = ctx;
+ struct sta_info *sta;
+ u32 flags = 0;
+
+ sta = ap_get_sta(hapd, addr);
+ if (sta)
+ flags = hostapd_sta_flags_to_drv(sta->flags);
+
return hostapd_drv_hapd_send_eapol(hapd, addr, data, data_len,
- encrypt);
+ encrypt, flags);
}