wlan: LFR Roaming on Infra STA during concurrency
This is a new requirement to support legacy fast roaming for
infra STA link during concurrency. (Either SCC or MCC)
1. This feature is configurable via config item
2. This feature is disabled if Roam Scan offload is disabled
Change-Id: I4598ce5c4006a16fbcf6090e37becd09cbb17a35
CRs-Fixed: 454729
diff --git a/CORE/SME/inc/csrApi.h b/CORE/SME/inc/csrApi.h
index bfdf93c..61179c0 100644
--- a/CORE/SME/inc/csrApi.h
+++ b/CORE/SME/inc/csrApi.h
@@ -1101,11 +1101,13 @@
tANI_BOOLEAN nRoamIntraBand;
tANI_U8 nProbes;
tANI_U16 nRoamScanHomeAwayTime;
-#endif
#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
tANI_BOOLEAN isRoamOffloadScanEnabled;
+ tANI_BOOLEAN bFastRoamInConIniFeatureEnabled;
#endif
+#endif
+
tANI_U8 scanCfgAgingTime;
diff --git a/CORE/SME/inc/csrInternal.h b/CORE/SME/inc/csrInternal.h
index 86377bb..9a5dfea 100644
--- a/CORE/SME/inc/csrInternal.h
+++ b/CORE/SME/inc/csrInternal.h
@@ -110,6 +110,11 @@
( \
(((pMac)->roam.configParam.isRoamOffloadScanEnabled)?eANI_BOOLEAN_TRUE:eANI_BOOLEAN_FALSE) \
)
+
+#define CSR_IS_FASTROAM_IN_CONCURRENCY_INI_FEATURE_ENABLED( pMac ) \
+( \
+ (((pMac)->roam.configParam.bFastRoamInConIniFeatureEnabled)?eANI_BOOLEAN_TRUE:eANI_BOOLEAN_FALSE) \
+)
#endif
//Support for "Fast roaming" (i.e., CCX, LFR, or 802.11r.)
@@ -602,9 +607,10 @@
#endif
#ifdef FEATURE_WLAN_LFR
- tANI_U8 isFastRoamIniFeatureEnabled;
+ tANI_U8 isFastRoamIniFeatureEnabled;
#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
- tANI_U8 isRoamOffloadScanEnabled;
+ tANI_U8 isRoamOffloadScanEnabled;
+ tANI_BOOLEAN bFastRoamInConIniFeatureEnabled;
#endif
#endif
diff --git a/CORE/SME/inc/csrNeighborRoam.h b/CORE/SME/inc/csrNeighborRoam.h
index 9f0126f..e196de0 100644
--- a/CORE/SME/inc/csrNeighborRoam.h
+++ b/CORE/SME/inc/csrNeighborRoam.h
@@ -212,10 +212,12 @@
tANI_U8 uScanMode;
tANI_U8 uOsRequestedHandoff; /* upper layer requested
a reassoc */
+#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
tCsrHandoffRequest handoffReqInfo; /* handoff related info came
with upper layer's req for
reassoc */
#endif
+#endif
} tCsrNeighborRoamControlInfo, *tpCsrNeighborRoamControlInfo;
diff --git a/CORE/SME/inc/sme_Api.h b/CORE/SME/inc/sme_Api.h
index 6766298..a590bdd 100644
--- a/CORE/SME/inc/sme_Api.h
+++ b/CORE/SME/inc/sme_Api.h
@@ -2389,6 +2389,21 @@
eHalStatus sme_UpdateIsFastRoamIniFeatureEnabled(tHalHandle hHal,
const v_BOOL_t isFastRoamIniFeatureEnabled);
+
+
+#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
+/*--------------------------------------------------------------------------
+ \brief sme_UpdateEnableFastRoamInConcurrency() - enable/disable LFR if Concurrent session exists
+ This is a synchronuous call
+ \param hHal - The handle returned by macOpen.
+ \return eHAL_STATUS_SUCCESS
+ Other status means SME is failed
+ \sa
+ --------------------------------------------------------------------------*/
+
+eHalStatus sme_UpdateEnableFastRoamInConcurrency(tHalHandle hHal,
+ v_BOOL_t bFastRoamInConIniFeatureEnabled);
+#endif
#endif /* FEATURE_WLAN_LFR */
#ifdef FEATURE_WLAN_CCX