]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
wlantest: Handle FT over-the-DS association state update cleanly
authorJouni Malinen <j@w1.fi>
Sat, 23 May 2020 18:11:33 +0000 (21:11 +0300)
committerJouni Malinen <j@w1.fi>
Sat, 23 May 2020 18:11:33 +0000 (21:11 +0300)
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>
wlantest/rx_mgmt.c
wlantest/wlantest.h

index ad388e122c653ddcb3a419f19e79959ab5b02f04..62ed237b72b73093621497940da4c7c6caa9a084 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * 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.
  * 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;
 
-       if (sta->state < STATE2) {
+       if (sta->state < STATE2 && !sta->ft_over_ds) {
                add_note(wt, MSG_DEBUG,
                         "STA " MACSTR " was not in State 2 when "
                         "getting associated", MAC2STR(sta->addr));
@@ -1110,6 +1110,7 @@ static void rx_mgmt_action_ft_request(struct wlantest *wt,
        if (!sta)
                return;
 
+       sta->ft_over_ds = true;
        sta->key_mgmt = parse.key_mgmt;
        sta->pairwise_cipher = parse.pairwise_cipher;
 }
index e2395d0334d0ca086d6f469116e412a655e59d84..2c2712de8325a0c780aa554705c11407f2c84942 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * 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.
  * See README for more details.
@@ -61,6 +61,7 @@ struct wlantest_sta {
                STATE3 /* associated */
        } state;
        u16 auth_alg;
+       bool ft_over_ds;
        u16 aid;
        u8 rsnie[257]; /* WPA/RSN IE */
        u8 osenie[257]; /* OSEN IE */