Configure TDLS implicit trigger parameters from ini file.
Change-Id: I8e316b4ea660a28792ab18796a0cea2473d7624c
668335: Configure TDLS implicit trigger parameters from ini file.
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h
index ea06076..09ad130 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg.h
@@ -1469,10 +1469,45 @@
#endif
#ifdef FEATURE_WLAN_TDLS
-#define CFG_TDLS_SUPPORT_ENABLE "gEnableTDLSSupport"
-#define CFG_TDLS_SUPPORT_ENABLE_MIN ( 0 )
-#define CFG_TDLS_SUPPORT_ENABLE_MAX ( 1 )
-#define CFG_TDLS_SUPPORT_ENABLE_DEFAULT ( 0 )
+#define CFG_TDLS_SUPPORT_ENABLE "gEnableTDLSSupport"
+#define CFG_TDLS_SUPPORT_ENABLE_MIN ( 0 )
+#define CFG_TDLS_SUPPORT_ENABLE_MAX ( 1 )
+#define CFG_TDLS_SUPPORT_ENABLE_DEFAULT ( 0 )
+
+#define CFG_TDLS_IMPLICIT_TRIGGER "gEnableTDLSImplicitTrigger"
+#define CFG_TDLS_IMPLICIT_TRIGGER_MIN ( 0 )
+#define CFG_TDLS_IMPLICIT_TRIGGER_MAX ( 1 )
+#define CFG_TDLS_IMPLICIT_TRIGGER_DEFAULT ( 0 )
+
+#define CFG_TDLS_TX_STATS_PERIOD "gTDLSTxStatsPeriod"
+#define CFG_TDLS_TX_STATS_PERIOD_MIN ( 0 )
+#define CFG_TDLS_TX_STATS_PERIOD_MAX ( 4294967295UL )
+#define CFG_TDLS_TX_STATS_PERIOD_DEFAULT ( 2000 )
+
+#define CFG_TDLS_TX_PACKET_THRESHOLD "gTDLSTxPacketThreshold"
+#define CFG_TDLS_TX_PACKET_THRESHOLD_MIN ( 0 )
+#define CFG_TDLS_TX_PACKET_THRESHOLD_MAX ( 4294967295UL )
+#define CFG_TDLS_TX_PACKET_THRESHOLD_DEFAULT ( 1000 )
+
+#define CFG_TDLS_DISCOVERY_PERIOD "gTDLSDiscoveryPeriod"
+#define CFG_TDLS_DISCOVERY_PERIOD_MIN ( 0 )
+#define CFG_TDLS_DISCOVERY_PERIOD_MAX ( 4294967295UL )
+#define CFG_TDLS_DISCOVERY_PERIOD_DEFAULT ( 60000 )
+
+#define CFG_TDLS_MAX_DISCOVERY_ATTEMPT "gTDLSMaxDiscoveryAttempt"
+#define CFG_TDLS_MAX_DISCOVERY_ATTEMPT_MIN ( 0 )
+#define CFG_TDLS_MAX_DISCOVERY_ATTEMPT_MAX ( 100 )
+#define CFG_TDLS_MAX_DISCOVERY_ATTEMPT_DEFAULT ( 2 )
+
+#define CFG_TDLS_RX_IDLE_TIMEOUT "gTDLSRxIdleTimeout"
+#define CFG_TDLS_RX_IDLE_TIMEOUT_MIN ( 0 )
+#define CFG_TDLS_RX_IDLE_TIMEOUT_MAX ( 40000 )
+#define CFG_TDLS_RX_IDLE_TIMEOUT_DEFAULT ( 5000 )
+
+#define CFG_TDLS_RSSI_HYSTERESIS "gTDLSRssiHysteresis"
+#define CFG_TDLS_RSSI_HYSTERESIS_MIN ( 0 )
+#define CFG_TDLS_RSSI_HYSTERESIS_MAX ( 100 )
+#define CFG_TDLS_RSSI_HYSTERESIS_DEFAULT ( 100 )
#endif
/* Enable/Disable LPWR Image(cMEM uBSP) Transition */
@@ -1832,6 +1867,13 @@
v_BOOL_t enableRxSTBC;
#ifdef FEATURE_WLAN_TDLS
v_BOOL_t fEnableTDLSSupport;
+ v_BOOL_t fEnableTDLSImplicitTrigger;
+ v_U32_t fTDLSTxStatsPeriod;
+ v_U32_t fTDLSTxPacketThreshold;
+ v_U32_t fTDLSDiscoveryPeriod;
+ v_U32_t fTDLSMaxDiscoveryAttempt;
+ v_U32_t fTDLSRxIdleTimeout;
+ v_U32_t fTDLSRssiHysteresis;
#endif
v_U32_t enableLpwrImgTransition;
#ifdef WLAN_SOFTAP_VSTA_FEATURE
diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c
index e849145..3febddd 100644
--- a/CORE/HDD/src/wlan_hdd_cfg.c
+++ b/CORE/HDD/src/wlan_hdd_cfg.c
@@ -1791,6 +1791,55 @@
CFG_TDLS_SUPPORT_ENABLE_DEFAULT,
CFG_TDLS_SUPPORT_ENABLE_MIN,
CFG_TDLS_SUPPORT_ENABLE_MAX ),
+
+REG_VARIABLE( CFG_TDLS_IMPLICIT_TRIGGER, WLAN_PARAM_Integer,
+ hdd_config_t, fEnableTDLSImplicitTrigger,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_TDLS_IMPLICIT_TRIGGER_DEFAULT,
+ CFG_TDLS_IMPLICIT_TRIGGER_MIN,
+ CFG_TDLS_IMPLICIT_TRIGGER_MAX ),
+
+REG_VARIABLE( CFG_TDLS_TX_STATS_PERIOD, WLAN_PARAM_Integer,
+ hdd_config_t, fTDLSTxStatsPeriod,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_TDLS_TX_STATS_PERIOD_DEFAULT,
+ CFG_TDLS_TX_STATS_PERIOD_MIN,
+ CFG_TDLS_TX_STATS_PERIOD_MAX ),
+
+REG_VARIABLE( CFG_TDLS_TX_PACKET_THRESHOLD, WLAN_PARAM_Integer,
+ hdd_config_t, fTDLSTxPacketThreshold,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_TDLS_TX_PACKET_THRESHOLD_DEFAULT,
+ CFG_TDLS_TX_PACKET_THRESHOLD_MIN,
+ CFG_TDLS_TX_PACKET_THRESHOLD_MAX ),
+
+REG_VARIABLE( CFG_TDLS_DISCOVERY_PERIOD, WLAN_PARAM_Integer,
+ hdd_config_t, fTDLSDiscoveryPeriod,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_TDLS_DISCOVERY_PERIOD_DEFAULT,
+ CFG_TDLS_DISCOVERY_PERIOD_MIN,
+ CFG_TDLS_DISCOVERY_PERIOD_MAX ),
+
+REG_VARIABLE( CFG_TDLS_MAX_DISCOVERY_ATTEMPT, WLAN_PARAM_Integer,
+ hdd_config_t, fTDLSMaxDiscoveryAttempt,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_TDLS_MAX_DISCOVERY_ATTEMPT_DEFAULT,
+ CFG_TDLS_MAX_DISCOVERY_ATTEMPT_MIN,
+ CFG_TDLS_MAX_DISCOVERY_ATTEMPT_MAX ),
+
+REG_VARIABLE( CFG_TDLS_RX_IDLE_TIMEOUT, WLAN_PARAM_Integer,
+ hdd_config_t, fTDLSRxIdleTimeout,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_TDLS_RX_IDLE_TIMEOUT_DEFAULT,
+ CFG_TDLS_RX_IDLE_TIMEOUT_MIN,
+ CFG_TDLS_RX_IDLE_TIMEOUT_MAX ),
+
+REG_VARIABLE( CFG_TDLS_RSSI_HYSTERESIS, WLAN_PARAM_Integer,
+ hdd_config_t, fTDLSRssiHysteresis,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_TDLS_RSSI_HYSTERESIS_DEFAULT,
+ CFG_TDLS_RSSI_HYSTERESIS_MIN,
+ CFG_TDLS_RSSI_HYSTERESIS_MAX ),
#endif
#ifdef WLAN_SOFTAP_VSTA_FEATURE
diff --git a/CORE/HDD/src/wlan_hdd_tdls.c b/CORE/HDD/src/wlan_hdd_tdls.c
index 3cea10b..357ea1f 100644
--- a/CORE/HDD/src/wlan_hdd_tdls.c
+++ b/CORE/HDD/src/wlan_hdd_tdls.c
@@ -187,8 +187,16 @@
int wlan_hdd_tdls_init(struct net_device *dev)
{
VOS_STATUS status;
- pHddTdlsCtx = vos_mem_malloc(sizeof(tdlsCtx_t));
+ hdd_adapter_t *pAdapter = WLAN_HDD_GET_PRIV_PTR(dev);
+ hdd_context_t *pHddCtx = WLAN_HDD_GET_CTX( pAdapter );
+ if(FALSE == pHddCtx->cfg_ini->fEnableTDLSSupport)
+ {
+ hddLog(VOS_TRACE_LEVEL_ERROR, "%s TDLS not enabled!", __func__);
+ return -1;
+ }
+
+ pHddTdlsCtx = vos_mem_malloc(sizeof(tdlsCtx_t));
if (NULL == pHddTdlsCtx) {
hddLog(VOS_TRACE_LEVEL_ERROR, "%s malloc failed!", __func__);
return -1;
@@ -198,12 +206,17 @@
pHddTdlsCtx->dev = dev;
- pHddTdlsCtx->threshold_config.tx_period_t = TDLS_TX_STATS_PERIOD;
- pHddTdlsCtx->threshold_config.tx_packet_n = TDLS_IMPLICIT_TRIGGER_PKT_THRESHOLD;
- pHddTdlsCtx->threshold_config.discovery_period_t = TDLS_DISCOVERY_PERIOD;
- pHddTdlsCtx->threshold_config.discovery_tries_n = TDLS_MAX_DISCOVER_ATTEMPT;
- pHddTdlsCtx->threshold_config.rx_timeout_t = TDLS_RX_IDLE_TIMEOUT;
- pHddTdlsCtx->threshold_config.rssi_hysteresis = TDLS_RSSI_TRIGGER_HYSTERESIS;
+ if(FALSE == pHddCtx->cfg_ini->fEnableTDLSImplicitTrigger)
+ {
+ hddLog(VOS_TRACE_LEVEL_ERROR, "%s TDLS Implicit trigger not enabled!", __func__);
+ return -1;
+ }
+ pHddTdlsCtx->threshold_config.tx_period_t = pHddCtx->cfg_ini->fTDLSTxStatsPeriod;
+ pHddTdlsCtx->threshold_config.tx_packet_n = pHddCtx->cfg_ini->fTDLSTxPacketThreshold;
+ pHddTdlsCtx->threshold_config.discovery_period_t = pHddCtx->cfg_ini->fTDLSDiscoveryPeriod;
+ pHddTdlsCtx->threshold_config.discovery_tries_n = pHddCtx->cfg_ini->fTDLSMaxDiscoveryAttempt;
+ pHddTdlsCtx->threshold_config.rx_timeout_t = pHddCtx->cfg_ini->fTDLSRxIdleTimeout;
+ pHddTdlsCtx->threshold_config.rssi_hysteresis = pHddCtx->cfg_ini->fTDLSRssiHysteresis;
status = vos_timer_init(&pHddTdlsCtx->peerDiscoverTimer,
VOS_TIMER_TYPE_SW,