wlan: Cache deleted station's information in case of SAP
qcacld-3.0 to prima propagation
During disconnection process, cache disconnecting STA information
so that the same information is updated to upper-layer on receiving
GET_STATION vendor command, after disconnection.
Change-Id: I2e5a0be42d81b86e6f4490de1bdf9d7e0797506d
CRs-Fixed: 2159220
diff --git a/CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c b/CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c
index e1b7978..7b6666c 100644
--- a/CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c
+++ b/CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c
@@ -1663,6 +1663,52 @@
pMlmAssocInd->beaconPtr = psessionEntry->beacon;
pMlmAssocInd->beaconLength = psessionEntry->bcnLen;
+ pMlmAssocInd->chan_info.chan_id = psessionEntry->currentOperChannel;
+
+ if (psessionEntry->limRFBand == SIR_BAND_2_4_GHZ) {
+ if (psessionEntry->vhtCapability && pAssocReq->VHTCaps.present) {
+ pMlmAssocInd->chan_info.info = MODE_11AC_VHT20_2G;
+ pMlmAssocInd->VHTCaps = pAssocReq->VHTCaps;
+ } else if (psessionEntry->htCapability &&
+ pAssocReq->HTCaps.present) {
+ pMlmAssocInd->chan_info.info = MODE_11NG_HT20;
+ pMlmAssocInd->HTCaps = pAssocReq->HTCaps;
+ } else if (pStaDs->supportedRates.llaRates[0]) {
+ pMlmAssocInd->chan_info.info = MODE_11G;
+ } else {
+ pMlmAssocInd->chan_info.info = MODE_11B;
+ }
+ } else {
+ if (psessionEntry->vhtCapability && pAssocReq->VHTCaps.present) {
+ if ((psessionEntry->vhtTxChannelWidthSet ==
+ eHT_CHANNEL_WIDTH_80MHZ) &&
+ pAssocReq->HTCaps.supportedChannelWidthSet) {
+ pMlmAssocInd->chan_info.info = MODE_11AC_VHT80;
+ } else if ((psessionEntry->vhtTxChannelWidthSet ==
+ eHT_CHANNEL_WIDTH_40MHZ) &&
+ pAssocReq->HTCaps.supportedChannelWidthSet) {
+ pMlmAssocInd->chan_info.info = MODE_11AC_VHT40;
+ } else
+ pMlmAssocInd->chan_info.info = MODE_11AC_VHT20;
+ pMlmAssocInd->VHTCaps = pAssocReq->VHTCaps;
+ } else if (psessionEntry->htCapability &&
+ pAssocReq->HTCaps.present) {
+ if ((psessionEntry->vhtTxChannelWidthSet ==
+ eHT_CHANNEL_WIDTH_40MHZ) &&
+ pAssocReq->HTCaps.supportedChannelWidthSet) {
+ pMlmAssocInd->chan_info.info = MODE_11NA_HT40;
+ } else
+ pMlmAssocInd->chan_info.info = MODE_11NA_HT20;
+ pMlmAssocInd->HTCaps = pAssocReq->HTCaps;
+ } else
+ pMlmAssocInd->chan_info.info = MODE_11A;
+ }
+
+ pMlmAssocInd->ch_width = eHT_CHANNEL_WIDTH_20MHZ;
+ if (pStaDs->mlmStaContext.htCapability)
+ pMlmAssocInd->ch_width = pStaDs->htSupportedChannelWidthSet ?
+ eHT_CHANNEL_WIDTH_40MHZ : eHT_CHANNEL_WIDTH_20MHZ;
+
pMlmAssocInd->rate_flags =
limGetMaxRateFlags(pStaDs, psessionEntry);