blob: 0dd13b8bc1a8c8054a4f114bce704f928980ea27 [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Gopichand Nakkala92f07d82013-01-08 21:16:34 -08002 * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
3 *
4 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5 *
6 *
7 * Permission to use, copy, modify, and/or distribute this software for
8 * any purpose with or without fee is hereby granted, provided that the
9 * above copyright notice and this permission notice appear in all
10 * copies.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19 * PERFORMANCE OF THIS SOFTWARE.
20 */
21/*
Jeff Johnson32d95a32012-09-10 13:15:23 -070022 * Copyright (c) 2012, The Linux Foundation. All rights reserved.
Jeff Johnson295189b2012-06-20 16:38:30 -070023 *
24 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
25 *
26 *
27 * Permission to use, copy, modify, and/or distribute this software for
28 * any purpose with or without fee is hereby granted, provided that the
29 * above copyright notice and this permission notice appear in all
30 * copies.
31 *
32 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
33 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
34 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
35 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
36 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
37 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
38 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
39 * PERFORMANCE OF THIS SOFTWARE.
40 */
41
42#if !defined( WLAN_HDD_MIB_h__ )
43#define WLAN_HDD_MIB_h__
44
45
46#include <vos_types.h>
47
48typedef enum
49{
50 eMib_dot11DesiredBssType_infrastructure = 1,
51 eMib_dot11DesiredBssType_independent = 2,
52 eMib_dot11DesiredBssType_infra_ap =3,
53 eMib_dot11DesiredBssType_any = 4
54
55} eMib_dot11DesiredBssType;
56
57
58/** This is the maximum number of BSSIDs supported in the
59 dot11DesiredBssidList. All the code operates off of
60 this maximum BSSID list count. */
61#define MIB_DOT11_DESIRED_BSSID_LIST_MAX_COUNT ( 1 )
62
63typedef struct
64{
65 v_U32_t cEntries;
66
67 v_MACADDR_t BSSIDs[ MIB_DOT11_DESIRED_BSSID_LIST_MAX_COUNT ];
68
69} sMib_dot11DesiredBssidList;
70
71
72
73/** This is the maximum number of SSIDs supported in the
74 dot11DesiredSsidList. All the code operates off of
75 this maximum SSID list count. */
76
77#define MIB_DOT11_DESIRED_SSID_LIST_MAX_COUNT ( 1 )
78
79#define MIB_DOT11_SSID_MAX_LENGTH ( 32 )
80
81typedef struct
82{
83 v_U32_t ssidLength;
84 v_U8_t ssid[ MIB_DOT11_SSID_MAX_LENGTH ];
85
86} sDot11Ssid;
87
88typedef struct
89{
90 v_U32_t cEntries;
91
92 sDot11Ssid SSIDs[ MIB_DOT11_DESIRED_SSID_LIST_MAX_COUNT ];
93
94} sMib_dot11DesiredSsidList;
95
96
97
98typedef enum
99{
100 // these are bitmasks....
101 eMib_dot11AutoConfigEnabled_None = 0U,
102 eMib_dot11AutoConfigEnabled_Phy = 0x00000001U,
103 eMib_dot11AutoConfigEnabled_Mac = 0x00000002U
104
105} eMib_dot11AutoConfigEnabled;
106
107
108
109#define MIB_DOT11_SUPPORTED_PHY_TYPES_MAX_COUNT ( 3 )
110
111typedef enum tagMib_dot11PhyType
112{
113 eMib_dot11PhyType_11b,
114 eMib_dot11PhyType_11a,
115 eMib_dot11PhyType_11g,
116 eMib_dot11PhyType_all
117} eMib_dot11PhyType;
118
119typedef struct tagMib_dot11SupportedPhyTypes
120{
121 v_U32_t cEntries;
122 eMib_dot11PhyType phyTypes[ MIB_DOT11_SUPPORTED_PHY_TYPES_MAX_COUNT ];
123} sMib_dot11SupportedPhyTypes;
124
125
126typedef enum
127{
128 eMib_DevicePowerState_D0,
129 eMib_DevicePowerState_D1,
130 eMib_DevicePowerState_D2,
131 eMib_DevicePowerState_D3
132
133} eMib_DevicePowerState;
134
135
136typedef enum
137{
138 eMib_dot11NICPowerState_OFF = VOS_FALSE,
139 eMib_dot11NICPowerState_ON = VOS_TRUE
140
141} eMib_dot11NICPowerState;
142
143
144typedef enum
145{
146 eMib_dot11HardwarePHYState_OFF = VOS_FALSE,
147 eMib_dot11HardwarePHYState_ON = VOS_TRUE
148
149} eMib_dot11HardwarePHYState;
150
151
152typedef enum
153{
154 eMib_dot11PowerSavingLevel_None,
155 eMib_dot11PowerSavingLevel_MaxPS,
156 eMib_dot11PowerSavingLevel_FastPS,
157 eMib_dot11PowerSavingLevel_MaximumLevel
158
159} eMib_dot11PowerSavingLevel;
160
161
162#define MIB_DOT11_MAC_EXCLUSION_LIST_MAX_COUNT 4
163typedef struct
164{
165 v_U32_t cEntries;
166
167 v_MACADDR_t macAddrs[ MIB_DOT11_MAC_EXCLUSION_LIST_MAX_COUNT ];
168
169} sMib_dot11MacExcludeList;
170
171#define MIB_DOT11_PRIVACY_EXEMPT_LIST_MAX_COUNT 32
172
173typedef enum
174{
175 eMib_dot11ExemptionAction_Always,
176 eMib_dot11ExemptionAction_OnKeyMapUnavailable
177
178}eMib_dot11ExemptAction;
179
180typedef enum
181{
182 eMib_dot11ExemptPacket_Unicast,
183 eMib_dot11ExemptPacket_Multicast,
184 eMib_dot11ExemptPacket_Both
185
186}eMib_dot11ExemptPacket;
187
188typedef struct
189{
190 v_U16_t uEtherType;
191 eMib_dot11ExemptAction exemptAction;
192 eMib_dot11ExemptPacket exemptPacket;
193
194}sMib_dot11PrivacyExemption;
195
196typedef struct
197{
198 v_U32_t cEntries;
199
200 sMib_dot11PrivacyExemption privacyExemptList[ MIB_DOT11_PRIVACY_EXEMPT_LIST_MAX_COUNT ];
201
202} sMib_dot11PrivacyExemptionList;
203
204typedef struct sHddMib_s
205{
206 eMib_dot11DesiredBssType mibDot11DesiredBssType;
207
208 sMib_dot11DesiredBssidList mibDot11DesiredBssidList;
209
210 sMib_dot11DesiredSsidList mibDot11DesiredSsidList;
211
212 eMib_dot11AutoConfigEnabled mibDot11AutoConfigEnabled;
213
214 // the device power state for the device (the D-state... you know D0, D1, D2, etc.
215 eMib_DevicePowerState mibDevicePowerState;
216
217 // dot11NICPowerState is really the on/off state of the PHY. This can be
218 // mamipulated through OIDs like a software control for radio on/off.
219 eMib_dot11NICPowerState mibDot11NICPowerState;
220
221 // Hardware PHY state is the on/off state of the hardware PHY.
222 eMib_dot11HardwarePHYState mibDot11HardwarePHYState;
223
224 // dot11 Power Saving level is the 802.11 power saving level/state for the 802.11
225 // NIC. Typically this is mapped to 802.11 BMPS in some fashion. We are not going
226 // to disappoint; the Libra NIC maps these to different BMPS settings.
227 eMib_dot11PowerSavingLevel mibDot11PowerSavingLevel;
228
229 sMib_dot11MacExcludeList mibDot11MacExcludeList;
230
231 sMib_dot11PrivacyExemptionList mibDot11PrivacyExemptionList;
232
233 sMib_dot11SupportedPhyTypes mibDot11SupportedPhyTypes;
234 eMib_dot11PhyType mibDot11CurrentPhyType;
235
236 v_BOOL_t dot11IbssJoinOnly;
237 v_BOOL_t HiddenNetworkEnabled;
238
239
240}sHddMib_t;
241
242#endif