qcacld-3.0: Provide correct status code in case of no ack
Currently, LIM_ACK_NOT_RCD is not handled while filling status code due to which STATUS_UNSPECIFIED_FAILURE is updated as part of default handling instead of STATUS_AUTH_NO_ACK_RECEIVED. Don't overwrite previous status code in case no ack received from peer. Fix is to Handle LIM_ACK_NOT_RCD case while filling status code and consider previous status code when no ack received from peer. Change-Id: I366d63ee3ff6abf8a36300451e7f0c46fcf47e39 CRs-Fixed: 3151992
This commit is contained in:

committed by
Madan Koyyalamudi

parent
7da020bc16
commit
1ac1276b1a
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2011-2021 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2011-2021 The Linux Foundation. All rights reserved.
|
||||||
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
|
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -68,6 +68,7 @@ static void lim_fill_status_code(uint8_t frame_type,
|
|||||||
*proto_status_code = STATUS_AUTH_TX_FAIL;
|
*proto_status_code = STATUS_AUTH_TX_FAIL;
|
||||||
break;
|
break;
|
||||||
case LIM_ACK_RCD_FAILURE:
|
case LIM_ACK_RCD_FAILURE:
|
||||||
|
case LIM_ACK_NOT_RCD:
|
||||||
*proto_status_code = STATUS_AUTH_NO_ACK_RECEIVED;
|
*proto_status_code = STATUS_AUTH_NO_ACK_RECEIVED;
|
||||||
break;
|
break;
|
||||||
case LIM_ACK_RCD_SUCCESS:
|
case LIM_ACK_RCD_SUCCESS:
|
||||||
@@ -82,6 +83,7 @@ static void lim_fill_status_code(uint8_t frame_type,
|
|||||||
*proto_status_code = STATUS_ASSOC_TX_FAIL;
|
*proto_status_code = STATUS_ASSOC_TX_FAIL;
|
||||||
break;
|
break;
|
||||||
case LIM_ACK_RCD_FAILURE:
|
case LIM_ACK_RCD_FAILURE:
|
||||||
|
case LIM_ACK_NOT_RCD:
|
||||||
*proto_status_code = STATUS_ASSOC_NO_ACK_RECEIVED;
|
*proto_status_code = STATUS_ASSOC_NO_ACK_RECEIVED;
|
||||||
break;
|
break;
|
||||||
case LIM_ACK_RCD_SUCCESS:
|
case LIM_ACK_RCD_SUCCESS:
|
||||||
|
@@ -5993,7 +5993,6 @@ static void lim_tx_mgmt_frame(struct mac_context *mac_ctx, uint8_t vdev_id,
|
|||||||
qdf_mtrace(QDF_MODULE_ID_PE, QDF_MODULE_ID_WMA, TRACE_CODE_TX_MGMT,
|
qdf_mtrace(QDF_MODULE_ID_PE, QDF_MODULE_ID_WMA, TRACE_CODE_TX_MGMT,
|
||||||
session->peSessionId, 0);
|
session->peSessionId, 0);
|
||||||
|
|
||||||
mac_ctx->auth_ack_status = LIM_ACK_NOT_RCD;
|
|
||||||
min_rid = lim_get_min_session_txrate(session);
|
min_rid = lim_get_min_session_txrate(session);
|
||||||
|
|
||||||
if (fc->subType == SIR_MAC_MGMT_AUTH &&
|
if (fc->subType == SIR_MAC_MGMT_AUTH &&
|
||||||
@@ -6148,6 +6147,6 @@ void lim_send_mgmt_frame_tx(struct mac_context *mac_ctx,
|
|||||||
lim_handle_sae_auth_retry(mac_ctx, vdev_id,
|
lim_handle_sae_auth_retry(mac_ctx, vdev_id,
|
||||||
mb_msg->data, msg_len);
|
mb_msg->data, msg_len);
|
||||||
}
|
}
|
||||||
|
mac_ctx->auth_ack_status = LIM_ACK_NOT_RCD;
|
||||||
lim_send_frame(mac_ctx, vdev_id, mb_msg->data, msg_len);
|
lim_send_frame(mac_ctx, vdev_id, mb_msg->data, msg_len);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user