mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-11 23:24:22 -04:00
qcacld-3.0: Send broadcast probe rsp for 6G AP
Certificate 4.70.1_6G need verify that the following conditions are true: a. APUT responds with a Probe Response frame with the Address 1 field set to the broadcast address when test bed STA to send Probe Request with SSID = as per Table 168, Address 1 = wildcard (broadcast). Change-Id: I44581eaf251b79f47e374d8294616c554a9acf10 CRs-Fixed: 3104288
This commit is contained in:
parent
63c6a9744e
commit
dc721ec357
1 changed files with 36 additions and 4 deletions
|
|
@ -1,5 +1,6 @@
|
|||
/*
|
||||
* Copyright (c) 2012-2020 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for
|
||||
* any purpose with or without fee is hereby granted, provided that the
|
||||
|
|
@ -222,6 +223,31 @@ static bool lim_check11b_rates(uint8_t rate)
|
|||
return false;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_BAND_6GHZ
|
||||
/**
|
||||
* lim_need_broadcast_probe_rsp: check whether need broadcast probe rsp
|
||||
* @session: a ponter to session entry
|
||||
* @probe_req_da: probe request dst addr
|
||||
*
|
||||
* Return: bool
|
||||
*/
|
||||
static bool lim_need_broadcast_probe_rsp(struct pe_session *session,
|
||||
tSirMacAddr probe_req_da)
|
||||
{
|
||||
if (WLAN_REG_IS_6GHZ_CHAN_FREQ(session->curr_op_freq) &&
|
||||
QDF_IS_ADDR_BROADCAST(probe_req_da))
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
#else
|
||||
static bool lim_need_broadcast_probe_rsp(struct pe_session *session,
|
||||
tSirMacAddr probe_req_da)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* lim_process_probe_req_frame: to process probe req frame
|
||||
* @mac_ctx: Pointer to Global MAC structure
|
||||
|
|
@ -253,6 +279,7 @@ lim_process_probe_req_frame(struct mac_context *mac_ctx, uint8_t *rx_pkt_info,
|
|||
uint32_t frame_len;
|
||||
tSirProbeReq probe_req;
|
||||
tAniSSID ssid;
|
||||
tSirMacAddr dst_mac;
|
||||
|
||||
mac_hdr = WMA_GET_RX_MAC_HEADER(rx_pkt_info);
|
||||
if (LIM_IS_AP_ROLE(session)) {
|
||||
|
|
@ -343,6 +370,11 @@ lim_process_probe_req_frame(struct mac_context *mac_ctx, uint8_t *rx_pkt_info,
|
|||
qdf_mem_copy(ssid.ssId, session->ssId.ssId,
|
||||
session->ssId.length);
|
||||
|
||||
if (lim_need_broadcast_probe_rsp(session, mac_hdr->da))
|
||||
qdf_set_macaddr_broadcast((struct qdf_mac_addr *)dst_mac);
|
||||
else
|
||||
qdf_mem_copy(dst_mac, mac_hdr->sa, ETH_ALEN);
|
||||
|
||||
/*
|
||||
* Compare received SSID with current SSID. If they match,
|
||||
* reply with Probe Response
|
||||
|
|
@ -355,7 +387,7 @@ lim_process_probe_req_frame(struct mac_context *mac_ctx, uint8_t *rx_pkt_info,
|
|||
(uint8_t *) &(probe_req.ssId),
|
||||
(uint8_t) (ssid.length + 1))) {
|
||||
lim_send_probe_rsp_mgmt_frame(mac_ctx,
|
||||
mac_hdr->sa, &ssid,
|
||||
dst_mac, &ssid,
|
||||
session,
|
||||
probe_req.p2pIePresent);
|
||||
return;
|
||||
|
|
@ -368,7 +400,7 @@ lim_process_probe_req_frame(struct mac_context *mac_ctx, uint8_t *rx_pkt_info,
|
|||
(uint8_t *) &(probe_req.ssId.ssId),
|
||||
(uint8_t) (direct_ssid_len))) {
|
||||
lim_send_probe_rsp_mgmt_frame(mac_ctx,
|
||||
mac_hdr->sa,
|
||||
dst_mac,
|
||||
&ssid,
|
||||
session,
|
||||
probe_req.p2pIePresent);
|
||||
|
|
@ -377,7 +409,7 @@ lim_process_probe_req_frame(struct mac_context *mac_ctx, uint8_t *rx_pkt_info,
|
|||
} else {
|
||||
pe_debug("Ignore ProbeReq frm with unmatch SSID received from");
|
||||
lim_print_mac_addr(mac_ctx, mac_hdr->sa,
|
||||
LOGD);
|
||||
LOGD);
|
||||
}
|
||||
} else {
|
||||
/*
|
||||
|
|
@ -393,7 +425,7 @@ lim_process_probe_req_frame(struct mac_context *mac_ctx, uint8_t *rx_pkt_info,
|
|||
* send the probe resp
|
||||
*/
|
||||
return;
|
||||
lim_send_probe_rsp_mgmt_frame(mac_ctx, mac_hdr->sa,
|
||||
lim_send_probe_rsp_mgmt_frame(mac_ctx, dst_mac,
|
||||
&ssid,
|
||||
session,
|
||||
probe_req.p2pIePresent);
|
||||
|
|
|
|||
Loading…
Reference in a new issue