TDLS: feature enhancement for discovery and teardown
1. TDLS teardown based on configurable TX and RX idle period and packet
count threshold
2. TDLS teardown when RSSI is below configurable threshold(default=-75dbm)
3. iwpriv command to enable/disable TDLS at run time
4. Send discovery request to peer once it is added to PL
5. Send discovery request when Tx thruput criteria is met
Change-Id: I54136bace39d33c1a23bd7118632dbcfb5e16780
CRs-fixed: 448202
diff --git a/CORE/HDD/src/wlan_hdd_wext.c b/CORE/HDD/src/wlan_hdd_wext.c
index c44dbd0..5d463ef 100644
--- a/CORE/HDD/src/wlan_hdd_wext.c
+++ b/CORE/HDD/src/wlan_hdd_wext.c
@@ -241,7 +241,13 @@
#define WE_TDLS_CONFIG_PARAMS 5
#endif
+#ifdef FEATURE_WLAN_TDLS
+#undef MAX_VAR_ARGS
+#define MAX_VAR_ARGS 10
+#else
#define MAX_VAR_ARGS 7
+#endif
+
/* Private ioctls (with no sub-ioctls) */
/* note that they must be odd so that they have "get" semantics */
@@ -4299,14 +4305,18 @@
{
tdls_config_params_t tdlsParams;
- tdlsParams.tx_period_t = apps_args[0];
- tdlsParams.tx_packet_n = apps_args[1];
- tdlsParams.discovery_period_t= apps_args[2];
- tdlsParams.discovery_tries_n = apps_args[3];
- tdlsParams.rx_timeout_t = apps_args[4];
- tdlsParams.rssi_hysteresis = apps_args[5];
+ tdlsParams.tdls = apps_args[0];
+ tdlsParams.tx_period_t = apps_args[1];
+ tdlsParams.tx_packet_n = apps_args[2];
+ tdlsParams.discovery_period_t = apps_args[3];
+ tdlsParams.discovery_tries_n = apps_args[4];
+ tdlsParams.idle_timeout_t = apps_args[5];
+ tdlsParams.idle_packet_n = apps_args[6];
+ tdlsParams.rssi_hysteresis = apps_args[7];
+ tdlsParams.rssi_trigger_threshold = apps_args[8];
+ tdlsParams.rssi_teardown_threshold = apps_args[9];
- wlan_hdd_tdls_set_params(&tdlsParams);
+ wlan_hdd_tdls_set_params(dev, &tdlsParams);
}
break;
#endif