wlantest: Handle FT over-the-DS association state update cleanly

It is expected for the STA entry on the target AP to move directly from
State 1 to State 3 when performing FT over-the-DS (i.e., FT Action
Request/Response frame exchange through the old AP followed by
Reassociation Request/Response frame exchange with the target AP).

Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
Jouni Malinen 2020-05-23 21:11:33 +03:00
parent 5ab8ad4cfe
commit 7cd17a4b5e
2 changed files with 5 additions and 3 deletions

View File

@ -1,6 +1,6 @@
/* /*
* Received Management frame processing * Received Management frame processing
* Copyright (c) 2010-2015, Jouni Malinen <j@w1.fi> * Copyright (c) 2010-2020, Jouni Malinen <j@w1.fi>
* *
* This software may be distributed under the terms of the BSD license. * This software may be distributed under the terms of the BSD license.
* See README for more details. * See README for more details.
@ -965,7 +965,7 @@ static void rx_mgmt_reassoc_resp(struct wlantest *wt, const u8 *data,
} }
sta->aid = aid & 0xc000; sta->aid = aid & 0xc000;
if (sta->state < STATE2) { if (sta->state < STATE2 && !sta->ft_over_ds) {
add_note(wt, MSG_DEBUG, add_note(wt, MSG_DEBUG,
"STA " MACSTR " was not in State 2 when " "STA " MACSTR " was not in State 2 when "
"getting associated", MAC2STR(sta->addr)); "getting associated", MAC2STR(sta->addr));
@ -1110,6 +1110,7 @@ static void rx_mgmt_action_ft_request(struct wlantest *wt,
if (!sta) if (!sta)
return; return;
sta->ft_over_ds = true;
sta->key_mgmt = parse.key_mgmt; sta->key_mgmt = parse.key_mgmt;
sta->pairwise_cipher = parse.pairwise_cipher; sta->pairwise_cipher = parse.pairwise_cipher;
} }

View File

@ -1,6 +1,6 @@
/* /*
* wlantest - IEEE 802.11 protocol monitoring and testing tool * wlantest - IEEE 802.11 protocol monitoring and testing tool
* Copyright (c) 2010-2019, Jouni Malinen <j@w1.fi> * Copyright (c) 2010-2020, Jouni Malinen <j@w1.fi>
* *
* This software may be distributed under the terms of the BSD license. * This software may be distributed under the terms of the BSD license.
* See README for more details. * See README for more details.
@ -61,6 +61,7 @@ struct wlantest_sta {
STATE3 /* associated */ STATE3 /* associated */
} state; } state;
u16 auth_alg; u16 auth_alg;
bool ft_over_ds;
u16 aid; u16 aid;
u8 rsnie[257]; /* WPA/RSN IE */ u8 rsnie[257]; /* WPA/RSN IE */
u8 osenie[257]; /* OSEN IE */ u8 osenie[257]; /* OSEN IE */