From 7cd17a4b5ebda3e36999d8e1b4e6fc7a539415fe Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Sat, 23 May 2020 21:11:33 +0300 Subject: [PATCH] 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 --- wlantest/rx_mgmt.c | 5 +++-- wlantest/wlantest.h | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/wlantest/rx_mgmt.c b/wlantest/rx_mgmt.c index ad388e122..62ed237b7 100644 --- a/wlantest/rx_mgmt.c +++ b/wlantest/rx_mgmt.c @@ -1,6 +1,6 @@ /* * Received Management frame processing - * Copyright (c) 2010-2015, Jouni Malinen + * Copyright (c) 2010-2020, Jouni Malinen * * 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; } diff --git a/wlantest/wlantest.h b/wlantest/wlantest.h index e2395d033..2c2712de8 100644 --- a/wlantest/wlantest.h +++ b/wlantest/wlantest.h @@ -1,6 +1,6 @@ /* * wlantest - IEEE 802.11 protocol monitoring and testing tool - * Copyright (c) 2010-2019, Jouni Malinen + * Copyright (c) 2010-2020, Jouni Malinen * * 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 */