Home | History | Annotate | Download | only in Application
      1 /*
      2  * roamingMngrTypes.h
      3  *
      4  * Copyright(c) 1998 - 2009 Texas Instruments. All rights reserved.
      5  * All rights reserved.
      6  *
      7  * Redistribution and use in source and binary forms, with or without
      8  * modification, are permitted provided that the following conditions
      9  * are met:
     10  *
     11  *  * Redistributions of source code must retain the above copyright
     12  *    notice, this list of conditions and the following disclaimer.
     13  *  * Redistributions in binary form must reproduce the above copyright
     14  *    notice, this list of conditions and the following disclaimer in
     15  *    the documentation and/or other materials provided with the
     16  *    distribution.
     17  *  * Neither the name Texas Instruments nor the names of its
     18  *    contributors may be used to endorse or promote products derived
     19  *    from this software without specific prior written permission.
     20  *
     21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     22  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     23  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     24  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     25  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     26  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     27  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     28  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     29  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     30  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     31  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     32  */
     33 
     34 
     35 /****************************************************************************
     36  *                                                                          *
     37  *   MODULE:  Roaming Manager	    		                                *
     38  *   PURPOSE: Roaming Manager Module Types                              		*
     39  *                                                                          *
     40  ****************************************************************************/
     41 
     42 #ifndef _ROAMING_MNGR_TYPES_H_
     43 #define _ROAMING_MNGR_TYPES_H_
     44 
     45 /** \file  roamingMngrTypes.h
     46  *  \brief Internal Roaming Manager Types API
     47  */
     48 
     49 /*-----------*/
     50 /* Constants */
     51 /*-----------*/
     52 #define ROAMING_ENABLED 		1
     53 #define ROAMING_DISABLED		0
     54 
     55 #define ROAMING_OPERATIONAL_MODE_MANUAL    0
     56 #define ROAMING_OPERATIONAL_MODE_AUTO 	   1
     57 
     58 /*--------------*/
     59 /* Enumerations */
     60 /*--------------*/
     61 
     62 
     63 /*----------*/
     64 /* Typedefs */
     65 /*----------*/
     66 
     67 /** \struct roamingMngrConfig_t
     68  * \brief Roaming Manager Configuration
     69  *
     70  * \par Description
     71  * This Structure defines the Roaming Manager Configuration Type
     72  *
     73  * \sa
     74  */
     75 typedef struct
     76 {
     77 	TI_UINT16	enableDisable; 					/**< Indicates if roaming is enabled/disabled:
     78 												* ROAMING_ENABLED: Enables roaming manager
     79 												* ROAMING _DISABLED: Disables roaming manager
     80 												* TI recommended default: roaming is disabled
     81 												* Note: TI_BOOL is not used, beacuse of misdefinition between the Driver and CU
     82 												*/
     83     TI_UINT16	lowPassFilterRoamingAttempt;	/**< Time to wait in seconds before roaming caused by low connection quality;
     84 												* TI recommended default: 30 seconds
     85 												*/
     86 	TI_INT8		apQualityThreshold;				/**< Quality indicator (RSSI) to be used when comparing AP List matching quality
     87 												* TI recommended default: 0
     88 												*/
     89 } roamingMngrConfig_t;
     90 
     91 /** \struct roamingMngrThresholdsConfig_t
     92  * \brief Roaming Manager Thresholds Configuration
     93  *
     94  * \par Description
     95  * This Structure defines the Roaming Manager Trigger Thresholds Configuration type	\n
     96  * Note - It is the applicatio's responsibility to change the threshold when Voice is On
     97  *
     98  * \sa
     99  */
    100 typedef struct
    101 {
    102 	TI_UINT8	dataRetryThreshold;						/**< Consecutive number of TX retries per roaming event;
    103 														* TI recommended default: 20
    104 														*/
    105     TI_UINT8	numExpectedTbttForBSSLoss;				/**< Number of expected TBTTs for BSS Loss event
    106 														* TI recommended default: 10
    107 														*/
    108 	TI_UINT8	txRateThreshold;						/**< Low TX rate roaming even threshold;
    109 														* TI recommended default: 2 Mbps
    110 														*/
    111 	TI_INT8		lowRssiThreshold;						/**< When the low RSSI threshold is crossed, the low RSSI roaming event is initiated in dBm;
    112 														* TI recommended default: -80 dBm
    113 														*/
    114 	TI_UINT8	lowSnrThreshold;						/**< When the low SNR threshold is crossed, the low SNR roaming event is initiated.
    115 														* TI recommended default: 0
    116 														*/
    117 	TI_INT8		lowQualityForBackgroungScanCondition; 	/**< Indicator used to increase the background scan period when quality is low
    118 														* TI recommended default: -80
    119 														*/
    120 	TI_INT8		normalQualityForBackgroungScanCondition;/**< Indicator used to reduce the background scan period when quality is normal
    121 														* TI recommended default: -80
    122 														*/
    123 } roamingMngrThresholdsConfig_t;
    124 
    125 /** \struct roamingMngrConfigParams_t
    126  * \brief Roaming Manager Configuration Parameters
    127  *
    128  * \par Description
    129  *
    130  * \sa
    131  */
    132 typedef struct
    133 {
    134 	roamingMngrConfig_t				roamingMngrConfig;				/**< Roaming Manager Configuration				*/
    135 	roamingMngrThresholdsConfig_t	roamingMngrThresholdsConfig;	/**< Roaming Manager Thresholds Configuration	*/
    136 } roamingMngrConfigParams_t;
    137 
    138 /** \struct TUserDefinedQualityTrigger
    139  * \brief User Defined Quality Trigger
    140  *
    141  * \par Description
    142  * This struct defines the User Defined Quality Trigger Parameters	\n
    143  * Used for setting Roaming User Defined Trigger
    144  *
    145  * \sa
    146  */
    147 typedef struct
    148 {
    149     TI_INT16  iThreshold;	/**< Input Trigger Threshold. Units: dBm / dB ; Range: (-100 .. 100)						*/
    150     TI_UINT16 uPacing;		/**< Minimum delay between consecutive triggers. Units: milliseconds ; Range:  (0 .. 60000) */
    151     TI_UINT8  uMetric;		/**< 0 - RSSI Beacon, 1 - RSSI Packet, 2 - SNR Beacon, 3 - SNR Packet 						*/
    152     TI_UINT8  uType;		/**< 0 - Level, 1 - Edge 																	*/
    153     TI_UINT8  uDirection;	/**< 0 - Low, 1 - High, 2 - Bidirectional 													*/
    154     TI_UINT8  uHystersis;	/**< Hysteresis range around the threshold value. Units: dB ; Threshold range: (0 .. 255)	*/
    155     TI_UINT8  uIndex; 		/**< User Index (0 .. 1) 																	*/
    156     TI_UINT8  uEnable;		/**< User trigger Enable. 0 - Disable, 1 - Enable 											*/
    157     TI_UINT8  padding[2];  	/**< */
    158     TI_UINT16 uClientID;    /**< the client ID that registered for the trigger event									*/
    159 } TUserDefinedQualityTrigger;
    160 
    161 
    162 #endif /*  _ROAMING_MNGR_TYPES_H_*/
    163 
    164