Updated to hostap_2_6
Fix PNO restart flow PNO is sometimes restarted due to changes in scan parameters (e.g., selected network changed or MAC randomization being enabled/disabled). Restart is done by stopping PNO and immediately starting it again. This may result in the SCHED_SCAN_STOPPED event being received after the request for new PNO, which will make wpa_supplicant believe PNO is not active although it is actually is. As a result, the next request to start PNO will fail because PNO is active and should be stopped first. Fix this by deferring the request to start PNO until the SCHED_SCAN_STOPPED event is received in case sched_scan is being stopped. Signed-off-by: Avraham Stern <avraham.stern@intel.com>
Continue scanning if sched_scan stops unexpectedly When scheduled scan stops without the interface request (for example, driver stopped it unexpectedly), start a regular scan to continue scanning for networks and avoid being left with no scan at all. Signed-off-by: Avraham Stern <avraham.stern@intel.com>
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>
Restart PNO/sched_scan on channel list update As the scan channels might need to change when the channel list has been updated by the kernel. Use the simulated sched_scan timeout (wpas_scan_restart_sched_scan()) to handle a possible race where an ongoing sched_scan has stopped asynchronously while trying to restart a new sched_scan. Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com>
MBO: Add support to send ANQP request to get cellular preference This extends ANQP_GET command to support querying MBO cellular preference also. The cellular preference can be requested along with neigbor report by appending mbo:1 to the command arguments. For example: ANQP_GET <bssid> 272,mbo:1 Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Share a common helper function for restarting sched_scan This code sequence was already used at two different places (and an additional one has been proposed), so add a common helper function to avoid having to copy-paste this functionality in multiple locations. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
wpa_supplicant: Cancel sched_scan on SELECT_NETWORK initiated scan If a scheduled scan is running on select network command, cancel and reset it before kicking off a regular scan request. Signed-off-by: Max Stepanov <Max.Stepanov@intel.com>
MBO: Do not add reason_detail in non_pref_chan attr (STA) The reason detail field in non_pref_chan attribute was removed from MBO draft v0.0_r25, so the STA should not include this field to be compliant with the latest draft. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
WNM: Add testing option to reject BSS Transition Management Request For testing purposes, it is useful to have an option to be able to reject BTM Request sent by AP in order to verify the AP behavior upon BTM Request rejection. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
MBO: Add support to ignore association disallowed set by AP Add a testing mechanism to allow association disallowed set by AP to be ignored. This can be used to verify AP behavior for disallowing a specific association. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Add ignore_auth_resp control interface debug parameter Implement "SET ignore_auth_resp <0/1>" command to simulate auth/assoc response loss and EAPOL RX packet loss by ignoring corresponding incoming events. Signed-off-by: Mikael Kanstrup <mikael.kanstrup@sonymobile.com>
Blacklist correct BSSID on authentication timeout If authentication times out while reassociating to same ESS incorrect BSSID may end up being blacklisted. Use pending_bssid field on authentication timeout and deauthentication to ensure the correct AP gets blacklisted. This is mainly to address cases related to Android framework roaming behavior. Signed-off-by: Mikael Kanstrup <mikael.kanstrup@sonymobile.com>
Flush the BSS (scan) entries when an interface becomes disabled When an interface becomes disabled (e.g., when RF-kill becomes blocked) we should clear the stored scan results to avoid maintaining stale information. Fix this by flushing the BSS entries when an interface becomes disabled. Signed-off-by: Moshe Benji <moshe.benji@intel.com>