wlan: Add BSS status caching

Add BSS status caching to get the BSS Information
when disconnect happens

Change-Id: I41b74700b161277bc454d8bb8978f4e1e92faea8
CRs-fixed: 2079789
diff --git a/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c b/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c
index 44bebf2..69d186e 100644
--- a/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c
+++ b/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c
@@ -160,6 +160,29 @@
     limSysProcessMmhMsgApi(pMac, &mmhMsg,  ePROT);
 } /*** end limSendSmeRsp() ***/
 
+/**
+ * lim_add_bss_info() - copy data from session entry to join rsp
+ * @session_entry: PE Session Info
+ * @sme_join_rsp: Join response buffer to be filled up
+ *
+ * Return: None
+ */
+void lim_add_bss_info(tpDphHashNode sta_ds,
+                      tpSirSmeJoinRsp sme_join_rsp)
+{
+    struct parsed_ies *parsed_ies = &sta_ds->parsed_ies;
+
+    if (parsed_ies->hs20vendor_ie.present)
+        sme_join_rsp->hs20vendor_ie = parsed_ies->hs20vendor_ie;
+    if (parsed_ies->vht_caps.present)
+        sme_join_rsp->vht_caps = parsed_ies->vht_caps;
+    if (parsed_ies->ht_caps.present)
+        sme_join_rsp->ht_caps = parsed_ies->ht_caps;
+    if (parsed_ies->ht_operation.present)
+        sme_join_rsp->ht_operation = parsed_ies->ht_operation;
+    if (parsed_ies->vht_operation.present)
+        sme_join_rsp->vht_operation = parsed_ies->vht_operation;
+}
 
 /**
  * limSendSmeJoinReassocRspAfterResume()
@@ -382,6 +405,7 @@
                 pSirSmeJoinRsp->bcastSig   = pStaDs->ucBcastSig;
                 pSirSmeJoinRsp->maxRateFlags =
                                 limGetMaxRateFlags(pStaDs, psessionEntry);
+                lim_add_bss_info(pStaDs, pSirSmeJoinRsp);
                 PELOGE(limLog(pMac, LOG1, FL("maxRateFlags: %x"),
                                               pSirSmeJoinRsp->maxRateFlags);)
             }