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>
dialog_token = *buf++;
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,
"MSCS: Drop received frame due to dialog token mismatch: received:%u expected:%u",
dialog_token, wpa_s->robust_av.dialog_token);