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