blob: df9dcc52f80403b771fa56a830b1cecfbb21d029 [file] [log] [blame]
From 9c04bbbe2677cc11b88c867ab7b1df7e408483b5 Mon Sep 17 00:00:00 2001
From: MeiChia Chiu <meichia.chiu@mediatek.com>
Date: Tue, 17 Jan 2023 13:25:18 +0800
Subject: [PATCH] hostapd: mtk: Add the broadcast destination address of Probe
Response frame on 6 GHz
According to IEEE 802.11ax 26.17.2.3.2,
if a 6 GHz AP receives a Probe Request frame and responds with a Probe Response frame,
the Address 1 field of the Probe Response frame shall be set to the broadcast address,
unless the AP is not indicating its actual SSID in the SSID element of its Beacon frames.
Without this, hostapd fill the Address 1 feild of the Probe Response frame
with the source address from Probe Request frame on 6 GHz.
Fix this to use broadcast address instead.
Signed-off-by: MeiChia Chiu <meichia.chiu@mediatek.com>
---
src/ap/beacon.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/ap/beacon.c b/src/ap/beacon.c
index 1a26f11..f3ea5c2 100644
--- a/src/ap/beacon.c
+++ b/src/ap/beacon.c
@@ -1156,8 +1156,13 @@ void handle_probe_req(struct hostapd_data *hapd,
wpa_msg_ctrl(hapd->msg_ctx, MSG_INFO, RX_PROBE_REQUEST "sa=" MACSTR
" signal=%d", MAC2STR(mgmt->sa), ssi_signal);
- resp = hostapd_gen_probe_resp(hapd, mgmt, elems.p2p != NULL,
- &resp_len, false);
+ if (is_6ghz_op_class(hapd->iconf->op_class) &&
+ is_broadcast_ether_addr(mgmt->da))
+ resp = hostapd_gen_probe_resp(hapd, NULL, elems.p2p != NULL,
+ &resp_len, true);
+ else
+ resp = hostapd_gen_probe_resp(hapd, mgmt, elems.p2p != NULL,
+ &resp_len, false);
if (resp == NULL)
return;
--
2.39.0