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