]> git.ipfire.org Git - thirdparty/hostap.git/commit
Extend EAPOL frames processing workaround for roaming cases
authorJouni Malinen <jouni@qca.qualcomm.com>
Fri, 21 Dec 2012 19:35:35 +0000 (21:35 +0200)
committerJouni Malinen <j@w1.fi>
Fri, 21 Dec 2012 19:35:35 +0000 (21:35 +0200)
commit3ab35a660364dc68eaebfc0df6130071bbee6be5
tree294c1a72019f93e9d969d11e0ca9db2491f39fa4
parent318e772ad1ee056b3ed8f5e3fdd4037e01fe3f5e
Extend EAPOL frames processing workaround for roaming cases

Commit 1ff733383f3d5c73233ef452a738765667021609 added a mechanism to
work around issues due to association events and EAPOL RX events being
getting reordered. However, this applied only for the case where
wpa_supplicant is not in associated state. The same issue can happen in
roaming case with drivers that perform BSS selection internally (or in
firmware). Handle that case similarly by delaying received EAPOL frame
processing if the source address of the EAPOL frame does not match the
current BSSID.

Since wired IEEE 802.1X do not have BSSID, make this additional
workaround conditional on BSSID match having been observed during the
previous association.

This fixes issues where the initial EAPOL frame after reassociation was
either dropped (e.g., due to replay counter not increasing) or replied
to with incorrect destination address (the BSSID of the old AP). This
can result in significantly more robust roaming behavior with drivers
that do not use wpa_supplicant for BSS selection.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
wpa_supplicant/events.c
wpa_supplicant/wpa_supplicant.c
wpa_supplicant/wpa_supplicant_i.h