qcacld-3.0: Fix status check for ROAM Reassoc Frames
In api extract_roam_frame_info_tlv(), the request_response bit is checked in order to determine whether the frame received is a request frame or response frame which in turn used to evaluate wmi_roam_frame_info->status_code as tx_status code for transmitted frame and IEEE 80211 status code for received frames. However, the request_response bit is only valid for Authentication frames and hence status code for Association and Re-association frame is reported incorrectly. Fix the check to evaluate wmi_roam_frame_info->status_code as tx_status code for the following: 1. Frame is Authentication Frame and request_response bit is set to '0' 2. Frame is Association Request frame 3. Frame is Re-Association Request Frame. Change-Id: Icb7633ba8bf662f4987be016715051fa6d1adc06 CRs-Fixed: 3800906
This commit is contained in:

committed by
Ravindra Konda

parent
f04a885a7a
commit
04a045bd2a
@@ -2069,17 +2069,21 @@ extract_roam_frame_info_tlv(wmi_unified_t wmi_handle, void *evt_buf,
|
||||
WMI_GET_BITS(src_data->frame_info,
|
||||
WLAN_FRAME_INFO_AUTH_ALG_OFFSET,
|
||||
4);
|
||||
/*
|
||||
* src_data->status_code is treated as tx status under
|
||||
* following condition:
|
||||
* 1. if the frame is an authentication frame and req_resp bit
|
||||
* is set to '0'
|
||||
* 2. If the Frame is Association Request frame
|
||||
* 3. If the Frame is Re-Association Request Frame
|
||||
*/
|
||||
|
||||
if (!dst_buf->is_rsp) {
|
||||
if ((!dst_buf->is_rsp &&
|
||||
dst_buf->subtype == MGMT_SUBTYPE_AUTH) ||
|
||||
dst_buf->subtype == MGMT_SUBTYPE_ASSOC_REQ ||
|
||||
dst_buf->subtype == MGMT_SUBTYPE_REASSOC_REQ) {
|
||||
dst_buf->tx_status = wmi_get_converted_tx_status(
|
||||
src_data->status_code);
|
||||
/* wmi_roam_frame_info->status_code sent from the fw
|
||||
* denotes the tx_status of the transmitted frames.
|
||||
* To Do: Need a separate field for status code or
|
||||
* use existing field of wmi_roam_frame_info tlv
|
||||
* to send the tx status of transmitted frame from the
|
||||
* FW.
|
||||
*/
|
||||
dst_buf->status_code = 0;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user