• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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