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