aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJouni Malinen <j@w1.fi>2011-12-24 11:50:59 (GMT)
committerJouni Malinen <j@w1.fi>2011-12-24 11:50:59 (GMT)
commit00338a4fe8f51d1b25281d2379ebdd7ffde5603a (patch)
tree2fa8e517aa653217859dda2a174ae008f3c4a65f /src
parent9c3c38db1ea5a92d84d78bb6823bd95085bcbd69 (diff)
downloadhostap-00338a4fe8f51d1b25281d2379ebdd7ffde5603a.zip
hostap-00338a4fe8f51d1b25281d2379ebdd7ffde5603a.tar.gz
hostap-00338a4fe8f51d1b25281d2379ebdd7ffde5603a.tar.bz2
Increase initial group key handshake retransmit timeout to 500 ms
The 100 ms timeout on retransmitting group key message can be too short for stations that are in power save mode or if there is a large number of association stations. While the retransmission of the EAPOL-Key frame should allow this to be recovered from, it is useful to avoid unnecessary frames to save soem CPU and power. Signed-hostap: Jouni Malinen <j@w1.fi>
Diffstat (limited to 'src')
-rw-r--r--src/ap/wpa_auth.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/ap/wpa_auth.c b/src/ap/wpa_auth.c
index 6895a88..6d7be4b 100644
--- a/src/ap/wpa_auth.c
+++ b/src/ap/wpa_auth.c
@@ -1,6 +1,6 @@
/*
- * hostapd - IEEE 802.11i-2004 / WPA Authenticator
- * Copyright (c) 2004-2009, Jouni Malinen <j@w1.fi>
+ * IEEE 802.11 RSN / WPA Authenticator
+ * Copyright (c) 2004-2011, Jouni Malinen <j@w1.fi>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
@@ -52,6 +52,7 @@ static const u32 dot11RSNAConfigGroupUpdateCount = 4;
static const u32 dot11RSNAConfigPairwiseUpdateCount = 4;
static const u32 eapol_key_timeout_first = 100; /* ms */
static const u32 eapol_key_timeout_subseq = 1000; /* ms */
+static const u32 eapol_key_timeout_first_group = 500; /* ms */
/* TODO: make these configurable */
static const int dot11RSNAConfigPMKLifetime = 43200;
@@ -1336,7 +1337,8 @@ static void wpa_send_eapol(struct wpa_authenticator *wpa_auth,
ctr = pairwise ? sm->TimeoutCtr : sm->GTimeoutCtr;
if (ctr == 1 && wpa_auth->conf.tx_status)
- timeout_ms = eapol_key_timeout_first;
+ timeout_ms = pairwise ? eapol_key_timeout_first :
+ eapol_key_timeout_first_group;
else
timeout_ms = eapol_key_timeout_subseq;
if (pairwise && ctr == 1 && !(key_info & WPA_KEY_INFO_MIC))