TDLS Changes for implicit trigger.
668299: Implicit triggering of TDLS (IEEE802.11z)
CRs-Fixed: 437836
Change-Id: I47c44b2650d19ad78600e2fa1c32233cac9ef3d9
diff --git a/CORE/HDD/inc/wlan_hdd_tdls.h b/CORE/HDD/inc/wlan_hdd_tdls.h
index a8a8256..48ac525 100644
--- a/CORE/HDD/inc/wlan_hdd_tdls.h
+++ b/CORE/HDD/inc/wlan_hdd_tdls.h
@@ -18,27 +18,6 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/*
- * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
- *
- * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
- *
- *
- * Permission to use, copy, modify, and/or distribute this software for
- * any purpose with or without fee is hereby granted, provided that the
- * above copyright notice and this permission notice appear in all
- * copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
- * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
#ifndef __HDD_TDSL_H
#define __HDD_TDSL_H
/**===========================================================================
@@ -47,14 +26,81 @@
\brief Linux HDD TDLS include file
-
==========================================================================*/
-#define MAX_NUM_TDLS_PEER 4
+#define MAX_NUM_TDLS_PEER 3
-extern int wlan_hdd_saveTdlsPeer(tCsrRoamInfo *pRoamInfo);
+#define TDLS_MAX_DISCOVER_ATTEMPT 2
-extern int wlan_hdd_findTdlsPeer(tSirMacAddr peerMac);
+#define TDLS_DISCOVERY_PERIOD 3600000
-extern void wlan_hdd_removeTdlsPeer(tCsrRoamInfo *pRoamInfo);
+#define TDLS_TX_STATS_PERIOD 3600000
+
+#define TDLS_IMPLICIT_TRIGGER_PKT_THRESHOLD 100
+
+#define TDLS_RX_IDLE_TIMEOUT 5000
+
+#define TDLS_RSSI_TRIGGER_HYSTERESIS 50
+
+typedef struct
+{
+ tANI_U32 tx_period_t;
+ tANI_U32 tx_packet_n;
+ tANI_U32 discovery_period_t;
+ tANI_U32 discovery_tries_n;
+ tANI_U32 rx_timeout_t;
+ tANI_U32 rssi_hysteresis;
+} tdls_config_params_t;
+
+typedef enum {
+ eTDLS_CAP_NOT_SUPPORTED = -1,
+ eTDLS_CAP_UNKNOWN = 0,
+ eTDLS_CAP_SUPPORTED = 1,
+} eTDLSCapType;
+
+typedef enum {
+ eTDLS_LINK_NOT_CONNECTED = 0,
+ eTDLS_LINK_CONNECTED = 1,
+} eTDLSLinkStatus;
+
+typedef struct {
+ tANI_U16 period;
+ tANI_U16 bytes;
+} tdls_tx_tput_config_t;
+
+typedef struct {
+ tANI_U16 period;
+ tANI_U16 tries;
+} tdls_discovery_config_t;
+
+typedef struct {
+ tANI_U16 timeout;
+} tdls_rx_idle_config_t;
+
+typedef struct {
+ tANI_U16 rssi_thres;
+} tdls_rssi_config_t;
+
+
+int wlan_hdd_tdls_init(struct net_device *dev);
+
+void wlan_hdd_tdls_exit(void);
+
+u8 wlan_hdd_tdls_extract_da(struct sk_buff *skb, u8 *mac);
+
+int wlan_hdd_tdls_add_peer_to_list(u8 key, u8 *mac);
+
+int wlan_hdd_saveTdlsPeer(tCsrRoamInfo *pRoamInfo);
+
+int wlan_hdd_findTdlsPeer(tSirMacAddr peerMac);
+
+int wlan_hdd_tdls_set_link_status(u8 *mac, int status);
+
+int wlan_hdd_tdls_set_cap(u8 *mac, int cap);
+
+int wlan_hdd_tdls_set_rssi(u8 *mac, tANI_S8 rxRssi);
+
+int wlan_hdd_tdls_set_params(tdls_config_params_t *config);
+
+void wlan_hdd_removeTdlsPeer(tCsrRoamInfo *pRoamInfo);
#endif // __HDD_TDSL_H