MSCS: Process unsolciited MSCS Response frames

Align MSCS response handling as described in IEEE P802.11-REVme/D4.0,
11.25.3 (MSCS procedures):

AP may send unsolicited MSCS Response frame using dialog_token == 0.
Instead of dropping the frame due to dialog_token mismatch, accept
it and set the status accordingly.

Signed-off-by: Daniel Gabay <daniel.gabay@intel.com>
This commit is contained in:
Daniel Gabay 2023-12-26 11:45:23 +02:00 committed by Jouni Malinen
parent b427683bf0
commit b9983b35db

View file

@ -740,7 +740,15 @@ void wpas_handle_robust_av_recv_action(struct wpa_supplicant *wpa_s,
dialog_token = *buf++; dialog_token = *buf++;
len--; len--;
if (dialog_token != wpa_s->robust_av.dialog_token) {
/* AP sets dialog token to 0 for unsolicited response */
if (!dialog_token && !wpa_s->mscs_setup_done) {
wpa_printf(MSG_INFO,
"MSCS: Drop unsolicited received frame: inactive");
return;
}
if (dialog_token && dialog_token != wpa_s->robust_av.dialog_token) {
wpa_printf(MSG_INFO, wpa_printf(MSG_INFO,
"MSCS: Drop received frame due to dialog token mismatch: received:%u expected:%u", "MSCS: Drop received frame due to dialog token mismatch: received:%u expected:%u",
dialog_token, wpa_s->robust_av.dialog_token); dialog_token, wpa_s->robust_av.dialog_token);