TDLS: Introduce optional TDLS Off Channel capability parameter.
This commit provides an option to configure tdls offchannel
capability through ini parameter, gEnableTDLSOffChannel and also
propogates this to the firmware and LIM layer.
Change-Id: Ia19d74c5defa789e053a4240392c87cc4da5bf65
CRs-Fixed: 610536
diff --git a/CORE/MAC/inc/aniGlobal.h b/CORE/MAC/inc/aniGlobal.h
index 6e5140d..38375a1 100644
--- a/CORE/MAC/inc/aniGlobal.h
+++ b/CORE/MAC/inc/aniGlobal.h
@@ -671,6 +671,7 @@
#ifdef FEATURE_WLAN_TDLS
tANI_U8 gLimTDLSBufStaEnabled;
tANI_U8 gLimTDLSUapsdMask;
+ tANI_U8 gLimTDLSOffChannelEnabled;
#endif
diff --git a/CORE/MAC/inc/wniCfgAp.h b/CORE/MAC/inc/wniCfgAp.h
index b21d8c3..7c8557e 100644
--- a/CORE/MAC/inc/wniCfgAp.h
+++ b/CORE/MAC/inc/wniCfgAp.h
@@ -383,6 +383,7 @@
#define WNI_CFG_OBSS_HT40_SCAN_ACTIVE_TOTAL_PER_CHANNEL 322
#define WNI_CFG_OBSS_HT40_WIDTH_CHANNEL_TRANSITION_DELAY_FACTOR 323
#define WNI_CFG_OBSS_HT40_SCAN_ACTIVITY_THRESHOLD 324
+#define WNI_CFG_TDLS_OFF_CHANNEL_ENABLED 325
/*
* String parameter lengths
@@ -2734,10 +2735,18 @@
#define WNI_CFG_OBSS_HT40_SCAN_ACTIVITY_THRESHOLD_APMAX 100
#define WNI_CFG_OBSS_HT40_SCAN_ACTIVITY_THRESHOLD_APDEF 25
-#define CFG_PARAM_MAX_NUM 325
-#define CFG_AP_IBUF_MAX_SIZE 264
+#define WNI_CFG_TDLS_OFF_CHANNEL_ENABLED_STAMIN 0
+#define WNI_CFG_TDLS_OFF_CHANNEL_ENABLED_STAMAX 1
+#define WNI_CFG_TDLS_OFF_CHANNEL_ENABLED_STADEF 0
+
+#define WNI_CFG_TDLS_OFF_CHANNEL_ENABLED_APMIN 0
+#define WNI_CFG_TDLS_OFF_CHANNEL_ENABLED_APMAX 1
+#define WNI_CFG_TDLS_OFF_CHANNEL_ENABLED_APDEF 0
+
+#define CFG_PARAM_MAX_NUM 326
+#define CFG_AP_IBUF_MAX_SIZE 265
#define CFG_AP_SBUF_MAX_SIZE 3422
-#define CFG_STA_IBUF_MAX_SIZE 259
+#define CFG_STA_IBUF_MAX_SIZE 260
#define CFG_STA_SBUF_MAX_SIZE 3388
#define CFG_SEM_MAX_NUM 19
diff --git a/CORE/MAC/inc/wniCfgSta.h b/CORE/MAC/inc/wniCfgSta.h
index 25b9e26..3f81407 100644
--- a/CORE/MAC/inc/wniCfgSta.h
+++ b/CORE/MAC/inc/wniCfgSta.h
@@ -377,6 +377,7 @@
#define WNI_CFG_OBSS_HT40_SCAN_ACTIVE_TOTAL_PER_CHANNEL 322
#define WNI_CFG_OBSS_HT40_WIDTH_CHANNEL_TRANSITION_DELAY_FACTOR 323
#define WNI_CFG_OBSS_HT40_SCAN_ACTIVITY_THRESHOLD 324
+#define WNI_CFG_TDLS_OFF_CHANNEL_ENABLED 325
/*
* String parameter lengths
@@ -1759,8 +1760,12 @@
#define WNI_CFG_OBSS_HT40_SCAN_ACTIVITY_THRESHOLD_STAMAX 100
#define WNI_CFG_OBSS_HT40_SCAN_ACTIVITY_THRESHOLD_STADEF 25
-#define CFG_PARAM_MAX_NUM 325
-#define CFG_STA_IBUF_MAX_SIZE 259
+#define WNI_CFG_TDLS_OFF_CHANNEL_ENABLED_STAMIN 0
+#define WNI_CFG_TDLS_OFF_CHANNEL_ENABLED_STAMAX 1
+#define WNI_CFG_TDLS_OFF_CHANNEL_ENABLED_STADEF 0
+
+#define CFG_PARAM_MAX_NUM 326
+#define CFG_STA_IBUF_MAX_SIZE 260
#define CFG_STA_SBUF_MAX_SIZE 3388
#define CFG_SEM_MAX_NUM 19
diff --git a/CORE/MAC/src/cfg/cfgParamName.c b/CORE/MAC/src/cfg/cfgParamName.c
index d75a1e8..aec017a 100644
--- a/CORE/MAC/src/cfg/cfgParamName.c
+++ b/CORE/MAC/src/cfg/cfgParamName.c
@@ -353,6 +353,7 @@
(unsigned char *)"OBSS_HT40_SCAN_ACTIVE_TOTAL_PER_CHANNEL",
(unsigned char *)"OBSS_HT40_WIDTH_CHANNEL_TRANSITION_DELAY_FACTOR",
(unsigned char *)"OBSS_HT40_SCAN_ACTIVITY_THRESHOLD",
+ (unsigned char *)"TDLS_OFF_CHANNEL_ENABLED",
};
diff --git a/CORE/MAC/src/cfg/cfgUtil/cfg.txt b/CORE/MAC/src/cfg/cfgUtil/cfg.txt
index 883228c..095d07c 100644
--- a/CORE/MAC/src/cfg/cfgUtil/cfg.txt
+++ b/CORE/MAC/src/cfg/cfgUtil/cfg.txt
@@ -4815,3 +4815,14 @@
V RW NP
NONE
0 100 25
+
+*
+* TDLS Off Channel Implementation
+*
+WNI_CFG_TDLS_OFF_CHANNEL_ENABLED I 4 7
+V RW NP
+LIM
+0 1 0
+V RW NP
+LIM
+0 1 0
diff --git a/CORE/MAC/src/pe/lim/limApi.c b/CORE/MAC/src/pe/lim/limApi.c
index c9106f9..da397e1 100644
--- a/CORE/MAC/src/pe/lim/limApi.c
+++ b/CORE/MAC/src/pe/lim/limApi.c
@@ -640,6 +640,11 @@
limLog(pMac, LOGP, FL("cfg get LimTDLSUapsdMask failed"));
return eSIR_FAILURE;
}
+ if(wlan_cfgGetInt(pMac, WNI_CFG_TDLS_OFF_CHANNEL_ENABLED,(tANI_U32 *) &pMac->lim.gLimTDLSOffChannelEnabled) != eSIR_SUCCESS)
+ {
+ limLog(pMac, LOGP, FL("cfg get LimTDLSUapsdMask failed"));
+ return eSIR_FAILURE;
+ }
#endif
return eSIR_SUCCESS;
}