Include previous BSSID in connection request to indicate reassociation
This allows the SME-in-the-driver case to get similar information about reassociation that was already available for the SME-in-wpa_supplicant case. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
00c3c4ac9b
commit
6a5ee810a3
2 changed files with 10 additions and 1 deletions
|
@ -1646,9 +1646,11 @@ void wpa_supplicant_associate(struct wpa_supplicant *wpa_s,
|
|||
|
||||
wmm_ac_clear_saved_tspecs(wpa_s);
|
||||
wpa_s->reassoc_same_bss = 0;
|
||||
wpa_s->reassoc_same_ess = 0;
|
||||
|
||||
if (wpa_s->last_ssid == ssid) {
|
||||
wpa_dbg(wpa_s, MSG_DEBUG, "Re-association to the same ESS");
|
||||
wpa_s->reassoc_same_ess = 1;
|
||||
if (wpa_s->current_bss && wpa_s->current_bss == bss) {
|
||||
wmm_ac_save_tspecs(wpa_s);
|
||||
wpa_s->reassoc_same_bss = 1;
|
||||
|
@ -2063,6 +2065,7 @@ static void wpas_start_assoc_cb(struct wpa_radio_work *work, int deinit)
|
|||
int wep_keys_set = 0;
|
||||
int assoc_failed = 0;
|
||||
struct wpa_ssid *old_ssid;
|
||||
u8 prev_bssid[ETH_ALEN];
|
||||
#ifdef CONFIG_HT_OVERRIDES
|
||||
struct ieee80211_ht_capabilities htcaps;
|
||||
struct ieee80211_ht_capabilities htcaps_mask;
|
||||
|
@ -2096,6 +2099,7 @@ static void wpas_start_assoc_cb(struct wpa_radio_work *work, int deinit)
|
|||
return;
|
||||
}
|
||||
|
||||
os_memcpy(prev_bssid, wpa_s->bssid, ETH_ALEN);
|
||||
os_memset(¶ms, 0, sizeof(params));
|
||||
wpa_s->reassociate = 0;
|
||||
wpa_s->eap_expected_failure = 0;
|
||||
|
@ -2536,6 +2540,10 @@ static void wpas_start_assoc_cb(struct wpa_radio_work *work, int deinit)
|
|||
}
|
||||
#endif /* CONFIG_P2P */
|
||||
|
||||
if (wpa_s->reassoc_same_ess && !is_zero_ether_addr(prev_bssid) &&
|
||||
wpa_s->current_ssid)
|
||||
params.prev_bssid = prev_bssid;
|
||||
|
||||
ret = wpa_drv_associate(wpa_s, ¶ms);
|
||||
if (ret < 0) {
|
||||
wpa_msg(wpa_s, MSG_INFO, "Association request to the driver "
|
||||
|
|
|
@ -494,7 +494,8 @@ struct wpa_supplicant {
|
|||
u8 pending_bssid[ETH_ALEN]; /* If wpa_state == WPA_ASSOCIATING, this
|
||||
* field contains the target BSSID. */
|
||||
int reassociate; /* reassociation requested */
|
||||
int reassoc_same_bss; /* reassociating to the same bss */
|
||||
unsigned int reassoc_same_bss:1; /* reassociating to the same BSS */
|
||||
unsigned int reassoc_same_ess:1; /* reassociating to the same ESS */
|
||||
int disconnected; /* all connections disabled; i.e., do no reassociate
|
||||
* before this has been cleared */
|
||||
struct wpa_ssid *current_ssid;
|
||||
|
|
Loading…
Reference in a new issue