]> git.ipfire.org Git - thirdparty/hostap.git/commit
Set last_eapol_matches_bssid=1 on a roam+auth indication from driver
authorSunil Dutt <usdutt@codeaurora.org>
Thu, 25 Mar 2021 14:17:13 +0000 (07:17 -0700)
committerJouni Malinen <j@w1.fi>
Fri, 9 Apr 2021 18:51:46 +0000 (21:51 +0300)
commit0bae16122938f4e89ca2b2dce59b895618777872
tree460848d9cd1fcd080f4cec13a2bb20f91d7c7700
parent527be9ce7266cdff142df180ae97f8f1602cdc5a
Set last_eapol_matches_bssid=1 on a roam+auth indication from driver

Commit 3ab35a660364 ("Extend EAPOL frames processing workaround for
roaming cases") added a work around to address the issue of EAPOL frame
reception after reassociation replied to with an incorrect destination
address (the BSSID of the old AP). This is due to association events and
EAPOL RX events being reordered for the roaming cases with drivers that
perform BSS selection internally.

This mechanism relies on the fact that the driver always forwards the
EAPOL handshake to wpa_supplicant after the roaming (sets
last_eapol_matches_bssid during the EAPOL processing and resets on the
assoc/reassoc indication).

The above approach does not address the case where the driver does the
EAPOL handshake on the roam, indicating the authorized status to
wpa_supplicant but also forwards the EAPOL handshake to wpa_supplicant
for few other roam attempts. This is because the flag
last_eapol_matches_bssid is not set with the roam+authorized event from
the driver. Thus, the next reorder of roam and EAPOL RX events would
miss this workaround.

Address this by setting last_eapol_matches_bssid=1 on a roam+authorized
event from the driver.

Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
wpa_supplicant/events.c