wlan: LFR2.0 Host Driver Changes
Master Gerrit for WLAN_FEATURE_ROAM_SCAN_OFFLOAD.
Includes all the Host Driver Changes.
Change-Id: I1c7adb30b24b49c6f2b5c3de3394831812b1c6d0
CRs-Fixed: 460568
diff --git a/CORE/MAC/src/pe/lim/limProcessMessageQueue.c b/CORE/MAC/src/pe/lim/limProcessMessageQueue.c
index 7b25aeb..f21a75e 100644
--- a/CORE/MAC/src/pe/lim/limProcessMessageQueue.c
+++ b/CORE/MAC/src/pe/lim/limProcessMessageQueue.c
@@ -549,7 +549,34 @@
limLog( pMac, LOG4, FL("ProtVersion %d, Type %d, Subtype %d rateIndex=%d"),
fc.protVer, fc.type, fc.subType, WDA_GET_RX_MAC_RATE_IDX(pRxPacketInfo));
-
+#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
+ if ( WDA_GET_ROAMCANDIDATEIND(pRxPacketInfo))
+ {
+ limLog( pMac, LOG2, FL("Notify SME with candidate ind"));
+ //send a session 0 for now - TBD
+ limSendSmeCandidateFoundInd(pMac, 0);
+ goto end;
+ }
+ if (WDA_GET_OFFLOADSCANLEARN(pRxPacketInfo))
+ {
+ if (fc.subType == SIR_MAC_MGMT_BEACON)
+ {
+ limLog( pMac, LOG2, FL("Save this beacon in LFR cache"));
+ __limHandleBeacon(pMac, limMsg, NULL);
+ }
+ else if (fc.subType == SIR_MAC_MGMT_PROBE_RSP)
+ {
+ limLog( pMac, LOG2, FL("Save this probe rsp in LFR cache"));
+ limProcessProbeRspFrameNoSession(pMac, pRxPacketInfo);
+ }
+ else
+ {
+ limLog( pMac, LOGE, FL("Wrong frame Type %d, Subtype %d for LFR"),
+ fc.type, fc.subType);
+ }
+ goto end;
+ }
+#endif //WLAN_FEATURE_ROAM_SCAN_OFFLOAD
#ifdef FEATURE_WLAN_CCX
if (fc.type == SIR_MAC_DATA_FRAME && isFrmFt)
{
@@ -808,6 +835,9 @@
} // switch (fc.type)
+#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
+end:
+#endif
limPktFree(pMac, HAL_TXRX_FRM_802_11_MGMT, pRxPacketInfo, (void *) limMsg->bodyptr) ;
return;
} /*** end limHandle80211Frames() ***/