|
1 /* |
|
2 * Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of the License "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: This file contains definitions for OID messages, which are |
|
15 * used for issuing management commands to UMAC. |
|
16 * |
|
17 */ |
|
18 |
|
19 /* |
|
20 * %version: 42 % |
|
21 */ |
|
22 |
|
23 #ifndef WLAN_OID_MSG_H |
|
24 #define WLAN_OID_MSG_H |
|
25 |
|
26 #include "umac_types.h" |
|
27 |
|
28 |
|
29 // Query |
|
30 // | Set |
|
31 // | | |
|
32 enum TWlanCommandId // | | |
|
33 { // | | |
|
34 E802_11_CONNECT = 0x0C000000, // X |
|
35 E802_11_START_IBSS, // X |
|
36 E802_11_SCAN, // X |
|
37 E802_11_STOP_SCAN, // X |
|
38 E802_11_DISCONNECT, // X |
|
39 E802_11_SET_POWER_MODE, // X |
|
40 E802_11_SET_RCPI_TRIGGER_LEVEL, // X |
|
41 E802_11_SET_TX_POWER_LEVEL, // X |
|
42 E802_11_CONFIGURE, // X |
|
43 E802_11_GET_LAST_RCPI, // X |
|
44 E802_11_DISABLE_USER_DATA, // X |
|
45 E802_11_ENABLE_USER_DATA, // X |
|
46 E802_11_ADD_CIPHER_KEY, // X |
|
47 E802_11_ADD_MULTICAST_ADDR, // X |
|
48 E802_11_REMOVE_MULTICAST_ADDR, // X |
|
49 E802_11_CONFIGURE_BSS_LOST, // X |
|
50 E802_11_SET_TX_RATE_ADAPT_PARAMS, // X |
|
51 E802_11_CONFIGURE_TX_RATE_POLICIES, // X |
|
52 E802_11_SET_POWER_MODE_MGMT_PARAMS, // X |
|
53 E802_11_CONFIGURE_PWR_MODE_MGMT_TRAFFIC_OVERRIDE, // X |
|
54 E802_11_GET_FRAME_STATISTICS, // X |
|
55 E802_11_CONFIGURE_UAPSD, // X |
|
56 E802_11_CONFIGURE_TX_QUEUE, // X |
|
57 E802_11_GET_MAC_ADDRESS, // X |
|
58 E802_11_CONFIGURE_ARP_IP_ADDRESS_FILTERING, // X |
|
59 E802_11_CONFIGURE_HT_BLOCK_ACK, // X |
|
60 E802_11_CONFIGURE_PROPRIETARY_SNAP_HDR // X |
|
61 }; |
|
62 |
|
63 const TUint KMaxCipherKeyLength = 32; // 256 bits |
|
64 |
|
65 // ------------------------------------------------------------------------- |
|
66 |
|
67 /** 802.11 Power management modes */ |
|
68 enum TPowerMode |
|
69 { |
|
70 /** Continuous Awake Mode (CAM). */ |
|
71 EPowerModeCam, |
|
72 /** Power Save (PS) Mode */ |
|
73 EPowerModePs |
|
74 }; |
|
75 |
|
76 /** WLAN wake-up modes in 802.11 PS mode */ |
|
77 enum TWlanWakeUpInterval |
|
78 { |
|
79 EWakeUpIntervalAllBeacons = 0, |
|
80 EWakeUpIntervalAllDtims = 1, |
|
81 EWakeUpIntervalEveryNthBeacon = 2, |
|
82 EWakeUpIntervalEveryNthDtim = 3, |
|
83 }; |
|
84 |
|
85 // ------------------------------------------------------------------------- |
|
86 enum TAuthenticationMode |
|
87 { |
|
88 /** |
|
89 * IEEE 802.11 open authentication mode. |
|
90 * No checks when accepting clients in this mode. |
|
91 */ |
|
92 EAuthModeOpen, |
|
93 /** IEEE 802.11 shared authentication that uses pre-shared WEP-key. */ |
|
94 EAuthModeShared, |
|
95 /** Vendor specific authentication mode */ |
|
96 EAuthModeLeap, |
|
97 /** Not a real mode, defined as an upper bound. */ |
|
98 EAuthModeMax |
|
99 }; |
|
100 |
|
101 // ------------------------------------------------------------------------- |
|
102 /** WLAN rates, units of 500 kbit/sec */ |
|
103 enum TRate |
|
104 { |
|
105 ENoRate = 0, |
|
106 E1Mbps = 2, |
|
107 E2Mbps = 4, |
|
108 E5_5Mbps = 11, |
|
109 E11Mbps = 22, |
|
110 E22Mbps = 44, |
|
111 EBASIC_1Mbps = 0x82, |
|
112 EBASIC_2Mbps = 0x84, |
|
113 EBASIC_5_5Mbps = 0x8b, |
|
114 EBASIC_11Mbps = 0x96, |
|
115 EBASIC_22Mbps = 0xac |
|
116 }; |
|
117 |
|
118 // ------------------------------------------------------------------------- |
|
119 |
|
120 typedef enum _TEncryptionStatus |
|
121 { |
|
122 /** Security is disabled. */ |
|
123 EEncryptionDisabled, |
|
124 /** Use WEP security */ |
|
125 EEncryptionWep, |
|
126 /** Use 802.1x security */ |
|
127 EEncryption802dot1x, |
|
128 /** Use WPA security */ |
|
129 EEncryptionWpa, |
|
130 /** WEP mixed cell */ |
|
131 EEncryptionWepMixed, |
|
132 /** 802.1x mixed cell */ |
|
133 EEncryption802dot1xMixed, |
|
134 /** Use WAPI security */ |
|
135 EEncryptionWAPI |
|
136 } TEncryptionStatus; |
|
137 |
|
138 // ------------------------------------------------------------------------- |
|
139 /** |
|
140 * The possible cipher suites. |
|
141 */ |
|
142 enum TWlanCipherSuite |
|
143 { |
|
144 EWlanCipherSuiteNone, |
|
145 EWlanCipherSuiteTkip, |
|
146 EWlanCipherSuiteCcmp, |
|
147 EWlanCipherSuiteWep, |
|
148 EWlanCipherSuiteWapi |
|
149 }; |
|
150 |
|
151 // ------------------------------------------------------------------------- |
|
152 // |
|
153 // PRAGMA PACK 4 BEGINS |
|
154 // |
|
155 #pragma pack(4) |
|
156 |
|
157 typedef struct _TSSID |
|
158 { |
|
159 /** |
|
160 * Length of ssid-field in octets. This can be zero. |
|
161 * If this is set to zero in the Scan command (message) when doing an |
|
162 * active scan, a broadcast scan is performed. |
|
163 */ |
|
164 TUint32 ssidLength; |
|
165 /** |
|
166 * SSID information field. |
|
167 */ |
|
168 TUint8 ssid[KMaxSSIDLength]; |
|
169 } TSSID; |
|
170 |
|
171 #pragma pack() |
|
172 // |
|
173 // PRAGMA PACK 4 ENDS |
|
174 // |
|
175 // ------------------------------------------------------------------------- |
|
176 |
|
177 |
|
178 enum TScanMode |
|
179 { |
|
180 /** Send probe requests to specified channels. */ |
|
181 EActiveScan, |
|
182 /** Listen beacons from specified channels. */ |
|
183 EPassiveScan |
|
184 }; |
|
185 |
|
186 typedef struct _SChannels |
|
187 { |
|
188 TUint8 iBand; // 1 = 2.4 GHz, 2 = 4.9 GHz, 4 = 5 GHz |
|
189 TUint8 iChannels2dot4GHz[2]; |
|
190 TUint8 iChannels4dot9GHz[3]; |
|
191 TUint8 iChannels5GHz[26]; |
|
192 } SChannels; |
|
193 |
|
194 // ------------------------------------------------------------------------- |
|
195 |
|
196 typedef struct _TTxRateClass |
|
197 { |
|
198 /** Number of attempts to tx at 54 Mbits/s */ |
|
199 TUint8 txPolicy54; |
|
200 /** Number of attempts to tx at 48 Mbits/s */ |
|
201 TUint8 txPolicy48; |
|
202 /** Number of attempts to tx at 36 Mbits/s */ |
|
203 TUint8 txPolicy36; |
|
204 /** Number of attempts to tx at 33 Mbits/s */ |
|
205 TUint8 txPolicy33; |
|
206 /** Number of attempts to tx at 24 Mbits/s */ |
|
207 TUint8 txPolicy24; |
|
208 /** Number of attempts to tx at 22 Mbits/s */ |
|
209 TUint8 txPolicy22; |
|
210 /** Number of attempts to tx at 18 Mbits/s */ |
|
211 TUint8 txPolicy18; |
|
212 /** Number of attempts to tx at 12 Mbits/s */ |
|
213 TUint8 txPolicy12; |
|
214 /** Number of attempts to tx at 11 Mbits/s */ |
|
215 TUint8 txPolicy11; |
|
216 /** Number of attempts to tx at 9 Mbits/s */ |
|
217 TUint8 txPolicy9; |
|
218 /** Number of attempts to tx at 6 Mbits/s */ |
|
219 TUint8 txPolicy6; |
|
220 /** Number of attempts to tx at 5.5 Mbits/s */ |
|
221 TUint8 txPolicy5_5; |
|
222 /** Number of attempts to tx at 2 Mbits/s */ |
|
223 TUint8 txPolicy2; |
|
224 /** Number of attempts to tx at 1 Mbits/s */ |
|
225 TUint8 txPolicy1; |
|
226 |
|
227 /** 802.11 ShortRetryLimit used in the rate class */ |
|
228 TUint8 shortRetryLimit; |
|
229 /** 802.11 LongRetryLimit used in the rate class */ |
|
230 TUint8 longRetryLimit; |
|
231 |
|
232 /** |
|
233 * Transmit flags. |
|
234 * Bit 0 - truncate. If this bit is set, then attempts to send a frame |
|
235 * stop when the total valid per-rate attempts have been exhausted, |
|
236 * otherwise, and also in the case the feature is not supported |
|
237 * by WHA layer, transmissions will continue at the lowest available |
|
238 * rate until the appropriate one of the iShortRetryLimit, iLongRetryLimit, |
|
239 * dot11MaxTransmitMsduLifetime, is exhausted. [optional] |
|
240 * Bit 1 - indicates if the preamble override from the rate class should |
|
241 * be used in transmit. [optional] |
|
242 * Bit 2 - defines the type of preamble to be used by the rate class. |
|
243 * 0 means long preamble and 1 means short preamble. [optional] |
|
244 */ |
|
245 TUint32 flags; |
|
246 } TTxRateClass; |
|
247 |
|
248 const TUint8 KMaxNbrOfRateClasses = 4; |
|
249 |
|
250 typedef struct _TTxRatePolicy |
|
251 { |
|
252 TUint32 numOfPolicyObjects; |
|
253 TTxRateClass txRateClass[KMaxNbrOfRateClasses]; |
|
254 } TTxRatePolicy; |
|
255 |
|
256 // ------------------------------------------------------------------------- |
|
257 |
|
258 typedef TUint8 TRateClassIndex; |
|
259 |
|
260 /** Tx Queue to Rate Class mapping */ |
|
261 |
|
262 typedef TRateClassIndex TQueue2RateClass[EQueueIdMax]; |
|
263 |
|
264 // ------------------------------------------------------------------------- |
|
265 |
|
266 typedef TUint32 TRateMask; |
|
267 |
|
268 /** Initial Max Tx Rate for Rate Class */ |
|
269 typedef TRateMask TInitialMaxTxRate4RateClass[KMaxNbrOfRateClasses]; |
|
270 |
|
271 /** Tx rate masks */ |
|
272 |
|
273 const TRateMask KRate1Mbits = 0x00000001; |
|
274 const TRateMask KRate2Mbits = 0x00000002; |
|
275 const TRateMask KRate5_5Mbits = 0x00000004; |
|
276 const TRateMask KRate6Mbits = 0x00000008; |
|
277 const TRateMask KRate9Mbits = 0x00000010; |
|
278 const TRateMask KRate11Mbits = 0x00000020; |
|
279 const TRateMask KRate12Mbits = 0x00000040; |
|
280 const TRateMask KRate18Mbits = 0x00000080; |
|
281 const TRateMask KRate22Mbits = 0x00000100; |
|
282 const TRateMask KRate24Mbits = 0x00000200; |
|
283 const TRateMask KRate33Mbits = 0x00000400; |
|
284 const TRateMask KRate36Mbits = 0x00000800; |
|
285 const TRateMask KRate48Mbits = 0x00001000; |
|
286 const TRateMask KRate54Mbits = 0x00002000; |
|
287 |
|
288 /** |
|
289 * Rate policy to use when the WLAN vendor implementation handles |
|
290 * Tx rate adaptation |
|
291 */ |
|
292 typedef TRateMask TTxAutoRatePolicy[KMaxNbrOfRateClasses]; |
|
293 |
|
294 // ------------------------------------------------------------------------- |
|
295 |
|
296 const TUint8 KHtMcsSetLength = 10; |
|
297 typedef TUint8 THtMcsSet[KHtMcsSetLength]; |
|
298 typedef THtMcsSet THtMcsPolicy[KMaxNbrOfRateClasses]; |
|
299 |
|
300 // ------------------------------------------------------------------------- |
|
301 |
|
302 /** the possible values for maximum service period length */ |
|
303 enum TMaxServicePeriodLength |
|
304 { |
|
305 EMaxServicePeriodLengthAll = 0x00, |
|
306 EMaxServicePeriodLengthTwo = 0x20, |
|
307 EMaxServicePeriodLengthFour = 0x40, |
|
308 EMaxServicePeriodLengthSix = 0x60, |
|
309 }; |
|
310 |
|
311 // ------------------------------------------------------------------------- |
|
312 |
|
313 /** data frame statistics per Access Category */ |
|
314 typedef struct _TAccessCategoryStatistics |
|
315 { |
|
316 /** nbr of received unicast data frames */ |
|
317 TUint rxUnicastDataFrameCount; |
|
318 /** nbr of successfully transmitted unicast data frames */ |
|
319 TUint txUnicastDataFrameCount; |
|
320 /** nbr of received multicast data frames */ |
|
321 TUint rxMulticastDataFrameCount; |
|
322 /** nbr of successfully transmitted multicast data frames */ |
|
323 TUint txMulticastDataFrameCount; |
|
324 /** nbr of data frame transmit retries */ |
|
325 TUint txRetryCount; |
|
326 /** nbr of data frames that could not be delivered to the WLAN AP/STA */ |
|
327 TUint txErrorCount; |
|
328 /** |
|
329 * average data frame Transmit / Media Delay in microseconds. |
|
330 * Zero if no frames were transmitted. |
|
331 */ |
|
332 TUint txMediaDelay; |
|
333 /** |
|
334 * average data frame Total Transmit Delay in microseconds. |
|
335 * Zero if no frames were transmitted. |
|
336 */ |
|
337 TUint totalTxDelay; |
|
338 /** nbr of data frames whose total transmit delay was <= 10ms */ |
|
339 TUint totalTxDelayBin0; |
|
340 /** nbr of data frames whose total transmit delay was ]10,20]ms */ |
|
341 TUint totalTxDelayBin1; |
|
342 /** nbr of data frames whose total transmit delay was ]20,40]ms */ |
|
343 TUint totalTxDelayBin2; |
|
344 /** nbr of data frames whose total transmit delay was > 40ms */ |
|
345 TUint totalTxDelayBin3; |
|
346 } TAccessCategoryStatistics; |
|
347 |
|
348 // ------------------------------------------------------------------------- |
|
349 |
|
350 |
|
351 /** |
|
352 * Common header for all messages. |
|
353 */ |
|
354 #pragma pack(4) |
|
355 typedef struct _TOIDHeader |
|
356 { |
|
357 /** OID identification (TWlanCommandId). */ |
|
358 TUint32 oid_id; |
|
359 } TOIDHeader; |
|
360 #pragma pack() |
|
361 |
|
362 |
|
363 // ------------------------------------------------------------------------- |
|
364 |
|
365 typedef struct _TConnectMsg |
|
366 { |
|
367 /** Common message header */ |
|
368 TOIDHeader hdr; |
|
369 /** Name of the network. */ |
|
370 TSSID SSID; |
|
371 /** BSSID of the access point / IBSS network. */ |
|
372 TMacAddress BSSID; |
|
373 /** Authentication algorithm number to be used */ |
|
374 TUint16 authAlgorithmNbr; |
|
375 /** Used encryption mode */ |
|
376 TEncryptionStatus encryptionStatus; |
|
377 /** Pairwise cipher to use; if any */ |
|
378 TWlanCipherSuite pairwiseCipher; |
|
379 /** |
|
380 * ETrue when connecting to an infrastructure network; |
|
381 * EFalse otherwise. |
|
382 */ |
|
383 TBool isInfra; |
|
384 /** |
|
385 * Pointer to a Beacon or Probe Response frame body from the network |
|
386 * to connect to |
|
387 */ |
|
388 const TUint8* scanResponseFrameBody; |
|
389 /** Length of the Beacon or Probe Response frame body */ |
|
390 TUint16 scanResponseFrameBodyLength; |
|
391 /** |
|
392 * Pointer to the IE(s) to be included into the (re-)association request. |
|
393 * NULL if there are no IE(s) to be included. |
|
394 */ |
|
395 const TUint8* ieData; |
|
396 /** Length of the IEs */ |
|
397 TUint16 ieDataLength; |
|
398 /** |
|
399 * ETrue if the current pairwise cipher key should be marked as invalid |
|
400 * EFalse if the current pairwise cipher key should not be marked as invalid |
|
401 * If a pairwise key doesn't exist, this value has no effect |
|
402 **/ |
|
403 TBool invalidatePairwiseKey; |
|
404 /** |
|
405 * ETrue if the current group cipher key should be marked as invalid |
|
406 * EFalse if the current group cipher key should not be marked as invalid |
|
407 * If a group key doesn't exist, this value has no effect |
|
408 **/ |
|
409 TBool invalidateGroupKey; |
|
410 /** |
|
411 * ETrue if Radio Measurements are on |
|
412 */ |
|
413 TBool radioMeasurement; |
|
414 } TConnectMsg; |
|
415 |
|
416 // ------------------------------------------------------------------------- |
|
417 |
|
418 typedef struct _TStartIBSSMsg |
|
419 { |
|
420 /** Common message header */ |
|
421 TOIDHeader hdr; |
|
422 /** Name of the network. */ |
|
423 TSSID SSID; |
|
424 /** Beacon period in TUs (kusec). */ |
|
425 TUint32 beaconInterval; |
|
426 /** ATIM window. */ |
|
427 TUint32 ATIM; |
|
428 /** Used channel (1-14). Has to be legal in the current region. */ |
|
429 TUint32 channel; |
|
430 /** |
|
431 * Used encryption mode. |
|
432 * [EEncryptionWep|EEncryptionDisabled] |
|
433 */ |
|
434 TEncryptionStatus encryptionStatus; |
|
435 } TStartIBSSMsg; |
|
436 |
|
437 // ------------------------------------------------------------------------- |
|
438 |
|
439 typedef struct _TScanMsg |
|
440 { |
|
441 /** Common message header */ |
|
442 TOIDHeader hdr; |
|
443 /** Scan mode [active|passive]. */ |
|
444 TScanMode mode; |
|
445 /** Network whose APs are scanned. Can be broadcast SSID. */ |
|
446 TSSID SSID; |
|
447 /** Rate that is used in active scanning. */ |
|
448 TRate scanRate; |
|
449 /** Channel set for scanning */ |
|
450 SChannels channels; |
|
451 /** Min. time to listen beacons/probe responses on a channel. */ |
|
452 TUint32 minChannelTime; |
|
453 /** Max. time to listen beacons/probe responses on a channel. */ |
|
454 TUint32 maxChannelTime; |
|
455 /** ETrue if split scan shall be used; EFalse otherwise */ |
|
456 TBool splitScan; |
|
457 } TScanMsg; |
|
458 |
|
459 // ------------------------------------------------------------------------- |
|
460 |
|
461 typedef struct _TStopScanMsg |
|
462 { |
|
463 /** Common message header */ |
|
464 TOIDHeader hdr; |
|
465 } TStopScanMsg; |
|
466 |
|
467 // ------------------------------------------------------------------------- |
|
468 |
|
469 typedef struct _TDisconnectMsg |
|
470 { |
|
471 /** Common message header */ |
|
472 TOIDHeader hdr; |
|
473 } TDisconnectMsg; |
|
474 |
|
475 // ------------------------------------------------------------------------- |
|
476 |
|
477 typedef struct _TSetPowerModeMsg |
|
478 { |
|
479 /** Common message header */ |
|
480 TOIDHeader hdr; |
|
481 /** |
|
482 * 802.11 Power management mode. If the mode is EPowerModePs, we start |
|
483 * with Light PS |
|
484 */ |
|
485 TPowerMode powerMode; |
|
486 /** |
|
487 * This setting is relevant only if powerMode is EPowerModePs. |
|
488 * If ETrue, disables the dynamic power mode management handling in UMAC. |
|
489 * If EFalse, allows the dynamic power mode management handling in UMAC. |
|
490 */ |
|
491 TBool disableDynamicPowerModeManagement; |
|
492 |
|
493 /** |
|
494 * WLAN wake-up mode in Light PS mode |
|
495 */ |
|
496 TWlanWakeUpInterval wakeupModeInLightPs; |
|
497 /** |
|
498 * Specifies the value of N for wake-up modes 2 and 3 in Light PS mode. |
|
499 * So, is relevant only for wake-up modes 2 & 3 |
|
500 */ |
|
501 TUint8 listenIntervalInLightPs; |
|
502 |
|
503 /** |
|
504 * WLAN wake-up mode in Deep PS mode |
|
505 */ |
|
506 TWlanWakeUpInterval wakeupModeInDeepPs; |
|
507 /** |
|
508 * Specifies the value of N for wake-up modes 2 and 3 in Deep PS mode. |
|
509 * So, is relevant only for wake-up modes 2 & 3 |
|
510 */ |
|
511 TUint8 listenIntervalInDeepPs; |
|
512 } TSetPowerModeMsg; |
|
513 |
|
514 // ------------------------------------------------------------------------- |
|
515 typedef struct _TSetRcpiTriggerLevelMsg |
|
516 { |
|
517 /** Common message header */ |
|
518 TOIDHeader hdr; |
|
519 /** RCPI trigger level. */ |
|
520 TInt32 RcpiTrigger; |
|
521 } TSetRcpiTriggerLevelMsg; |
|
522 |
|
523 // ------------------------------------------------------------------------- |
|
524 |
|
525 typedef struct _TSetTxPowerLevelMsg |
|
526 { |
|
527 /** Common message header */ |
|
528 TOIDHeader hdr; |
|
529 /** |
|
530 * Transmission power level in dBm. |
|
531 */ |
|
532 TUint32 level; |
|
533 } TSetTxPowerLevelMsg; |
|
534 |
|
535 // ------------------------------------------------------------------------- |
|
536 |
|
537 typedef struct _TConfigureMsg |
|
538 { |
|
539 /** Common message header */ |
|
540 TOIDHeader hdr; |
|
541 /** Limit for packet size when to use RTS/CTS protocol. */ |
|
542 TUint16 RTSThreshold; |
|
543 /** Max. time to (re-)send whole MSDU packet (in TUs) */ |
|
544 TUint32 maxTxMSDULifetime; |
|
545 /** |
|
546 * When U-APSD power save mode is used for Voice AC, we are not in Voice |
|
547 * over WLAN Call state and we transmit at least voiceCallEntryTxThreshold |
|
548 * Voice priority frames during the time period (microseconds) denoted by |
|
549 * this parameter, we enter Voice over WLAN Call state |
|
550 */ |
|
551 TUint32 voiceCallEntryTimeout; |
|
552 /** |
|
553 * Threshold value for the number of Voice priority frames to enter |
|
554 * Voice over WLAN Call state. (See also the voiceCallEntryTimeout |
|
555 * parameter) |
|
556 */ |
|
557 TUint32 voiceCallEntryTxThreshold; |
|
558 /** |
|
559 * The time interval (in microseconds) between QoS Null Data frames, |
|
560 * which we send during a Voice over WLAN Call in U-APSD power save |
|
561 * mode, if there are no other frames to be transmitted |
|
562 */ |
|
563 TUint32 voiceNullTimeout; |
|
564 /** |
|
565 * If there are no Voice priority frames transmitted during the duration |
|
566 * of this timer (microseconds), we assume that the Voice over WLAN |
|
567 * Call has ended and we will stop sending the QoS Null Data frames |
|
568 * in U-APSD power save mode |
|
569 */ |
|
570 TUint32 noVoiceTimeout; |
|
571 /** |
|
572 * The time interval (in microseconds) between Null Data frames, |
|
573 * which we send to the AP in infrastructure mode to keep the WLAN |
|
574 * connection alive, if there are no other frames to be transmitted |
|
575 */ |
|
576 TUint32 keepAliveTimeout; |
|
577 /** |
|
578 * If this RCPI level is predicted to be reached within the time |
|
579 * specified by spTimeToCountPrediction, a signal loss prediction |
|
580 * indication is sent. |
|
581 */ |
|
582 TUint32 spRcpiIndicationLevel; |
|
583 /** |
|
584 * Specifies the time (in microseconds) how far into the future signal |
|
585 * prediction is done. |
|
586 */ |
|
587 TUint32 spTimeToCountPrediction; |
|
588 /** |
|
589 * The minimum time difference (in microseconds) between two signal |
|
590 * loss prediction indications. |
|
591 */ |
|
592 TUint32 spMinIndicationInterval; |
|
593 |
|
594 } TConfigureMsg; |
|
595 |
|
596 // ------------------------------------------------------------------------- |
|
597 |
|
598 typedef struct _TGetLastRcpiMsg |
|
599 { |
|
600 /** Common message header */ |
|
601 TOIDHeader hdr; |
|
602 } TGetLastRcpiMsg; |
|
603 |
|
604 // ------------------------------------------------------------------------- |
|
605 |
|
606 typedef struct _TDisableUserDataMsg |
|
607 { |
|
608 /** Common message header */ |
|
609 TOIDHeader hdr; |
|
610 } TDisableUserDataMsg; |
|
611 |
|
612 // ------------------------------------------------------------------------- |
|
613 |
|
614 typedef struct _TEnableUserDataMsg |
|
615 { |
|
616 /** Common message header */ |
|
617 TOIDHeader hdr; |
|
618 } TEnableUserDataMsg; |
|
619 |
|
620 // ------------------------------------------------------------------------- |
|
621 |
|
622 typedef struct _TAddCipherKeyMsg |
|
623 { |
|
624 /** Common message header */ |
|
625 TOIDHeader hdr; |
|
626 /** cipher suite */ |
|
627 TWlanCipherSuite cipherSuite; |
|
628 /** index of the key */ |
|
629 TUint8 keyIndex; |
|
630 /** data blob that holds the cipher key */ |
|
631 TUint8 data[KMaxCipherKeyLength]; |
|
632 /** length of the data blob */ |
|
633 TUint32 length; |
|
634 /** defines the MAC address the key is used for */ |
|
635 TMacAddress macAddress; |
|
636 /** Is the key used as a default key. Applies to broadcast wep keys */ |
|
637 TBool useAsDefaultKey; |
|
638 } TAddCipherKeyMsg; |
|
639 |
|
640 // ------------------------------------------------------------------------- |
|
641 |
|
642 typedef struct _TAddMulticastAddrMsg |
|
643 { |
|
644 /** Common message header */ |
|
645 TOIDHeader hdr; |
|
646 /** |
|
647 * Defines the multicast MAC address to be added. |
|
648 * Note that this will also automatically enable multicast filtering, |
|
649 * if it hasn't already been enabled by an earlier TAddMulticastAddrMsg. |
|
650 */ |
|
651 TMacAddress macAddress; |
|
652 } TAddMulticastAddrMsg; |
|
653 |
|
654 // ------------------------------------------------------------------------- |
|
655 |
|
656 typedef struct _TRemoveMulticastAddrMsg |
|
657 { |
|
658 /** Common message header */ |
|
659 TOIDHeader hdr; |
|
660 /** |
|
661 * If ETrue, remove all the currently specified multicast addresses. |
|
662 * Otherwise remove only macAddress (included in this message). |
|
663 * Note that if there are no multicast addresses left after this removal, |
|
664 * the multicast filtering will be disabled and all multicast packets will |
|
665 * again be received and accepted. |
|
666 */ |
|
667 TBool removeAll; |
|
668 /** Defines the multicast MAC address to be removed */ |
|
669 TMacAddress macAddress; |
|
670 } TRemoveMulticastAddrMsg; |
|
671 |
|
672 // ------------------------------------------------------------------------- |
|
673 |
|
674 typedef struct _TConfigureBssLostMsg |
|
675 { |
|
676 /** Common message header */ |
|
677 TOIDHeader hdr; |
|
678 /** |
|
679 * The number of consecutive beacons that can be lost in infrastructure |
|
680 * mode before BSS Lost is indicated |
|
681 */ |
|
682 TUint32 beaconLostCount; |
|
683 /** |
|
684 * The number of consecutive transmissions that can fail totally before |
|
685 * BSS lost is indicated |
|
686 */ |
|
687 TUint8 failedTxPacketCount; |
|
688 } TConfigureBssLostMsg; |
|
689 |
|
690 // ------------------------------------------------------------------------- |
|
691 |
|
692 typedef struct _TSetTxRateAdaptationParamsMsg |
|
693 { |
|
694 /** Common message header */ |
|
695 TOIDHeader hdr; |
|
696 /* |
|
697 * minimum and initial rate increase checkpoint in units of frames |
|
698 * Range: [stepDownCheckpoint,maxStepUpCheckpoint] |
|
699 */ |
|
700 TUint8 minStepUpCheckpoint; |
|
701 /* |
|
702 * maximum rate increase checkpoint in units of frames |
|
703 * Range: [stepDownCheckpoint,UCHAR_MAX] |
|
704 */ |
|
705 TUint8 maxStepUpCheckpoint; |
|
706 /* |
|
707 * rate increase checkpoint is multiplied with this value if sending a |
|
708 * probe frame fails |
|
709 * Range: [1,maxStepUpCheckpoint] |
|
710 */ |
|
711 TUint8 stepUpCheckpointFactor; |
|
712 /* |
|
713 * after this many frames the need to decrease the rate is checked |
|
714 * Range: [2,UCHAR_MAX] |
|
715 */ |
|
716 TUint8 stepDownCheckpoint; |
|
717 /* |
|
718 * minimum and initial rate increase threshold percentage |
|
719 * Range: [1,maxStepUpThreshold] |
|
720 */ |
|
721 TUint8 minStepUpThreshold; |
|
722 /* |
|
723 * maximum rate increase threshold percentage value |
|
724 * Range: [1,100] |
|
725 */ |
|
726 TUint8 maxStepUpThreshold; |
|
727 /* |
|
728 * rate increase threshold is incremented by this value if sending a probe |
|
729 * frame fails |
|
730 * Range: [0,maxStepUpThreshold] |
|
731 */ |
|
732 TUint8 stepUpThresholdIncrement; |
|
733 /* |
|
734 * rate decrease threshold percentage |
|
735 * Range: [1,100] |
|
736 */ |
|
737 TUint8 stepDownThreshold; |
|
738 /* |
|
739 * if EFalse, the rate adaptation algorithm handles the first frame |
|
740 * transmitted after a rate increase in a special way. Otherwise the |
|
741 * special handling is disabled |
|
742 */ |
|
743 TBool disableProbeHandling; |
|
744 } TSetTxRateAdaptationParamsMsg; |
|
745 |
|
746 // ------------------------------------------------------------------------- |
|
747 |
|
748 typedef struct _TConfigureTxRatePoliciesMsg |
|
749 { |
|
750 /** Common message header */ |
|
751 TOIDHeader hdr; |
|
752 /* |
|
753 * defines the rate class(es) to use for frame Tx. |
|
754 * If WLAN PDD does not support as many rate classes as are specified |
|
755 * in this command message, only the rate class specified for ELegacy |
|
756 * queue, which shall be the first class in this array, will be used. |
|
757 */ |
|
758 TTxRatePolicy ratePolicy; |
|
759 /* |
|
760 * for every Tx queue / QoS Access Category, defines the rate class to |
|
761 * be used. |
|
762 * TQueueId is used to index this array. |
|
763 */ |
|
764 TQueue2RateClass queue2RateClass; |
|
765 /* |
|
766 * Max Tx rate which will be initially used to transmit using the |
|
767 * rate class in question. If the specified rate is not supported, |
|
768 * the next lower supported rate from the rate class will be used |
|
769 * instead. |
|
770 * Only the first numOfPolicyObjects values (see TTxRatePolicy) from |
|
771 * the beginning of the array are relevant. |
|
772 */ |
|
773 TInitialMaxTxRate4RateClass initialMaxTxRate4RateClass; |
|
774 /** |
|
775 * defines the rate class(es) to use for frame Tx when the WLAN vendor |
|
776 * implementation handles Tx rate adaptation. |
|
777 * If WLAN PDD does not support as many rate classes as are specified |
|
778 * in this command message, only the rate class specified for ELegacy |
|
779 * queue, which shall be the first class in this array, will be used. |
|
780 * The mapping defined in queue2RateClass applies also to these classes. |
|
781 * The shortRetryLimit and the longRetryLimit values defined as part of |
|
782 * the ratePolicy are relevant also with the auto rate policy. |
|
783 * Only the first numOfPolicyObjects values (see TTxRatePolicy) from |
|
784 * the beginning of the array are relevant. |
|
785 */ |
|
786 TTxAutoRatePolicy autoRatePolicy; |
|
787 /** |
|
788 * defines the HT MCS sets to use for frame Tx when communicating |
|
789 * with a HT network. |
|
790 * If WLAN PDD does not support as many MCS sets as are specified |
|
791 * in this command message, only the MCS set specified for ELegacy |
|
792 * queue, which shall be the first MCS set in this array, will be used. |
|
793 * The mapping defined in queue2RateClass applies also to these MCS sets. |
|
794 * The shortRetryLimit and the longRetryLimit values defined as part of |
|
795 * the ratePolicy are relevant also with the MCS sets. |
|
796 * Only the first numOfPolicyObjects values (see TTxRatePolicy) from |
|
797 * the beginning of the array are relevant. |
|
798 */ |
|
799 THtMcsPolicy htMcsPolicy; |
|
800 } TConfigureTxRatePoliciesMsg; |
|
801 |
|
802 // ------------------------------------------------------------------------- |
|
803 |
|
804 typedef struct _TSetPowerModeMgmtParamsMsg |
|
805 { |
|
806 /** Common message header */ |
|
807 TOIDHeader hdr; |
|
808 /* |
|
809 * time interval in microseconds after which transition from Active mode |
|
810 * to Light PS mode is considered |
|
811 */ |
|
812 TUint32 toLightPsTimeout; |
|
813 /* |
|
814 * frame count threshold used when considering transition from Active |
|
815 * to Light PS mode |
|
816 */ |
|
817 TUint16 toLightPsFrameThreshold; |
|
818 /* |
|
819 * time interval in microseconds after which the frame counter used when |
|
820 * considering transition from Light PS to Active mode is reset |
|
821 */ |
|
822 TUint32 toActiveTimeout; |
|
823 /* |
|
824 * frame count threshold used when considering transition from Light PS |
|
825 * to Active mode |
|
826 */ |
|
827 TUint16 toActiveFrameThreshold; |
|
828 /* |
|
829 * time interval in microseconds after which transition from Light PS mode |
|
830 * to Deep PS mode is considered |
|
831 */ |
|
832 TUint32 toDeepPsTimeout; |
|
833 /* |
|
834 * frame count threshold used when considering transition from Light PS |
|
835 * to Deep PS mode |
|
836 */ |
|
837 TUint16 toDeepPsFrameThreshold; |
|
838 /* |
|
839 * received frame payload length (in bytes) threshold in U-APSD network for |
|
840 * Best Effort Access Category |
|
841 */ |
|
842 TUint16 uapsdRxFrameLengthThreshold; |
|
843 } TSetPowerModeMgmtParamsMsg; |
|
844 |
|
845 // ------------------------------------------------------------------------- |
|
846 |
|
847 typedef struct _TConfigurePwrModeMgmtTrafficOverrideMsg |
|
848 { |
|
849 /** Common message header */ |
|
850 TOIDHeader hdr; |
|
851 /** |
|
852 * The settings here become effective once using the PS mode has been |
|
853 * allowed by WLAN Mgmt Client. |
|
854 * When a setting below is ETrue, any amount of Rx or Tx traffic via |
|
855 * the AC in question won't cause a change from PS to CAM mode once PS |
|
856 * mode has been entered, and traffic via that AC won't make us to |
|
857 * stay in CAM either. |
|
858 * Every AC has a separate setting for U-APSD and legacy PS. |
|
859 * The U-APSD setting is used if U-APSD is used for the AC in question. |
|
860 * Otherwise the corresponding legacy setting is used. |
|
861 */ |
|
862 /** |
|
863 * U-APSD Voice AC setting |
|
864 */ |
|
865 TBool stayInPsDespiteUapsdVoiceTraffic; |
|
866 /** |
|
867 * U-APSD Video AC setting |
|
868 */ |
|
869 TBool stayInPsDespiteUapsdVideoTraffic; |
|
870 /** |
|
871 * U-APSD Best Effort AC setting |
|
872 */ |
|
873 TBool stayInPsDespiteUapsdBestEffortTraffic; |
|
874 /** |
|
875 * U-APSD Background AC setting |
|
876 */ |
|
877 TBool stayInPsDespiteUapsdBackgroundTraffic; |
|
878 /** |
|
879 * legacy Voice AC setting |
|
880 */ |
|
881 TBool stayInPsDespiteLegacyVoiceTraffic; |
|
882 /** |
|
883 * legacy Video AC setting |
|
884 */ |
|
885 TBool stayInPsDespiteLegacyVideoTraffic; |
|
886 /** |
|
887 * legacy Best Effort AC setting |
|
888 */ |
|
889 TBool stayInPsDespiteLegacyBestEffortTraffic; |
|
890 /** |
|
891 * legacy Background AC setting |
|
892 */ |
|
893 TBool stayInPsDespiteLegacyBackgroundTraffic; |
|
894 } TConfigurePwrModeMgmtTrafficOverrideMsg; |
|
895 |
|
896 // ------------------------------------------------------------------------- |
|
897 |
|
898 typedef struct _TGetFrameStatisticsMsg |
|
899 { |
|
900 /** Common message header */ |
|
901 TOIDHeader hdr; |
|
902 } TGetFrameStatisticsMsg; |
|
903 |
|
904 |
|
905 typedef struct _TStatisticsResponse |
|
906 { |
|
907 /** data frame statistics per Access Category */ |
|
908 TAccessCategoryStatistics acSpecific[EQueueIdMax]; |
|
909 /** nbr of FCS errors in received MPDUs */ |
|
910 TUint fcsErrorCount; |
|
911 } TStatisticsResponse; |
|
912 |
|
913 // ------------------------------------------------------------------------- |
|
914 |
|
915 typedef struct _TConfigureUapsdMsg |
|
916 { |
|
917 /** Common message header */ |
|
918 TOIDHeader hdr; |
|
919 /** |
|
920 * the maximum number of buffered MSDUs and MMPDUs the AP may send during |
|
921 * a service period |
|
922 */ |
|
923 TMaxServicePeriodLength maxServicePeriodLength; |
|
924 /** |
|
925 * if ETrue the Voice AC is made both trigger and delivery enabled |
|
926 * when connecting to a QoS AP supporting U-APSD |
|
927 */ |
|
928 TBool uapsdForVoice; |
|
929 /** |
|
930 * if ETrue the Video AC is made both trigger and delivery enabled |
|
931 * when connecting to a QoS AP supporting U-APSD |
|
932 */ |
|
933 TBool uapsdForVideo; |
|
934 /** |
|
935 * if ETrue the Best Effort AC is made both trigger and delivery enabled |
|
936 * when connecting to a QoS AP supporting U-APSD |
|
937 */ |
|
938 TBool uapsdForBestEffort; |
|
939 /** |
|
940 * if ETrue the Background AC is made both trigger and delivery enabled |
|
941 * when connecting to a QoS AP supporting U-APSD |
|
942 */ |
|
943 TBool uapsdForBackground; |
|
944 } TConfigureUapsdMsg; |
|
945 |
|
946 // ------------------------------------------------------------------------- |
|
947 |
|
948 typedef struct _TConfigureTxQueueMsg |
|
949 { |
|
950 /** Common message header */ |
|
951 TOIDHeader hdr; |
|
952 /* ID of the transmit queue to configure */ |
|
953 TQueueId queueId; |
|
954 /** |
|
955 * The amount of time the queue is allowed to access the WLAN air |
|
956 * interface during one second interval. The unit of the parameter is |
|
957 * 32 microseconds. Value 0 means that the medium time is unlimited. |
|
958 */ |
|
959 TUint16 mediumTime; |
|
960 /** |
|
961 * Maximum Transmit MSDU Lifetime to be used for the specified queue. |
|
962 * Overrides the global maxTxMSDULifetime value specified in TConfigureMsg. |
|
963 * Unit: TUs |
|
964 */ |
|
965 TUint32 maxTxMSDULifetime; |
|
966 } TConfigureTxQueueMsg; |
|
967 |
|
968 // ------------------------------------------------------------------------- |
|
969 |
|
970 typedef struct _TGetMacAddressMsg |
|
971 { |
|
972 /** Common message header */ |
|
973 TOIDHeader hdr; |
|
974 } TGetMacAddressMsg; |
|
975 |
|
976 // ------------------------------------------------------------------------- |
|
977 |
|
978 typedef struct _TConfigureArpIpAddressFilteringMsg |
|
979 { |
|
980 /** Common message header */ |
|
981 TOIDHeader hdr; |
|
982 /** |
|
983 * if ETrue the filtering will be enabled |
|
984 * if EFalse the filtering will be disabled |
|
985 */ |
|
986 TBool enableFiltering; |
|
987 /** |
|
988 * When filtering is enabled and the WLAN device receives an ARP packet |
|
989 * where the target protocol address field does not match this address |
|
990 * the packet is dropped. |
|
991 * Note that the address needs to be in big-endian byte order. |
|
992 */ |
|
993 TIpv4Address ipV4Addr; |
|
994 } TConfigureArpIpAddressFilteringMsg; |
|
995 |
|
996 // ------------------------------------------------------------------------- |
|
997 |
|
998 typedef struct _TConfigureHtBlockAckMsg |
|
999 { |
|
1000 /** Common message header */ |
|
1001 TOIDHeader hdr; |
|
1002 |
|
1003 static const TUint8 KTid0 = ( 1 << 0 ); |
|
1004 static const TUint8 KTid1 = ( 1 << 1 ); |
|
1005 static const TUint8 KTid2 = ( 1 << 2 ); |
|
1006 static const TUint8 KTid3 = ( 1 << 3 ); |
|
1007 static const TUint8 KTid4 = ( 1 << 4 ); |
|
1008 static const TUint8 KTid5 = ( 1 << 5 ); |
|
1009 static const TUint8 KTid6 = ( 1 << 6 ); |
|
1010 static const TUint8 KTid7 = ( 1 << 7 ); |
|
1011 |
|
1012 /** |
|
1013 * A bit-map containing the block ACK usage status for the tx direction. |
|
1014 * Each bit corresponds to a TID, bit 0 corresponding to TID 0. |
|
1015 * If a bit is set, block ACK can be used for the corresponding TID. The |
|
1016 * WLAN device may initiate block ACK session with the AP for the TID in |
|
1017 * question. |
|
1018 * If a bit is not set and there already is a block ACK session with the |
|
1019 * AP for this TID, the WLAN device should terminate the session. |
|
1020 */ |
|
1021 TUint8 iTxBlockAckUsage; |
|
1022 /* |
|
1023 * A bit-map containing the block ACK usage status the rx direction. |
|
1024 * Each bit corresponds to a TID, bit 0 corresponding to TID 0. |
|
1025 * If a bit is set, block ACK can be is used for the corresponding TID. The |
|
1026 * WLAN device may accept block ACK session requests from the AP for this |
|
1027 * TID. |
|
1028 * If a bit is not set, block ACK should not be used for the corresponding |
|
1029 * TID. The WLAN device should reject block ACK session requests from the |
|
1030 * AP for this TID. If there already is a block ACK session with the AP for |
|
1031 * this TID, the WLAN device should terminate the session. |
|
1032 */ |
|
1033 TUint8 iRxBlockAckUsage; |
|
1034 } TConfigureHtBlockAckMsg; |
|
1035 |
|
1036 // ------------------------------------------------------------------------- |
|
1037 |
|
1038 typedef struct _TConfigureProprietarySnapHdrMsg |
|
1039 { |
|
1040 /** Common message header */ |
|
1041 TOIDHeader hdr; |
|
1042 /** |
|
1043 * Otherwise valid received 802.11 Data frames containing this SNAP header |
|
1044 * are accepted and forwarded to the WLAN Management Client. |
|
1045 * Currently only a single SNAP header can be configured. So if this |
|
1046 * command is issued several times, the provided SNAP header replaces the |
|
1047 * previous one. |
|
1048 */ |
|
1049 TSnapHeader snapHdr; |
|
1050 } TConfigureProprietarySnapHdrMsg; |
|
1051 |
|
1052 |
|
1053 #endif // WLAN_OID_MSG_H |