1 /** \file measurementTypes.h 2 * \brief This file include data types definitions for the measurment SRV module. 3 * \author Ronen Kalish 4 * \date 08-November-2005 5 */ 6 /**************************************************************************** 7 **+-----------------------------------------------------------------------+** 8 **| |** 9 **| Copyright(c) 1998 - 2008 Texas Instruments. All rights reserved. |** 10 **| All rights reserved. |** 11 **| |** 12 **| Redistribution and use in source and binary forms, with or without |** 13 **| modification, are permitted provided that the following conditions |** 14 **| are met: |** 15 **| |** 16 **| * Redistributions of source code must retain the above copyright |** 17 **| notice, this list of conditions and the following disclaimer. |** 18 **| * Redistributions in binary form must reproduce the above copyright |** 19 **| notice, this list of conditions and the following disclaimer in |** 20 **| the documentation and/or other materials provided with the |** 21 **| distribution. |** 22 **| * Neither the name Texas Instruments nor the names of its |** 23 **| contributors may be used to endorse or promote products derived |** 24 **| from this software without specific prior written permission. |** 25 **| |** 26 **| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |** 27 **| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |** 28 **| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |** 29 **| A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |** 30 **| OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |** 31 **| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |** 32 **| LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |** 33 **| DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |** 34 **| THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |** 35 **| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |** 36 **| OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |** 37 **| |** 38 **+-----------------------------------------------------------------------+** 39 ****************************************************************************/ 40 41 #ifndef __MEASUREMENT_TYPES_H__ 42 #define __MEASUREMENT_TYPES_H__ 43 44 #include "osTIType.h" 45 #include "ratesTypes.h" 46 #include "osDot11.h" 47 48 49 /* 50 *********************************************************************** 51 * Constant definitions. 52 *********************************************************************** 53 */ 54 55 #define NOISE_HISTOGRAM_LENGTH 8 56 #define MAX_NUM_OF_MSR_TYPES_IN_PARALLEL 3 57 58 /* The size of the time frame in which we must start the */ 59 /* measurement request or give up */ 60 #define MSR_START_MAX_DELAY 50 61 62 /* In non unicast measurement requests a random delay */ 63 /* between 4 and 40 milliseconds */ 64 #define MSR_ACTIVATION_DELAY_RANDOM 36 65 #define MSR_ACTIVATION_DELAY_OFFSET 4 66 67 68 69 /* 70 *********************************************************************** 71 * Enums. 72 *********************************************************************** 73 */ 74 75 /** \enum measurement_type_e 76 * \brief enumerates the different measurement types 77 */ 78 typedef enum 79 { 80 MSR_TYPE_BASIC_MEASUREMENT = 0, 81 MSR_TYPE_CCA_LOAD_MEASUREMENT = 1, 82 MSR_TYPE_NOISE_HISTOGRAM_MEASUREMENT = 2, 83 MSR_TYPE_BEACON_MEASUREMENT = 3, 84 MSR_TYPE_FRAME_MEASUREMENT = 4, 85 MSR_TYPE_MAX_NUM_OF_MEASURE_TYPES = 5 86 } measurement_type_e; 87 88 89 /** \enum measurement_scanMode_e 90 * \brief enumerates the different scan modes available for beacon measurement 91 */ 92 typedef enum 93 { 94 MSR_SCAN_MODE_PASSIVE = 0, 95 MSR_SCAN_MODE_ACTIVE = 1, 96 MSR_SCAN_MODE_BEACON_TABLE = 2, 97 MSR_SCAN_MODE_MAX_NUM_OF_SCAN_MODES = 3, 98 } measurement_scanMode_e; 99 100 101 typedef enum 102 { 103 MSR_FRAME_TYPE_NO_ACTIVE = 0, 104 MSR_FRAME_TYPE_BROADCAST = 1, 105 MSR_FRAME_TYPE_MULTICAST = 2, 106 MSR_FRAME_TYPE_UNICAST = 3 107 } measurement_frameType_e; 108 109 110 typedef enum 111 { 112 MSR_MODE_NONE = 0, 113 MSR_MODE_EXC = 1, 114 MSR_MODE_SPECTRUM_MANAGEMENT = 2, 115 } measurement_mode_e; 116 117 typedef enum 118 { 119 MSR_REJECT_OTHER_REASON = 1, 120 MSR_REJECT_INVALID_MEASUREMENT_TYPE, 121 MSR_REJECT_DTIM_OVERLAP, 122 MSR_REJECT_DURATION_EXCEED_MAX_DURATION, 123 MSR_REJECT_TRAFFIC_INTENSITY_TOO_HIGH, 124 MSR_REJECT_SCR_UNAVAILABLE, 125 MSR_REJECT_MAX_DELAY_PASSED, 126 MSR_REJECT_INVALID_CHANNEL, 127 MSR_REJECT_NOISE_HIST_FAIL, 128 MSR_REJECT_CHANNEL_LOAD_FAIL, 129 MSR_REJECT_EMPTY_REPORT, 130 } measurement_rejectReason_e; 131 132 /* 133 *********************************************************************** 134 * Unions. 135 *********************************************************************** 136 */ 137 138 /** \union measurement_replyValue_u 139 * \brief enumerates the different measurement types 140 */ 141 typedef union 142 { 143 UINT8 CCABusyFraction; 144 UINT8 RPIDensity[ NOISE_HISTOGRAM_LENGTH ]; 145 } measurement_replyValue_u; 146 147 /*********************************************************************** 148 * Structure definitions. 149 *********************************************************************** 150 */ 151 152 /** \struct scan_normalChannelEntry_t 153 * \brief This structure contains single channel parameters for normal scan operation (inc. triggered) 154 */ 155 typedef struct 156 { 157 measurement_type_e msrType; 158 measurement_scanMode_e scanMode; 159 UINT32 duration; 160 UINT8 reserved; 161 } measurement_typeRequest_t; 162 163 typedef struct 164 { 165 radioBand_e band; 166 UINT8 channel; 167 UINT64 startTime; 168 UINT8 txPowerDbm; 169 UINT8 numberOfTypes; 170 measurement_typeRequest_t msrTypes[ MAX_NUM_OF_MSR_TYPES_IN_PARALLEL ]; 171 } measurement_request_t; 172 173 174 typedef struct 175 { 176 measurement_type_e msrType; 177 UINT8 status; 178 measurement_replyValue_u replyValue; 179 UINT8 reserved; 180 } measurement_typeReply_t; 181 182 typedef struct 183 { 184 UINT8 numberOfTypes; 185 measurement_typeReply_t msrTypes[ MAX_NUM_OF_MSR_TYPES_IN_PARALLEL ]; 186 } measurement_reply_t; 187 188 PACKED_STRUCT( measurement_frameHdr_t , 189 190 UINT16 dialogToken; 191 UINT8 activatioDelay; 192 UINT8 measurementOffset; 193 ); 194 195 PACKED_STRUCT( measurement_frameRequest_t , 196 197 measurement_frameHdr_t *hdr; 198 measurement_frameType_e frameType; 199 UINT8 *requests; 200 INT32 requestsLen; 201 ); 202 203 204 205 #endif /* __MEASUREMENT_TYPES_H__ */ 206 207