wlan: Add changes to handle SAE status
propagation from qcacld-3.0 to prima.
After SAE auth completion, supplicant informs status to driver.
Add changes to handle SAE status that comes through vendor
command QCA_NL80211_VENDOR_SUBCMD_EXTERNAL_AUTH using attribute
QCA_ATTR_EXTERNAL_AUTH_STATUS.
Change-Id: I474cfe9ea049e684837133479f8b6697fef1f189
CRs-Fixed: 2531077
diff --git a/CORE/SME/src/sme_common/sme_Api.c b/CORE/SME/src/sme_common/sme_Api.c
index f7d81d4..142d289 100644
--- a/CORE/SME/src/sme_common/sme_Api.c
+++ b/CORE/SME/src/sme_common/sme_Api.c
@@ -15447,3 +15447,44 @@
return status;
}
+
+#ifdef WLAN_FEATURE_SAE
+eHalStatus sme_handle_sae_msg(tHalHandle hal, uint8_t session_id,
+ uint8_t sae_status)
+{
+ eHalStatus hal_status = eHAL_STATUS_SUCCESS;
+ tpAniSirGlobal mac = PMAC_STRUCT(hal);
+ struct sir_sae_msg *sae_msg;
+ vos_msg_t vos_message;
+ VOS_STATUS vos_status = VOS_STATUS_SUCCESS;
+
+ hal_status = sme_AcquireGlobalLock(&mac->sme);
+ if (HAL_STATUS_SUCCESS(hal_status)) {
+ sae_msg = vos_mem_malloc(sizeof(*sae_msg));
+ if (!sae_msg) {
+ hal_status = eHAL_STATUS_FAILED_ALLOC;
+ VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_ERROR,
+ "SAE: memory allocation failed");
+ } else {
+ sae_msg->message_type = eWNI_SME_SEND_SAE_MSG;
+ sae_msg->length = sizeof(*sae_msg);
+ sae_msg->session_id = session_id;
+ sae_msg->sae_status = sae_status;
+ vos_message.bodyptr = sae_msg;
+ vos_message.type = eWNI_SME_SEND_SAE_MSG;
+ VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_DEBUG,
+ "SAE: sae_status %d session_id %d", sae_msg->sae_status,
+ sae_msg->session_id);
+
+ vos_status = vos_mq_post_message(VOS_MQ_ID_PE, &vos_message);
+ if (!VOS_IS_STATUS_SUCCESS(vos_status)) {
+ vos_mem_free(sae_msg);
+ hal_status = eHAL_STATUS_FAILURE;
+ }
+ }
+ sme_ReleaseGlobalLock(&mac->sme);
+}
+
+return hal_status;
+}
+#endif