Remove disconnected APs from BSS table if likely out-of-range
authorDavid Spinadel <david.spinadel@intel.com>
Mon, 5 Sep 2016 14:33:07 +0000 (17:33 +0300)
committerJouni Malinen <j@w1.fi>
Sat, 1 Oct 2016 08:14:02 +0000 (11:14 +0300)
commit1ac388633a3639d55ed9aaf91f6cd7863faba40d
tree519d9745ebf513273700dc1e6cf8efa697e436e2
parentd57ca5cd458dd43bc1015c306c140363ec93889f
Remove disconnected APs from BSS table if likely out-of-range

In some cases, after a sudden AP disappearing and reconnection to
another AP in the same ESS, if another scan occurs, wpa_supplicant might
try to roam to the old AP (if it was better ranked than the new one)
because it is still saved in BSS list and the blacklist entry was
cleared in previous reconnect. This attempt is going to fail if the AP
is not present anymore and it'll cause long disconnections.

Remove an AP that is probably out of range from the BSS list to avoid
such disconnections. In particular mac80211-based drivers use the
WLAN_REASON_DISASSOC_DUE_TO_INACTIVITY reason code in locally generated
disconnection events for cases where the AP does not reply anymore.

Signed-off-by: David Spinadel <david.spinadel@intel.com>
wpa_supplicant/bss.c
wpa_supplicant/bss.h
wpa_supplicant/events.c