TWD/TWDriver/TWDriver.h
changeset 0 10c42ec6c05f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TWD/TWDriver/TWDriver.h	Tue Jun 29 12:34:26 2010 +0100
@@ -0,0 +1,4709 @@
+/*
+ * TWDriver.h
+ *
+ * Copyright(c) 1998 - 2010 Texas Instruments. All rights reserved.      
+ * All rights reserved.      
+ * 
+ * This program and the accompanying materials are made available under the 
+ * terms of the Eclipse Public License v1.0 or BSD License which accompanies
+ * this distribution. The Eclipse Public License is available at
+ * http://www.eclipse.org/legal/epl-v10.html and the BSD License is as below.                                   
+ *                                                                       
+ * Redistribution and use in source and binary forms, with or without    
+ * modification, are permitted provided that the following conditions    
+ * are met:                                                              
+ *                                                                       
+ *  * Redistributions of source code must retain the above copyright     
+ *    notice, this list of conditions and the following disclaimer.      
+ *  * Redistributions in binary form must reproduce the above copyright  
+ *    notice, this list of conditions and the following disclaimer in    
+ *    the documentation and/or other materials provided with the         
+ *    distribution.                                                      
+ *  * Neither the name Texas Instruments nor the names of its            
+ *    contributors may be used to endorse or promote products derived    
+ *    from this software without specific prior written permission.      
+ *                                                                       
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS   
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT     
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT  
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT      
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT   
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+ 
+/** \file  TWDriver.h 
+ *  \brief TWDriver APIs
+ *
+ *  \see 
+ */
+
+/** @defgroup Control Control group
+ * \brief The Control group includes the list of functions which perform TWD Control
+ */
+/** @defgroup Measurement Measurement group
+ * \brief The Measurement group includes the list of functions which gets measurements from FW / TWD
+ */
+/** @defgroup Data_Path Data Path group
+ * \brief The Data Path group includes the list of functions which perform the TWD Data Path
+ */
+/**	@defgroup Power_Management Power Management group 	
+ * \brief The Power Management group includes the list of functions which set the power management mode
+ */
+/** @defgroup QoS Quality  Of Service group 
+ * \brief The Quality of Service group includes the list of functions which perform the TWD QoS
+ */
+/** @defgroup Radio Radio (PHY) group
+ * \brief The Radio group includes the list of functions which handle the Radio
+ */
+/** @defgroup BSS BSS group
+ * \brief The BSS group includes the list of functions which handle the Basic Service Set
+ */
+/** @defgroup Misc Miscellaneous group
+ * \brief The Miscellaneous group includes the list of functions which handle miscellaneous issues
+ */
+#ifdef TI_DBG
+/**	@defgroup Test Debug Test group
+ * \brief The Debug Test group includes the list of functions which Test the TWD and FW
+ */
+#endif
+
+#ifndef TWDRIVER_H
+#define TWDRIVER_H
+
+#define MAX_NUM_OF_802_1d_TAGS          8
+
+#include "802_11Defs.h"
+#include "TWDriverMsr.h"
+#include "TWDriverScan.h"
+#include "TWDriverRate.h"
+#include "fwDebug_api.h"
+#include "TwIf.h"
+/* 
+ * original firmware h-files 
+ */
+#include "public_commands.h"
+#include "public_event_mbox.h"
+#include "public_infoele.h"
+#include "public_host_int.h"
+#include "public_descriptors.h"   
+#include "public_radio.h"
+
+/*
+ * Firmware types defintions
+ */ 
+#ifndef uint8
+#define uint8   TI_UINT8
+#endif
+#ifndef uint16
+#define uint16  TI_UINT16
+#endif
+#ifndef uint32
+#define uint32  TI_UINT32
+#endif
+#ifndef int8
+#define int8    TI_INT8
+#endif
+#ifndef int16
+#define int16   TI_INT16
+#endif
+#ifndef int32
+#define int32   TI_INT32
+#endif
+
+
+
+/*
+ * --------------------------------------------------------------
+ *	Definitions
+ * --------------------------------------------------------------
+ */
+
+/* PALAU Group Address Default Values */
+#define NUM_GROUP_ADDRESS_VALUE_DEF     4   
+#define NUM_GROUP_ADDRESS_VALUE_MIN     0
+#define NUM_GROUP_ADDRESS_VALUE_MAX     8
+
+/* Early Wakeup Default Values */
+#define EARLY_WAKEUP_ENABLE_MIN         (TI_FALSE)
+#define EARLY_WAKEUP_ENABLE_MAX         (TI_TRUE)
+#define EARLY_WAKEUP_ENABLE_DEF         (TI_TRUE)
+
+/* ARP IP Filter Default Values */
+#define MIN_FILTER_ENABLE_VALUE         0
+#define MAX_FILTER_ENABLE_VALUE         3
+#define DEF_FILTER_ENABLE_VALUE         0
+#define FILTER_ENABLE_FLAG_LEN          1
+
+/* Beacon filter Deafult Values */
+#define DEF_BEACON_FILTER_ENABLE_VALUE  1
+#define DEF_BEACON_FILTER_IE_TABLE_NUM  16
+#define MIN_BEACON_FILTER_ENABLE_VALUE  0
+#define MAX_BEACON_FILTER_ENABLE_VALUE  1
+#define BEACON_FILTER_IE_TABLE_DEF_SIZE 37
+#define BEACON_FILTER_IE_TABLE_MAX_SIZE 100
+#define BEACON_FILTER_IE_TABLE_MIN_SIZE 0 
+#define BEACON_FILTER_IE_TABLE_MAX_NUM  (6+32)
+#define BEACON_FILTER_IE_TABLE_MIN_NUM  0 
+
+/* CoexActivity Table Deafult Values */
+#define COEX_ACTIVITY_TABLE_DEF_NUM     0
+#define COEX_ACTIVITY_TABLE_MIN_NUM     0
+#define COEX_ACTIVITY_TABLE_MAX_NUM     24*2
+#define COEX_ACTIVITY_TABLE_SIZE        ((2+1)+(2+1)+(2+1)+(2+1)+(4+1)+(4+1)) /* includes spaces between bytes */
+
+#define DEF_NUM_STORED_FILTERS          1
+#define MIN_NUM_STORED_FILTERS          1
+#define MAX_NUM_STORED_FILTERS          8
+
+#define TWD_HW_ACCESS_METHOD_MIN   0
+#define TWD_HW_ACCESS_METHOD_MAX   2
+#define TWD_HW_ACCESS_METHOD_DEF   1
+
+#define TWD_SITE_FRAG_COLLECT_MIN  2
+#define TWD_SITE_FRAG_COLLECT_MAX  10
+#define TWD_SITE_FRAG_COLLECT_DEF  3
+
+#define TWD_RX_MEM_BLKS_NUM        40   /* The number of Rx memory blocks configured to FW */
+#define TWD_TX_MIN_MEM_BLKS_NUM    107   /* The MINIMUM number of Tx memory blocks configured to FW */
+
+#define TWD_RX_BLOCKS_RATIO_MIN    0
+#define TWD_RX_BLOCKS_RATIO_MAX    100
+#define TWD_RX_BLOCKS_RATIO_DEF    50
+
+#define TWD_TX_FLASH_ENABLE_MIN         TI_FALSE
+#define TWD_TX_FLASH_ENABLE_MAX         TI_TRUE
+#define TWD_TX_FLASH_ENABLE_DEF         TI_TRUE
+
+#define TWD_USE_INTR_TRHESHOLD_MIN 0
+#define TWD_USE_INTR_TRHESHOLD_MAX 1
+#define TWD_USE_INTR_TRHESHOLD_DEF 0
+
+#define TWD_USE_TX_DATA_INTR_MIN   0
+#define TWD_USE_TX_DATA_INTR_MAX   1
+
+#define NUM_OF_CHANNELS_24              14
+#define NUM_OF_CHANNELS_5               180
+
+#define TWD_CALIBRATION_CHANNEL_2_4_MIN 1
+#define TWD_CALIBRATION_CHANNEL_2_4_MAX NUM_OF_CHANNELS_24
+#define TWD_CALIBRATION_CHANNEL_2_4_DEF 1
+
+#define A_5G_BAND_MIN_CHANNEL       36
+#define A_5G_BAND_MAX_CHANNEL       180
+#define A_5G_BAND_NUM_CHANNELS  	(A_5G_BAND_MAX_CHANNEL-A_5G_BAND_MIN_CHANNEL+1)
+
+#define TWD_CALIBRATION_CHANNEL_5_0_MIN 34
+#define TWD_CALIBRATION_CHANNEL_5_0_MAX  A_5G_BAND_MAX_CHANNEL
+#define TWD_CALIBRATION_CHANNEL_5_0_DEF 36
+
+#define TWD_CALIBRATION_CHANNEL_4_9_MIN 8
+#define TWD_CALIBRATION_CHANNEL_4_9_MAX 16
+#define TWD_CALIBRATION_CHANNEL_4_9_DEF 12
+
+#define TWD_RTS_THRESHOLD_MIN           0
+#define TWD_RTS_THRESHOLD_MAX           4096
+#define TWD_RTS_THRESHOLD_DEF           4096
+
+#define TWD_BCN_RX_TIME_OUT_MIN         10      /* ms */
+#define TWD_BCN_RX_TIME_OUT_MAX         1000    /* ms */
+#define TWD_BCN_RX_TIME_OUT_DEF         10      /* ms */
+
+#define TWD_RX_DISABLE_BROADCAST_MIN    TI_FALSE
+#define TWD_RX_DISABLE_BROADCAST_MAX    TI_TRUE
+#define TWD_RX_DISABLE_BROADCAST_DEF    TI_FALSE
+
+/* Indicate if the recovery process is active or not */
+#define TWD_RECOVERY_ENABLE_MIN         TI_FALSE
+#define TWD_RECOVERY_ENABLE_MAX         TI_TRUE
+#define TWD_RECOVERY_ENABLE_DEF         TI_TRUE
+
+/* Indicate if working with Burst Mode or not */
+#define BURST_MODE_ENABLE_MIN         TI_FALSE
+#define BURST_MODE_ENABLE_MAX         TI_TRUE
+#define BURST_MODE_ENABLE_DEF         TI_FALSE
+
+#define SMART_REFLEX_STATE_MIN        TI_FALSE
+#define SMART_REFLEX_STATE_MAX        TI_TRUE
+#define SMART_REFLEX_STATE_DEF        TI_TRUE
+
+#define SMART_REFLEX_DEBUG_MIN        0
+#define SMART_REFLEX_DEBUG_MAX        0xFFFF
+#define SMART_REFLEX_DEBUG_DEF        0
+
+#define SMART_REFLEX_CONFIG_PARAMS_DEF_TABLE  "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"
+
+#define TWD_FRAG_THRESHOLD_MIN          256
+#define TWD_FRAG_THRESHOLD_MAX          4096
+#define TWD_FRAG_THRESHOLD_DEF          4096
+
+#define TWD_MAX_TX_MSDU_LIFETIME_MIN    0
+#define TWD_MAX_TX_MSDU_LIFETIME_MAX    3000
+#define TWD_MAX_TX_MSDU_LIFETIME_DEF    512
+
+#define TWD_MAX_RX_MSDU_LIFETIME_MIN    0
+#define TWD_MAX_RX_MSDU_LIFETIME_MAX    0xFFFFFFFF
+#define TWD_MAX_RX_MSDU_LIFETIME_DEF    512000
+
+
+#define TWD_LISTEN_INTERVAL_MIN         1
+#define TWD_LISTEN_INTERVAL_MAX         10
+#define TWD_LISTEN_INTERVAL_DEF         3
+
+/* This field indicates the number of transmit retries to attempt at
+    the rate specified in the TNETW Tx descriptor before
+    falling back to the next lowest rate.
+    If this field is set to 0xff, then rate fallback is disabled.
+    If this field is 0, then there will be 0 retries before starting fallback.*/
+#define TWD_RATE_FB_RETRY_LIMIT_MIN     0   /* => No retries before starting RateFallBack */
+#define TWD_RATE_FB_RETRY_LIMIT_MAX     255 /* =>0xff for disabling Rate fallback */
+#define TWD_RATE_FB_RETRY_LIMIT_DEF     0
+
+#define TWD_TX_ANTENNA_MIN              TX_ANTENNA_2
+#define TWD_TX_ANTENNA_MAX              TX_ANTENNA_1
+#define TWD_TX_ANTENNA_DEF              TX_ANTENNA_1
+
+#define TWD_RX_ANTENNA_MIN              RX_ANTENNA_1
+#define TWD_RX_ANTENNA_MAX              RX_ANTENNA_PARTIAL
+#define TWD_RX_ANTENNA_DEF              RX_ANTENNA_FULL
+
+/*
+ * Tx and Rx interrupts pacing (threshold in packets, timeouts in milliseconds)
+ */
+#define TWD_TX_CMPLT_THRESHOLD_DEF      5   /* 0 means no pacing so send interrupt on every event */
+#define TWD_TX_CMPLT_THRESHOLD_MIN      0
+#define TWD_TX_CMPLT_THRESHOLD_MAX      30
+
+#define TWD_TX_CMPLT_TIMEOUT_DEF        3000
+#define TWD_TX_CMPLT_TIMEOUT_MIN        100
+#define TWD_TX_CMPLT_TIMEOUT_MAX        50000
+
+#define TWD_RX_INTR_THRESHOLD_DEF       0   /* 0 means no pacing so send interrupt on every event */
+#define TWD_RX_INTR_THRESHOLD_MIN       0
+#define TWD_RX_INTR_THRESHOLD_MAX       30
+
+#define TWD_RX_INTR_TIMEOUT_DEF         2000
+#define TWD_RX_INTR_TIMEOUT_MIN         1 
+#define TWD_RX_INTR_TIMEOUT_MAX         50000
+
+/*
+ * Tx power level 
+ */
+#define TWD_TX_POWER_LEVEL_MIN          MAX_POWER_LEVEL /* registry needs the lower number 	*/
+#define TWD_TX_POWER_LEVEL_MAX          MIN_POWER_LEVEL /* registry needs the hifger number */
+#define TWD_TX_POWER_LEVEL_DEF          MAX_POWER_LEVEL
+
+#define DBM_TO_TX_POWER_FACTOR			10
+
+/* TX_POWER is in Dbm/10 units */
+#define MAX_TX_POWER					205 
+#define MIN_TX_POWER					0   
+#define DEF_TX_POWER					70   
+
+
+#define MIN_DEFAULT_KEY_ID              0
+#define MAX_DEFAULT_KEY_ID              3
+
+#define KEY_RSC_LEN                     8
+#define MIN_KEY_LEN                     5
+#define MAX_KEY_LEN                     32
+
+#define TWD_RSSI_WEIGHT_MIN             0   
+#define TWD_RSSI_WEIGHT_MAX             100
+#define TWD_RSSI_WEIGHT_DEF             20
+
+#define TWD_DCO_ITRIM_ENABLE_MIN  TI_FALSE
+#define TWD_DCO_ITRIM_ENABLE_MAX  TI_TRUE
+#define TWD_DCO_ITRIM_ENABLE_DEF  TI_FALSE
+
+#define TWD_DCO_ITRIM_MODERATION_TIMEOUT_MIN    10000
+#define TWD_DCO_ITRIM_MODERATION_TIMEOUT_MAX  1000000
+#define TWD_DCO_ITRIM_MODERATION_TIMEOUT_DEF    50000
+
+
+#define MAX_NUM_OF_AC                   4
+
+/************************************/      
+/*      Rates values                */  
+/************************************/
+/* The next definitions are used to decide which encryption is used by the Rx flags */
+#define RX_FLAGS_NO_SECURITY                0  
+#define RX_FLAGS_WEP                        1
+#define RX_FLAGS_TKIP                       2
+#define RX_FLAGS_AES                        3
+
+
+#define RX_DESC_FLAGS_ENCRYPTION            8
+#define RX_PACKET_FLAGS_ENCRYPTION_SHIFT    16
+#define RX_PACKET_FLAGS_ENCRYPTION_SHIFT_FROM_DESC      (RX_PACKET_FLAGS_ENCRYPTION_SHIFT - RX_DESC_FLAGS_ENCRYPTION)
+
+/* Tx packet Control-Block flags bit-mask. */
+#define TX_CTRL_FLAG_XFER_DONE_ISSUED      0x0001  /* Xfer-Done already issued to upper driver   - for WHA. */
+#define TX_CTRL_FLAG_TX_COMPLETE_ISSUED    0x0002  /* Tx-Complete already issued to upper driver - for WHA. */
+#define TX_CTRL_FLAG_LINK_TEST             0x0004  /* XCC link test packet */
+#define TX_CTRL_FLAG_SENT_TO_FW            0x0008  /* Set after the packet is allowed to be sent to FW (by TxHwQueue) */
+#define TX_CTRL_FLAG_PKT_IN_RAW_BUF        0x0010  /* The input packet is in a raw buffer (as opposed to OS packet) */
+#define TX_CTRL_FLAG_MULTICAST             0x0020  /* A multicast ethernet packet */
+#define TX_CTRL_FLAG_BROADCAST             0x0040  /* A broadcast ethernet packet */
+
+#define TX_PKT_TYPE_MGMT                   1   /* Management Packet						  */
+#define TX_PKT_TYPE_EAPOL                  2   /* EAPOL packet (Ethernet)				  */
+#define TX_PKT_TYPE_ETHER                  3   /* Data packet from the Network interface  */
+#define TX_PKT_TYPE_WLAN_DATA	           4   /* Driver generated WLAN Data Packet (currently used for IAPP packet) */
+
+
+#define ALIGN_4BYTE_MASK                   0x3 /* Masked LS bits for 4-bytes aligned addresses or lengths. */
+#define SHIFT_BETWEEN_TU_AND_USEC          10  /* Shift factor to convert between TU (1024 uSec) and uSec. */
+
+/* Packet header + extensions structure ranges between 24 and 48 bytes as follows:
+ * ------------------------------------------------------------------------------
+ * Alignment Padding:   0/2 bytes,      added for 4 bytes alignment of this structure.
+ * Mac-Header:          24 bytes,       802.11 basic header.
+ * Qos header:          0/2 bytes,      for QoS-data or QoS-Null the two QoS bytes are added.
+ * Security Pad:        0/0/4/8/18 bytes,  for None/WEP/TKIP/AES/GEM.
+ * LLC/SNAP:            0/8 bytes,      added only for data packets.
+ * HT control:          0/4             added only for packte support QoS and HT
+ */
+#define MAX_HEADER_SIZE                 48  
+
+/* Data body max length */
+#define MAX_DATA_BODY_LENGTH            4096
+
+
+
+/* The weight in % of the new packet relative to the previous average value of RSSI */
+#define RSSI_DEFAULT_WEIGHT             20 
+
+#define RSSI_DEFAULT_THRESHOLD          -80 
+#define SNR_DEFAULT_THRESHOLD           0 
+
+/* 
+ * 'No beacon' roaming trigger configuration
+ * Number of consecutive beacons (or DTIM periods) missed before 
+ * 'Out of Sync' event is raised 
+ */
+#define OUT_OF_SYNC_DEFAULT_THRESHOLD   10
+/* 
+ * IBSS - Number of consecutive beacons (or DTIM periods) missed before 
+ * 'Out of Sync' event is raised 
+ */
+#define OUT_OF_SYNC_IBSS_THRESHOLD      200
+/* Period of time between 'Out of sync' and 'No beacon' events */
+#define NO_BEACON_DEFAULT_TIMEOUT       100 /* in tu-s*/
+
+/* Consecutive NACK roaming trigger configuration */
+#define NO_ACK_DEFAULT_THRESHOLD        20 
+
+/* Low Rx rate roaming trigger configuration */
+#define LOW_RATE_DEFAULT_THRESHOLD      2 
+
+#define MEASUREMENT_NOISE_HISTOGRAM_NUM_OF_RANGES       8
+#define MAX_CHANNELS_IN_REG_DOMAIN      40
+
+#define CTS_TO_SELF_DISABLE             0
+#define CTS_TO_SELF_ENABLE              1
+
+#define MAX_TEMPLATE_SIZE               256
+
+/* Scan constants */
+#define MAX_NUMBER_OF_CHANNELS_PER_SCAN                     16
+#define SCAN_MAX_NUM_OF_NORMAL_CHANNELS_PER_COMMAND         MAX_NUMBER_OF_CHANNELS_PER_SCAN
+#define SCAN_MAX_NUM_OF_SPS_CHANNELS_PER_COMMAND            16
+#define SCAN_DEFAULT_MIN_CHANNEL_DWELL_TIME                 30000
+#define SCAN_DEFAULT_MAX_CHANNEL_DWELL_TIME                 60000
+#define SCAN_DEFAULT_EARLY_TERMINATION_EVENT                SCAN_ET_COND_DISABLE
+#define SCAN_DEFAULT_EARLY_TERMINATION_NUM_OF_FRAMES        0
+
+#define NUM_OF_NOISE_HISTOGRAM_COUNTERS 8
+
+#define TX_DESCRIPTOR_SIZE             sizeof(TxIfDescriptor_t)
+
+#define CTRL_BLK_ENTRIES_NUM            128
+
+#define HT_CAP_AMPDU_PARAMETERS_FIELD_OFFSET   2
+#define HT_CAP_HT_EXTENDED_FIELD_OFFSET        19
+#define HT_CAP_AMPDU_MAX_RX_FACTOR_BITMASK     0x3
+#define HT_CAP_AMPDU_MIN_START_SPACING_BITMASK 0x7
+#define HT_CAP_GREENFIELD_FRAME_FORMAT_BITMASK 0x0010
+#define HT_CAP_SHORT_GI_FOR_20MHZ_BITMASK      0x0020
+#define HT_CAP_LSIG_TXOP_PROTECTION_BITMASK    0x8000
+#define HT_EXT_HT_CONTROL_FIELDS_BITMASK       0x0400
+#define HT_EXT_RD_INITIATION_BITMASK           0x0800
+#define HT_INF_RIFS_MOD_BITMASK                0x08
+#define HT_INF_OPERATION_MOD_BITMASK           0x03
+#define HT_INF_NON_GF_PRES_BITMASK             0x04
+#define HT_INF_TX_BURST_LIMIT_BITMASK          0x08
+#define HT_INF_DUAL_BEACON_BITMASK             0x40
+
+/* 
+ * TWD HT capabilities, physical capabilities of the STA.
+ * The structure is defined like that in order to simplify the interface with WHA layer.
+ */
+#define RX_TX_MCS_BITMASK_SIZE      10
+
+#define  DSSS_CCK_MODE         					1
+
+#define MCS_HIGHEST_SUPPORTED_RECEPTION_DATA_RATE_IN_MBIT_S 0x48
+
+#define IMPLICIT_TXBF_REC_CAPABLE             	1
+#define TRANSMIT_STAGGERED_SOUNDING_CAPABLE   	1
+
+/* Firmware version name length */
+#define FW_VERSION_LEN                  		20
+
+/*the max table sized is : ( number of 221 * 8 bytes ) + ( non-221 * 2 bytes )
+  Must be synchronized with the size of ACX defined in public_infoele.h interface
+  with the FW
+*/
+#define MIB_MAX_SIZE_OF_IE_TABLE 				112 
+#define MIB_TEMPLATE_DATA_MAX_LEN   			256
+#define MIB_MAX_MULTICAST_GROUP_ADDRS			8
+
+#define MAX_MULTICAST_GROUP_ADDRS				8
+
+/* Max numver of policies */
+#define MAX_NUM_OF_TX_RATE_CLASS_POLICIES   	8 
+
+#define NUM_POWER_LEVELS                		4
+#define MAX_POWER_LEVEL                 		1
+#define MIN_POWER_LEVEL                 		NUM_POWER_LEVELS
+
+/*
+ * --------------------------------------------------------------
+ *	Enumerations
+ * --------------------------------------------------------------
+ */
+/** \enum EFileType
+ * \brief TWD input/output files
+ *
+ * \par Description
+ * Indicates which File (or part of file) to read or write
+ *
+ * \sa TFileInfo
+ */
+typedef enum
+{
+    FILE_TYPE_INI = 0, 	/**< */
+    FILE_TYPE_NVS, 		/**< */
+    FILE_TYPE_FW, 		/**< */
+    FILE_TYPE_FW_NEXT 	/**< */
+} EFileType;
+
+/** \enum EKeepAliveTriggerType
+ * \brief Keep Alive Trigger Types
+ * 
+ * \par Description
+ * Indicates when to trigger Keep Alive
+ * 
+ * \sa TKeepAliveParams
+ * 
+ */
+
+typedef enum
+{
+    KEEP_ALIVE_TRIG_TYPE_NO_TX = 0,		/**< */
+    KEEP_ALIVE_TRIG_TYPE_PERIOD_ONLY	/**< */
+
+} EKeepAliveTriggerType;
+
+/** \enum ESlotTime
+ * \brief Radio (PHY) Slot Time Type
+ * 
+ * \par Description
+ * Used for configuring PHY Slot Time for FW
+ * 
+ * \sa TWD_CfgPreamble
+ */
+typedef enum
+{
+	PHY_SLOT_TIME_LONG		= 0,	/**< 	Long PHY Slot Time  */ 
+    PHY_SLOT_TIME_SHORT     = 1		/**< 	Short PHY Slot Time  */ 
+
+} ESlotTime;
+
+/** \enum EMib
+ * \brief MIB Element Type
+ * 
+ * \par Description
+ * Used for R/W MIB to FW
+ * 
+ * \sa TMib
+ */
+typedef enum
+{
+/*	0x00	*/	MIB_dot11MaxReceiveLifetime = 0,	/**< */
+/*	0x01	*/  MIB_dot11SlotTime,					/**< */
+/*	0x02	*/  MIB_dot11GroupAddressesTable,		/**< */
+/*	0x03	*/  MIB_dot11WepDefaultKeyId,			/**< */
+/*	0x04	*/  MIB_dot11CurrentTxPowerLevel,		/**< */
+/*	0x05	*/  MIB_dot11RTSThreshold,				/**< */
+/*	0x06	*/  MIB_ctsToSelf,						/**< */
+/*	0x07	*/  MIB_arpIpAddressesTable,			/**< */
+/*	0x08	*/  MIB_templateFrame,					/**< */
+/*	0x09	*/  MIB_rxFilter,						/**< */
+/*	0x0A	*/  MIB_beaconFilterIETable,			/**< */
+/*	0x0B	*/  MIB_beaconFilterEnable,				/**< */
+/*	0x0C	*/  MIB_sleepMode,						/**< */
+/*	0x0D	*/  MIB_wlanWakeUpInterval,				/**< */
+/*	0x0E	*/  MIB_beaconLostCount,				/**< */
+/*	0x0F	*/  MIB_rcpiThreshold,					/**< */
+/*	0x10	*/  MIB_statisticsTable,				/**< */
+/*	0x11	*/  MIB_ibssPsConfig,					/**< */
+/*	0x12	*/  MIB_txRatePolicy,					/**< */
+/*	0x13	*/  MIB_countersTable,					/**< */
+/*	0x14	*/  MIB_btCoexsitenceMode,				/**< */
+/*	0x15	*/  MIB_btCoexistenceParameters,		/**< */
+
+				/* must be last!!! */
+				MIB_lastElem	= 0xFFFF			/**< */
+
+} EMib;
+
+/** \enum ETwdParam
+ * \brief TWD Control parameter ID
+ * 
+ * \par Description
+ * FW Parmaeter Information Identifier
+ * 
+ * \sa TWD_SetParam, TWD_GetParam
+ */
+typedef enum
+{
+/*	0x01	*/	TWD_RTS_THRESHOLD_PARAM_ID          = 0x01,		/**< */
+/*	0x02	*/  TWD_FRAG_THRESHOLD_PARAM_ID,					/**< */
+/*	0x03	*/  TWD_COUNTERS_PARAM_ID,							/**< */
+/*	0x04	*/  TWD_LISTEN_INTERVAL_PARAM_ID,					/**< */
+/*	0x05	*/  TWD_BEACON_INTERVAL_PARAM_ID,					/**< */
+/*	0x06	*/  TWD_TX_POWER_PARAM_ID,    						/**< */
+/*	0x07	*/  TWD_CLK_RUN_ENABLE_PARAM_ID,					/**< */
+/*	0x08	*/  TWD_QUEUES_PARAM_ID, 							/**< */
+/*	0x09	*/  TWD_TX_RATE_CLASS_PARAM_ID,						/**< */
+/*	0x0A	*/  TWD_MAX_TX_MSDU_LIFE_TIME_PARAM_ID,				/**< */
+/*	0x0B	*/  TWD_MAX_RX_MSDU_LIFE_TIME_PARAM_ID,				/**< */
+/*	0x0C	*/  TWD_CTS_TO_SELF_PARAM_ID,						/**< */
+/*	0x0D	*/  TWD_RX_TIME_OUT_PARAM_ID,						/**< */
+/*	0x0E	*/  TWD_BCN_BRC_OPTIONS_PARAM_ID,					/**< */
+/*	0x0F	*/	TWD_AID_PARAM_ID,								/**< */
+/*	0x10	*/  TWD_RSN_HW_ENC_DEC_ENABLE_PARAM_ID,  			/**< */
+/*	0x11	*/  TWD_RSN_KEY_ADD_PARAM_ID,						/**< */
+/*	0x12	*/  TWD_RSN_KEY_REMOVE_PARAM_ID,					/**< */
+/*	0x13	*/  TWD_RSN_DEFAULT_KEY_ID_PARAM_ID,				/**< */
+/*	0x14	*/  TWD_RSN_SECURITY_MODE_PARAM_ID,					/**< */
+/*	0x15	*/  TWD_RSN_SECURITY_ALARM_CB_SET_PARAM_ID,			/**< */
+/*	0x16	*/  TWD_ACX_STATISTICS_PARAM_ID,					/**< */
+/*	0x17	*/  TWD_MEDIUM_OCCUPANCY_PARAM_ID,					/**< */
+/*	0x18	*/  TWD_DISABLE_POWER_MANAGEMENT_AUTO_CONFIG_PARAM_ID,	/**< */
+/*	0x19	*/  TWD_ENABLE_POWER_MANAGEMENT_AUTO_CONFIG_PARAM_ID,	/**< */
+/*	0x1A	*/  TWD_SG_ENABLE_PARAM_ID,							/**< */
+/*	0x1B	*/  TWD_SG_CONFIG_PARAM_ID,							/**< */
+#ifdef XCC_MODULE_INCLUDED
+/*	0x1C	*/  TWD_RSN_XCC_SW_ENC_ENABLE_PARAM_ID,				/**< */
+/*	0x1D	*/  TWD_RSN_XCC_MIC_FIELD_ENABLE_PARAM_ID,			/**< */
+#endif /* XCC_MODULE_INCLUDED*/
+/*	0x1E	*/  TWD_TX_OP_LIMIT_PARAM_ID,						/**< */
+/*	0x1F	*/  TWD_NOISE_HISTOGRAM_PARAM_ID,					/**< */
+/*	0x20	*/  TWD_TSF_DTIM_MIB_PARAM_ID,						/**< */
+/*	0x21	*/  TWD_REVISION_PARAM_ID,							/**< */
+/*	0x22	*/  TWD_CURRENT_CHANNEL_PARAM_ID,					/**< */
+/*	0x23	*/	TWD_RADIO_TEST_PARAM_ID,						/**< */
+/*	0x24	*/	TWD_RSSI_LEVEL_PARAM_ID,						/**< */
+/*	0x25	*/	TWD_SNR_RATIO_PARAM_ID,							/**< */
+/*	0x26	*/	TWD_COEX_ACTIVITY_PARAM_ID,	    				/**< */
+/*	0x27	*/	TWD_FM_COEX_PARAM_ID,	    				    /**< */
+/*	0x28	*/	TWD_DCO_ITRIM_PARAMS_ID,    				    /**< */
+
+				/* must be last!!! */
+/*	0x29    */	TWD_LAST_PARAM_ID								/**< */
+} ETwdParam;
+
+/** \enum ETwdCallbackOwner
+ * \brief TWD Callback Module owner ID
+ * 
+ * \par Description
+ * The Owner ID defines a specific TWD Module
+ * 
+ * \sa ETwdEventId, TWD_RegisterCb
+ */
+typedef enum
+{
+    TWD_OWNER_DRIVER_TX_XFER            = 0x0100,	/**< 	TX Xfer Owner ID  		*/    
+    TWD_OWNER_RX_XFER                   = 0x0200,	/**< 	RX Xfer Owner ID  		*/    
+    TWD_OWNER_SELF                      = 0x0300,	/**< 	Self Owner ID  			*/    
+    TWD_OWNER_MAC_SERVICES              = 0x0400,	/**< 	MAC Services Owner ID  	*/    
+    TWD_OWNER_TX_RESULT                 = 0x0500,	/**< 	TX Result Owner ID  	*/    
+    TWD_OWNER_SELF_CONFIG               = 0x0600,	/**< 	Self configuration of Owner ID  	*/    
+    TWD_OWNER_RX_QUEUE                  = 0x0700,	/**< 	RX Queue Owner ID  		*/    
+    TWD_OWNER_TX_HW_QUEUE               = 0x0800	/**< 	TX HW Queue Owner ID  	*/    
+
+} ETwdCallbackOwner;
+
+/** \enum ETwdIntCallbackId
+ * \brief TWD Internal Callbacks ID
+ * 
+ * \par Description
+ * The Owner ID defines a specific TWD Internal CB
+ * 
+ * \sa ETwdEventId
+ */
+typedef enum
+{
+    TWD_INT_SEND_PACKET_TRANSFER        =  0x00 ,	/**< 	Tx Data Path Send Callback  	*/    
+    TWD_INT_SEND_PACKET_COMPLETE                , 	/**< 	Tx Data Path Complete Callback 	*/   
+    TWD_INT_UPDATE_BUSY_MAP                     , 	/**< 	Tx Data Path Update-Busy-Map Callback 	*/   
+
+    /* Rx Data Path Callbacks */
+    TWD_INT_RECEIVE_PACKET              =  0x10 ,	/**< 	Rx Data Path Receive Packet Callback 	   	*/    
+    TWD_INT_REQUEST_FOR_BUFFER                  , 	/**< 	Rx Data Path Request for buffer Callback  	*/   
+    
+    /* TWD Callbacks */
+    TWD_INT_COMMAND_COMPLETE            =  0x20 , 	/**< 	TWD internal Command Complete Callback  	*/   
+    TWD_INT_EVENT_FAILURE  							/**< 	TWD internal Event Failure handle Callback 	*/        
+
+} ETwdIntCallbackId;
+
+/** \enum ETwdOwnEventId
+ * \brief Event Mail Box ID
+ * 
+ * \par Description
+ * Clients That expects an event should register for it, 
+ * and Mask/UnMask Events with this ID
+ * 
+ * \sa
+ */
+/* Note: changes here should be reflected also in eventTable in eventMbox.c !!! */
+typedef enum 
+{
+			/*Regular events*/
+/*	0	*/  TWD_OWN_EVENT_RSSI_SNR_TRIGGER_0 = 0,       /**< */
+/*	1	*/  TWD_OWN_EVENT_RSSI_SNR_TRIGGER_1,           /**< */
+/*	2	*/  TWD_OWN_EVENT_RSSI_SNR_TRIGGER_2,           /**< */
+/*	3	*/  TWD_OWN_EVENT_RSSI_SNR_TRIGGER_3,           /**< */
+/*	4	*/  TWD_OWN_EVENT_RSSI_SNR_TRIGGER_4,          	/**< */
+/*	5	*/  TWD_OWN_EVENT_RSSI_SNR_TRIGGER_5,           /**< */
+/*	6	*/  TWD_OWN_EVENT_RSSI_SNR_TRIGGER_6,           /**< */
+/*	7	*/  TWD_OWN_EVENT_RSSI_SNR_TRIGGER_7,           /**< */
+/*	8	*/	TWD_OWN_EVENT_MEASUREMENT_START,            /**< */
+/*	9	*/  TWD_OWN_EVENT_MEASUREMENT_COMPLETE,         /**< */
+/*	10	*/	TWD_OWN_EVENT_SCAN_CMPLT,                   /**< */
+/*	11	*/  TWD_OWN_EVENT_SPS_SCAN_CMPLT,               /**< */
+/*	12	*/  TWD_OWN_EVENT_AP_DISCOVERY_COMPLETE,        /**< */
+/*	13	*/  TWD_OWN_EVENT_PS_REPORT,                    /**< */
+/*	14	*/	TWD_OWN_EVENT_PSPOLL_DELIVERY_FAILURE, 		/**< */
+/*	15	*/  TWD_OWN_EVENT_DISCONNECT_COMPLETE,          /**< */
+/*	16	*/  TWD_OWN_EVENT_JOIN_CMPLT,                   /**< */
+/*	17	*/  TWD_OWN_EVENT_SWITCH_CHANNEL_CMPLT,         /**< */
+/*	18	*/  TWD_OWN_EVENT_BSS_LOSE,                     /**< */
+/*	19	*/  TWD_OWN_EVENT_BSS_REGAIN,                   /**< */
+/*	20	*/  TWD_OWN_EVENT_MAX_TX_RETRY,                 /**< */
+/*  21  */  RESERVED21,									/**< */
+/*	22	*/  TWD_OWN_EVENT_SOFT_GEMINI_SENSE,            /**< */
+/*	23	*/  TWD_OWN_EVENT_SOFT_GEMINI_PREDIC,           /**< */
+/*	24	*/  TWD_OWN_EVENT_SOFT_GEMINI_AVALANCHE,        /**< */
+/*	25	*/  TWD_OWN_EVENT_PLT_RX_CALIBRATION_COMPLETE,  /**< */
+/*  26  */  TWD_DBG_EVENT,								/**< */
+/*  27  */  TWD_HEALTH_CHECK_REPLY_EVENT,				/**< */
+/*	28	*/  TWD_OWN_EVENT_PERIODIC_SCAN_COMPLETE,       /**< */
+/*	29	*/  TWD_OWN_EVENT_PERIODIC_SCAN_REPORT,         /**< */
+/*  30  */  TWD_BA_SESSION_TEAR_DOWN_EVENT,				/**< */
+/*	31	*/  TWD_OWN_EVENT_ALL,                          /**< */
+/*	32	*/  TWD_OWN_EVENT_MAX                          	/**< */ 
+
+} ETwdOwnEventId;   
+
+/** \enum ETwdEventId
+ * \brief TNETW Driver Event ID
+ * 
+ * \par Description
+ * The TWD Event ID is used by user for registering a TWD Internal CB 
+ * which will handle a TWD Event.
+ * Each field in this enum is an ID of TWD Event, and is combined of two IDs: 
+ * TWD CB Owner (Module) ID and TWD Internal CB ID. Therefore, the CB is registered accordeing to
+ * Module (Owner) and Internal CB Id.
+ * 
+ * \sa TWD_RegisterCb, ETwdCallbackOwner, ETwdIntCallbackId
+ */
+typedef enum
+{
+    /* Internal Failure Event Callbacks */
+    TWD_EVENT_FAILURE                   	=  TWD_OWNER_SELF | TWD_INT_EVENT_FAILURE, 					/**< 	Failure Internal Event ID 			*/
+    TWD_EVENT_COMMAND_COMPLETE          	=  TWD_OWNER_SELF | TWD_INT_COMMAND_COMPLETE,  				/**< 	Command Complete Internal Event ID */
+    
+    /* Tx Data Path Callbacks */
+    TWD_EVENT_TX_XFER_SEND_PKT_TRANSFER 	=  TWD_OWNER_DRIVER_TX_XFER | TWD_INT_SEND_PACKET_TRANSFER,	/**< 	TX Data Path Send Packet Event ID 			*/
+    TWD_EVENT_TX_RESULT_SEND_PKT_COMPLETE	=  TWD_OWNER_TX_RESULT | TWD_INT_SEND_PACKET_COMPLETE,      /**< 	TX Data Path Send Packet Complete Event ID 	*/
+    TWD_EVENT_TX_HW_QUEUE_UPDATE_BUSY_MAP   =  TWD_OWNER_TX_HW_QUEUE | TWD_INT_UPDATE_BUSY_MAP,         /**< 	TX Data Path Update-Busy-Map Event ID 	*/
+
+    /* Rx Data Path Callbacks */
+    TWD_EVENT_RX_REQUEST_FOR_BUFFER     	=  TWD_OWNER_RX_XFER | TWD_INT_REQUEST_FOR_BUFFER,         	/**< 	RX Data Path Request for Buffer Internal Event ID 	*/
+    TWD_EVENT_RX_RECEIVE_PACKET         	=  TWD_OWNER_RX_QUEUE | TWD_INT_RECEIVE_PACKET             	/**< 	RX Data Path Receive Packet Internal Event ID  	*/
+
+} ETwdEventId;
+
+#ifdef TI_DBG
+/** \enum ETwdPrintInfoType
+ * \brief TWD print functions codes
+ * 
+ * \par Description
+ * Used for Debug - determines which Tx Info to print
+ * 
+ * \sa TWD_PrintTxInfo
+ */
+typedef enum
+{
+/*	0	*/	TWD_PRINT_TX_CTRL_BLK_TBL = 0,	/**< 	Print TX Control Block Information	*/
+/*	1	*/  TWD_PRINT_TX_HW_QUEUE_INFO,		/**< 	Print TX HW Queue Information 		*/
+/*	2	*/  TWD_PRINT_TX_XFER_INFO,			/**< 	Print TX XFER Information 			*/
+/*	3	*/  TWD_PRINT_TX_RESULT_INFO,		/**< 	Print TX Result Information 		*/
+/*	4	*/  TWD_CLEAR_TX_RESULT_INFO		/**< 	Clear TX Result Information			*/
+
+} ETwdPrintInfoType;
+#endif
+
+/** \enum EIpVer
+ * \brief IP Version
+ * 
+ * \par Description
+ * 
+ * \sa TWD_PrintTxInfo
+ */
+typedef enum
+{
+/*	0	*/	IP_VER_4 = 0, 	/**< */	
+/*	1	*/  IP_VER_6	 	/**< */
+
+} EIpVer;
+
+/** \enum EKeyType
+ * \brief Key Type
+ * 
+ * \par Description
+ * Security Key Type
+ * 
+ * \sa TSecurityKeys
+ */
+typedef enum
+{
+/*	0	*/  KEY_NULL = 0,	/**< */
+/*	1	*/  KEY_WEP,		/**< */
+/*	2	*/  KEY_TKIP,		/**< */
+/*	3	*/  KEY_AES,		/**< */
+/*	4	*/  KEY_XCC,    	/**< */
+#ifdef GEM_SUPPORT
+    /*  5   */  KEY_GEM
+#endif
+
+} EKeyType;
+
+/** \enum ERegistryTxRate
+ * \brief TX Rate Type
+ * 
+ * \par Description
+ * 
+ * \sa
+ */
+/* Make it same as "rate_e" */
+typedef enum
+{
+/* This value is reserved if this enum is used for MgmtCtrlTxRate - the auto mode is only valid for data packets */  
+/*	0	*/	REG_RATE_AUTO_BIT = 0, 		/**< */
+/*	1	*/	REG_RATE_1M_BIT,			/**< */
+/*	2	*/	REG_RATE_2M_BIT,			/**< */
+/*	3	*/	REG_RATE_5_5M_CCK_BIT,		/**< */
+/*	4	*/	REG_RATE_11M_CCK_BIT,		/**< */
+/*	5	*/	REG_RATE_22M_PBCC_BIT,		/**< */
+/*	6	*/	REG_RATE_6M_OFDM_BIT,		/**< */
+/*	7	*/	REG_RATE_9M_OFDM_BIT,		/**< */
+/*	8	*/	REG_RATE_12M_OFDM_BIT,		/**< */
+/*	9	*/	REG_RATE_18M_OFDM_BIT,		/**< */
+/*	10	*/	REG_RATE_24M_OFDM_BIT,		/**< */
+/*	11	*/	REG_RATE_36M_OFDM_BIT,		/**< */
+/*	12	*/	REG_RATE_48M_OFDM_BIT,		/**< */
+/*	13	*/	REG_RATE_54M_OFDM_BIT,		/**< */
+/*	14	*/	REG_RATE_MCS0_OFDM_BIT,		/**< */
+/*	15	*/	REG_RATE_MCS1_OFDM_BIT,		/**< */
+/*	16	*/	REG_RATE_MCS2_OFDM_BIT,		/**< */
+/*	17	*/	REG_RATE_MCS3_OFDM_BIT,		/**< */
+/*	18	*/	REG_RATE_MCS4_OFDM_BIT,		/**< */
+/*	19	*/	REG_RATE_MCS5_OFDM_BIT,		/**< */
+/*	20	*/	REG_RATE_MCS6_OFDM_BIT,		/**< */
+/*	21	*/	REG_RATE_MCS7_OFDM_BIT		/**< */
+
+} ERegistryTxRate;
+
+/** \enum EFailureEvent
+ * \brief Failure Event
+ * 
+ * \par Description
+ * Used as a parameter for Failure Event CB - 
+ * Inicates Failure Event ID, according which the Failure 
+ * Event's data is driven
+ * 
+ * \sa TWD_RegisterOwnCb, TFailureEventCb
+ */
+typedef enum
+{
+/*	-1	*/	NO_FAILURE = -1,				/**< 	No Failure Event					*/
+/*	0	*/	NO_SCAN_COMPLETE_FAILURE = 0,	/**< 	No Scan Complete Failure Event		*/
+/*	1	*/	MBOX_FAILURE,					/**< 	Mail Box Failure Event				*/
+/*	2	*/	HW_AWAKE_FAILURE,				/**< 	HW Awake Failure Event				*/
+/*	3	*/	TX_STUCK,						/**< 	TX STUCK Failure Event				*/
+/*	4	*/	DISCONNECT_TIMEOUT,				/**< 	Disconnect Timeout Failure Event	*/
+/*	5	*/	POWER_SAVE_FAILURE,				/**< 	Power Save Failure Event			*/
+/*	6	*/	MEASUREMENT_FAILURE,			/**< 	Measurement Failure Event			*/
+/*	7	*/	BUS_FAILURE,					/**< 	Bus Failure Event					*/
+/*	8	*/	HW_WD_EXPIRE,					/**< 	HW Watchdog Expire Event			*/
+
+/* must be last!!! */
+/*	9	*/	MAX_FAILURE_EVENTS				/**< 	Maximum number of Failure Events	*/
+
+} EFailureEvent;
+
+/** \enum ETemplateType
+ * \brief Template Type
+ * 
+ * \par Description
+ * Used for setting/Getting a Template to/from FW
+ * 
+ * \sa TWD_CmdTemplate, TWD_WriteMibTemplateFrame, TSetTemplate TWD_GetTemplate
+ */
+typedef enum
+{
+/*	0	*/	NULL_DATA_TEMPLATE = 0,		/**< NULL Data Template						*/
+/*	1	*/	BEACON_TEMPLATE,        	/**< Beacon Template						*/
+/*	2	*/	PROBE_REQUEST_TEMPLATE,     /**< PROBE Request Template					*/
+/*	3	*/	PROBE_RESPONSE_TEMPLATE,	/**< PROBE Response Template				*/
+/*	4	*/	QOS_NULL_DATA_TEMPLATE,		/**< Quality Of Service NULL Data Template	*/
+/*	5	*/	PS_POLL_TEMPLATE,			/**< Power Save Poll Template				*/
+/*	6	*/	KEEP_ALIVE_TEMPLATE,		/**< Keep Alive Template 					*/
+/*	7	*/	DISCONN_TEMPLATE			/**< Disconn (Deauth/Disassoc) Template		*/
+} ETemplateType;
+
+
+
+
+typedef enum
+{
+    KEY_WEP_DEFAULT       = 0,
+    KEY_WEP_ADDR          = 1,
+    KEY_AES_GROUP         = 4,
+    KEY_AES_PAIRWISE      = 5,
+    KEY_WEP_GROUP         = 6,
+    KEY_TKIP_MIC_GROUP    = 10,
+    KEY_TKIP_MIC_PAIRWISE = 11
+} KeyType_enum;
+
+
+/** \enum ECipherSuite
+ * \brief CHIPHER Suite
+ * 
+ * \par Description
+ * Available cipher suites for admission control
+ * 
+ * \sa 
+ */
+typedef enum
+{
+/*	0	*/	TWD_CIPHER_NONE = 0,			/**< no cipher suite 		*/
+/*	1	*/	TWD_CIPHER_WEP,        			/**< WEP-40 cipher suite 	*/
+/*	2	*/	TWD_CIPHER_TKIP,        		/**< TKIP cipher suite      */
+/*	3	*/	TWD_CIPHER_AES_WRAP,    		/**< AES WRAP cipher suite  */
+/*	4	*/	TWD_CIPHER_AES_CCMP,    		/**< AES CCMP cipher suite  */
+/*	5	*/	TWD_CIPHER_WEP104,      		/**< WEP-104 cipher suite 	*/
+/*	6	*/	TWD_CIPHER_CKIP,        		/**< CKIP cipher suite      */
+#ifdef GEM_SUPPORT
+    /*	7	*/	TWD_CIPHER_GEM,         		/**< GEM cipher suite       */
+#endif
+            TWD_CIPHER_MAX,         		
+
+			TWD_CIPHER_UNKNOWN	= 255       /**< UNKNOWN chpiher suite 	*/
+
+} ECipherSuite;
+
+/** \enum E80211PsMode
+ * \brief 802.11 Power Save Mode
+ * 
+ * \par Description
+ * 
+ * \sa TWD_Scan, TWD_SetPsMode
+ */
+typedef enum 
+{
+/*	0	*/	POWER_SAVE_OFF = 0,		/**< 	power save 802.11 OFF   		*/
+/*	1	*/	POWER_SAVE_ON,			/**< 	power save 802.11 ON  			*/    
+/*	2	*/	POWER_SAVE_KEEP_CURRENT	/**< 	power save 802.11 don't change 	*/
+
+} E80211PsMode;
+
+/** \enum E80211PsStatus
+ * \brief Set Power Save mode status
+ * 
+ * \par Description
+ * 
+ * \sa 
+ */
+typedef enum
+{
+/*	1	*/	POWER_SAVE_802_11_SUCCESS = 1,	/**< 	power save mode Success   	*/
+/*	2	*/	POWER_SAVE_802_11_FAIL,			/**< 	power save mode Fail    	*/
+/*	3	*/	POWER_SAVE_802_11_NOT_ALLOWED,	/**< 	power save mode Not Allowed	*/
+/*	4	*/	POWER_SAVE_802_11_PENDING,		/**< 	power save mode Pending    	*/
+/*	5	*/	POWER_SAVE_802_11_IS_CURRENT	/**< 	power save mode Is Current 	*/
+
+} E80211PsStatus;
+
+/** \enum EElpCtrlMode
+ * \brief ELP Control Mode
+ * 
+ * \par Description
+ * 
+ * \sa 
+ */
+typedef enum 
+{
+/*	0	*/	ELPCTRL_MODE_NORMAL = 0,	/**< ALP Control mode Normal   		*/
+/*	1	*/	ELPCTRL_MODE_KEEP_AWAKE		/**< ALP Control mode Keep Awake   	*/
+
+} EElpCtrlMode;
+
+/** \enum EPreamble
+ * \brief Preamble Type
+ * 
+ * \par Description
+ * 
+ * \sa TWD_CfgPreamble
+ */
+typedef enum
+{
+    PREAMBLE_LONG       	= 0,	/**< Preamble type Long   			*/
+    PREAMBLE_SHORT          = 1,	/**< Preamble type Short   			*/
+
+    PREAMBLE_UNSPECIFIED    = 0xFF	/**< Preamble type Not Specified   	*/
+
+} EPreamble;
+
+/** \enum ENoiseHistogramCmd
+ * \brief Noise Histogram Type
+ * 
+ * \par Description
+ * 
+ * \sa TNoiseHistogram, TWD_CmdNoiseHistogram
+ */
+typedef enum
+{
+     STOP_NOISE_HIST                    = 0,	/**< Stop Noise Histogram	*/
+     START_NOISE_HIST                   = 1		/**< Start Noise Histogram	*/
+
+} ENoiseHistogramCmd;
+
+/** \enum ETnetWakeOn
+ * \brief ACX Wake Up Condition
+ * 
+ * \par Description
+ * 
+ * \sa TPowerMgmtConfig, TWD_CfgWakeUpCondition
+ */
+typedef enum 
+{
+    
+/*	0	*/	TNET_WAKE_ON_BEACON = 0,       	/**< Indicate the wake on event of the HW - beacon.
+											* In this event the HW configure to be awake on every beacon.
+											*/
+
+/*	1	*/	TNET_WAKE_ON_DTIM,             /**< Indicate the wake on event of the HW - DTIM. In this event
+											* the HW configure to be awake on every DITM (configure by the AP).
+											*/
+
+/*	2	*/	TNET_WAKE_ON_N_BEACON,          /**< Indicate the wake on event of the HW - listen interval.
+											* In this event the HW configure to be awake on every
+											* configured number of beacons.
+											*/
+
+/*	3	*/	TNET_WAKE_ON_N_DTIM,            /**< Indicate the wake on event of the HW - listen interval.
+											* In this event the HW configure to be awake on every
+											* configured number of beacons.
+											*/
+
+/*	4	*/	TNET_WAKE_ON_HOST              /**< Indicate the wake on event of the HW - Host access only
+											*/
+                                
+} ETnetWakeOn;
+
+/** \enum ETxAntenna
+ * \brief TX Antenna Types
+ * 
+ * \par Description
+ * 
+ * \sa TGeneralInitParams, TTwdParamContents
+ */
+typedef enum
+{
+    TX_ANTENNA_2	= 0, 	/**< */   
+    TX_ANTENNA_1    = 1		/**< */
+
+} ETxAntenna;
+
+/** \enum ERxAntenna
+ * \brief RX Antenna Types
+ * 
+ * \par Description
+ * 
+ * \sa TGeneralInitParams, TTwdParamContents
+ */
+typedef enum
+{
+/*	0	*/	RX_ANTENNA_1 = 0,	/**< */
+/*	1	*/	RX_ANTENNA_2,		/**< */
+/*	2	*/	RX_ANTENNA_FULL,	/**< */
+/*	3	*/	RX_ANTENNA_PARTIAL	/**< */
+
+} ERxAntenna;
+
+/** \enum EPowerPolicy
+ * \brief Save Power Level Policy
+ * 
+ * \par Description
+ * 
+ * \sa TWD_CfgSleepAuth
+ */
+typedef enum 
+{
+/*	0	*/	POWERAUTHO_POLICY_ELP = 0,	/**< */
+/*	1	*/	POWERAUTHO_POLICY_PD,		/**< */
+/*	2	*/	POWERAUTHO_POLICY_AWAKE,	/**< */
+/*	3	*/	POWERAUTHO_POLICY_NUM		/**< */
+
+} EPowerPolicy;
+
+/** \enum ESoftGeminiEnableModes
+ * \brief Soft-Gemini Enable Modes
+ * 
+ * \par Description
+ * 
+ * \sa
+ */
+typedef enum
+{
+/*	0	*/	SG_DISABLE = 0,			/**< */
+/*	1	*/	SG_PROTECTIVE,			    /**< */
+/*	2	*/	SG_OPPORTUNISTIC,	/**< */
+
+
+} ESoftGeminiEnableModes;
+/** \enum ESoftGeminiEnableProfile
+ * \brief Soft-Gemini Profile Modes for Symbian configuration
+ * 
+ * \par Description
+ * 
+ * \sa
+ */
+typedef enum
+{
+    BtCoexProfData = 0,
+    BtCoexProfDataLowLatency,
+    BtCoexProfA2DP
+}ESoftGeminiEnableProfile;
+
+
+/** \enum EMibTemplateType
+ * \brief MIB Template type
+ * 
+ * \par Description
+ * 
+ * \sa
+ */
+typedef enum
+{                                       	
+/*	0	*/ 	TEMPLATE_TYPE_BEACON = 0,           /**< 	BEACON template 			*/
+/*	1	*/  TEMPLATE_TYPE_PROBE_REQUEST,        /**< 	PROB template 				*/
+/*	2	*/  TEMPLATE_TYPE_NULL_FRAME,           /**< 	NULL FRAM template 			*/
+/*	3	*/  TEMPLATE_TYPE_PROBE_RESPONSE,       /**< 	PROB Response template 		*/
+/*	4	*/  TEMPLATE_TYPE_QOS_NULL_FRAME,       /**< 	QOS Null Frame template 	*/
+/*	5	*/  TEMPLATE_TYPE_PS_POLL               /**< 	Power Save Poll template	*/
+
+} EMibTemplateType;
+
+
+/** \enum ERxFailure
+ * \brief RX Failure/Error
+ * 
+ * \par Description
+ * 
+ * \sa
+ */
+typedef enum
+{
+/*	0	*/	RX_FAILURE_NONE = 0,		/**< No Failure		*/
+/*	1	*/	RX_FAILURE_DECRYPT,         /**< DeCrypt Failure	*/
+/*	2	*/	RX_FAILURE_MIC_ERROR,		/**< MIC Error		*/
+} ERxFailure;
+
+/** \enum ETwdChannelWidth
+ * \brief TWD Channel Width
+ * 
+ * \par Description
+ * Used for Configure HT Capabilities Settings
+ * 
+ * \sa TWD_SetDefaults, TTwdHtCapabilities
+ */
+typedef enum
+{   
+/*	0	*/	CHANNEL_WIDTH_20MHZ = 0,		/**< 20MHZ Channel Width	*/
+/*	1	*/  CHANNEL_WIDTH_40MHZ_20MHZ		/**< 40-20MHZ Channel Width	*/
+} ETwdChannelWidth;
+
+/** \enum ETwdRxSTBC
+ * \brief RX STBC Spatial Stream Supported
+ * 
+ * \par Description
+ * Indicates how many RX STBC Spatial Stream are Supported
+ * Used for Configure HT Capabilities Settings
+ * 
+ * \sa TWD_SetDefaults, TTwdHtCapabilities
+ */
+typedef enum
+{   
+/*	0	*/	RXSTBC_NOT_SUPPORTED  =   0,							/**< No Spatial Stream Supported					*/
+/*	1	*/  RXSTBC_SUPPORTED_ONE_SPATIAL_STREAM, 					/**< One Spatial Stream Supported					*/
+/*	2	*/  RXSTBC_SUPPORTED_ONE_AND_TWO_SPATIAL_STREAMS,			/**< One and Two Spatial Stream Supported			*/
+/*	3	*/  RXSTBC_SUPPORTED_ONE_TWO_AND_THREE_SPATIAL_STREAMS	/**< One, Two and Three Spatial Stream Supported	*/
+
+} ETwdRxSTBC;
+
+/** \enum ETwdMaxAMSDU
+ * \brief Maximum MSDU Octets
+ * 
+ * \par Description
+ * Used for Configure HT Capabilities Settings
+ * 
+ * \sa TWD_SetDefaults, TTwdHtCapabilities
+ */
+typedef enum
+{   
+/*	0	*/	MAX_MSDU_3839_OCTETS = 0,	/**< Maximum MSDU Octets Number: 3839	*/
+/*	1	*/  MAX_MSDU_7935_OCTETS		/**< Maximum MSDU Octets Number: 7935	*/
+
+} ETwdMaxAMSDU;
+
+/** \enum ETwdMaxAMPDU
+ * \brief Maximum MPDU Octets
+ * 
+ * \par Description
+ * Indicates What is the Maximum MPDU Octets Number
+ * Used for Configure HT Capabilities Settings
+ * 
+ * \sa TWD_SetDefaults, TTwdHtCapabilities
+ */
+typedef enum
+{   
+/*	0	*/	MAX_MPDU_8191_OCTETS = 0,	/**< Maximum MPDU Octets Number: 8191	*/
+/*	1	*/  MAX_MPDU_16383_OCTETS,		/**< Maximum MPDU Octets Number: 16383	*/
+/*	2	*/  MAX_MPDU_32767_OCTETS,		/**< Maximum MPDU Octets Number: 32767	*/
+/*	3	*/  MAX_MPDU_65535_OCTETS		/**< Maximum MPDU Octets Number: 65535	*/
+
+} ETwdMaxAMPDU;
+
+/** \enum ETwdAMPDUSpacing
+ * \brief TWD AMPDU Spacing
+ * 
+ * \par Description
+ * Indicates What is the Time Spacing of AMPDU
+ * Used for Configure HT Capabilities Settings
+ * 
+ * \sa TWD_SetDefaults, TTwdHtCapabilities
+ */
+typedef enum
+{   
+/*	0	*/	AMPDU_SPC_NO_RESTRCITION =  0,	/**< No Restriction on AMPDU Time Spacing	*/ 	    
+/*	1	*/	AMPDU_SPC_1_4_MICROSECONDS, 	/**< 1/4 Microsecond AMPDU Time Spacing   	*/
+/*	2	*/	AMPDU_SPC_1_2_MICROSECONDS, 	/**< 1/2 Microsecond AMPDU Time Spacing   	*/
+/*	3	*/	AMPDU_SPC_1_MICROSECOND,  		/**< 1 Microsecond AMPDU Time Spacing   	*/
+/*	4	*/	AMPDU_SPC_2_MICROSECONDS,		/**< 2 Microsecond AMPDU Time Spacing   	*/
+/*	5	*/	AMPDU_SPC_4_MICROSECONDS,		/**< 4 Microsecond AMPDU Time Spacing   	*/
+/*	6	*/	AMPDU_SPC_8_MICROSECONDS,		/**< 8 Microsecond AMPDU Time Spacing   	*/
+/*	7	*/	AMPDU_SPC_16_MICROSECONDS 		/**< 16 Microsecond AMPDU Time Spacing   	*/
+
+} ETwdAMPDUSpacing;
+
+/** \enum ETwdMcsSupport
+ * \brief TWD MCS Support
+ * 
+ * \par Description
+ * BIT Mapp which Indicates What is the Tx/rx MCS Support Enabled
+ * Used for Configure HT Capabilities Settings
+ * 
+ * \sa TWD_SetDefaults, TTwdHtCapabilities
+ */
+typedef enum
+{   
+/*	1	*/	MCS_SUPPORT_MCS_0   =  BIT_0,	/**< BIT 0	*/
+/*	2	*/	MCS_SUPPORT_MCS_1   =  BIT_1,	/**< BIT 1	*/
+/*	3	*/	MCS_SUPPORT_MCS_2   =  BIT_2,	/**< BIT 2	*/
+/*	4	*/	MCS_SUPPORT_MCS_3   =  BIT_3,	/**< BIT 3	*/
+/*	5	*/	MCS_SUPPORT_MCS_4   =  BIT_4,	/**< BIT 4	*/
+/*	6	*/	MCS_SUPPORT_MCS_5   =  BIT_5,	/**< BIT 5	*/
+/*	7	*/	MCS_SUPPORT_MCS_6   =  BIT_6,	/**< BIT 6	*/
+/*	8	*/	MCS_SUPPORT_MCS_7   =  BIT_7	/**< BIT 7	*/
+
+} ETwdMcsSupport;
+
+/** \enum ETwdPCOTransTime
+ * \brief TWD PCO Transition Time
+ * 
+ * \par Description
+ * Indicates What is the PCO Transition Time
+ * Used for Configure HT Capabilities Settings
+ * 
+ * \sa TWD_SetDefaults, TTwdHtCapabilities
+ */
+typedef enum
+{   
+/*	0	*/	PCO_TRANS_TIME_NO_TRANSITION = 0, 	/**< No PCO Transition Time					*/    
+/*	1	*/	PCO_TRANS_TIME_400_MICROSECONDS, 	/**< PCO Transition Time: 400 Microsecond	*/
+/*	2	*/	PCO_TRANS_TIME_1_5_MILLISECONDS, 	/**< PCO Transition Time: 1.5 Millisecond	*/
+/*	3	*/	PCO_TRANS_TIME_5_MILLISECONDS		/**< PCO Transition Time: 5 Millisecond		*/
+
+} ETwdPCOTransTime;
+
+/** \enum ETwdHTCapabilitiesBitMask
+ * \brief TWD HT Capabilities Bit Mask Mapping
+ * 
+ * \par Description
+ * Mapps the Bit Mask which are used for Making (Enabling/Disabling) 
+ * HT Capabilities 
+ * 
+ * \sa TWD_SetDefaults, TTwdHtCapabilities
+ */
+typedef enum
+{
+/*	1	*/	CAP_BIT_MASK_GREENFIELD_FRAME_FORMAT           =  BIT_0,	/**< BIT 0	*/
+/*	2	*/	CAP_BIT_MASK_SHORT_GI_FOR_20MHZ_PACKETS        =  BIT_1,	/**< BIT 1	*/
+/*	3	*/	CAP_BIT_MASK_SHORT_GI_FOR_40MHZ_PACKETS        =  BIT_2,	/**< BIT 2	*/
+/*	4	*/	CAP_BIT_MASK_SUPPORT_FOR_STBC_IN_TRANSMISSION  =  BIT_3,	/**< BIT 3	*/
+/*	5	*/	CAP_BIT_MASK_DELAYED_BLOCK_ACK                 =  BIT_4,	/**< BIT 4	*/
+/*	6	*/	CAP_BIT_MASK_DSSS_CCK_IN_40_MHZ                =  BIT_5,	/**< BIT 5	*/
+/*	7	*/	CAP_BIT_MASK_LSIG_TXOP_PROTECTION              =  BIT_6,	/**< BIT 6	*/
+/*	8	*/	CAP_BIT_MASK_PCO                               =  BIT_7,	/**< BIT 7	*/
+/*	9	*/	CAP_BIT_MASK_LDPC_CODING                       =  BIT_8		/**< BIT 8	*/
+
+} ETwdHTCapabilitiesBitMask;
+
+/** \enum ETwdMCSFeedback
+ * \brief TWD MCS FeedBack
+ * 
+ * \par Description
+ * Indicates what is the MCS FeedBack Policy 
+ * Used for Configure HT Capabilities Settings
+ * 
+ * \sa TWD_SetDefaults, TTwdHtCapabilities
+ */
+typedef enum
+{   
+/*	0	*/	MCS_FEEDBACK_NO = 0,						/**< */
+/*	1	*/	MCS_FEEDBACK_RESERVED,						/**< */
+/*	2	*/	MCS_FEEDBACK_UNSOLICTED_ONLY,				/**< */
+/*	3	*/	MCS_FEEDBACK_BOTH_SOLICTED_AND_UNSOLICTED	/**< */
+} ETwdMCSFeedback;
+
+/** \enum ETwdTxMcsSet
+ * \brief TWD TX MCS Set
+ * 
+ * \par Description
+ * Indicates Whether to set Tx MCS
+ * 
+ * \sa
+ */
+typedef enum
+{   
+    TX_MCS_SET_NO   =   0, 	/**< Don't Set Tx MCS	*/ 
+    TX_MCS_SET_YES  =   1	/**< Set Tx MCS			*/
+} ETwdTxMcsSet;
+
+/** \enum ETwdTxRxNotEqual
+ * \brief TWD TX RX Not Equal
+ * 
+ * \par Description
+ * Indicates Whether the TX and RX channels are equal
+ * 
+ * \sa
+ */
+typedef enum
+{   
+    TX_RX_NOT_EQUAL_NO   =   0,	/**< TX and RX Channels are not equal	*/ 
+    TX_RX_NOT_EQUAL_YES  =   1	/**< TX and RX Channels are equal		*/ 
+} ETwdTxRxNotEqual;
+
+/** \enum ETwdHtcSupport
+ * \brief TWD HTc Support
+ * 
+ * \par Description
+ * Indicates Whether the HT Capability is Supported
+ * 
+ * \sa
+ */
+typedef enum
+{   
+    HTC_SUPPORT_NO   =   0,	/**< HT Capability is not Supported		*/ 
+    HTC_SUPPORT_YES  =   1	/**< HT Capability is Supported			*/ 
+} ETwdHtcSupport;
+
+/** \enum ESendCompleteStatus
+ * \brief Send complete status
+ * 
+ * \par Description
+ * Indicates the current Success/Failure Status of Completion of Send Operation
+ * 
+ * \sa
+ */
+typedef enum
+{
+/*	0	*/	SEND_COMPLETE_SUCCESS = 0,			/**< Send Complete Success: Completion of Send Operation is OK					
+												*/
+/*	1	*/	SEND_COMPLETE_RETRY_EXCEEDED,		/**< Send Complete Retry Exceeded: 
+												* Completion of Send Operation filed because it Exceeded Allowed retries Number	
+												*/
+/*	2	*/	SEND_COMPLETE_LIFETIME_EXCEEDED,	/**< Send Complete Lifetiem Exceeded: 
+												* Completion of Send Operation failed because it Exceeded Allowed Lifetime	
+												*/
+/*	3	*/	SEND_COMPLETE_NO_LINK,				/**< Send Complete No Link: 
+												* Completion of Send Operation failed because No Link was found  					
+												*/
+/*	4	*/	SEND_COMPLETE_MAC_CRASHED			/**< Send Complete MAC Crashed: 
+												* Completion of Send Operation failed because MAC Crashed							
+												*/
+} ESendCompleteStatus;
+
+/** \enum EPacketType
+ * \brief Packet type
+ * 
+ * \par Description
+ * 
+ * \sa
+ */
+typedef enum 
+{ 
+/*	0	*/	PACKET_DATA = 0, 	/**< */
+/*	1	*/	PACKET_CTRL, 		/**< */
+/*	2	*/	PACKET_MGMT 		/**< */
+
+} EPacketType;
+
+/** \enum ETxHwQueStatus
+ * \brief Status returned by txHwQueue_AllocResources 
+ * 
+ * \par Description
+ * 
+ * \sa
+ */
+typedef enum
+{   
+    TX_HW_QUE_STATUS_SUCCESS,       /* Resources available on current queue */
+    TX_HW_QUE_STATUS_STOP_CURRENT,  /* No resources, stop current queue and requeue the packet */
+    TX_HW_QUE_STATUS_STOP_NEXT      /* Resources available for this packet but not for another one, 
+                                          so just stop the current queue */
+} ETxHwQueStatus;
+
+/** \enum ERxBufferStatus
+ * \brief Status returned by TRequestForBufferCb 
+ * 
+ * \par Description
+ * 
+ * \sa
+ */
+typedef enum
+{   
+    RX_BUF_ALLOC_PENDING,
+    RX_BUF_ALLOC_COMPLETE,
+    RX_BUF_ALLOC_OUT_OF_MEM
+
+}ERxBufferStatus;
+
+
+/*
+ * --------------------------------------------------------------
+ *	Structures
+ * --------------------------------------------------------------
+ */
+/**
+ * \brief Get File Callback
+ * 
+ * \param  hCbHndl	- Handle to CB Object
+ * \return void 
+ * 
+ * \par Description
+ * The callback function type for GetFile users
+ * 
+ * \sa 	TFileInfo
+ */ 
+typedef void (*TGetFileCbFunc)(TI_HANDLE hCbHndl);
+
+/** \struct TFileInfo
+ * \brief File Information
+ * 
+ * \par Description
+ * Contains all needed information and structures for Getting file
+ * 
+ * \sa	TWD_InitFw
+ */ 
+typedef struct
+{
+    EFileType   	eFileType;  		/**< Requested file type */
+    TI_UINT8   		*pBuffer;    		/**< Pointer to Buffer into the file (or file portion) is copied from user space */
+    TI_UINT32   	uLength;    		/**< Length of data currently held in pBuffer */
+    TI_UINT32   	uOffset;    		/**< Offset in File of data currently held in pBuffer */
+    TI_UINT32   	uAddress;    		/**< Offset in File of data currently held in pBuffer */
+    TI_BOOL     	bLast;      		/**< TRUE indicates that we reached end of file */
+    void       		*hOsFileDesc;		/**< OAL file-descriptor handle for repeated access to same file (FW) */
+    TGetFileCbFunc  fCbFunc;			/**< CB function to call if file read is finished in a later context (future option) */
+    TI_HANDLE       hCbHndl;			/**< Handle to provide when calling fCbFunc */
+    TI_UINT32		uChunksLeft;		/**< Chunks Left to read from File (used if file is read in chunks) */
+    TI_UINT32		uChunkBytesLeft;	/**< Number of bytes of Last read chunk, which were not yet handled  */
+    TI_UINT32		uCrcCalc;			/**< Current Calculated CRC  */
+} TFileInfo;
+
+/** \struct T80211Header
+ * \brief 802.11 MAC header
+ * 
+ * \par Description
+ * 
+ * \sa
+ */ 
+typedef struct
+{
+    TI_UINT16                           fc;			/**< */
+    TI_UINT16                           dur;		/**< */
+    TMacAddr                            address1;	/**< */
+    TMacAddr                            address2;	/**< */
+    TMacAddr                            address3;	/**< */
+    TI_UINT16                           seq;		/**< */
+    TI_UINT16                           qos;		/**< */
+
+}  T80211Header;
+
+/** \struct TKeepAliveParams
+ * \brief Keep Alive Parameters
+ * 
+ * \par Description
+ * 
+ * \sa	TWD_CfgKeepAlive
+ */ 
+typedef struct
+{
+    TI_UINT8                index;		/**< */
+    TI_UINT8                enaDisFlag;	/**< */
+    TI_UINT32               interval;	/**< */
+    EKeepAliveTriggerType   trigType;	/**< */
+
+} TKeepAliveParams;
+
+/** \struct TPsRxStreaming
+ * \brief Power Save RX Streaming
+ * 
+ * \par Description
+ * The configuration of Rx streaming delivery in PS mode per TID
+ * 
+ * \sa	TWD_CfgKeepAlive
+ */ 
+typedef struct
+{
+    TI_UINT32               uTid;           /**< The configured TID (0-7) */
+    TI_UINT32               uStreamPeriod;  /**< The expected period between two packets of the delivered stream */
+    TI_UINT32               uTxTimeout;     /**< Start sending triggers if no Tx traffic triggers arrive for this priod */
+    TI_BOOL                 bEnabled;       /**< If TRUE enable this TID streaming, if FALSE disable it. */
+
+} TPsRxStreaming;
+
+/** \struct TDmaParams
+ * \brief DMA Parameters
+ * 
+ * \par Description
+ * Struct which holds DMA Rx/Tx Queues and Bufffers params
+ * 
+ * \sa
+ */ 
+typedef struct
+{
+    TI_UINT32                           NumRxBlocks;				/**< Allocated RX memory blocks number 	    */
+    TI_UINT32                           NumTxBlocks;				/**< Allocated TX memory blocks number      */
+    TI_UINT8                            NumStations;				/**< Number of Stations						*/
+    void                                *fwTxResultInterface;		/**< RX minimum Memory block number 		*/
+    TI_UINT8                            *fwRxCBufPtr;				/**< Pointer to FW RX Control Buffer		*/
+    TI_UINT8                            *fwTxCBufPtr;				/**< Pointer to FW TX Control Buffer		*/
+	void                                *fwRxControlPtr;			/**< Pointer to FW TX Control 				*/
+	void                                *fwTxControlPtr;			/**< Pointer to FW RX Control 				*/
+    TI_UINT32                           PacketMemoryPoolStart;      /**< RX Memory block offset 				*/  
+} TDmaParams;
+
+/** \struct TSecurityKeys
+ * \brief Security Key
+ * 
+ * \par Description
+ * Struct which holds Security Key Parameters
+ * Used for handling DMA
+ * 
+ * \sa
+ */ 
+typedef struct
+{
+    EKeyType                            keyType; 				/**< Security Key Type (WEP, TKIP etc.)			*/               
+    TI_UINT32                           encLen;					/**< Security Key length in bytes				*/
+    TI_UINT8                            encKey[MAX_KEY_LEN];	/**< Security Key Encoding						*/
+    TI_UINT8                            micRxKey[MAX_KEY_LEN];	/**< MIC RX Security Key 						*/
+    TI_UINT8                            micTxKey[MAX_KEY_LEN];	/**< MIC TX Security Key						*/
+    TI_UINT32                           keyIndex;     			/**< Security Key Index (id=0 is broadcast key)	*/                  
+    TMacAddr                            macAddress;				/**< Security Key MAC Address					*/
+    TI_UINT8                            keyRsc[KEY_RSC_LEN];	/**< Security Key RSC							*/
+
+} TSecurityKeys;
+
+/** \struct TxPktParams_t
+ * \brief TX Packet Parameters
+ * 
+ * \par Description
+ * Tx Control-Block Packet parameters that are not included in the Tx-descriptor
+ * 
+ * \sa
+ */ 
+typedef struct
+{
+    void *         pInputPkt;       /**< The input packet to the Tx path, either OS packet or raw buffer (see RAW_BUF_PKT flag) */         
+    TI_UINT32      uInputPktLen;    /**< The input packet length in bytes (for freeing it in case of raw buffer)  */         
+    TI_UINT32      uDriverDelay;    /**< The time in uSec the pkt was delayed in the driver until Xfer 			  */
+    TI_UINT8       uPktType;        /**< See TX_PKT_TYPE_xxxx above                                               */          
+    TI_UINT8       uHeadroomSize;   /**< Only for WHA - headroom in bytes before the payload in the packet buffer */          
+    TI_UINT16      uFlags;          /**< See TX_CTRL_FLAG__xxxx above 										      */          
+
+} TTxPktParams;
+
+
+/** \struct TTxCtrlBlk
+ * \brief TX Control Block Entry
+ * 
+ * \par Description
+ * Contains the Tx packet parameters required for the Tx process, including
+ * the Tx descriptor and the attributes required for HW-queue calculations.
+ * TX Control Block Entry is allocated for each packet sent from the upper 
+ * driver and freed upon Tx-complete.
+ * The entry index is the descriptor-ID. It is written in the descriptor and 
+ * copied back into the tx-complete results
+ * 
+ * \sa	SendPacketTranferCB_t, SendPacketDebugCB_t, TWD_txCtrlBlk_alloc, TWD_txCtrlBlk_free, TWD_txCtrlBlk_GetPointer, TWD_txXfer_sendPacket
+ */ 
+typedef struct _TTxCtrlBlk
+{
+    TTxnStruct          tTxnStruct;               /**< The transaction structure for packet queueing and transaction via the bus driver */ 
+    TxIfDescriptor_t    tTxDescriptor;            /**< The packet descriptor copied to the FW  */    
+    TI_UINT8            aPktHdr[MAX_HEADER_SIZE]; /**< The packet header + extensions (see description of MAX_HEADER_SIZE above) */    
+    TTxPktParams        tTxPktParams;             /**< Per packet parameters not included in the descriptor */
+    struct _TTxCtrlBlk  *pNextFreeEntry;          /**< Pointer to the next free entry */ 
+
+} TTxCtrlBlk;
+
+
+/** \struct TTemplateParams
+ * \brief Template Parameters
+ * 
+ * \par Description
+ * 
+ * \sa	TWD_GetTemplate
+ */ 
+typedef struct
+{
+    TI_UINT32            Size;		   				/**< Template size					*/  			
+    TI_UINT32            uRateMask;                 /**< The rates bitmap for the frame */ 			
+    TI_UINT8             Buffer[MAX_TEMPLATE_SIZE];	/**< Buffer which holds Template	*/  			
+
+} TTemplateParams;
+
+/** \struct TFwInfo
+ * \brief FW Information
+ * 
+ * \par Description
+ * 
+ * \sa	TWD_GetFWInfo
+ */ 
+typedef struct
+{
+    TI_UINT8                            fwVer[FW_VERSION_LEN];  /**< Firmware version - null terminated string 	*/
+    TMacAddr                            macAddress;				/**< MAC Address								*/
+    TI_UINT8                            txPowerTable[NUMBER_OF_SUB_BANDS_E][NUM_OF_POWER_LEVEL]; /**< Maximun Dbm in Dbm/10 units */
+    TI_UINT32                           uHardWareVersion;		/**< HW Version									*/
+
+} TFwInfo;  
+
+/** \struct TJoinBss
+ * \brief Join BSS Parameters
+ * 
+ * \par Description
+ * 
+ * \sa	TWD_CmdJoinBss
+ */ 
+typedef struct
+{
+    ScanBssType_e                       bssType;			/**< */
+    TI_UINT16                           beaconInterval;		/**< */
+    TI_UINT16                           dtimInterval;		/**< */
+    TI_UINT8                            channel;			/**< */
+    TI_UINT8*                           pBSSID;				/**< */
+    TI_UINT8*                           pSSID;				/**< */
+    TI_UINT8                            ssidLength;			/**< */
+    TI_UINT32                           basicRateSet;      	/**< */ 
+    ERadioBand                          radioBand;			/**< */
+    /* Current Tx-Session index as configured to FW in last Join command */
+    TI_UINT16                           txSessionCount;    	/**< */     
+
+} TJoinBss;
+
+/** \struct TSetTemplate
+ * \brief Set Template Parameters
+ * 
+ * \par Description
+ * 
+ * \sa	TWD_CmdTemplate, TWD_WriteMibTemplateFrame
+ */ 
+typedef struct
+{
+    ETemplateType                       type;	/**< Template Type							*/
+    TI_UINT8                            index;  /**< only valid for keep-alive templates	*/
+    TI_UINT8*                           ptr;	/**< Pointer to Template Data		  		*/
+    TI_UINT32                           len;	/**< Pointer to Template Length		  		*/
+    ERadioBand                          eBand; 	/**< only valid for probe request templates	*/
+    TI_UINT32                           uRateMask;/**< The rate mask to use for this frame  */
+    
+} TSetTemplate;
+
+/** \struct TNoiseHistogram
+ * \brief Noise Histogram Parameters
+ * 
+ * \par Description
+ * 
+ * \sa	TWD_CmdNoiseHistogram
+ */ 
+typedef struct
+{
+    ENoiseHistogramCmd                  cmd;												/**< Noise Histogram Command (Start/Atop)	*/
+    TI_UINT16                           sampleInterval;										/**< Sample Interval (in microsec)			*/
+    TI_UINT8                            ranges [MEASUREMENT_NOISE_HISTOGRAM_NUM_OF_RANGES];	/**< Noise Histogram Ranges					*/
+
+} TNoiseHistogram;
+
+/** \struct TInterogateCmdHdr
+ * \brief Interrogate Command Header
+ * 
+ * \par Description
+ * 
+ * \sa	TNoiseHistogramResults, TMediumOccupancy, TTsfDtim
+ */ 
+typedef struct
+{
+    TI_UINT16                           id;		/**< */
+    TI_UINT16                           len;	/**< */
+
+} TInterogateCmdHdr;
+
+/** \struct TNoiseHistogramResults
+ * \brief Noise Histogram Results
+ * 
+ * \par Description
+ * Used for Getting Noise Histogram Parameters from FW
+ * 
+ * \sa
+ */ 
+typedef struct
+{
+    TInterogateCmdHdr                   noiseHistResCmdHdr;							/**< Results Header						*/
+    TI_UINT32                           counters[NUM_OF_NOISE_HISTOGRAM_COUNTERS];	/**< Counters							*/
+    TI_UINT32                           numOfLostCycles;							/**< Number of Lost Cycles				*/
+    TI_UINT32                           numOfTxHwGenLostCycles;						/**< Number of Tx Hw Gen Lost Cycles	*/
+    TI_UINT32                           numOfRxLostCycles;							/**< Number of RX Hw Gen Lost Cycles	*/
+
+} TNoiseHistogramResults;
+
+/** \struct TMediumOccupancy
+ * \brief Medium Occupancy Parameters
+ * 
+ * \par Description
+ * Used for Getting Medium Occupancy (Channal Load) from FW
+ * or print Medium Occupancy (Channal Load) Debug Information
+ * 
+ * \sa
+ */ 
+typedef struct
+{
+    TInterogateCmdHdr                   mediumOccupCmdHdr;	/**< Command Header						*/
+    TI_UINT32                           MediumUsage;		/**< Medium Occupancy Usage Time		*/
+    TI_UINT32                           Period;				/**< Medium Occupancy Period Time		*/
+
+} TMediumOccupancy;
+
+/** \struct TTsfDtim
+ * \brief Beacon TSF and DTIM count
+ * 
+ * \par Description
+ * Used for Getting updated current TSF and last Beacon TSF and DTIM Count from FW
+ * for Scan Purposes
+ * 
+ * \sa
+ */ 
+typedef struct
+{
+    TInterogateCmdHdr                   tsf_dtim_mibCmdHdr;	/**< Command Header						*/
+    TI_UINT32                           CurrentTSFHigh;		/**< Current TSF High (of INT64) Value	*/
+    TI_UINT32                           CurrentTSFLow;		/**< Current TSF Low (of INT64) Value	*/
+    TI_UINT32                           lastTBTTHigh;		/**< Last TBTT High (of INT64) Value	*/
+    TI_UINT32                           lastTBTTLow;		/**< Last TBTT Low (of INT64) Value		*/
+    TI_UINT8                            LastDTIMCount;		/**< Last DTIM Count			      	*/
+    TI_UINT8                            Reserved[3];		/**< Reserved							*/
+
+} TTsfDtim;
+
+/** \struct TBcnBrcOptions
+ * \brief Beacon broadcast options
+ * 
+ * \par Description
+ * Used for Getting/Configuring updated Beacon broadcast options from/to FW
+ * 
+ * \sa	TWD_SetDefaults
+ */ 
+typedef struct 
+{
+    TI_UINT16                           BeaconRxTimeout;		/**< Beacon RX Timeout			*/
+    TI_UINT16                           BroadcastRxTimeout;		/**< Broadcast RX Timeout		*/
+    TI_UINT8                            RxBroadcastInPs;		/**< RX Broadcast In Power Save	*/
+
+} TBcnBrcOptions;
+
+/** \struct TBeaconFilterIeTable
+ * \brief Beacon Filter Information Elements Table
+ * 
+ * \par Description
+ * Used for Getting/Configuring Beacon Filter IE Table From/To FW
+ * 
+ * \sa	TWD_SetDefaults
+ */ 
+typedef struct
+{
+    TI_UINT8                            numberOfIEs;							/**< Number of IE Tables 			*/
+    TI_UINT8                            IETable[BEACON_FILTER_TABLE_MAX_SIZE];	/**< The IE table					*/
+    TI_UINT8                            IETableSize;							/**< number of elements in IE table	*/
+
+} TBeaconFilterIeTable;
+
+/** \struct TBeaconFilterInitParams
+ * \brief Beacon Filter Init Parameters
+ * 
+ * \par Description
+ * Used for Init Beacon Filter IE Table in FW
+ * 
+ * \sa
+ */ 
+typedef struct
+{
+    TI_UINT8                            desiredState;								/**< Desigred state (required/not required)			*/
+    TI_UINT8                            numOfStored;								/**< Number of desigred Beacon Filters stored in FW	*/
+    TI_UINT8                            numOfElements;								/**< Number of Beacon Filter Elements stored in FW	*/
+    TI_UINT8                            IETableSize;								/**< The IE Table size								*/
+    TI_UINT8                            reserve[3];									/**< Reserved										*/
+    TI_UINT8                            IETable[BEACON_FILTER_IE_TABLE_MAX_SIZE]; 	/**< The IE table							   		*/
+
+} TBeaconFilterInitParams;
+
+/** \struct TPowerMgmtConfig
+ * \brief Power Management Configuration Parameters
+ * 
+ * \par Description
+ * Used for Configuring Wake-Up Conditions or Beacon Broadcast Options to FW
+ * 
+ * \sa	TWD_CfgWakeUpCondition, TWD_CfgBcnBrcOptions
+ */ 
+typedef struct
+{
+	/* power management options */
+    TI_UINT8                            beaconListenInterval;		/**< Beacon Listen Interavl:
+																	* specify how often the TNET wakes up to listen to beacon frames. 
+																	* the value is expressed in units of "beacon interval"	
+																	*/
+    TI_UINT8                            beaconFiltering;			/**< Beacon Filtering Desigred state (required/not required)			*/
+    TI_UINT8                            DTIMListenInterval;			/**< DTIM Listen Interavl:
+																	* specify how often the TNET wakes up to listen to DTIM frames. the value 
+																	* is expressed in units of "dtim interval"
+																	*/
+    TI_UINT8                            NConsecutiveBeaconMiss;		/**< Consecutive Beacon Miss											*/
+    TI_UINT8                            hangoverPeriod;				/**< Hang Over Period													*/
+    TI_UINT8                            HwPsPollResponseTimeout;	/**< Power-Save Polling Response Time Out								*/
+    TI_UINT32                           BaseBandWakeUpTime;			/**< Base Band Wakeup Time												*/
+    TI_UINT32                           beaconReceiveTime;			/**< Beacon Receive Time												*/
+    TI_BOOL                             beaconMissInterruptEnable;	/**< Enable/Disable Beacon Miss Interrupt   							*/
+    TI_BOOL                             rxBroadcast;				/**< Enable/Disable receive of broadcast packets in Power-Save mode   	*/
+    TI_BOOL                             hwPsPoll;					/**< Enable/Disable Power-Save Polling								   	*/    
+    /* Power Management Configuration IE */
+    TI_BOOL                             ps802_11Enable;				/**< Enable/Disable 802.11 Power-Save 									*/
+    TI_UINT8                            needToSendNullData;  		/**< Indicates if need to send NULL data								*/
+    TI_UINT8                            numNullPktRetries; 			/**< Number of NULL Packets allowed retries 							*/
+    TI_UINT8                            hangOverPeriod;				/**< HangOver period:
+																	* Indicates what is the time in TUs during which the WiLink remains awake 
+																	* after sending an MPDU with the Power Save bit set (indicating that the 
+																	* station is to go into Power Save mode). Setting bit 0 does not affect 
+																	* the hangover period 
+																	*/
+    TI_UINT16                           NullPktRateModulation; 		/**< Null Packet Rate Modulation										*/
+    /* PMConfigStruct */
+    TI_BOOL                             ELPEnable;					/**< Enable/Disable ELP				 									*/
+    TI_UINT32                           BBWakeUpTime;				/**< Base Band Wakeup Time				 								*/
+    TI_UINT32                           PLLlockTime;				/**< PLL Lock Time						 								*/
+    /* AcxBcnBrcOptions */						
+    TBcnBrcOptions                      BcnBrcOptions;				/**< Beacon broadcast options	 		 								*/
+    /* ACXWakeUpCondition */
+    ETnetWakeOn                         tnetWakeupOn;  				/**< ACX Wake Up Condition		 		 								*/
+    TI_UINT8                            listenInterval;				/**< ACX Listen Interval		 		 								*/
+	/* No answer after Ps-Poll work-around */
+    TI_UINT8  							ConsecutivePsPollDeliveryFailureThreshold;	/**< Power-Save Polling Delivery Failure Threshold		*/
+
+} TPowerMgmtConfig;
+
+/** \struct TPowerSaveParams
+ * \brief Power Save Parameters 
+ * 
+ * \par Description 
+ * 
+ * \sa	TWD_CmdPSMode
+ */ 
+typedef struct
+{
+    /* powerMgmtConfig IE */
+    TI_BOOL                             ps802_11Enable;			/**< Enable/Disable 802.11 Power-Save 									*/
+    TI_UINT8                            needToSendNullData;  	/**< Indicates if need to send NULL data								*/
+    TI_UINT8                            numNullPktRetries; 		/**< Number of NULL Packets allowed retries 							*/
+    TI_UINT8                            hangOverPeriod;			/**< HangOver period:
+																* Indicates what is the time in TUs during which the WiLink remains awake 
+																* after sending an MPDU with the Power Save bit set (indicating that the 
+																* station is to go into Power Save mode). Setting bit 0 does not affect 
+																* the hangover period 
+																*/
+    EHwRateBitFiled                     NullPktRateModulation;	/**< Null Packet Rate Modulation										*/
+
+} TPowerSaveParams;
+
+/** \struct TAcQosParams
+ * \brief AC QoS Parameters 
+ * 
+ * \par Description 
+ * Used for Configuring AC Parameters (For Quality Of Service) to FW
+ * 
+ * \sa	TWD_CfgAcParams
+ */ 
+typedef struct  
+{
+    TI_UINT8                            ac;			/**< Access Category - The TX queue's access category	*/
+    TI_UINT8                            cwMin;		/**< The contention window minimum size (in slots) 		*/
+    TI_UINT16                           cwMax;		/**< The contention window maximum size (in slots)		*/
+    TI_UINT8                            aifsn;		/**< The AIF value (in slots)							*/
+    TI_UINT16                           txopLimit;	/**< The TX Op Limit (in microseconds)					*/
+
+} TAcQosParams;
+
+/** \struct TMeasurementParams
+ * \brief AC Queues Parameters 
+ * 
+ * \par Description 
+ * Used When Send Start Measurment Command to FW
+ * 
+ * \sa	TWD_CmdMeasurement
+ */ 
+typedef struct 
+{
+    TI_UINT32                           ConfigOptions;	/**< RX Filter Configuration Options													*/
+    TI_UINT32                           FilterOptions;	/**< RX Filter Options																	*/
+    TI_UINT32                           duration;		/**< Specifies the measurement process duration in microseconds. The value of 0 means 
+														* infinite duration in which only a STOP_MEASUREMENT command can stop the measurement 
+														* process
+														*/
+    Channel_e                           channel;		/**< Channel number on which the measurement is performed								*/
+    RadioBand_e                         band;			/**< Specifies the band to which the channel belongs									*/
+    EScanResultTag                      eTag;			/**< Scan Result Tag																	*/
+
+} TMeasurementParams;
+
+/** \struct TApDiscoveryParams
+ * \brief AP Discovery Parameters
+ * 
+ * \par Description 
+ * Used When Performing AP Discovery
+ * 
+ * \sa	TWD_CmdApDiscovery
+ */ 
+typedef struct 
+{
+    TI_UINT32                           ConfigOptions;	/**< RX Configuration Options for measurement														*/
+    TI_UINT32                           FilterOptions;	/**< RX Filter Configuration Options for measurement												*/
+    TI_UINT32                           scanDuration;	/**< This field specifies the amount of time, in time units (TUs), to perform the AP discovery		*/
+    TI_UINT16                           scanOptions;	/**< This field specifies whether the AP discovery is performed by an active scan or a passive scan 
+														* 0 - ACTIVE, 1 - PASSIVE
+														*/
+    TI_UINT8                            numOfProbRqst;	/**< This field indicates the number of probe requests to send per channel, when active scan is specified 
+														* Note: for XCC measurement this value should be set to 1
+														*/
+    TI_UINT8                            txPowerDbm;    	/**< TX power level to be used for sending probe requests when active scan is specified.
+														* If 0, leave normal TX power level for this channel
+														*/
+    EHwRateBitFiled                     txdRateSet;		/**< This EHwBitRate format field specifies the rate and modulation to transmit the probe request when 
+														* an active scan is specifie
+														*/
+    ERadioBand                          eBand;			/**< Specifies the band to which the channel belongs												*/
+} TApDiscoveryParams;
+
+/** \struct TRroamingTriggerParams
+ * \brief Roaming Trigger Parameters
+ * 
+ * \par Description 
+ * 
+ * \sa	TWD_CfgMaxTxRetry, TWD_CfgConnMonitParams
+ */ 
+typedef struct
+{
+    /* ACXConsNackTriggerParameters */
+    TI_UINT8                            maxTxRetry;			/**< The number of frames transmission failures before issuing the "Max Tx Retry" event			*/
+
+    /* ACXBssLossTsfSynchronize */
+    TI_UINT16                           TsfMissThreshold;	/**< The number of consecutive beacons that can be lost before the WiLink raises the 
+															* SYNCHRONIZATION_TIMEOUT event	
+															*/
+    TI_UINT16                           BssLossTimeout;		/**< The delay (in time units) between the time at which the device issues the SYNCHRONIZATION_TIMEOUT 
+															* event until, if no probe response or beacon is received a BSS_LOSS event is issued
+															*/
+} TRroamingTriggerParams;
+
+/** \struct TSwitchChannelParams
+ * \brief Switch Channel Parameters
+ * 
+ * \par Description
+ * Used for Switch channel Command
+ * 
+ * \sa	TWD_CmdSwitchChannel
+ */ 
+typedef struct
+{
+    TI_UINT8                            channelNumber;		/**< The new serving channel										*/         	
+    TI_UINT8                            switchTime;			/**< Relative time of the serving channel switch in TBTT units   	*/
+    TI_UINT8                            txFlag;				/**< 1: Suspend TX till switch time; 0: Do not suspend TX			*/
+    TI_UINT8                            flush;				/**< 1: Flush TX at switch time; 0: Do not flush  					*/
+
+} TSwitchChannelParams;
+
+/** \struct TRxCounters
+ * \brief RX Counters
+ * 
+ * \par Description
+ * Used for Getting RX Counters from FW
+ * 
+ * \sa
+ */ 
+typedef struct
+{    
+    TI_UINT32                           RecvError; 			/**< Number of frames that a NIC receives but does not indicate to the protocols due to errors 	*/
+    TI_UINT32                           RecvNoBuffer;   	/**< Number of frames that the NIC cannot receive due to lack of NIC receive buffer space 		*/      
+    TI_UINT32                           FragmentsRecv;    	/**< Number of Fragments Received 																*/      
+    TI_UINT32                           FrameDuplicates;	/**< Number of Farme Duplicates																	*/
+    TI_UINT32                           FcsErrors;			/**< Number of frames that a NIC receives but does not indicate to the protocols due to errors	*/
+
+} TRxCounters;
+
+/** \struct TApPowerConstraint
+ * \brief AP Power Constraint
+ * 
+ * \par Description
+ * 
+ * \sa
+ */ 
+typedef struct  
+{
+    INFO_ELE_HDR												/**< Information Element Header		*/
+    int8                      			powerConstraintOnBss;	/**< The attenuation from the regulatory power constraint as declared by the AP 
+																* Units: dBm	;	Range: -20 - 30
+																*/
+} TApPowerConstraint;
+
+/*
+ * TConfigCmdCbParams, TInterrogateCmdCbParams:
+ * Note that this structure is used by the GWSI 
+ * both for setting (writing to the device) and
+ * for retreiving (Reading from the device),
+ * while being called with a completion CB
+ */
+/** \struct TConfigCmdCbParams
+ * \brief Config Command CB Parameters
+ * 
+ * \par Description
+ * The CB Parameters (Completino CB, Handle to CB Parameters and buffer of Input/Output Parameters) 
+ * are used for Setting Parameters
+ * 
+ * \sa	TWD_SetParam
+ */ 
+typedef struct
+{
+    void*                               fCb;	/**< Completion CB function													*/
+    TI_HANDLE                           hCb;	/**< CB handle																*/
+    void*                               pCb;	/**< CBuffer contains the content to be written or the retrieved content	*/
+
+} TConfigCmdCbParams;
+
+/** \struct TInterrogateCmdCbParams
+ * \brief Interrogate Command Parameters
+ * 
+ * \par Description
+ * Interrogate Command Parameters are the same as configuration Command CB Parameters
+ *
+ * \sa	TWD_SetParam 
+ */ 
+typedef TConfigCmdCbParams TInterrogateCmdCbParams;
+
+/** \struct TRxTimeOut
+ * \brief RX Time Out
+ * 
+ * \par Description
+ * 
+ * \sa
+ */ 
+typedef struct
+{
+    TI_UINT16                           psPoll;		/**< The maximum time that the device will wait to receive traffic from the AP after transmission of PS-poll	*/
+    TI_UINT16                           UPSD;		/**< The maximum time that the device will wait to receive traffic from the AP after transmission from UPSD 
+													* enabled queue
+													*/
+} TRxTimeOut;
+
+/** \struct TQueueTrafficParams
+ * \brief RX Time Out
+ * 
+ * \par Description
+ * 
+ * \sa
+ */ 
+typedef struct
+{
+    TI_UINT8                            queueID;					/**< The TX queue ID number (0-7)											*/
+    TI_UINT8                            channelType;				/**< Channel access type for the queue Refer to ChannelType_enum			*/
+    TI_UINT8                            tsid;						/**< for EDCA - the AC Index (0-3, refer to AccessCategory_enum). 
+																	* For HCCA - HCCA Traffic Stream ID (TSID) of the queue (8-15)	
+																	*/
+    TI_UINT32                           dot11EDCATableMSDULifeTime;	/**< 802.11 EDCA Table MSDU Life Time 										*/
+    TI_UINT8                            psScheme;					/**< The power save scheme of the specified queue. Refer to PSScheme_enum	*/
+    TI_UINT8                            ackPolicy;					/**< ACK policy per AC 														*/
+    TI_UINT32                           APSDConf[2];				/**< APSD Configuration 													*/
+
+} TQueueTrafficParams;
+
+
+/** \struct TFmCoexParams
+ * \brief FM Coexistence Parameters
+ * 
+ * \par Description
+ * Used for Setting/Printing FM Coexistence Parameters
+ * 
+ * \sa
+ */ 
+typedef struct
+{	
+    TI_UINT8   uEnable;                 /* enable(1) / disable(0) the FM Coex feature */
+
+    TI_UINT8   uSwallowPeriod;          /* Swallow period used in COEX PLL swallowing mechanism,
+                                           Range: 0-0xFF,  0xFF = use FW default
+                                        */
+
+    TI_UINT8   uNDividerFrefSet1;       /* The N divider used in COEX PLL swallowing mechanism for Fref of 38.4/19.2 Mhz.  
+                                           Range: 0-0xFF,  0xFF = use FW default
+                                        */
+
+    TI_UINT8   uNDividerFrefSet2;       /* The N divider used in COEX PLL swallowing mechanism for Fref of 26/52 Mhz.
+                                           Range: 0-0xFF,  0xFF = use FW default
+                                        */
+
+    TI_UINT16  uMDividerFrefSet1;       /* The M divider used in COEX PLL swallowing mechanism for Fref of 38.4/19.2 Mhz.
+                                           Range: 0-0x1FF,  0xFFFF = use FW default
+                                        */
+
+    TI_UINT16  uMDividerFrefSet2;       /* The M divider used in COEX PLL swallowing mechanism for Fref of 26/52 Mhz.
+                                           Range: 0-0x1FF,  0xFFFF = use FW default
+                                        */
+
+    TI_UINT32  uCoexPllStabilizationTime;/* The time duration in uSec required for COEX PLL to stabilize.
+                                           0xFFFFFFFF = use FW default
+                                        */
+
+    TI_UINT16  uLdoStabilizationTime;   /* The time duration in uSec required for LDO to stabilize.
+                                           0xFFFFFFFF = use FW default
+                                        */
+
+    TI_UINT8   uFmDisturbedBandMargin;  /* The disturbed frequency band margin around the disturbed 
+                                             frequency center (single sided). 
+                                           For example, if 2 is configured, the following channels 
+                                             will be considered disturbed channel: 
+                                             80 +- 0.1 MHz, 91 +- 0.1 MHz, 98 +- 0.1 MHz, 102 +- 0.1 MHz
+                                           0xFF = use FW default
+                                        */
+
+	TI_UINT8   uSwallowClkDif;          /* The swallow clock difference of the swallowing mechanism.
+                                           0xFF = use FW default
+                                        */
+
+} TFmCoexParams;
+
+
+/** \struct TMibBeaconFilterIeTable
+ * \brief MIB Beacon Filter IE table
+ * 
+ * \par Description
+ * Used for Read/Write the MIB/IE Beacon Filter
+ * NOTE: This struct is only meant to be used as a pointer reference to an actual buffer. 
+ * Table size is not a constant and is derived from the buffer size given with the 
+ * user command
+ * 
+ * \sa	TWD_WriteMibBeaconFilterIETable
+ */ 
+typedef struct 
+{
+    /* Number of information elements in table  */
+    TI_UINT8                            iNumberOfIEs;   					/**< Input Number of IE Tables	*/    
+    TI_UINT8                            iIETable[MIB_MAX_SIZE_OF_IE_TABLE]; /**< Input IE Table				*/          
+
+} TMibBeaconFilterIeTable;
+
+/** \struct TMibCounterTable
+ * \brief MIB Counter Table
+ * 
+ * \par Description
+ * Used for Getting Counters of MIB Table
+ * 
+ * \sa
+ */ 
+typedef struct 
+{
+    TI_UINT32                           PLCPErrorCount;	  	/**< The number of PLCP errors since the last time this information element was interrogated. 
+															* This field is automatically cleared when it is interrogated  
+															*/
+    TI_UINT32                           FCSErrorCount;		/**< The number of FCS errors since the last time this information element was interrogated. 
+															* This field is automatically cleared when it is interrogated
+															*/
+    TI_UINT32                           SeqNumMissCount;	/**< The number of missed sequence numbers in the squentially values of frames seq numbers	*/
+} TMibCounterTable;
+
+/** \struct TMibWlanWakeUpInterval
+ * \brief MIB WLAN Wake-Up Interval
+ * 
+ * \par Description
+ * 
+ * \sa
+ */ 
+typedef struct 
+{
+    TI_UINT32                           WakeUpInterval;		/**< Wake Up Interval 								*/ 
+    TI_UINT8                            ListenInterval; 	/**< Listen interval in unit of the beacon/DTIM 	*/   
+
+} TMibWlanWakeUpInterval;
+
+/** \struct TMibTemplateFrame
+ * \brief MIB Template Frame
+ * 
+ * \par Description
+ * Used for Writing MIB Frame Template to FW
+ * 
+ * \sa	TWD_WriteMibTemplateFrame
+ */ 
+typedef struct 
+{
+    EMibTemplateType                 	FrameType;							/**< MIB Farme Template type	*/
+    TI_UINT32                           Rate;								/**< Frame Rate					*/
+    TI_UINT16                           Length;								/**< Frame Length				*/
+    TI_UINT8                            Data [MIB_TEMPLATE_DATA_MAX_LEN];	/**< Frame Template Data		*/
+
+} TMibTemplateFrame;
+
+/** \struct TMibArpIpAddressesTable
+ * \brief MIB ARP Address Table
+ * 
+ * \par Description
+ * Used for Writing MIB ARP Table Template to FW
+ * 
+ * \sa	TWD_WriteMib
+ */ 
+typedef struct 
+{
+    TI_UINT32                           FilteringEnable;	/**< Enable/Disable Filtering	*/
+    TIpAddr                             addr;				/**< IP Address Table			*/
+
+} TMibArpIpAddressesTable;
+
+/** \struct TMibGroupAdressTable
+ * \brief MIB Group Address Table
+ * 
+ * \par Description
+ * Used for Writing MIB Group Table Template to FW
+ * 
+ * \sa	TWD_WriteMib
+ */ 
+typedef struct 
+{
+    TMacAddr                            aGroupTable[MIB_MAX_MULTICAST_GROUP_ADDRS]; 	/**< Table of Multicast Group Addresses */       
+    TI_UINT8                            bFilteringEnable;								/**< Enable/Disable Filtering			*/  
+    TI_UINT8                            nNumberOfAddresses;								/**< Number of Multicast Addresses		*/
+
+} TMibGroupAdressTable;
+
+/** \struct TTxRateClass
+ * \brief TX Rate Class
+ * 
+ * \par Description
+ * Used for Set/Get TX Rate Policy Class to/from FW
+ * 
+ * \sa
+ */ 
+typedef struct
+{
+    TI_UINT32                           txEnabledRates;			/**< A Bit Mask which indicates which Rates are enabled */
+    TI_UINT8                            shortRetryLimit;		/**< */
+    TI_UINT8                            longRetryLimit;			/**< */
+    TI_UINT8                            flags;					/**< */
+    TI_UINT8                            reserved;				/**< for alignment with the FW API */
+
+} TTxRateClass;
+
+/** \struct TTxRatePolicy
+ * \brief TX Rate Policy
+ * 
+ * \par Description
+ * Used for Set/Get TX Rate Policy to/from FW
+ * 
+ * \sa
+ */ 
+typedef struct
+{
+    TI_UINT32                           numOfRateClasses;								/**< */
+    TTxRateClass                        rateClass[MAX_NUM_OF_TX_RATE_CLASS_POLICIES];	/**< */
+
+} TTxRatePolicy;
+
+/** \struct TCoexActivity
+ * \brief CoexActivity Parameters
+ * 
+ * \par Description
+ * 
+ * \sa
+ */ 
+typedef struct {
+    uint8  coexIp;           /* 0-BT, 1-WLAN (according to CoexIp_e in FW) */
+    uint8  activityId;       /* According to BT/WLAN activity numbering in FW */ 
+    uint8  defaultPriority;  /* 0-255, activity default priority */
+    uint8  raisedPriority;   /* 0-255, activity raised priority */
+    uint16 minService;       /* 0-65535, The minimum service requested either in
+                                requests or in milliseconds depending on activity ID */
+    uint16 maxService;       /* 0-65535, The maximum service allowed either in
+                            requests or in milliseconds depending on activity ID */
+} TCoexActivity;
+
+/** \struct THalCoexActivityTable
+ * \brief CoexActivity Table Initialization Parameters
+ * 
+ * \par Description
+ * 
+ * \sa
+ */ 
+typedef struct
+{
+    uint32 numOfElements;
+    TCoexActivity entry[COEX_ACTIVITY_TABLE_MAX_NUM];
+    
+} THalCoexActivityTable;
+
+/** \struct DcoItrimParams_t
+ * \brief DCO Itrim params structure
+ * 
+ * \par Description
+ * 
+ * \sa
+ */ 
+typedef struct
+{
+    Bool_e enable;
+    uint32 moderationTimeoutUsec;
+}DcoItrimParams_t;
+
+/** \union TMibData
+ * \brief MIB Data
+ * 
+ * \par Description
+ * Union which defines all MIB Data types
+ * Used for write MIB Configuration to FW
+ * 
+ * \sa	TWD_WriteMib
+ */ 
+typedef union 
+{
+    TMacAddr                            StationId;				/**< Station ID MAC Address								*/
+    TI_UINT32                           MaxReceiveLifeTime;		/**< HAl Control Max Rx MSDU Life Time, in TUs Units	*/
+    TI_UINT32                           SlotTime;				/**< Radio (PHY) Slot Time Type							*/
+    TMibGroupAdressTable             	GroupAddressTable;		/**< MIB Group Address Table							*/
+    TI_UINT8                            WepDefaultKeyId;		/**< WEP Defualt Security Key ID						*/
+    TI_UINT8                            PowerLevel;				/**< */
+    TI_UINT16                           RTSThreshold;			/**< */
+    TI_UINT32                           CTSToSelfEnable;		/**< Enable/Disable CTS to Self							*/
+    TMibArpIpAddressesTable          	ArpIpAddressesTable;	/**< MIB ARP Address Table								*/
+    TMibTemplateFrame                	TemplateFrame;			/**< MIB Template Frame		 							*/
+    TI_UINT8                            RxFilter;				/**< */
+    TMibWlanWakeUpInterval           	WlanWakeUpInterval;		/**< MIB WLAN Wake-Up Interval							*/
+    TMibCounterTable                 	CounterTable;			/**< MIB Counter Table									*/
+    TMibBeaconFilterIeTable          	BeaconFilter;			/**< MIB Beacon Filter IE table				   			*/
+    TTxRatePolicy                       txRatePolicy;			/**< TX Rate Policy			   		 					*/
+
+} TMibData;
+
+/** \struct TMib
+ * \brief MIB Structure
+ * 
+ * \par Description
+ * Used for writing MIB Configuration to FW
+ * 
+ * \sa	TWD_WriteMib, TWD_WriteMibTemplateFrame, TWD_WriteMibBeaconFilterIETable, TWD_WriteMibTxRatePolicy
+ */ 
+typedef struct
+{
+    EMib			aMib;  		/**< MIB Element Type	*/
+    TI_UINT16       Length;		/**< MIB Data Length	*/
+    TMibData     	aData; 		/**< MIB Data			*/
+
+} TMib;
+
+/** \union TTwdParamContents
+ * \brief TWD Parameters Content
+ * 
+ * \par Description
+ * All FW Parameters contents
+ * 
+ * \sa	TWD_SetParam
+ */ 
+typedef union
+{
+    TI_UINT16                           halCtrlRtsThreshold;			/**< */
+    TI_UINT8                            halCtrlCtsToSelf;				/**< */
+    TRxTimeOut                          halCtrlRxTimeOut;				/**< */
+    TI_UINT16                           halCtrlFragThreshold;			/**< */
+    TI_UINT16                           halCtrlListenInterval;			/**< */
+    TI_UINT16                           halCtrlCurrentBeaconInterval;	/**< */
+    TI_UINT8                            halCtrlTxPowerDbm;				/**< */
+    ETxAntenna                          halCtrlTxAntenna;				/**< */
+    ERxAntenna                          halCtrlRxAntenna;				/**< */
+    TI_UINT8                            halCtrlAifs;					/**< */
+    TI_BOOL                             halCtrlTxMemPoolQosAlgo;		/**< */
+    TI_BOOL                             halCtrlClkRunEnable;			/**< */
+    TRxCounters                         halCtrlCounters;				/**< */
+
+    TMib*          		                pMib;							/**< */
+    TI_UINT8                            halCtrlCurrentChannel;			/**< */
+  
+    /* AC Qos parameters */
+    TQueueTrafficParams                 *pQueueTrafficParams;			/**< */
+    
+    /* Security related parameters */
+#ifdef XCC_MODULE_INCLUDED
+    TI_BOOL                             rsnXCCSwEncFlag;				/**< */
+    TI_BOOL                             rsnXCCMicFieldFlag;				/**< */
+#endif
+    ECipherSuite                        rsnEncryptionStatus;			/**< */
+    TI_UINT8                            rsnHwEncDecrEnable; 			/**< 0- disable, 1- enable */
+    TSecurityKeys                       *pRsnKey;						/**< */
+    TI_UINT8                            rsnDefaultKeyID;				/**< */
+
+    /* Measurements section */
+    TMediumOccupancy                    mediumOccupancy;				/**< */
+    TI_BOOL                             halTxOpContinuation;			/**< */
+
+    TTsfDtim                            fwTsfDtimInfo;					/**< */
+
+    TInterrogateCmdCbParams             interogateCmdCBParams;			/**< */
+    TConfigCmdCbParams                  configureCmdCBParams;			/**< */
+
+    TTxRatePolicy                       *pTxRatePlicy;					/**< */
+
+    /* WARNING!!! This section is used to set/get internal params only. */
+    TI_UINT16                           halCtrlAid;						/**< */
+    
+    ESoftGeminiEnableModes              SoftGeminiEnable;				/**< */
+    TSoftGeminiParams                   SoftGeminiParam;				/**< */
+
+    TFmCoexParams                       tFmCoexParams;                  /**< */
+
+    TI_UINT32                           halCtrlMaxRxMsduLifetime;		/**< */
+
+    /* Beacon Broadcast options */
+    TBcnBrcOptions                      BcnBrcOptions;					/**< */
+
+    /* PLT tests */
+    TI_STATUS             				PltRxCalibrationStatus;			/**< */
+
+    /* CoexActivity */
+    THalCoexActivityTable             	tTwdParamsCoexActivityTable;			    /**< */
+
+    /* DCO Itrim */
+    DcoItrimParams_t                    tDcoItrimParams;                /**< */
+
+} TTwdParamContents;
+
+/** \struct TTwdParamInfo
+ * \brief TWD Parameters Information
+ * 
+ * \par Description
+ * 
+ * \sa	TWD_SetParam
+ */ 
+typedef struct
+{
+    TI_UINT32                           paramType;					/**< FW Parameter Information Identifier	*/
+    TI_UINT32                           paramLength;				/**< FW Parameter Length					*/
+    TTwdParamContents                   content;					/**< FW Parameter content					*/
+
+} TTwdParamInfo;
+
+/** \struct TRxXferReserved
+ * \brief RX Xfer Reserved
+ * 
+ * \par Description
+ * 
+ * \sa
+ */ 
+typedef struct
+{
+    ProcessIDTag_e                      packetType;		/**< */
+    TI_UINT8                            rxLevel;		/**< */
+    TI_INT8                             rssi;			/**< */
+    TI_UINT8                            SNR;			/**< */
+    TI_UINT8                            band;			/**< */
+    TI_UINT32                           TimeStamp;		/**< */
+    EScanResultTag                      eScanTag;		/**< */
+
+} TRxXferReserved;
+
+/** \struct TRxAttr
+ * \brief RX Attributes
+ * 
+ * \par Description
+ * 
+ * \sa
+ */ 
+typedef struct
+{
+    PacketClassTag_enum                 ePacketType;    /**< */
+    TI_STATUS                           status;			/**< */
+    ERate                               Rate;   		/**< */
+    TI_UINT8                            SNR;			/**< */
+    TI_INT8                             Rssi;   		/**< */
+    TI_UINT8                            channel;		/**< */
+    TI_UINT32                           packetInfo;		/**< */
+    ERadioBand                          band;			/**< */
+    TI_UINT32                           TimeStamp;		/**< */
+    EScanResultTag                      eScanTag;		/**< */
+
+} TRxAttr;
+
+
+/** \struct TGeneralInitParams
+ * \brief General Initialization Parameters
+ * 
+ * \par Description
+ * 
+ * \sa
+ */ 
+typedef struct
+{
+    TI_UINT16                           halCtrlListenInterval;				/**< */
+    TI_UINT8                            halCtrlCalibrationChannel2_4;		/**< */
+    TI_UINT8                            halCtrlCalibrationChannel5_0;	  	/**< */  	
+    TI_UINT16                           halCtrlRtsThreshold;				/**< */
+    TI_UINT16                           halCtrlFragThreshold;				/**< */
+    TI_UINT32                           halCtrlMaxTxMsduLifetime;			/**< */
+    TI_UINT32                           halCtrlMaxRxMsduLifetime;			/**< */
+    ETxAntenna                          halCtrlTxAntenna;					/**< */
+    ERxAntenna                          halCtrlRxAntenna;					/**< */
+    TI_UINT8                            halCtrlMacClock;					/**< */
+    TI_UINT8                            halCtrlArmClock;					/**< */
+    TI_UINT16                           halCtrlBcnRxTime;					/**< */
+    TI_BOOL                             halCtrlRxEnergyDetection;    		/**< */
+    TI_BOOL                             halCtrlTxEnergyDetection;			/**< */
+    TI_BOOL                             halCtrlEepromLessEnable;			/**< */
+    TI_BOOL                             halCtrlRxDisableBroadcast;			/**< */
+    TI_BOOL                             halCtrlRecoveryEnable;				/**< */
+    TI_BOOL                             halCtrlFirmwareDebug;				/**< */
+    TI_BOOL                             WiFiWmmPS;							/**< */
+    TRxTimeOut                          rxTimeOut;							/**< */
+    TI_UINT8                            halCtrlRateFallbackRetry;			/**< */
+    TI_BOOL                             b11nEnable;							/**< */
+
+    TI_UINT16                           TxCompletePacingThreshold;			/**< */
+    TI_UINT16                           TxCompletePacingTimeout;			/**< */
+    TI_UINT16                           RxIntrPacingThreshold;			    /**< */
+    TI_UINT16                           RxIntrPacingTimeout;			    /**< */
+
+    TI_UINT8                            hwAccessMethod;						/**< */
+    TI_UINT8                            maxSitesFragCollect;				/**< */
+    TI_UINT8                            packetDetectionThreshold;			/**< */
+    TI_UINT32                           nullTemplateSize;					/**< */
+    TI_UINT32                           disconnTemplateSize;				/**< */
+    TI_UINT32                           beaconTemplateSize;					/**< */
+    TI_UINT32                           probeRequestTemplateSize;			/**< */
+    TI_UINT32                           probeResponseTemplateSize;			/**< */
+    TI_UINT32                           PsPollTemplateSize;				   	/**< */ 	
+    TI_UINT32                           qosNullDataTemplateSize;			/**< */
+    TI_UINT32                           tddRadioCalTimout;					/**< */
+    TI_UINT32                           CrtRadioCalTimout;					/**< */
+    TI_UINT32                           UseMboxInterrupt;					/**< */
+    TI_UINT32                           TraceBufferSize;					/**< */
+    TI_BOOL                             bDoPrint;							/**< */
+    TI_UINT8                            StaMacAddress[MAC_ADDR_LEN];		/**< */
+    TI_BOOL                             TxFlashEnable;						/**< */
+    TI_UINT8                            RxBroadcastInPs;					/**< */
+	TI_UINT8       						ConsecutivePsPollDeliveryFailureThreshold;	/**< */
+    TI_UINT8                            TxBlocksThresholdPerAc[MAX_NUM_OF_AC];/**< */
+    TI_UINT16                           BeaconRxTimeout;					/**< */
+    TI_UINT16                           BroadcastRxTimeout;					/**< */
+
+    TI_UINT8                            uRssiBeaconAverageWeight;			/**< */
+    TI_UINT8                            uRssiPacketAverageWeight;			/**< */
+    TI_UINT8                            uSnrBeaconAverageWeight;			/**< */
+    TI_UINT8                            uSnrPacketAverageWeight;			/**< */
+
+    TI_UINT32                           uHostClkSettlingTime;				/**< */
+    TI_UINT8                            uHostFastWakeupSupport;             /**< */
+    THalCoexActivityTable               halCoexActivityTable;               /**< */
+    TFmCoexParams                       tFmCoexParams;                      /**< */
+
+} TGeneralInitParams;
+
+/** \struct TPowerSrvInitParams
+ * \brief Power Service Init Parameters
+ * 
+ * \par Description
+ * 
+ * \sa
+ */ 
+typedef struct 
+{
+    TI_UINT8                            numNullPktRetries; 			/**< */
+    TI_UINT8                            hangOverPeriod;				/**< */
+    TI_UINT16                           reserve;					/**< */
+
+} TPowerSrvInitParams;
+
+/** \struct TScanSrvInitParams
+ * \brief Scan Service Init Parameters
+ * 
+ * \par Description
+ * 
+ * \sa
+ */ 
+typedef struct
+{
+    TI_UINT32                           numberOfNoScanCompleteToRecovery;	/**< The number of consecutive no scan complete that will trigger a recovery notification 	*/
+    TI_UINT32                      		uTriggeredScanTimeOut; 				/**< i.e. split scan. Time out for starting triggered scan between 2 channels 				*/
+
+} TScanSrvInitParams;
+
+
+
+
+/** \struct TArpIpFilterInitParams
+ * \brief ARP IP Filter Init Parameters
+ * 
+ * \par Description
+ * 
+ * \sa
+ */ 
+typedef struct
+{
+    TI_UINT32                           isFilterEnabled;	/**< */
+    TIpAddr                             addr;    			/**< */
+
+} TArpIpFilterInitParams;
+
+/** \struct TMacAddrFilterInitParams
+ * \brief AMC Address Filter Init Parameters
+ * 
+ * \par Description
+ * 
+ * \sa
+ */ 
+typedef struct
+{
+    TI_UINT8                            isFilterEnabled;							/**< */
+    TI_UINT8                            numOfMacAddresses;							/**< */
+    TI_UINT16                           reserve;									/**< */
+    TMacAddr                            macAddrTable[MAX_MULTICAST_GROUP_ADDRS];	/**< */
+
+} TMacAddrFilterInitParams;
+
+/** \struct RateMangeParams_t
+ * \brief Rate Maangement params structure
+ * 
+ * \par Description
+ * 
+ * \sa
+ */ 
+typedef struct
+{ 
+	rateAdaptParam_e paramIndex;
+	uint16 RateRetryScore;
+	uint16 PerAdd;
+	uint16 PerTh1;
+	uint16 PerTh2;
+	uint16 MaxPer;
+	uint8 InverseCuriosityFactor[RATE_MGMT_NUM_OF_UC];
+	uint8 TxFailLowTh;
+	uint8 TxFailHighTh;
+	uint8 PerAlphaShift;
+	uint8 PerAddShift;
+	uint8 PerBeta1Shift;
+	uint8 PerBeta2Shift;
+	uint8 RateCheckUp;
+	uint8 RateCheckDown;
+	uint8 RateRetryPolicy[RATE_MGMT_NUM_OF_RATES]; 
+	uint8 PerWeightShift[RATE_MGMT_NUM_OF_UC];			// 2 weights, 1 per UC
+	uint8 TpWeightShift[RATE_MGMT_NUM_OF_UC];				// 2 weights, 1 per UC
+}RateMangeParams_t;
+
+/*
+ * IMPORTANT NOTE:
+ * ===============
+ * This structure encapsulates the initialization data required by the TnetwDrv layer.
+ * All structures in it are arranged so no padding will be added by the compiler!!
+ * This is required to avoid missalignment when compiled by customers using GWSI API!!
+ */
+/** \struct TTwdInitParams
+ * \brief TWD Init Parameters
+ * 
+ * \par Description
+ * All TWD Initialization Parameters
+ * 
+ * \sa	TWD_SetDefaults
+ */ 
+typedef struct
+{
+    TGeneralInitParams                  tGeneral;			      /**< General Initialization Parameters		*/
+    TPowerSrvInitParams                 tPowerSrv;			      /**< Power Service Initialization Parameters	*/
+    TScanSrvInitParams                  tScanSrv;			      /**< Scan Service Initialization Parameters   */
+    TArpIpFilterInitParams              tArpIpFilter;		      /**< ARP IP filter Initialization Parameters	*/
+    TMacAddrFilterInitParams            tMacAddrFilter;	          /**< MAC Address Initialization Parameters	*/
+    IniFileRadioParam                   tIniFileRadioParams;      /**< Radio Initialization Parameters   		*/
+    IniFileGeneralParam                 tPlatformGenParams;       /**< Radio Initialization Parameters   	    */
+    ACXSmartReflexConfigParams_t        tSmartReflexParams;       /**< Smart Refelx Parameters   	            */
+    ACXSmartReflexDebugParams_t         tSmartReflexDebugParams;  /**< Smart Refelx Debug Parameters   	        */
+    ACXSmartReflexState_t               tSmartReflexState;        /**< Smart Refelx state   	                */
+    RateMangeParams_t		            tRateMngParams;           /**< Rate Managment Parameters   	            */
+    DcoItrimParams_t                    tDcoItrimParams;          /**< Dco Itrim Parameters   	            */
+
+} TTwdInitParams;
+
+/** \struct TTwdHtCapabilities
+ * \brief TWD HT Capabilities
+ * 
+ * \par Description
+ * 
+ * \sa	TWD_SetDefaults, TWD_GetTwdHtCapabilities
+ */ 
+typedef struct
+{
+    TI_BOOL     b11nEnable;       					/**< Enable/Disable 802.11n flag	*/
+    TI_UINT8    uChannelWidth;						/**< */
+    TI_UINT8    uRxSTBC;							/**< */
+    TI_UINT8    uMaxAMSDU;						  	/**< */  	
+    TI_UINT8    uMaxAMPDU;							/**< */
+	TI_UINT8    uAMPDUSpacing;					   	/**< */ 	
+	TI_UINT8    aRxMCS[RX_TX_MCS_BITMASK_SIZE];		/**< */    
+	TI_UINT8    aTxMCS[RX_TX_MCS_BITMASK_SIZE];		/**< */    
+	TI_UINT16   uRxMaxDataRate;						/**< */    
+	TI_UINT8    uPCOTransTime;						/**< */    
+	TI_UINT32   uHTCapabilitiesBitMask;				/**< */    
+	TI_UINT8    uMCSFeedback;						/**< */    
+} TTwdHtCapabilities;
+
+typedef struct
+{
+    int32  SNRCorrectionHighLimit;
+    int32  SNRCorrectionLowLimit;
+    int32  PERErrorTH;
+    int32  attemptEvaluateTH;
+    int32  goodAttemptTH;
+    int32  curveCorrectionStep;
+
+ }RateMangeReadParams_t;
+
+
+/*
+ * --------------------------------------------------------------
+ *	APIs
+ * --------------------------------------------------------------
+ */
+/** @ingroup Control
+ * \brief Send Packet Transfer CB
+ * 
+ * \param  CBObj        - object handle
+ * \param  pPktCtrlBlk  - Pointer to Input Packet Control Block
+ * \return void
+ * 
+ * \par Description
+ * The Transfer-Done callback
+ * User registers the CB for Send Packet Transfer done
+ *
+ * \sa	TWD_RegisterCb
+ */ 
+typedef void (* TSendPacketTranferCb)(TI_HANDLE CBObj, TTxCtrlBlk *pPktCtrlBlk);
+/** @ingroup Control
+ * \brief Send Packet Debug CB
+ * 
+ * \param  CBObj        - object handle
+ * \param  pPktCtrlBlk  - Pointer to Input Packet Control Block
+ * uDebugInfo			- Debug Information
+ * \return void
+ * 
+ * \par Description
+ * The Transfer-Done Debug callback
+ *
+ * \sa
+ */ 
+typedef void (* TSendPacketDebugCb)  (TI_HANDLE CBObj, TTxCtrlBlk *pPktCtrlBlk, TI_UINT32 uDebugInfo);
+/** @ingroup Control
+ * \brief Send Packet Debug CB
+ * 
+ * \param  CBObj        - object handle
+ * \param  pPktCtrlBlk  - Pointer to Input Packet Control Block
+ * uDebugInfo			- Debug Information
+ * \return void
+ * 
+ * \par Description
+ *
+ * \sa	TWD_RegisterCb
+ */ 
+typedef ERxBufferStatus (*TRequestForBufferCb) (TI_HANDLE hObj, void **pRxBuffer, TI_UINT16 aLength, TI_UINT32 uEncryptionFlag);
+/** @ingroup Control
+ * \brief Send Packet Debug CB
+ * 
+ * \param  hObj        	- object handle
+ * \param  pBuffer	    - Pointer to Received buffer frame
+ * \return void
+ * 
+ * \par Description
+ * This function CB will be called when Received packet from RX Queue
+ * User registers the CB for RX Buffer Request
+ *
+ * \sa	TWD_RegisterCb
+ */ 
+typedef void (*TPacketReceiveCb) (TI_HANDLE 	hObj,
+                                  const void 	*pBuffer);
+/** @ingroup Control
+ * \brief Failure Event CB
+ * 
+ * \param  handle        	- object handle
+ * \param  eFailureEvent  	- Failure Event Type
+ * \return void
+ * 
+ * \par Description
+ * Callback clled for Failure event
+ * User registers the CB for Health-Moitoring
+ *
+ * \sa	TWD_RegisterCb
+ */ 
+typedef void (*TFailureEventCb)  (TI_HANDLE handle, EFailureEvent eFailureEvent);
+
+/** \union TTwdCB
+ * \brief TWD Callback
+ * 
+ * \par Description
+ * Union which holds all TWD Internal Callbacks which are registered by user
+ * per Module and Event IDs
+ * 
+ * \sa	TWD_RegisterCb
+ */ 
+typedef union
+{
+	TSendPacketTranferCb	sendPacketCB;		/**< Transfer-Done callback			*/
+	TSendPacketDebugCb		sendPacketDbgCB;	/**< Transfer-Done Debug callback	*/
+	TRequestForBufferCb		requestBufferCB;	/**< Transfer-Done Debug callback	*/
+	TPacketReceiveCb		recvPacketCB;		/**< RX Buffer Request callback		*/
+	TFailureEventCb			failureEventCB;		/**< Failure Event callback			*/
+}TTwdCB;
+
+
+/** @ingroup Control
+ * \brief Scan Service complete CB
+ * 
+ * \param  hCb        	- handle to the scan object
+ * \param  eTag  		- the scan results type tag
+ * \param  uResultCount - number of results received during this scan
+ * \param  SPSStatus  	- bitmap indicating which channels were attempted (if this is an SPS scan)
+ * \param  TSFError  	- whether a TSF error occurred (if this is an SPS scan)
+ * \param  ScanStatus  	- scan SRV status (OK / NOK)
+ * \param  PSMode		- Power Save Mode
+ * \return void
+ * 
+ * \par Description
+ * This function CB will be called when Scan Service is complete
+ * User registers the Scan Service Complete CB
+ * 
+ * \sa	TWD_RegisterScanCompleteCb
+ */ 
+typedef void (*TScanSrvCompleteCb) (TI_HANDLE 		hCb, 
+									EScanResultTag 	eTag, 
+									TI_UINT32 		uResultCount,
+                                    TI_UINT16 		SPSStatus, 
+									TI_BOOL 		TSFError, 
+									TI_STATUS 		ScanStatus,
+                                    TI_STATUS 		PSMode);
+/** @ingroup Control
+ * \brief TWD Callback
+ * 
+ * \param  hCb        	- handle to object
+ * \param  status  		- completion status
+ * \return void
+ * 
+ * \par Description
+ * Initialising Complete Callaback (exapmle: Init HW/FW CB etc.)
+ * User can use its own Complete CB which will be called when
+ * the suitable module id & event number will arrive
+ * 
+ * \sa	TWD_Init
+ */ 
+typedef void (*TTwdCallback) (TI_HANDLE hCb, TI_STATUS status); 
+/** @ingroup Control
+ * \brief TWD Callback
+ * 
+ * \param  hCb        	- handle to object
+ * \param  msrReply  	- Pointer to input measurement (which ended) Reply
+ * \return void
+ * 
+ * \par Description
+ * The function prototype for the measurement complete callback
+ * User can use its own measurement complete CB
+ * which will be called when measurement end
+ * 
+ * \sa	TWD_StartMeasurement
+ */ 
+typedef void (*TMeasurementSrvCompleteCb) (TI_HANDLE hCb, TMeasurementReply* msrReply);
+/** @ingroup Control
+ * \brief Command Response Callback
+ * 
+ * \param  hCb        	- handle to object
+ * \param  status  		- status of Command ended
+ * \return void
+ * 
+ * \par Description
+ * The function prototype for the Command Response CB
+ * Enables user to implement and use its own Response CB
+ * which will be called when TWD Command end
+ * 
+ * \sa	TWD_StartMeasurement, TWD_StopMeasurement, TWD_Scan, TWD_StopScan, TWD_StartPeriodicScan, TWD_StopPeriodicScan
+ */ 
+typedef void (*TCmdResponseCb) (TI_HANDLE hCb, TI_UINT16 status);
+/** @ingroup Control
+ * \brief Command Response Callback
+ * 
+ * \param  hCb        	- handle to object
+ * \param  status  		- status of Command ended
+ * \return void
+ * 
+ * \par Description
+ * The function prototype for the Power Save Set Response CB
+ * Enables user to implement and use its own Response CB which 
+ * will be called when Power Save Set Command end
+ * 
+ * \sa	TWD_SetPsMode
+ */ 
+typedef void (*TPowerSaveResponseCb)(TI_HANDLE hCb, TI_UINT8 status);
+/** @ingroup Control
+ * \brief Command Complete Callback
+ * 
+ * \param  hCb        	- handle to object
+ * \param  PsMode		- Power Save Mode
+ * \param  status  		- status of Command ended
+ * \return void
+ * 
+ * \par Description
+ * The function prototype for the Power Save Set Complete CB
+ * Enables user to implement and use its own Complete CB which 
+ * will be called when Power Save Set Command end (for success/faild notification)
+ * 
+ * \sa	TWD_SetPsMode
+ */ 
+typedef void (*TPowerSaveCompleteCb )(TI_HANDLE hCb, TI_UINT8 PsMode, TI_UINT8 status);
+/** @ingroup Control
+ * \brief  Create TWD Module
+ * 
+ * \param  hOs   	- OS module object handle
+ * \return TWD Module object handle on success or NULL on failure
+ * 
+ * \par Description
+ * Calling this function Creates a TWD object and all its sub-modules. 
+ * 
+ * \sa     TWD_Destroy, TWD_Init
+ */
+TI_HANDLE TWD_Create (TI_HANDLE hOs);
+/** @ingroup Control
+ * \brief  Destroy TWD Module
+ * 
+ * \param  hTWD   	- hTWD module object handle
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * Calling this function Destroys TWD object and all its sub-modules. 
+ * 
+ * \sa     TWD_Create
+ */ 
+TI_STATUS TWD_Destroy (TI_HANDLE hTWD);
+/** Control
+ * \brief  Init TWD module
+ * 
+ * \param  hTWD         - TWD module object handle
+ * \param  hReport      - Report module object handle
+ * \param  hUser        - Master (User) module object handle
+ * \param  hTimer       - Timer module object handle
+ * \param  hContext     - context-engine module object handle
+ * \param  hTxnQ        - TxnQueue module object handle
+ * \param  fInitHwCb    - Init HW callback called when init HW phase is done
+ * \param  fInitFwCb    - Init FW callback called when init FW phase is done
+ * \param  fConfigFwCb  - Configuration FW callback called when configuring FW phase is done
+ * \param  fStopCb      - Stop callback called when TWD is stopped
+ * \param  fInitFailCb  - Fail callback called when TWD is Failed
+ * \return void 
+ * 
+ * \par Description
+ * Start hardware Init and Config process. 
+ * This is the first function that must be called after TWD_Create.
+ * 
+ * \sa     TWD_Create, TWD_Stop
+ */ 
+void TWD_Init (TI_HANDLE    hTWD, 
+			   TI_HANDLE 	hReport, 
+               TI_HANDLE 	hUser, 
+			   TI_HANDLE 	hTimer, 
+			   TI_HANDLE 	hContext, 
+			   TI_HANDLE 	hTxnQ, 
+               TTwdCallback fInitHwCb, 
+               TTwdCallback fInitFwCb, 
+               TTwdCallback fConfigFwCb,
+			   TTwdCallback	fStopCb,
+			   TTwdCallback fInitFailCb);
+/** @ingroup Control
+ * \brief  Init HW module
+ * 
+ * \param  hTWD         - TWD module object handle
+ * \param  pbuf         - Pointer to Input NVS Buffer
+ * \param  length       - Length of NVS Buffer
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * Performs the HW init process. 
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_InitHw (TI_HANDLE hTWD, TI_UINT8 *pbuf, TI_UINT32 length);
+/** @ingroup Control
+ * \brief Set Defults to TWD Init Params
+ * 
+ * \param  hTWD         - TWD module object handle
+ * \param  pInitParams  - Pointer to Input init default parameters
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ *
+ * \sa
+ */
+TI_STATUS TWD_SetDefaults (TI_HANDLE hTWD, TTwdInitParams *pInitParams);
+/** @ingroup Control
+ * \brief  Init FW
+ * 
+ * \param  hTWD         - TWD module object handle
+ * \param  pFileInfo    - Pointer to Input Buffer contains part of FW Image to Download 
+ * 							The Following Field should be filled:
+ * 							pFileInfo->pBuffer
+ * 							pFileInfo->uLength
+ * 							pFileInfo->uAddress
+ * 							pFileInfo->bLast
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * Performs FW Download, and Run FW
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_InitFw (TI_HANDLE hTWD, TFileInfo *pFileInfo);
+/** @ingroup Control
+ * \brief  Open UART Bus Txn
+ * 
+ * \param  hTWD         - TWD module object handle
+ * \param  pParams      - Pointer to Input parameters 
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_BusOpen (TI_HANDLE hTWD, void* pParams);
+/** @ingroup Control
+ * \brief  Close UART Bus Txn
+ * 
+ * \param  hTWD         - TWD module object handle
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_BusClose (TI_HANDLE hTWD);
+/** @ingroup Control
+ * \brief Halt firmware
+ * 
+ * \param  hTWD         - TWD module object handle
+ * \return TI_OK on success or TI_NOK on failure 
+ * 
+ * \par Description
+ *
+ * \sa
+ */
+TI_STATUS TWD_Stop (TI_HANDLE hTWD);
+/** @ingroup Control
+ * \brief Enable external events from FW
+ * 
+ * \param  hTWD         - TWD module object handle
+ * \return void
+ * 
+ * \par Description
+ * Enable external events from FW upon driver start or recovery completion
+ *
+ * \sa
+ */ 
+void TWD_EnableExternalEvents (TI_HANDLE hTWD);
+/** @ingroup Control
+ * \brief Registers TWD internal callback function
+ * 
+ * \param  hTWD         - TWD module object handle
+ * \param  event        - event on which the registrated CB will be called
+ * \param  fCb 	        - Pointer to Registered CB function
+ * \param  pData 	    - Pointer to Registered CB data
+ * \return TI_OK on success or TI_NOK on failure 
+ * 
+ * \par Description
+ * This CB enables user to register TWD Internal CB functions of different Modules,
+ * with their data.
+ * The function identifies which TWD Module owns the Registered CB, and what the specific Registered CB
+ * according to event input parameter.
+ * Once the Module and specific CB function are identified, the CB is registerd in the TWD Module 
+ * by calling suitable registration CB function
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_RegisterCb (TI_HANDLE hTWD, TI_UINT32 event, TTwdCB *fCb, void *pData);
+/** @ingroup Control
+ * \brief Exit from init mode
+ * 
+ * \param  hTWD         - TWD module object handle
+ * \return TI_OK on success or TI_NOK on failure 
+ * 
+ * \par Description
+ * Exit From Init Mode enable sending command to the MboxQueue (which store a command),
+ * while the interrupts are masked. 
+ * The interrupt would be enable at the end of the init process
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_ExitFromInitMode (TI_HANDLE hTWD);
+/** @ingroup Control
+ * \brief Finalize FW init and download
+ * 
+ * \param  hTWD         - TWD module object handle
+ * \return void 
+ * 
+ * \par Description
+ * Init all the remaining initialization after the FW download has finished
+ * 
+ * \sa
+ */ 
+void TWD_FinalizeDownload (TI_HANDLE hTWD);
+/** @ingroup Control
+ * \brief Finalize of faulty FW init and download
+ * 
+ * \param  hTWD         - TWD module object handle
+ * \return void 
+ * 
+ * \par Description
+ * Call the upper layer failure callback after Init or FW download has finished with failure.
+ * 
+ * \sa
+ */ 
+void TWD_FinalizeOnFailure (TI_HANDLE hTWD);
+/** @ingroup Control
+ * \brief Perform FW Configuration
+ * 
+ * \param  hTWD         - TWD module object handle
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * Configure the FW from the TWD DB - after configuring all HW objects
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_ConfigFw (TI_HANDLE hTWD);
+/** @ingroup Control
+ * \brief Handle FW interrupt from ISR context
+ * 
+ * \param  hTWD         - TWD module object handle
+ * \return TI_OK on success or TI_NOK on failure 
+ * 
+ * \par Description
+ * This is the FW-interrupt ISR context. The driver task is scheduled to hadnle FW-Events
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_InterruptRequest (TI_HANDLE hTWD);
+/** @ingroup Control
+ * \brief Enable Recovery
+ * 
+ * \param  hTWD         - TWD module object handle
+ * \return TRUE if recovery Enables, FALSE otherwise
+ * 
+ * \par Description
+ * Return Recovery E/D status
+ *
+ * \sa
+ */ 
+TI_BOOL TWD_RecoveryEnabled (TI_HANDLE hTWD);
+/** @ingroup Measurement
+ * \brief Starts a measurement 
+ * 
+ * \param  hTWD         			- TWD module object handle
+ * \param  pMsrRequest         		- Pointer to Input structure which contains the measurement parameters
+ * \param  uTimeToRequestExpiryMs   - The time (in milliseconds) the measurement SRV has to start the request
+ * \param  fResponseCb         		- The Command response CB Function
+ * \param  hResponseCb         		- Handle to Command response CB Function Obj
+ * \param  fCompleteCb         		- The Command Complete CB Function
+ * \param  hCompleteCb         		- Handle to Command Complete CB Function Obj
+ * \return TI_OK on success or TI_NOK on failure 
+ * 
+ * \par Description
+ * Starts a measurement operation 
+ *
+ * \sa
+ */ 
+TI_STATUS TWD_StartMeasurement (TI_HANDLE hTWD, 
+								TMeasurementRequest *pMsrRequest, 
+								TI_UINT32 uTimeToRequestExpiryMs, 
+								TCmdResponseCb fResponseCb, 
+								TI_HANDLE hResponseCb, 
+								TMeasurementSrvCompleteCb fCompleteCb, 
+								TI_HANDLE hCompleteCb);
+/** @ingroup Measurement
+ * \brief Stops a measurement
+ * 
+ * \param  hTWD         			- TWD module object handle
+ * \param  bSendNullData         	- Indicates whether to send NULL data when exiting driver mode
+ * \param  fResponseCb         		- Pointer to Command response CB function
+ * \param  hResponseCb         		- Handle to Command response CB parameters
+ * \return TI_OK on success or TI_NOK on failure 
+ * 
+ * \par Description
+ * Stops a measurement operation in progress
+ *
+ * \sa
+ */ 
+TI_STATUS TWD_StopMeasurement (TI_HANDLE hTWD, 
+							   TI_BOOL bSendNullData, 
+							   TCmdResponseCb fResponseCb, 
+							   TI_HANDLE hResponseCb);
+/** @ingroup Measurement
+ * \brief Start scan
+ * 
+ * \param hTWD                		- TWD module object handle
+ * \param pScanParams            	- Pointer to Input Scan specific parameters
+ * \param eScanTag               	- Scan tag, used for result and scan complete tracking
+ * \param bHighPriority          	- Indicates whether to perform a high priority (overlaps DTIM) scan
+ * \param bDriverMode            	- Indicates whether to try to enter driver mode (with PS on) before issuing the scan command
+ * \param bScanOnDriverModeError 	- Indicates whether to proceed with the scan if requested to enter driver mode and failed 
+ * \param ePsRequest             	- Parameter sent to PowerSaveServer. 
+ * 										Should indicates PS ON or "keep current" only when driver mode is requested, 
+ * 										Otherwise should indicate OFF
+ * \param bSendNullData          	- Indicates whether to send Null data when exiting driver mode on scan complete
+ * \param fResponseCb            	- The Response CB Function which called after downloading the command
+ * \param hResponseCb            	- Handle to the Response CB Function Obj (Notice : last 2 params are NULL in Legacy run)
+ * \return TI_OK on success or TI_NOK on failure 
+ * 
+ * \par Description
+ * Start scan. enter driver mode (PS) only if station is connected
+ *
+ * \sa
+ */ 
+TI_STATUS TWD_Scan (TI_HANDLE hTWD, 
+					TScanParams *pScanParams, 
+					EScanResultTag eScanTag, 
+					TI_BOOL bHighPriority, 
+					TI_BOOL bDriverMode, 
+					TI_BOOL bScanOnDriverModeError, 
+					E80211PsMode ePsRequest, 
+					TI_BOOL bSendNullData, 
+					TCmdResponseCb fResponseCb, 
+					TI_HANDLE hResponseCb);
+/** @ingroup Measurement
+ * \brief Stop scan
+ * 
+ * \param hTWD                		- TWD module object handle
+ * \param eScanTag               	- Scan tag, used to track scan complete and result
+ * \param bSendNullData          	- Indicates whether to send Null data when exiting driver mode
+ * \param fScanCommandResponseCb 	- The Response CB Function which called after downloading the command
+ * \param hCb                    	- Handle to the Response CB Function Obj (Notice : last 2 params are NULL in Legacy run)
+ * \return TI_OK on success or TI_NOK on failure 
+ * 
+ * \par Description
+ * Sends a Stop Scan command to FW, no matter if we are in scan progress or not
+ *
+ * \sa
+ */ 
+TI_STATUS TWD_StopScan (TI_HANDLE hTWD, 
+						EScanResultTag eScanTag, 
+						TI_BOOL bSendNullData, 
+						TCmdResponseCb fScanCommandResponseCb, 
+						TI_HANDLE hCb);
+/** @ingroup Measurement
+ * \brief Stop Scan on FW Reset
+ * 
+ * \param hTWD		- TWD module object handle
+ * \return TI_OK on success or TI_NOK on failure 
+ * 
+ * \par Description
+ * Stop scan operation when a FW reset (recovery) situation is detected (by all processes 
+ * other than scan)
+ *
+ * \sa
+ */ 
+TI_STATUS TWD_StopScanOnFWReset (TI_HANDLE hTWD);
+/** @ingroup Measurement
+ * \brief Start Connection Periodic Scan operation
+ * 
+ * \param hTWD                			- TWD module object handle
+ * \param  pPeriodicScanParams    		- Pointer to Input Parameters Structures for the Periodic Scan operation
+ * \param  eScanTag               		- Scan tag, used for scan complete and result tracking
+ * \param  uPassiveScanDfsDwellTimeMs 	- Passive dwell time for DFS channels (in milli-secs)
+ * \param  fResponseCb            		- Response CB Function which is called after downloading the command
+ * \param  hResponseCb            		- Handle to Response CB Function Obj (Notice : last 2 params are NULL in Legacy run)
+ * \return TI_OK on success or TI_NOK on failure 
+ * 
+ * \par Description
+ * Perform Connection Scan periodically
+ *
+ * \sa
+ */ 
+TI_STATUS TWD_StartConnectionScan (TI_HANDLE hTWD, 
+								 TPeriodicScanParams *pPeriodicScanParams, 
+								 EScanResultTag eScanTag, 
+								 TI_UINT32 uPassiveScanDfsDwellTimeMs, 
+								 TCmdResponseCb fResponseCb, 
+								 TI_HANDLE hResponseCb);
+/** @ingroup Measurement
+ * \brief Stop Periodic Scan operation
+ * 
+ * \param hTWD 					- TWD module object handle
+ * \param eScanTag              - scan tag, used for scan complete and result tracking
+ * \param  fResponseCb          - Response CB Function which is called after downloading the command
+ * \param  hResponseCb          - Handle to Response CB Function Obj (Notice : last 2 params are NULL in Legacy run)
+ * \return TI_OK on success or TI_NOK on failure 
+ * 
+ * \par Description
+ * Stop Periodic Connection Scan
+ *
+ * \sa
+ */ 
+TI_STATUS TWD_StopPeriodicScan (TI_HANDLE hTWD, 
+								EScanResultTag eScanTag, 
+								TCmdResponseCb fResponseCb, 
+								TI_HANDLE hResponseCb);
+/** @ingroup Measurement
+ * \brief Register CB for Scan Complete
+ * 
+ * \param  hTWD         		- TWD module object handle
+ * \param  fScanCompleteCb     	- The Complete CB Function
+ * \param  hScanCompleteCb   	- Handle to the Complete CB Function Obj
+ * \return TI_OK on success or TI_NOK on failure 
+ * 
+ * \par Description
+ * Registers a Complete CB Function for Scan Complete notifications
+ *
+ * \sa
+ */ 
+TI_STATUS TWD_RegisterScanCompleteCb (TI_HANDLE hTWD, 
+									  TScanSrvCompleteCb fScanCompleteCb, 
+									  TI_HANDLE hScanCompleteCb); 
+/** @ingroup Misc
+ * \brief  Set Parameters in FW
+ * 
+ * \param hTWD 			- TWD module object handle
+ * \param  pParamInfo   - Pointer to Input TWD Parameters Information Structure
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ *  Set/Configure Parameters Information in FW via Mail BOX
+ * 
+ * \sa	TTwdParamInfo
+ */ 
+TI_STATUS TWD_SetParam (TI_HANDLE hTWD, TTwdParamInfo *pParamInfo);
+/** @ingroup Misc
+ * \brief  Get Parameters from FW
+ * 
+ * \param hTWD 			- TWD module object handle
+ * \param  pParamInfo   - Pointer to Input TWD Parameters Information Structure
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ *  Get Parameters Information from FW  via Mail BOX
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_GetParam (TI_HANDLE hTWD, TTwdParamInfo *pParamInfo);
+/** @ingroup Control
+ * \brief Callback which Checks MBOX
+ * 
+ * \param  hTWD         - TWD module object handle
+ * \param  uMboxStatus  - Mailbox status
+ * \param  pItrParamBuf - Pointer to Interrogate parameters buffer
+ * \return TI_OK on success or TI_NOK on failure 
+ * 
+ * \par Description
+ * Perform FW validation by calling CB function which is used for handling MBOX error.
+ * If command MBOX queue identify MBOX error or timeout, it will call 
+ * a failure-callback with MBOX_FAILURE type (FW failed)
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_CheckMailboxCb (TI_HANDLE hTWD, TI_UINT16 uMboxStatus, void *pItrParamBuf);
+/** @ingroup Control
+ * \brief Write MIB
+ * 
+ * \param hTWD 		- TWD module object handle
+ * \param pMib      - Pointer to Input MIB Structure
+ * \return TI_OK on success or TI_NOK on failure 
+ * 
+ * \par Description
+ * Write configuration information to FW
+ *
+ * \sa TWD_ReadMib
+ */ 
+TI_STATUS   TWD_WriteMib (TI_HANDLE hTWD, TMib* pMib);
+/** @ingroup Control
+ * \brief Read MIB
+ * 
+ * \param hTWD 			- TWD module object handle
+ * \param  hCb          - Handle to Request MIB CB Function Obj
+ * \param  fCb          - Pinter to Request MIB CB Function
+ * \param  pCb          - Pointer to read parameters
+ * \return TI_OK on success or TI_NOK on failure 
+ * 
+ * \par Description
+ * Read configuration information from FW
+ *
+ * \sa TWD_WriteMib
+ */ 
+TI_STATUS   TWD_ReadMib                 (TI_HANDLE hTWD, TI_HANDLE hCb, void* fCb, void* pCb);
+/** @ingroup Control
+ * \brief TWD Debug
+ * 
+ * \param hTWD 			- TWD module object handle
+ * \param  funcType    	- TWD Function Debuged
+ * \param  pParam     	- Pointer to Input parameters of Debug function
+ * \return TI_OK on success or TI_NOK on failure 
+ * 
+ * \par Description
+ * Use for Debug TWD
+ *
+ * \sa
+ */ 
+TI_STATUS TWD_Debug (TI_HANDLE hTWD, TI_UINT32 funcType, void *pParam);
+/** @ingroup Control
+ * \brief Register event
+ * 
+ * \param  hTWD         - TWD module object handle
+ * \param  event        - Event ID
+ * \param  fCb          - Event Callback function pointer
+ * \param  hCb          - Event Callback object handle
+ * \return TI_OK on success or TI_NOK on failure 
+ * 
+ * \par Description
+ * Register FW event callback function
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_RegisterEvent (TI_HANDLE hTWD, TI_UINT32 event, void *fCb, TI_HANDLE hCb);
+/** @ingroup Control
+ * \brief Disable event
+ * 
+ * \param  hTWD         - TWD module object handle
+ * \param  event        - Event ID
+ * \return TI_OK on success or TI_NOK on failure 
+ * 
+ * \par Description
+ * Disable specific FW event
+ * Note: Currently not in use
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_DisableEvent (TI_HANDLE hTWD, TI_UINT32 event);
+/** @ingroup Control
+ * \brief Enable event
+ * 
+ * \param  hTWD         - TWD module object handle
+ * \param  event        - Event ID
+ * \return TI_OK on success or TI_NOK on failure 
+ * 
+ * \par Description
+ * Enable specific FW event
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_EnableEvent (TI_HANDLE hTWD, TI_UINT32 event);
+TI_STATUS TWD_dbgRoamingCommands (TI_HANDLE hTWD);
+/** @ingroup Control
+ * \brief Convert RSSI to RX Level
+ * 
+ * \param hTWD 			- TWD module object handle
+ * \param  iRssiVal     - RSSI Input Value
+ * \return TI_OK on success or TI_NOK on failure 
+ * 
+ * \par Description
+ * Note: Currently not in use!
+ *
+ * \sa
+ */ 
+TI_INT8 TWD_ConvertRSSIToRxLevel (TI_HANDLE hTWD, TI_INT32 iRssiVal);
+/** @ingroup Control
+ * \brief Complete TWD Stop
+ * 
+ * \param  hTWD	- TWD module object handle
+ * \return void
+ * 
+ * \par Description
+ * 
+ * \sa TWD_Stop, TWD_Init
+ */ 
+void TWD_StopComplete (TI_HANDLE hTWD);
+/** @ingroup Control
+ * \brief Disable Interrupts
+ * 
+ * \param hTWD	- TWD module object handle
+ * \return void 
+ * 
+ * \par Description
+ * Disable the FW Event client of the context thread handler
+ *
+ * \sa
+ */ 
+void TWD_DisableInterrupts (TI_HANDLE hTWD);
+/** @ingroup Control
+ * \brief Enable Interrupts
+ * 
+ * \param hTWD 		- TWD module object handle
+ * \return void 
+ * 
+ * \par Description
+ * Enable the FW Event client of the context thread handler
+ *
+ * \sa
+ */ 
+void TWD_EnableInterrupts (TI_HANDLE hTWD);
+/** @ingroup Control
+ * \brief	Translate host to FW time (Usec)
+ * 
+ * \param  hTWD 	 - TWD module object handle
+ * \param  uHostTime - The host time in MS to translate
+ *
+ * \return FW Time in Usec
+ * 
+ * \par Description
+ * 
+ * \sa
+ */
+TI_UINT32 TWD_TranslateToFwTime (TI_HANDLE hTWD, TI_UINT32 uHostTime);
+/** @ingroup BSS
+ * \brief Get TWD HT Capabilities
+ * 
+ * \param hTWD 					- TWD module object handle
+ * \param  pTwdHtCapabilities  	- Pointer read structure Output
+ * \return TI_OK
+ * 
+ * \par Description
+ * 
+ *
+ * \sa
+ */ 
+void TWD_GetTwdHtCapabilities (TI_HANDLE hTWD, TTwdHtCapabilities **pTwdHtCapabilities);
+#ifdef TI_DBG
+/** @ingroup Measurement
+ * \brief Prints Scan Server Debug status
+ * 
+ * \param  hTWD         - TWD module object handle
+ * \return TI_OK on success or TI_NOK on failure 
+ * 
+ * \par Description
+ *
+ * \sa
+ */ 
+TI_STATUS TWD_PrintMacServDebugStatus (TI_HANDLE hTWD);
+
+/** @ingroup Test
+ * \brief Prints Tx Info
+ * 
+ * \param  hTWD         - TWD module object handle
+ * \param  ePrintInfo   - Information type
+ * \return TI_OK on success or TI_NOK on failure 
+ * 
+ * \par Description
+ * Call the requested print function - used for Debug Test
+ * 
+ * \sa 
+ */ 
+TI_STATUS TWD_PrintTxInfo (TI_HANDLE hTWD, ETwdPrintInfoType ePrintInfo);
+#endif
+
+/*-----*/
+/* Get */
+/*-----*/
+
+/** @ingroup Control
+ * \brief Get number of Commands in CMD Queue 
+ * 
+ * \param  hTWD         - TWD module object handle
+ * \return Maximum Number of Commands currently in CMD Queue 
+ * 
+ * \par Description
+ *
+ * \sa
+ */ 
+TI_UINT32 TWD_GetMaxNumberOfCommandsInQueue (TI_HANDLE hTWD);
+/** @ingroup Power_Management
+ * \brief Get Power Save Status 
+ * 
+ * \param  hTWD         		- TWD module object handle
+ * \return TI_OK on success or TI_NOK on failure 
+ * 
+ * \par Description
+ *
+ * \sa
+ */ 
+TI_BOOL TWD_GetPsStatus (TI_HANDLE hTWD);
+
+TI_STATUS TWD_GetRxFilters (TI_HANDLE hTWD, TI_UINT32 *pRxConfigOption, TI_UINT32* pRxFilterOption);
+TI_STATUS TWD_GetRadioStandByState (TI_HANDLE hTWD);
+
+/** @ingroup Control
+ * \brief  Get FW Information
+ * 
+ * \param  hTWD    	- TWD module object handle
+ * \return TFwInfo 	- Pointer to Output FW Information Structure
+ * 
+ * \par Description
+ * Gets the TFwInfo pointer
+ * 
+ * \sa TFwInfo
+ */ 
+TFwInfo* TWD_GetFWInfo (TI_HANDLE hTWD);
+/** @ingroup BSS
+ * \brief	Get Group Address Table
+ * 
+ * \param  hTWD    			- TWD module object handle
+ * \param  pEnabled  		- Pointer to Output Indicatore if MAC Address Filter is Enabled
+ * \param  pNumGroupAddrs   - Pointer to Output Number of Group Address
+ * \param  pGroupAddr   	- Pointer to Output Group Address Table
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * 
+ * \sa TWD_WriteMib, TMacAddr
+ */
+TI_STATUS TWD_GetGroupAddressTable (TI_HANDLE hTWD, TI_UINT8* pEnabled, TI_UINT8* pNumGroupAddrs, TMacAddr *pGroupAddr);
+/** @ingroup Control
+ * \brief Read Memory
+ * 
+ * \param hTWD 			- TWD module object handle
+ * \param pMemDebug     - Pointer to read Output
+ * \param fCb			- Pointer to function Callback
+ * \param hCb			- Handle to function Callback Parameters
+ * \return TI_OK on success or TI_NOK on failure 
+ * 
+ * \par Description
+ *
+ * \sa
+ */ 
+TI_STATUS TWD_readMem (TI_HANDLE hTWD, TFwDebugParams* pMemDebug, void* fCb, TI_HANDLE hCb);
+/** @ingroup Control
+ * \brief Write Memory
+ * 
+ * \param hTWD 			- TWD module object handle
+ * \param pMemDebug     - Pointer to write Input
+ * \param fCb			- Pointer to function Callback
+ * \param hCb			- Handle to function Callback Parameters
+ * \return TI_OK on success or TI_NOK on failure 
+ * 
+ * \par Description
+ *
+ * \sa
+ */ 
+TI_STATUS TWD_writeMem (TI_HANDLE hTWD, TFwDebugParams* pMemDebug, void* fCb, TI_HANDLE hCb);
+
+/** @ingroup Control
+ * \brief Check if addr is a valid memory address
+ * 
+ * \param hTWD 			- TWD module object handle
+ * \param pMemDebug     - Pointer to addr & length
+ * \return TI_TRUE on success or TI_FALSE on failure 
+ * 
+ * \par Description
+ *
+ * \sa
+ */ 
+TI_BOOL TWD_isValidMemoryAddr (TI_HANDLE hTWD, TFwDebugParams* pMemDebug);
+
+/** @ingroup Control
+ * \brief Check if addr is a valid register address
+ * 
+ * \param hTWD 			- TWD module object handle
+ * \param pMemDebug     - Pointer to addr & length
+ * \return TI_TRUE on success or TI_FALSE on failure 
+ * 
+ * \par Description
+ *
+ * \sa
+ */ 
+TI_BOOL TWD_isValidRegAddr (TI_HANDLE hTWD, TFwDebugParams* pMemDebug);
+
+/*-----*/
+/* Set */
+/*-----*/
+
+/** @ingroup Power_Management
+ * \brief Set Power Save Mode 
+ * 
+ * \param  hTWD         		- TWD module object handle
+ * \param  ePsMode       		- Power Save Mode
+ * \param  bSendNullDataOnExit  - Indicates whether to send NULL data when exiting driver mode
+ * \param  hPowerSaveCompleteCb - Handle to PS Complete CB Parameters Obj 
+ * \param  fPowerSaveCompleteCb - The PS Complete CB function
+ * \param  fPowerSaveResponseCb - The PS Response CB function
+ * \return TI_OK on success or TI_NOK on failure 
+ * 
+ * \par Description
+ *
+ * \sa
+ */ 
+TI_STATUS TWD_SetPsMode (TI_HANDLE hTWD, 
+						 E80211PsMode ePsMode, 
+						 TI_BOOL bSendNullDataOnExit, 
+						 TI_HANDLE hPowerSaveCompleteCb, 
+						 TPowerSaveCompleteCb fPowerSaveCompleteCb, 
+						 TPowerSaveResponseCb fPowerSaveResponseCb);
+/** @ingroup Radio
+ * \brief Set Rate Modulation 
+ * 
+ * \param  hTWD         - TWD module object handle
+ * \param  rate         - Rate Modulation Value
+ * \return TRUE if Power Service State is Pwer Save, FALSE otherwise 
+ * 
+ * \par Description
+ *
+ * \sa
+ */ 
+TI_STATUS TWD_SetNullRateModulation (TI_HANDLE hTWD, TI_UINT16 rate);
+/** @ingroup Radio
+ * \brief	Set Radio Band
+ * 
+ * \param  hTWD    			- TWD module object handle
+ * \param  eRadioBand  		- Radio Band Type
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * 
+ * \sa
+ */
+TI_STATUS TWD_SetRadioBand (TI_HANDLE hTWD, ERadioBand eRadioBand);
+/** @ingroup Data_Path
+ * \brief	Set Security Sequance Number
+ * 
+ * \param  hTWD    				- TWD module object handle
+ * \param  securitySeqNumLsByte - LS Byte of Security Sequance Number
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * Update the TKIP/AES sequence-number according to the Tx data packet security-sequance-number
+ * Note: The FW always provides the last used sequance-number so no need to check if the current 
+ * packet is data and WEP is on
+ *
+ * \sa
+ */
+TI_STATUS TWD_SetSecuritySeqNum (TI_HANDLE hTWD, TI_UINT8 securitySeqNumLsByte);
+/** @ingroup BSS
+ * \brief Update DTIM & TBTT 
+ * 
+ * \param  hTWD         	- TWD module object handle
+ * \param  uDtimPeriod     	- DTIM period in number of beacons
+ * \param  uBeaconInterval 	- Beacon perios in TUs (1024 msec)
+ * \return void 
+ * 
+ * \par Description
+ * Update DTIM and Beacon periods for scan timeout calculations
+ *
+ * \sa
+ */ 
+void TWD_UpdateDtimTbtt (TI_HANDLE hTWD, TI_UINT8 uDtimPeriod, TI_UINT16 uBeaconInterval);
+
+/*---------*/
+/* Command */
+/*---------*/
+
+
+TI_STATUS TWD_CmdStartScan (TI_HANDLE hTWD, 
+							TScanParams *pScanVals, 
+							TI_BOOL bHighPriority, 
+							void* fScanCommandResponseCb, 
+							TI_HANDLE hCb);
+TI_STATUS TWD_CmdStartSPSScan (TI_HANDLE hTWD, 
+							   TScanParams *pScanVals, 
+							   void *fScanCommandResponseCb, 
+							   TI_HANDLE hCb);
+TI_STATUS TWD_CmdStopScan (TI_HANDLE hTWD, void *fScanCommandResponseCb, TI_HANDLE hCb);
+
+TI_STATUS TWD_CmdStopSPSScan (TI_HANDLE hTWD, void *fScanCommandResponseCb, TI_HANDLE hCb);
+
+/** @ingroup Measurement
+ * \brief  Set Split scan time out
+ * 
+ * \param hTWD 			- TWD module object handle
+ * \param  uTimeOut   	- Scan Time Out
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * Set Triggered scan time out per channel
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_CmdSetSplitScanTimeOut (TI_HANDLE hTWD, TI_UINT32 uTimeOut);
+/** @ingroup BSS
+ * \brief  Join BSS
+ * 
+ * \param hTWD 				- TWD module object handle
+ * \param  pJoinBssParams   - Pointer to Join BSS Input parameters structure
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_CmdJoinBss (TI_HANDLE hTWD, TJoinBss *pJoinBssParams);
+/** @ingroup Control
+ * \brief  Command Template
+ * 
+ * \param hTWD 				- TWD module object handle
+ * \param  pTemplateParams  - Pointer to Input Template Parameters Structure
+ * \param  fCb  			- Pointer to Command Callback Function
+ * \param  hCb  			- Handle to Command Callback Function Obj. Parameters
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * Sets a template to the FW
+ * 
+ * \sa
+ */ 
+/* 6.1.08 - for future WHA measurement command */
+TI_STATUS TWD_CmdTemplate (TI_HANDLE hTWD, TSetTemplate *pTemplateParams, void *fCb, TI_HANDLE hCb);
+/** @ingroup Data_Path
+ * \brief  Enable Tx path
+ * 
+ * \param  hTWD     	- TWD module object handle
+ * \param  channel     	- Channel Number
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * Enable tx path on the hardware
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_CmdEnableTx (TI_HANDLE hTWD, TI_UINT8 channel);
+/** @ingroup Data_Path
+ * \brief  Disable Tx path
+ * 
+ * \param  hTWD     	- TWD module object handle
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_CmdDisableTx (TI_HANDLE hTWD);
+/** @ingroup Measurement
+ * \brief  Command Noise Histogram
+ * 
+ * \param  hTWD     		- TWD module object handle
+ * \param  pNoiseHistParams - Pointer Input Noise Histogram Parameters: 
+ * 							  holds Start/Stop Noise Histogram Measure Indication, 
+ * 							  Sample Interval & Sample Ranges 
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * Send a Start/Stop Noise Histogram Measure Command to the FW with measure parameters
+ * 
+ * \sa	TNoiseHistogram
+ */ 
+TI_STATUS TWD_CmdNoiseHistogram (TI_HANDLE hTWD, TNoiseHistogram *pNoiseHistParams);
+
+TI_STATUS TWD_CmdPSMode (TI_HANDLE hTWD, TPowerSaveParams *pPowerSaveParams);
+/** @ingroup Radio
+ * \brief  Command Switch Channel
+ * 
+ * \param  hTWD    				- TWD module object handle
+ * \param  pSwitchChannelCmd    - Pointer to Switch Channel Parameters Structure
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * 
+ * \sa TSwitchChannelParams
+ */ 
+TI_STATUS TWD_CmdSwitchChannel (TI_HANDLE hTWD, TSwitchChannelParams *pSwitchChannelCmd);
+/** @ingroup Radio
+ * \brief  Command Switch Channel Cancel
+ * 
+ * \param  hTWD    		- TWD module object handle
+ * \param  channel    	- Channek Number
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_CmdSwitchChannelCancel (TI_HANDLE hTWD, TI_UINT8 channel);
+/** @ingroup Control
+ * \brief  FW Disconnect
+ * 
+ * \param  hTWD    	- TWD module object handle
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * 
+ * \sa 
+ */ 
+TI_STATUS TWD_CmdFwDisconnect (TI_HANDLE hTWD, DisconnectType_e uDisconType, TI_UINT16 uDisconReason);
+/** @ingroup Measurement
+ * \brief  Start Measurement Command
+ * 
+ * \param  hTWD    				- TWD module object handle
+ * \param  uDisconReason		- 2 bytes of disconnect reason to be use in deauth/disassoc frmaes
+ * \param  uDisconType    		- Immediate (dont send frames) or send Deauth or send Disassoc frmae
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * send Command for start measurement to FW
+ * 
+ * \sa TMeasurementParams
+ */ 
+TI_STATUS TWD_CmdMeasurement (TI_HANDLE hTWD, 
+							  TMeasurementParams *pMeasurementParams, 
+							  void *fCommandResponseCb, 
+							  TI_HANDLE hCb);
+/** @ingroup Measurement
+ * \brief  Stop Measurement Command
+ * 
+ * \param  hTWD    	- TWD module object handle
+ * \param  fCb  	- Pointer to Callback Function
+ * \param  hCb    	- Handle to Callback Function Object Parameters
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * send Command for stop measurement to FW
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_CmdMeasurementStop (TI_HANDLE hTWD, void* fCb, TI_HANDLE hCb);
+/** @ingroup UnKnown
+ * \brief  AP Discovery
+ * 
+ * \param  hTWD    				- TWD module object handle
+ * \param  pApDiscoveryParams  	- Pointer to Input AP Discovery Parameters Structure
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_CmdApDiscovery (TI_HANDLE hTWD, TApDiscoveryParams *pApDiscoveryParams);
+/** @ingroup UnKnown
+ * \brief	AP Discovery Stop
+ * 
+ * \param  hTWD    				- TWD module object handle
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_CmdApDiscoveryStop (TI_HANDLE hTWD);
+
+TI_STATUS TWD_CmdTest (TI_HANDLE hTWD, void *fCb, TI_HANDLE hCb, TTestCmd* pTestCmd);
+/** @ingroup Control
+ * \brief	Helth Check
+ * 
+ * \param  hTWD    			- TWD module object handle
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * Trigger the FW health test command and wait for results
+ *
+ * \sa
+ */
+TI_STATUS TWD_CmdHealthCheck (TI_HANDLE hTWD);
+/** @ingroup UnKnown
+ * \brief  AP Discovery
+ * 
+ * \param  hTWD    		- TWD module object handle
+ * \param  staState  	- stat of the station (CONNECTED)
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_CmdSetStaState (TI_HANDLE hTWD, TI_UINT8 staState, void *fCb, TI_HANDLE hCb);
+
+/*-----------*/
+/* Configure */
+/*-----------*/
+
+/** @ingroup UnKnown
+ * \brief  Configure ARP table
+ * 
+ * \param hTWD 			- TWD module object handle
+ * \param  tIpAddr   	- IP Address Input Buffer
+ * \param  bEnabled   	- Indicates if ARP filtering is Enabled (1) or Disabled (0)
+ * \param  eIpVer   	- IP Version
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * Configure ARP IP Address table
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_CfgArpIpAddrTable (TI_HANDLE hTWD, 
+								 TIpAddr tIpAddr, 
+								 TI_BOOL bEnabled, 
+								 EIpVer eIpVer);
+/** @ingroup BSS
+ * \brief	Configure Group Address Table
+ * 
+ * \param  hTWD    			- TWD module object handle
+ * \param  uNumGroupAddrs  	- Number of Group Address
+ * \param  pGroupAddr   	- Pointer to Input Group Address Table
+ * \param  bEnabled    		- Indicates if MAC Address Filter is Enabled
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * 
+ * \sa TWD_WriteMib
+ */
+TI_STATUS TWD_CfgGroupAddressTable (TI_HANDLE hTWD, 
+									TI_UINT8 uNumGroupAddrs, 
+									TMacAddr *pGroupAddr, 
+									TI_BOOL bEnabled);
+/** @ingroup Data_Path
+ * \brief  Configure RX Filters
+ * 
+ * \param hTWD 				- TWD module object handle
+ * \param  uRxConfigOption  - RX Configuration Option
+ * \param  uRxFilterOption 	- RX Filter Option
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * 
+ * \sa	TWD_WriteMib
+ */ 
+TI_STATUS TWD_CfgRx (TI_HANDLE hTWD, TI_UINT32 uRxConfigOption, TI_UINT32 uRxFilterOption);
+/** @ingroup UnKnown
+ * \brief  Configure Packet Detection Threshold
+ * 
+ * \param hTWD 			- TWD module object handle
+ * \param  threshold 	- Threshold Value
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * 
+ * \sa ERate
+ */ 
+TI_STATUS TWD_CfgPacketDetectionThreshold (TI_HANDLE hTWD, TI_UINT32 threshold);
+/** @ingroup Radio
+ * \brief  Configure Slot Time
+ * 
+ * \param hTWD 				- TWD module object handle
+ * \param  eSlotTimeVal 	- Slot Time Value
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_CfgSlotTime (TI_HANDLE hTWD, ESlotTime eSlotTimeVal);
+/** @ingroup Radio
+ * \brief  Configure Preamble
+ * 
+ * \param hTWD 			- TWD module object handle
+ * \param  ePreamble 	- Preamble Value
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_CfgPreamble (TI_HANDLE hTWD, EPreamble ePreamble);
+/** @ingroup Power_Management
+ * \brief  Configure Beacon Filter State
+ * 
+ * \param  hTWD     				- TWD module object handle
+ * \param  uBeaconFilteringStatus   - Beacon Filtering Status. Indicates whether the filter is enabled:
+ * 									  1 - enabled, 0 - disabled
+ * \param  uNumOfBeaconsToBuffer 	- Determines the number of beacons without the unicast TIM bit set,
+ * 									  that the firmware buffers before signaling the host about ready frames.
+ *									  When thi snumber is set to 0 and the filter is enabled, beacons without 
+ *									  the unicast TIM bit set are dropped. 
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * Configure Beacon Filter State to the FW
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_CfgBeaconFilterOpt (TI_HANDLE hTWD, TI_UINT8 uBeaconFilteringStatus, TI_UINT8 uNumOfBeaconsToBuffer);
+/** @ingroup Power_Management
+ * \brief  Configure Beacon Filter Table
+ * 
+ * \param  hTWD     	- TWD module object handle
+ * \param  uNumOfIe   	- The number of IE's in the table
+ * \param  pIeTable 	- Pointer to Input IE Table
+ * \param  uIeTableSize - Size of Input IE Table
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * Configure Beacon Filter Table to the FW
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_CfgBeaconFilterTable (TI_HANDLE hTWD, TI_UINT8 uNumOfIe, TI_UINT8 *pIeTable, TI_UINT8 uIeTableSize);
+/** @ingroup Power_Management
+ * \brief  Configure Wake Up Condition
+ * 
+ * \param  hTWD     		- TWD module object handle
+ * \param  pPowerMgmtConfig	- Pointer to Input Power Management Configuration Parameters
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * Configure Power Manager's Wake Up Condition
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_CfgWakeUpCondition (TI_HANDLE hTWD, TPowerMgmtConfig *pPowerMgmtConfig);
+/** @ingroup UnKnown
+ * \brief  Configure Beacon Broadcast Options
+ * 
+ * \param  hTWD     		- TWD module object handle
+ * \param  pPowerMgmtConfig	- Pointer to Input Power Management Configuration Parameters Structure
+ * 							  The Following Field should be filled: 
+ * 							  pPowerMgmtConfig->BcnBrcOptions.BeaconRxTimeout
+ * 							  pPowerMgmtConfig->BcnBrcOptions.BroadcastRxTimeout
+ * 							  pPowerMgmtConfig->BcnBrcOptions.RxBroadcastInPs - if set, enables receive of broadcast packets in Power-Save mode
+ * 							  pPowerMgmtConfig->ConsecutivePsPollDeliveryFailureThreshold - No answer after Ps-Poll work-around 					   	  
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * Configure Power Manager's Beacon Broadcast Options:
+ * Beacon RX time Out, Broadcast RX Timeout, RX Broadcast In Power Save, 
+ * Consecutive Power Save Poll Delivery Failure Threshold
+ * 
+ * 
+ * \sa TPowerMgmtConfig, TBcnBrcOptions
+ */ 
+TI_STATUS TWD_CfgBcnBrcOptions (TI_HANDLE hTWD, TPowerMgmtConfig *pPowerMgmtConfig);
+
+/** @ingroup BSS
+ * \brief  Configure Max TX Retry
+ * 
+ * \param  hTWD    				- TWD module object handle
+ * \param  pRoamingTriggerCmd   - Pointer to Input Configuration Parameters Structure
+ * 							  	  The Following Field should be filled: 
+ * 								  pRoamingTriggerCmd->maxTxRetry
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * Configure the Max Tx Retry parameters
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_CfgMaxTxRetry (TI_HANDLE hTWD, TRroamingTriggerParams *pRoamingTriggerCmd);
+/** @ingroup BSS
+ * \brief  Configure Connection Monitoring
+ * 
+ * \param  hTWD    				- TWD module object handle
+ * \param  pRoamingTriggerCmd   - Pointer to Input Configuration Parameters Structure
+ * 							  	  The Following Field should be filled: 
+ * 								  pRoamingTriggerCmd->BssLossTimeout
+ * 								  pRoamingTriggerCmd->TsfMissThreshold
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * Configure the Bss Lost Timeout & TSF miss threshold Parameters
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_CfgConnMonitParams (TI_HANDLE hTWD, TRroamingTriggerParams *pRoamingTriggerCmd);
+/** @ingroup Power_Management
+ * \brief	Configure Sleep Auth
+ * 
+ * \param  hTWD    			- TWD module object handle
+ * \param  eMinPowerPolicy  - Minimum Power Policy Type
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * Configure the minimum power policy to the FW
+ * 
+ * \sa EPowerPolicy
+ */
+TI_STATUS TWD_CfgSleepAuth (TI_HANDLE hTWD, EPowerPolicy eMinPowerPolicy);
+/** @ingroup Control
+ * \brief	Configure MAC Clock
+ * 
+ * \param  hTWD    		- TWD module object handle
+ * \param  uMacClock    - MAC Clock value
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ *
+ * \sa
+ */
+TI_STATUS TWD_CfgMacClock (TI_HANDLE hTWD, TI_UINT32 uMacClock);
+/** @ingroup Control
+ * \brief	Configure ARM Clock
+ * 
+ * \param  hTWD    		- TWD module object handle
+ * \param  uArmClock    - ARM Clock value
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ *
+ * \sa
+ */
+TI_STATUS TWD_CfgArmClock (TI_HANDLE hTWD, TI_UINT32 uArmClock);
+/** @ingroup Data_Path
+ * \brief	Configure RX Data Filter
+ * 
+ * \param  hTWD    				- TWD module object handle
+ * \param  index    			- Index of the Rx Data filter
+ * \param  command    			- Command: Add/remove the filter
+ * \param  eAction    			- Action to take when packets match the pattern
+ * \param  uNumFieldPatterns   	- Number of field patterns in the filter
+ * \param  uLenFieldPatterns    - Length of the field pattern series
+ * \param  pFieldPatterns    	- Series of field patterns
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * Add/remove Rx Data filter information element
+ *
+ * \sa
+ */
+TI_STATUS TWD_CfgRxDataFilter (TI_HANDLE hTWD, 
+							   TI_UINT8 index, 
+							   TI_UINT8 command, 
+							   filter_e eAction, 
+							   TI_UINT8 uNumFieldPatterns, 
+							   TI_UINT8 uLenFieldPatterns, 
+							   TI_UINT8 *pFieldPatterns);
+/** @ingroup Data_Path
+ * \brief	Configure Enable RX Data Filter
+ * 
+ * \param  hTWD    			- TWD module object handle
+ * \param  bEnabled      	- Indicates if Rx data filtering is enabled or Disabled
+ * 							  (0: data filtering disabled, Otherwise: enabled)
+ * \param  eDefaultAction   - The default action taken on non-matching packets
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * Configure Enable/Disable RX Data Filter, and which default action to perform if it is enabled
+ *
+ * \sa
+ */
+TI_STATUS TWD_CfgEnableRxDataFilter (TI_HANDLE hTWD, TI_BOOL bEnabled, filter_e eDefaultAction);
+/** @ingroup BSS
+ * \brief	Configure RRSSI/SNR Trigger parameters
+ * 
+ * \param  hTWD    			- TWD module object handle
+ * \param  pRssiSnrTrigger  - Pointer to RRSSI/SNR Input parameter Structure
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ *
+ * \sa
+ */
+TI_STATUS TWD_CfgRssiSnrTrigger (TI_HANDLE hTWD, RssiSnrTriggerCfg_t* pRssiSnrTrigger);
+/** @ingroup QoS
+ * \brief	Configure AC parameters
+ * 
+ * \param  hTWD    			- TWD module object handle
+ * \param  pAcQosParams  	- Pointer to Input AC Quality Of Service Parameters Structure
+ * 								Fields that should be filled:
+ * 								pAcQosParams->ac
+ * 								pAcQosParams->aifsn
+ * 								pAcQosParams->cwMax
+ * 								pAcQosParams->cwMin
+ * 								pAcQosParams->txopLimit
+ * \param  fCb      		- Pointer to Command CB Function
+ * \param  hCb      		- Handle to Command CB Function Obj Parameters
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ *
+ * \sa
+ */
+TI_STATUS TWD_CfgAcParams (TI_HANDLE hTWD, TAcQosParams *pAcQosParams, void *fCb, TI_HANDLE hCb);
+/** @ingroup QoS
+ * \brief	Configure Power Save RX Streaming
+ * 
+ * \param  hTWD    			- TWD module object handle
+ * \param  pPsRxStreaming  	- Pointer to Input Power Save RX Straeming Parameters Structure
+ * 								Fields that should be filled:
+ * 								pPsRxStreaming->uTid
+ * 								pPsRxStreaming->bEnabled
+ * 								pPsRxStreaming->uStreamPeriod
+ * 								pPsRxStreaming->uTxTimeout
+ * \param  fCb      		- Pointer to Command CB Function
+ * \param  hCb      		- Handle to Command CB Function Obj Parameters
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ *
+ * \sa TPsRxStreaming
+ */
+TI_STATUS TWD_CfgPsRxStreaming (TI_HANDLE hTWD, TPsRxStreaming *pPsRxStreaming, void *fCb, TI_HANDLE hCb);
+/** @ingroup Power_Management
+ * \brief	Configure BET
+ * 
+ * \param  hTWD    				- TWD module object handle
+ * \param  Enable    			- 0: disable BET, Otherwirs: Enable BET
+ * \param  MaximumConsecutiveET - Max number of consecutive beacons that may be early terminated
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ *
+ * \sa
+ */
+TI_STATUS TWD_CfgBet (TI_HANDLE hTWD, TI_UINT8 Enable, TI_UINT8 MaximumConsecutiveET);
+/** @ingroup UnKnown
+ * \brief  Configure Keep Alive
+ * 
+ * \param hTWD 				- TWD module object handle
+ * \param  pKeepAliveParams - Pointer to Keep Alive parameters structure
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * Configures the keep-alive paramters
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_CfgKeepAlive (TI_HANDLE hTWD, TKeepAliveParams *pKeepAliveParams);
+/** @ingroup Power_Management
+ * \brief  Configure Keep Alive Enable/Disable flag
+ * 
+ * \param hTWD 			- TWD module object handle
+ * \param  enaDisFlag  	- Indicates whether to Enable (TI_TRUE) or Disable Keep Alive
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_CfgKeepAliveEnaDis (TI_HANDLE hTWD, TI_UINT8 enaDisFlag);
+/** @ingroup Data_Path
+ * \brief	Configure Set BA Initiator
+ * 
+ * \param  hTWD    				- TWD module object handle
+ * \param  uTid 				- TID number
+ * \param  uState 				- Policy : Enable / Disable 
+ * \param  tRa 					- Mac address of: SA as receiver / RA as initiator
+ * \param  uWinSize 			- windows size in number of packet
+ * \param  uInactivityTimeout 	- as initiator inactivity timeout in time units(TU) of 1024us / as receiver reserved
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * configure BA session initiator parameters setting in the FW
+ * called after join in order to init the parameters for negotiating BA sessions as initiator.
+ * Parameters initialized: RA, TID, WinSize, Inactivity Timeout and state = Enable/Disable.
+ * In case the host sends a broadcast address as RA the FW is allowed to Set or Deleted BA sessions 
+ * to any receiver for that TID.
+ * In case of disassociate the FW allowed to establish BA session just after get that command.
+ * That command will not need any respond from the FW. In case DELBA send to STA or from the 
+ * STA as initiator the FW doesn't send event to the host
+ * 
+ * \sa
+ */
+TI_STATUS TWD_CfgSetBaInitiator (TI_HANDLE hTWD, 
+								 TI_UINT8 uTid, 
+								 TI_UINT8 uState, 
+								 TMacAddr tRa, 
+								 TI_UINT16 uWinSize, 
+								 TI_UINT16 uInactivityTimeout);
+/** @ingroup Data_Path
+ * \brief	Configure Set BA Receiver
+ * 
+ * \param  hTWD    				- TWD module object handle
+ * \param  uTid 				- TID number
+ * \param  uState 				- Policy : Enable / Disable 
+ * \param  tRa 					- Mac address of: SA as receiver / RA as initiator
+ * \param  uWinSize 			- windows size in number of packet
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * configure BA session receiver parameters setting in the FW
+ * called after join in order to init the parameters for incoming BA session, as a responder.
+ * Parameters initialized: SA, TID, winSize and state = Enable/Disable.
+ * In case the host sends a broadcast address as SA the FW is allowed to Set/Deleted BA sessions 
+ * to any sender for that TID.
+ * In case of disassociate the FW allowed to establish BA session just after get that command.
+ * The events of that command will respond via the RX path from the FW: ADDBA, DELBA, BAR packets. 
+ * 
+ * \sa
+ */
+TI_STATUS TWD_CfgSetBaReceiver (TI_HANDLE hTWD, 
+								TI_UINT8 uTid, 
+								TI_UINT8 uState, 
+								TMacAddr tRa, 
+								TI_UINT16 uWinSize);
+
+/** @ingroup Data_Path
+ * \brief	Close all BA receiver sessions
+ * 
+ * \param  hTWD    				- TWD module object handle
+ * \return None
+ * 
+ * \par Description
+ * Close all BA receiver sessions and pass all packets in the TID queue to upper layer. 
+ * 
+ * \sa
+ */
+void TWD_CloseAllBaSessions(TI_HANDLE hTWD); 
+
+/** @ingroup BSS
+ * \brief	Set FW HT Capabilities
+ * 
+ * \param  hTWD    				- TWD module object handle
+ * \param  pHtCapabilitiesIe 	- Pointer to string of HT capability IE unparsed
+ * \param  bAllowHtOperation 	- TI_TRUE: HT operation allowed, Otherwise: HT operation NOT allowed
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * Parse HT capability IE and set the current AP HT Capabilities to the FW
+ * 
+ * \sa
+ */
+TI_STATUS TWD_CfgSetFwHtCapabilities (TI_HANDLE hTWD, 
+									  Tdot11HtCapabilitiesUnparse *pHtCapabilitiesIe, 
+									  TI_BOOL bAllowHtOperation);
+/** @ingroup BSS
+ * \brief Set FW HT Information
+ * 
+ * \param  hTWD    				- TWD module object handle
+ * \param  pHtInformationIe 	- Pointer to string of HT information IE unparsed
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * Parse HT Information IE and set the current AP HT Information to the FW
+ * 
+ * \sa
+ */
+TI_STATUS TWD_CfgSetFwHtInformation (TI_HANDLE hTWD, Tdot11HtInformationUnparse *pHtInformationIe);
+
+
+/** @ingroup UnKnown
+ * \brief Enable/Disabel burst mode
+ * 
+ * \param  hTWD    				- TWD module object handle
+ * \param  bEnabled 	        - burst mode: Enable/Disable 
+ * \return TI_OK
+ * 
+ * \par Description
+ * 
+ * \sa
+ */
+TI_STATUS TWD_CfgBurstMode (TI_HANDLE hTWD, TI_BOOL bEnabled);
+
+
+/*-------------*/
+/* Interrogate */
+/*-------------*/
+
+/** @ingroup UnKnown
+ * \brief  Interrogate Roamming Statistics
+ * 
+ * \param  hTWD     	- TWD module object handle
+ * \param  fCb          - Pointer to Command CB Function
+ * \param  hCb          - Handle to Command CB Function Obj Parameters
+ * \param  pCb          - Pointer to read parameters
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * Interrogate ACX Roamming Statistics
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_ItrRoammingStatisitics (TI_HANDLE hTWD, void *fCb, TI_HANDLE hCb, void *pCb);
+/** @ingroup UnKnown
+ * \brief  Configure/Interrogate RSSI
+ * 
+ * \param  hTWD    	- TWD module object handle
+ * \param  fCb      - Pointer to Command CB Function
+ * \param  hCb      - Handle to Command CB Function Obj Parameters
+ * \param  pCb      - Pointer to read parameters
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * Configure/Interrogate StationId information element to/from FW
+ * This information element specifies the MAC Address assigned to the STATION or AP.
+ * The RSSI is Configed to default value which is the permanent MAC address which 
+ * is stored in the adaptor's non-volatile memory.
+ * 
+ * \sa 
+ */ 
+TI_STATUS TWD_ItrRSSI (TI_HANDLE hTWD, void *fCb, TI_HANDLE hCb, void *pCb);
+/** @ingroup UnKnown
+ * \brief	Interrogate Memory Map
+ * 
+ * \param  hTWD    	- TWD module object handle
+ * \param  pMap    	- Pointer to Output Memory Map
+ * \param  fCb    	- Pointer to Callback Function
+ * \param  hCb    	- Handle to Callback Function Parameters Object 
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * Interrogate Memory Map from FW
+ *
+ * \sa MemoryMap_t
+ */TI_STATUS TWD_ItrMemoryMap (TI_HANDLE hTWD, MemoryMap_t *pMap, void *fCb, TI_HANDLE hCb);
+/** @ingroup UnKnown
+ * \brief	Interrogate Statistics
+ * 
+ * \param  hTWD    	- TWD module object handle
+ * \param  fCb      - Pointer to Command CB Function
+ * \param  hCb      - Handle to Command CB Function Obj Parameters
+ * \param  pCb      - Pointer to read parameters
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ *
+ * \sa
+ */
+TI_STATUS TWD_ItrStatistics (TI_HANDLE hTWD, void *fCb, TI_HANDLE hCb, void *pCb);
+/** @ingroup Data_Path
+ * \brief	Interrogate Data Filter Statistics
+ * 
+ * \param  hTWD    	- TWD module object handle
+ * \param  fCb      - Pointer to Command CB Function
+ * \param  hCb      - Handle to Command CB Function Obj Parameters
+ * \param  pCb      - Pointer to read parameters
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ *
+ * \sa
+ */TI_STATUS TWD_ItrDataFilterStatistics (TI_HANDLE hTWD, void *fCb, TI_HANDLE hCb, void *pCb);
+
+/*
+ * --------------------------------------------------------------
+ *	TNETW-Driver  Tx  API  Functions
+ * --------------------------------------------------------------
+ */
+
+/** @ingroup Data_Path
+ * \brief  TWD TX Control Block Allocation
+ * 
+ * \param  hTWD   	- TWD module object handle
+ * \return Pointer to Control Block Entry on success or NULL on failure
+ * 
+ * \par Description
+ * Use this function for Allocate a Control-Block for the packet Tx parameters and descriptor
+ * 
+ * \sa
+ */ 
+TTxCtrlBlk *TWD_txCtrlBlk_Alloc (TI_HANDLE hTWD);
+/** @ingroup Data_Path
+ * \brief  TWD TX Control Block Free
+ * 
+ * \param  hTWD   			- TWD module object handle
+ * \param  pCurrentEntry   	- Pointer to TX Control Block Entry to Free
+ * \return void
+ * 
+ * \par Description
+ * Use this function for Free a Control-Block of packet Tx parameters and descriptor
+ * 
+ * \sa
+ */ 
+void TWD_txCtrlBlk_Free (TI_HANDLE hTWD, TTxCtrlBlk *pCurrentEntry);
+/** @ingroup Data_Path
+ * \brief  TWD TX Control Get Pointer
+ * 
+ * \param  hTWD   	- TWD module object handle
+ * \param  descId  	- Id of TX Control Block Descriptor
+ * \return Pointer to Control Block Entry on success or NULL on failure
+ * 
+ * \par Description
+ * Use this function for Get a Pointer to a Control-Block of packet Tx parameters and descriptor
+ * 
+ * \sa
+ */ 
+TTxCtrlBlk *TWD_txCtrlBlk_GetPointer (TI_HANDLE hTWD, TI_UINT8 descId);
+
+/** @ingroup Data_Path
+ * \brief  Allocate Resources for TX HW Queue
+ * 
+ * \param  hTWD   			- TWD module object handle
+ * \param  pTxCtrlBlk  		- The Tx packet control block
+ * \return see - ETxHwQueStatus
+ * 
+ * \par Description
+ * Allocates Resources (HW-blocks number required) for TX HW Queue 
+ * 
+ * \sa
+ */ 
+ETxHwQueStatus TWD_txHwQueue_AllocResources (TI_HANDLE hTWD, TTxCtrlBlk *pTxCtrlBlk);
+
+/** @ingroup Data_Path
+ * \brief  TX Xfer Send Packet
+ * 
+ * \param  hTWD   			- TWD module object handle
+ * \param  pPktCtrlBlk   	- Pointer to TX Control Block Entry to Free
+ * \return see ETxnStatus
+ * 
+ * \par Description
+ * Send Packet via TX Xfer 
+ * 
+ * \sa
+ */ 
+ETxnStatus TWD_txXfer_SendPacket (TI_HANDLE hTWD, TTxCtrlBlk *pPktCtrlBlk);
+/** @ingroup Control
+ * \brief  Watch Dog Expire Event
+ * 
+ * \param  hTWD   			- TWD module object handle
+ * \return TI_OK on success or TI_NOK on failure
+ * 
+ * \par Description
+ * This function handles the Event of Watch Dog Expire (FW stopped)
+ * 
+ * \sa
+ */ 
+TI_STATUS TWD_WdExpireEvent (TI_HANDLE hTWD);
+/*
+ * --------------------------------------------------------------
+ *	BIT API Functions
+ * --------------------------------------------------------------
+ */
+/** @ingroup Control
+ * \brief TWD Test Command Complete CB
+ * 
+ * \param  Handle        	- handle to object
+ * \param  eStatus			- Status of Driver Test Performed
+ * \param  pTestCmdParams  	- Pointer to Output of Test Command Parameters
+ * \return void
+ * 
+ * \par Description
+ * The function prototype for the BIT Test Command Complete CB
+ * Enables user to implement and use its own BIT Test Command Complete CB 
+ * which will be called when Driver Test end
+ * 
+ * \sa	TWDriverTest
+ */ 
+typedef void (*TTestCmdCB)(TI_HANDLE Handle, 
+						   TI_STATUS eStatus, 
+						   TI_HANDLE pTestCmdParams);
+/** @ingroup Control
+ * \brief TWD Test Command Complete CB
+ * 
+ * \param  Handle        	- handle to object
+ * \param  eStatus			- Status of Driver Test Performed (Complete/Pending/Error)
+ * \param  pTestCmdParams  	- Pointer to Output of Test Command Parameters
+ * \return void
+ * 
+ * \par Description
+ * The function implementation for the BIT Test Command Complete CB
+ * 
+ * \sa
+ */ 
+void TWDriverTestCB(TI_HANDLE Handle, 
+					TI_STATUS eStatus, 
+					TI_HANDLE pTestCmdParams);
+/** @ingroup Control
+ * \brief TWD Driver Test
+ * 
+ * \param  hTWD        		- handle to TWD object
+ * \param  eTestCmd			- Identifier of test Command to Perform
+ * \param  pTestCmdParams  	- Pointer to Input/Output Test Command Parameters
+ * \param  fCb  			- Test Command Complete CB
+ * \param  hCb	  			- Handle to Test Command Complete CB Parameters
+ * \return TI_OK on success or TI_NOK on failure 
+ * 
+ * \par Description
+ * The implementation of the BIT Test Command
+ * 
+ * \sa
+ */ 
+TI_STATUS TWDriverTest(TI_HANDLE hTWD, 
+					   TestCmdID_enum eTestCmd, 
+					   void* pTestCmdParams, 
+					   TTestCmdCB fCb, 
+					   TI_HANDLE hCb);
+
+
+
+/** 
+ *  \brief TWD get FEM type
+ *  * 
+ * \param  Handle        	- handle to object
+ * \return uint8 
+ * 
+ * \par Description
+ * The function return the Front end module that was read frm FW register * 
+ * \sa
+ */ 
+
+TI_UINT8 TWD_GetFEMType (TI_HANDLE hTWD);
+
+
+/** 
+ *  \brief TWD end function of read radio state machine
+ *  *  * 
+ * \param  Handle        	- handle to object
+ * \return void
+ * 
+ * \par Description
+ * The function calling to HwInit call back function, after finish reading FEM registers * 
+ * \sa
+ */ 
+
+void TWD_FinalizeFEMRead(TI_HANDLE hTWD);
+void TWD_FinalizePolarityRead(TI_HANDLE hTWD);
+
+/**
+ * \function TWD_rxXfer_Handle
+ * 
+ *  Handle Rx buffers read in case we delayed it from upper layer 
+ * 
+ * \param hTWD 				- TWD module object handle
+ *
+ * \sa
+ */ 
+void TWD_rxXfer_Handle (TI_HANDLE hTWD);
+
+TI_STATUS TWD_SetRateMngDebug(TI_HANDLE hTWD, RateMangeParams_t *pRateMngParams);
+TI_STATUS TWD_GetRateMngDebug(TI_HANDLE hTWD, RateMangeReadParams_t  *pParamInfo);
+
+#endif  /* TWDRIVER_H */