2 * Copyright (c) 2004-2006 Atheros Communications Inc.
6 * $ATH_LICENSE_HOSTSDK0_C$
8 * This file contains the definitions of the WMI protocol specified in the
9 * Wireless Module Interface (WMI). It includes definitions of all the
10 * commands and events. Commands are messages from the host to the WM.
11 * Events and Replies are messages from the WM to the host.
13 * Ownership of correctness in regards to WMI commands
14 * belongs to the host driver and the WM is not required to validate
15 * parameters for value, proper range, or any other checking.
23 #include "athstartpack.h"
32 #define WMI_PROTOCOL_VERSION 0x0002
33 #define WMI_PROTOCOL_REVISION 0x0000
35 #define ATH_MAC_LEN 6 /* length of mac in bytes */
36 #define WMI_CMD_MAX_LEN 100
37 #define WMI_CONTROL_MSG_MAX_LEN 256
38 #define WMI_OPT_CONTROL_MSG_MAX_LEN 1536
39 #define IS_ETHERTYPE(_typeOrLen) ((_typeOrLen) >= 0x0600)
40 #define RFC1042OUI {0x00, 0x00, 0x00}
42 #define IP_ETHERTYPE 0x0800
44 #define WMI_IMPLICIT_PSTREAM 0xFF
45 #define WMI_MAX_THINSTREAM 15
47 struct host_app_area_s
{
48 A_UINT32 wmi_protocol_ver
;
54 typedef PREPACK
struct {
55 A_UINT8 dstMac
[ATH_MAC_LEN
];
56 A_UINT8 srcMac
[ATH_MAC_LEN
];
58 } POSTPACK ATH_MAC_HDR
;
60 typedef PREPACK
struct {
66 } POSTPACK ATH_LLC_SNAP_HDR
;
75 typedef PREPACK
struct {
77 A_UINT8 info
; /* WMI_MSG_TYPE in lower 2 bits - b1b0 */
78 /* UP in next 3 bits - b4b3b2 */
79 #define WMI_DATA_HDR_MSG_TYPE_MASK 0x03
80 #define WMI_DATA_HDR_MSG_TYPE_SHIFT 0
81 #define WMI_DATA_HDR_UP_MASK 0x07
82 #define WMI_DATA_HDR_UP_SHIFT 2
83 #define WMI_DATA_HDR_IS_MSG_TYPE(h, t) (((h)->info & (WMI_DATA_HDR_MSG_TYPE_MASK)) == (t))
84 } POSTPACK WMI_DATA_HDR
;
87 #define WMI_DATA_HDR_SET_MSG_TYPE(h, t) (h)->info = (((h)->info & ~(WMI_DATA_HDR_MSG_TYPE_MASK << WMI_DATA_HDR_MSG_TYPE_SHIFT)) | (t << WMI_DATA_HDR_MSG_TYPE_SHIFT))
88 #define WMI_DATA_HDR_SET_UP(h, p) (h)->info = (((h)->info & ~(WMI_DATA_HDR_UP_MASK << WMI_DATA_HDR_UP_SHIFT)) | (p << WMI_DATA_HDR_UP_SHIFT))
93 typedef PREPACK
struct {
95 } POSTPACK WMI_CMD_HDR
; /* used for commands and events */
101 WMI_CONNECT_CMDID
= 0x0001,
103 WMI_DISCONNECT_CMDID
,
104 WMI_SYNCHRONIZE_CMDID
,
105 WMI_CREATE_PSTREAM_CMDID
,
106 WMI_DELETE_PSTREAM_CMDID
,
107 WMI_START_SCAN_CMDID
,
108 WMI_SET_SCAN_PARAMS_CMDID
,
109 WMI_SET_BSS_FILTER_CMDID
,
110 WMI_SET_PROBED_SSID_CMDID
,
111 WMI_SET_LISTEN_INT_CMDID
,
112 WMI_SET_BMISS_TIME_CMDID
,
113 WMI_SET_DISC_TIMEOUT_CMDID
,
114 WMI_GET_CHANNEL_LIST_CMDID
,
115 WMI_SET_BEACON_INT_CMDID
,
116 WMI_GET_STATISTICS_CMDID
,
117 WMI_SET_CHANNEL_PARAMS_CMDID
,
118 WMI_SET_POWER_MODE_CMDID
,
119 WMI_SET_IBSS_PM_CAPS_CMDID
,
120 WMI_SET_POWER_PARAMS_CMDID
,
121 WMI_SET_POWERSAVE_TIMERS_POLICY_CMDID
,
122 WMI_ADD_CIPHER_KEY_CMDID
,
123 WMI_DELETE_CIPHER_KEY_CMDID
,
125 WMI_DELETE_KRK_CMDID
,
127 WMI_SET_TX_PWR_CMDID
,
128 WMI_GET_TX_PWR_CMDID
,
129 WMI_SET_ASSOC_INFO_CMDID
,
130 WMI_ADD_BAD_AP_CMDID
,
131 WMI_DELETE_BAD_AP_CMDID
,
132 WMI_SET_TKIP_COUNTERMEASURES_CMDID
,
133 WMI_RSSI_THRESHOLD_PARAMS_CMDID
,
134 WMI_TARGET_ERROR_REPORT_BITMASK_CMDID
,
135 WMI_SET_ACCESS_PARAMS_CMDID
,
136 WMI_SET_RETRY_LIMITS_CMDID
,
137 WMI_SET_OPT_MODE_CMDID
,
138 WMI_OPT_TX_FRAME_CMDID
,
139 WMI_SET_VOICE_PKT_SIZE_CMDID
,
140 WMI_SET_MAX_SP_LEN_CMDID
,
141 WMI_SET_ROAM_CTRL_CMDID
,
142 WMI_GET_ROAM_TBL_CMDID
,
143 WMI_GET_ROAM_DATA_CMDID
,
145 WMI_SET_MAX_OFFHOME_DURATION_CMDID
,
146 WMI_EXTENSION_CMDID
, /* Non-wireless extensions */
147 WMI_SNR_THRESHOLD_PARAMS_CMDID
,
148 WMI_LQ_THRESHOLD_PARAMS_CMDID
,
149 WMI_SET_LPREAMBLE_CMDID
,
151 WMI_CLR_RSSI_SNR_CMDID
,
152 WMI_SET_FIXRATES_CMDID
,
153 WMI_GET_FIXRATES_CMDID
,
154 WMI_SET_AUTH_MODE_CMDID
,
155 WMI_SET_REASSOC_MODE_CMDID
,
157 WMI_SET_WMM_TXOP_CMDID
,
159 WMI_SET_BT_STATUS_CMDID
,
160 WMI_SET_BT_PARAMS_CMDID
,
162 WMI_SET_KEEPALIVE_CMDID
,
163 WMI_GET_KEEPALIVE_CMDID
,
166 WMI_SET_WSC_STATUS_CMDID
,
168 /* Wake on Wireless */
169 WMI_SET_HOST_SLEEP_MODE_CMDID
,
170 WMI_SET_WOW_MODE_CMDID
,
171 WMI_GET_WOW_LIST_CMDID
,
172 WMI_ADD_WOW_PATTERN_CMDID
,
173 WMI_DEL_WOW_PATTERN_CMDID
,
174 WMI_SET_MAC_ADDRESS_CMDID
,
175 WMI_SET_AKMP_PARAMS_CMDID
,
176 WMI_SET_PMKID_LIST_CMDID
,
177 WMI_GET_PMKID_LIST_CMDID
,
180 * Developer commands starts at 0xF000
182 WMI_SET_BITRATE_CMDID
= 0xF000,
183 WMI_GET_BITRATE_CMDID
,
184 WMI_SET_WHALPARAM_CMDID
,
192 WMI_FRAME_BEACON
= 0,
194 WMI_FRAME_PROBE_RESP
,
196 WMI_FRAME_ASSOC_RESP
,
198 } WMI_MGMT_FRAME_TYPE
;
204 INFRA_NETWORK
= 0x01,
205 ADHOC_NETWORK
= 0x02,
206 ADHOC_CREATOR
= 0x04,
212 LEAP_AUTH
= 0x04, /* different from IEEE_AUTH_MODE definitions */
220 WPA2_PSK_AUTH
= 0x05,
221 WPA_AUTH_CCKM
= 0x06,
222 WPA2_AUTH_CCKM
= 0x07,
232 #define WMI_MIN_CRYPTO_TYPE NONE_CRYPT
233 #define WMI_MAX_CRYPTO_TYPE (AES_CRYPT + 1)
235 #define WMI_MIN_KEY_INDEX 0
236 #define WMI_MAX_KEY_INDEX 3
238 #define WMI_MAX_KEY_LEN 32
240 #define WMI_MAX_SSID_LEN 32
243 CONNECT_ASSOC_POLICY_USER
= 0x0001,
244 CONNECT_SEND_REASSOC
= 0x0002,
245 CONNECT_IGNORE_WPAx_GROUP_CIPHER
= 0x0004,
246 CONNECT_PROFILE_MATCH_DONE
= 0x0008,
247 CONNECT_IGNORE_AAC_BEACON
= 0x0010,
248 CONNECT_CSA_FOLLOW_BSS
= 0x0020,
249 } WMI_CONNECT_CTRL_FLAGS_BITS
;
251 #define DEFAULT_CONNECT_CTRL_FLAGS (CONNECT_CSA_FOLLOW_BSS)
253 typedef PREPACK
struct {
255 A_UINT8 dot11AuthMode
;
257 A_UINT8 pairwiseCryptoType
;
258 A_UINT8 pairwiseCryptoLen
;
259 A_UINT8 groupCryptoType
;
260 A_UINT8 groupCryptoLen
;
262 A_UCHAR ssid
[WMI_MAX_SSID_LEN
];
264 A_UINT8 bssid
[ATH_MAC_LEN
];
266 } POSTPACK WMI_CONNECT_CMD
;
269 * WMI_RECONNECT_CMDID
271 typedef PREPACK
struct {
272 A_UINT16 channel
; /* hint */
273 A_UINT8 bssid
[ATH_MAC_LEN
]; /* mandatory if set */
274 } POSTPACK WMI_RECONNECT_CMD
;
277 * WMI_ADD_CIPHER_KEY_CMDID
280 PAIRWISE_USAGE
= 0x00,
282 TX_USAGE
= 0x02, /* default Tx Key - Static WEP only */
287 * Bit 0 - Initialise TSC - default is Initialize
289 #define KEY_OP_INIT_TSC 0x01
290 #define KEY_OP_INIT_RSC 0x02
292 #define KEY_OP_INIT_VAL 0x03 /* Default Initialise the TSC & RSC */
293 #define KEY_OP_VALID_MASK 0x03
295 typedef PREPACK
struct {
298 A_UINT8 keyUsage
; /* KEY_USAGE */
300 A_UINT8 keyRSC
[8]; /* key replay sequence counter */
301 A_UINT8 key
[WMI_MAX_KEY_LEN
];
302 A_UINT8 key_op_ctrl
; /* Additional Key Control information */
303 } POSTPACK WMI_ADD_CIPHER_KEY_CMD
;
306 * WMI_DELETE_CIPHER_KEY_CMDID
308 typedef PREPACK
struct {
310 } POSTPACK WMI_DELETE_CIPHER_KEY_CMD
;
312 #define WMI_KRK_LEN 16
316 typedef PREPACK
struct {
317 A_UINT8 krk
[WMI_KRK_LEN
];
318 } POSTPACK WMI_ADD_KRK_CMD
;
321 * WMI_SET_TKIP_COUNTERMEASURES_CMDID
324 WMI_TKIP_CM_DISABLE
= 0x0,
325 WMI_TKIP_CM_ENABLE
= 0x1,
326 } WMI_TKIP_CM_CONTROL
;
328 typedef PREPACK
struct {
329 A_UINT8 cm_en
; /* WMI_TKIP_CM_CONTROL */
330 } POSTPACK WMI_SET_TKIP_COUNTERMEASURES_CMD
;
333 * WMI_SET_PMKID_CMDID
336 #define WMI_PMKID_LEN 16
343 typedef PREPACK
struct {
344 A_UINT8 bssid
[ATH_MAC_LEN
];
345 A_UINT8 enable
; /* PMKID_ENABLE_FLG */
346 A_UINT8 pmkid
[WMI_PMKID_LEN
];
347 } POSTPACK WMI_SET_PMKID_CMD
;
357 typedef PREPACK
struct {
359 A_BOOL isLegacy
; /* For Legacy Cisco AP compatibility */
360 A_UINT32 homeDwellTime
; /* Maximum duration in the home channel(milliseconds) */
361 A_UINT32 forceScanInterval
; /* Time interval between scans (milliseconds)*/
362 A_UINT8 scanType
; /* WMI_SCAN_TYPE */
363 } POSTPACK WMI_START_SCAN_CMD
;
366 * WMI_SET_SCAN_PARAMS_CMDID
368 #define WMI_SHORTSCANRATIO_DEFAULT 3
370 CONNECT_SCAN_CTRL_FLAGS
= 0x01, /* set if can scan in the Connect cmd */
371 SCAN_CONNECTED_CTRL_FLAGS
= 0x02, /* set if scan for the SSID it is */
372 /* already connected to */
373 ACTIVE_SCAN_CTRL_FLAGS
= 0x04, /* set if enable active scan */
374 ROAM_SCAN_CTRL_FLAGS
= 0x08, /* set if enable roam scan when bmiss and lowrssi */
375 REPORT_BSSINFO_CTRL_FLAGS
= 0x10, /* set if follows customer BSSINFO reporting rule */
376 ENABLE_AUTO_CTRL_FLAGS
= 0x20, /* if disabled, target doesn't
377 scan after a disconnect event */
378 ENABLE_SCAN_ABORT_EVENT
= 0x40 /* Scan complete event with canceled status will be generated when a scan is prempted before it gets completed */
380 } WMI_SCAN_CTRL_FLAGS_BITS
;
382 #define CAN_SCAN_IN_CONNECT(flags) (flags & CONNECT_SCAN_CTRL_FLAGS)
383 #define CAN_SCAN_CONNECTED(flags) (flags & SCAN_CONNECTED_CTRL_FLAGS)
384 #define ENABLE_ACTIVE_SCAN(flags) (flags & ACTIVE_SCAN_CTRL_FLAGS)
385 #define ENABLE_ROAM_SCAN(flags) (flags & ROAM_SCAN_CTRL_FLAGS)
386 #define CONFIG_REPORT_BSSINFO(flags) (flags & REPORT_BSSINFO_CTRL_FLAGS)
387 #define IS_AUTO_SCAN_ENABLED(flags) (flags & ENABLE_AUTO_CTRL_FLAGS)
388 #define SCAN_ABORT_EVENT_ENABLED(flags) (flags & ENABLE_SCAN_ABORT_EVENT)
390 #define DEFAULT_SCAN_CTRL_FLAGS (CONNECT_SCAN_CTRL_FLAGS| SCAN_CONNECTED_CTRL_FLAGS| ACTIVE_SCAN_CTRL_FLAGS| ROAM_SCAN_CTRL_FLAGS | ENABLE_AUTO_CTRL_FLAGS)
393 typedef PREPACK
struct {
394 A_UINT16 fg_start_period
; /* seconds */
395 A_UINT16 fg_end_period
; /* seconds */
396 A_UINT16 bg_period
; /* seconds */
397 A_UINT16 maxact_chdwell_time
; /* msec */
398 A_UINT16 pas_chdwell_time
; /* msec */
399 A_UINT8 shortScanRatio
; /* how many shorts scan for one long */
400 A_UINT8 scanCtrlFlags
;
401 A_UINT16 minact_chdwell_time
; /* msec */
402 A_UINT32 max_dfsch_act_time
; /* msecs */
403 } POSTPACK WMI_SCAN_PARAMS_CMD
;
406 * WMI_SET_BSS_FILTER_CMDID
409 NONE_BSS_FILTER
= 0x0, /* no beacons forwarded */
410 ALL_BSS_FILTER
, /* all beacons forwarded */
411 PROFILE_FILTER
, /* only beacons matching profile */
412 ALL_BUT_PROFILE_FILTER
, /* all but beacons matching profile */
413 CURRENT_BSS_FILTER
, /* only beacons matching current BSS */
414 ALL_BUT_BSS_FILTER
, /* all but beacons matching BSS */
415 PROBED_SSID_FILTER
, /* beacons matching probed ssid */
416 LAST_BSS_FILTER
, /* marker only */
419 typedef PREPACK
struct {
420 A_UINT8 bssFilter
; /* see WMI_BSS_FILTER */
422 } POSTPACK WMI_BSS_FILTER_CMD
;
425 * WMI_SET_PROBED_SSID_CMDID
427 #define MAX_PROBED_SSID_INDEX 5
430 DISABLE_SSID_FLAG
= 0, /* disables entry */
431 SPECIFIC_SSID_FLAG
= 0x01, /* probes specified ssid */
432 ANY_SSID_FLAG
= 0x02, /* probes for any ssid */
435 typedef PREPACK
struct {
436 A_UINT8 entryIndex
; /* 0 to MAX_PROBED_SSID_INDEX */
437 A_UINT8 flag
; /* WMI_SSID_FLG */
440 } POSTPACK WMI_PROBED_SSID_CMD
;
443 * WMI_SET_LISTEN_INT_CMDID
444 * The Listen interval is between 15 and 3000 TUs
446 #define MIN_LISTEN_INTERVAL 15
447 #define MAX_LISTEN_INTERVAL 5000
448 #define MIN_LISTEN_BEACONS 1
449 #define MAX_LISTEN_BEACONS 50
451 typedef PREPACK
struct {
452 A_UINT16 listenInterval
;
454 } POSTPACK WMI_LISTEN_INT_CMD
;
457 * WMI_SET_BEACON_INT_CMDID
459 typedef PREPACK
struct {
460 A_UINT16 beaconInterval
;
461 } POSTPACK WMI_BEACON_INT_CMD
;
464 * WMI_SET_BMISS_TIME_CMDID
465 * valid values are between 1000 and 5000 TUs
468 #define MIN_BMISS_TIME 1000
469 #define MAX_BMISS_TIME 5000
470 #define MIN_BMISS_BEACONS 1
471 #define MAX_BMISS_BEACONS 50
473 typedef PREPACK
struct {
476 } POSTPACK WMI_BMISS_TIME_CMD
;
479 * WMI_SET_POWER_MODE_CMDID
486 typedef PREPACK
struct {
487 A_UINT8 powerMode
; /* WMI_POWER_MODE */
488 } POSTPACK WMI_POWER_MODE_CMD
;
491 * WMI_SET_POWER_PARAMS_CMDID
499 typedef PREPACK
struct {
500 A_UINT16 idle_period
; /* msec */
501 A_UINT16 pspoll_number
;
502 A_UINT16 dtim_policy
;
503 } POSTPACK WMI_POWER_PARAMS_CMD
;
505 typedef PREPACK
struct {
506 A_UINT8 power_saving
;
507 A_UINT8 ttl
; /* number of beacon periods */
508 A_UINT16 atim_windows
; /* msec */
509 A_UINT16 timeout_value
; /* msec */
510 } POSTPACK WMI_IBSS_PM_CAPS_CMD
;
513 * WMI_SET_POWERSAVE_TIMERS_POLICY_CMDID
516 IGNORE_TIM_ALL_QUEUES_APSD
= 0,
517 PROCESS_TIM_ALL_QUEUES_APSD
= 1,
518 IGNORE_TIM_SIMULATED_APSD
= 2,
519 PROCESS_TIM_SIMULATED_APSD
= 3,
522 typedef PREPACK
struct {
523 A_UINT16 psPollTimeout
; /* msec */
524 A_UINT16 triggerTimeout
; /* msec */
525 A_UINT32 apsdTimPolicy
; /* TIM behavior with ques APSD enabled. Default is IGNORE_TIM_ALL_QUEUES_APSD */
526 A_UINT32 simulatedAPSDTimPolicy
; /* TIM behavior with simulated APSD enabled. Default is PROCESS_TIM_SIMULATED_APSD */
527 } POSTPACK WMI_POWERSAVE_TIMERS_POLICY_CMD
;
530 * WMI_SET_VOICE_PKT_SIZE_CMDID
532 typedef PREPACK
struct {
533 A_UINT16 voicePktSize
;
534 } POSTPACK WMI_SET_VOICE_PKT_SIZE_CMD
;
537 * WMI_SET_MAX_SP_LEN_CMDID
540 DELIVER_ALL_PKT
= 0x0,
546 typedef PREPACK
struct {
548 } POSTPACK WMI_SET_MAX_SP_LEN_CMD
;
551 * WMI_SET_DISC_TIMEOUT_CMDID
553 typedef PREPACK
struct {
554 A_UINT8 disconnectTimeout
; /* seconds */
555 } POSTPACK WMI_DISC_TIMEOUT_CMD
;
564 DISABLE_FOR_THIS_AC
= 0,
565 ENABLE_FOR_THIS_AC
= 1,
566 ENABLE_FOR_ALL_AC
= 2,
570 TRAFFIC_TYPE_APERIODIC
= 0,
571 TRAFFIC_TYPE_PERIODIC
= 1,
575 * WMI_CREATE_PSTREAM_CMDID
577 typedef PREPACK
struct {
578 A_UINT32 minServiceInt
; /* in milli-sec */
579 A_UINT32 maxServiceInt
; /* in milli-sec */
580 A_UINT32 inactivityInt
; /* in milli-sec */
581 A_UINT32 suspensionInt
; /* in milli-sec */
582 A_UINT32 serviceStartTime
;
583 A_UINT32 minDataRate
; /* in bps */
584 A_UINT32 meanDataRate
; /* in bps */
585 A_UINT32 peakDataRate
; /* in bps */
586 A_UINT32 maxBurstSize
;
588 A_UINT32 minPhyRate
; /* in bps */
591 A_UINT16 nominalMSDU
; /* in octects */
592 A_UINT16 maxMSDU
; /* in octects */
593 A_UINT8 trafficClass
;
594 A_UINT8 trafficType
; /* TRAFFIC_TYPE */
595 A_UINT8 trafficDirection
; /* TRAFFIC_DIR */
596 A_UINT8 voicePSCapability
; /* VOICEPS_CAP_TYPE */
598 A_UINT8 userPriority
; /* 802.1D user priority */
599 } POSTPACK WMI_CREATE_PSTREAM_CMD
;
602 * WMI_DELETE_PSTREAM_CMDID
604 typedef PREPACK
struct {
605 A_UINT8 trafficClass
;
607 } POSTPACK WMI_DELETE_PSTREAM_CMD
;
610 * WMI_SET_CHANNEL_PARAMS_CMDID
617 WMI_11GONLY_MODE
= 0x5,
620 #define WMI_MAX_CHANNELS 32
622 typedef PREPACK
struct {
624 A_UINT8 scanParam
; /* set if enable scan */
625 A_UINT8 phyMode
; /* see WMI_PHY_MODE */
626 A_UINT8 numChannels
; /* how many channels follow */
627 A_UINT16 channelList
[1]; /* channels in Mhz */
628 } POSTPACK WMI_CHANNEL_PARAMS_CMD
;
632 * WMI_RSSI_THRESHOLD_PARAMS_CMDID
633 * Setting the polltime to 0 would disable polling.
634 * Threshold values are in the ascending order, and should agree to:
635 * (lowThreshold_lowerVal < lowThreshold_upperVal < highThreshold_lowerVal
636 * < highThreshold_upperVal)
639 typedef PREPACK
struct WMI_RSSI_THRESHOLD_PARAMS
{
640 A_UINT32 pollTime
; /* Polling time as a factor of LI */
641 A_INT16 thresholdAbove1_Val
; /* lowest of upper */
642 A_INT16 thresholdAbove2_Val
;
643 A_INT16 thresholdAbove3_Val
;
644 A_INT16 thresholdAbove4_Val
;
645 A_INT16 thresholdAbove5_Val
;
646 A_INT16 thresholdAbove6_Val
; /* highest of upper */
647 A_INT16 thresholdBelow1_Val
; /* lowest of bellow */
648 A_INT16 thresholdBelow2_Val
;
649 A_INT16 thresholdBelow3_Val
;
650 A_INT16 thresholdBelow4_Val
;
651 A_INT16 thresholdBelow5_Val
;
652 A_INT16 thresholdBelow6_Val
; /* highest of bellow */
653 A_UINT8 weight
; /* "alpha" */
655 } POSTPACK WMI_RSSI_THRESHOLD_PARAMS_CMD
;
658 * WMI_SNR_THRESHOLD_PARAMS_CMDID
659 * Setting the polltime to 0 would disable polling.
662 typedef PREPACK
struct WMI_SNR_THRESHOLD_PARAMS
{
663 A_UINT32 pollTime
; /* Polling time as a factor of LI */
664 A_UINT8 weight
; /* "alpha" */
665 A_UINT8 thresholdAbove1_Val
; /* lowest of uppper*/
666 A_UINT8 thresholdAbove2_Val
;
667 A_UINT8 thresholdAbove3_Val
;
668 A_UINT8 thresholdAbove4_Val
; /* highest of upper */
669 A_UINT8 thresholdBelow1_Val
; /* lowest of bellow */
670 A_UINT8 thresholdBelow2_Val
;
671 A_UINT8 thresholdBelow3_Val
;
672 A_UINT8 thresholdBelow4_Val
; /* highest of bellow */
674 } POSTPACK WMI_SNR_THRESHOLD_PARAMS_CMD
;
677 * WMI_LQ_THRESHOLD_PARAMS_CMDID
679 typedef PREPACK
struct WMI_LQ_THRESHOLD_PARAMS
{
681 A_UINT8 thresholdAbove1_Val
;
682 A_UINT8 thresholdAbove2_Val
;
683 A_UINT8 thresholdAbove3_Val
;
684 A_UINT8 thresholdAbove4_Val
;
685 A_UINT8 thresholdBelow1_Val
;
686 A_UINT8 thresholdBelow2_Val
;
687 A_UINT8 thresholdBelow3_Val
;
688 A_UINT8 thresholdBelow4_Val
;
690 } POSTPACK WMI_LQ_THRESHOLD_PARAMS_CMD
;
693 WMI_LPREAMBLE_DISABLED
= 0,
694 WMI_LPREAMBLE_ENABLED
695 } WMI_LPREAMBLE_STATUS
;
697 typedef PREPACK
struct {
699 }POSTPACK WMI_SET_LPREAMBLE_CMD
;
701 typedef PREPACK
struct {
703 }POSTPACK WMI_SET_RTS_CMD
;
706 * WMI_TARGET_ERROR_REPORT_BITMASK_CMDID
707 * Sets the error reporting event bitmask in target. Target clears it
708 * upon an error. Subsequent errors are counted, but not reported
709 * via event, unless the bitmask is set again.
711 typedef PREPACK
struct {
713 } POSTPACK WMI_TARGET_ERROR_REPORT_BITMASK
;
716 * WMI_SET_TX_PWR_CMDID
718 typedef PREPACK
struct {
719 A_UINT8 dbM
; /* in dbM units */
720 } POSTPACK WMI_SET_TX_PWR_CMD
, WMI_TX_PWR_REPLY
;
723 * WMI_SET_ASSOC_INFO_CMDID
725 * A maximum of 2 private IEs can be sent in the [Re]Assoc request.
726 * A 3rd one, the CCX version IE can also be set from the host.
728 #define WMI_MAX_ASSOC_INFO_TYPE 2
729 #define WMI_CCX_VER_IE 2 /* ieType to set CCX Version IE */
731 #define WMI_MAX_ASSOC_INFO_LEN 240
733 typedef PREPACK
struct {
736 A_UINT8 assocInfo
[1]; /* up to WMI_MAX_ASSOC_INFO_LEN */
737 } POSTPACK WMI_SET_ASSOC_INFO_CMD
;
741 * WMI_GET_TX_PWR_CMDID does not take any parameters
745 * WMI_ADD_BAD_AP_CMDID
747 #define WMI_MAX_BAD_AP_INDEX 1
749 typedef PREPACK
struct {
750 A_UINT8 badApIndex
; /* 0 to WMI_MAX_BAD_AP_INDEX */
751 A_UINT8 bssid
[ATH_MAC_LEN
];
752 } POSTPACK WMI_ADD_BAD_AP_CMD
;
755 * WMI_DELETE_BAD_AP_CMDID
757 typedef PREPACK
struct {
758 A_UINT8 badApIndex
; /* 0 to WMI_MAX_BAD_AP_INDEX */
759 } POSTPACK WMI_DELETE_BAD_AP_CMD
;
762 * WMI_SET_ACCESS_PARAMS_CMDID
764 #define WMI_DEFAULT_TXOP_ACPARAM 0 /* implies one MSDU */
765 #define WMI_DEFAULT_ECWMIN_ACPARAM 4 /* corresponds to CWmin of 15 */
766 #define WMI_DEFAULT_ECWMAX_ACPARAM 10 /* corresponds to CWmax of 1023 */
767 #define WMI_MAX_CW_ACPARAM 15 /* maximum eCWmin or eCWmax */
768 #define WMI_DEFAULT_AIFSN_ACPARAM 2
769 #define WMI_MAX_AIFSN_ACPARAM 15
770 typedef PREPACK
struct {
771 A_UINT16 txop
; /* in units of 32 usec */
775 } POSTPACK WMI_SET_ACCESS_PARAMS_CMD
;
779 * WMI_SET_RETRY_LIMITS_CMDID
781 * This command is used to customize the number of retries the
782 * wlan device will perform on a given frame.
784 #define WMI_MIN_RETRIES 2
785 #define WMI_MAX_RETRIES 13
788 CONTROL_FRAMETYPE
= 1,
792 typedef PREPACK
struct {
793 A_UINT8 frameType
; /* WMI_FRAMETYPE */
794 A_UINT8 trafficClass
; /* applies only to DATA_FRAMETYPE */
796 A_UINT8 enableNotify
;
797 } POSTPACK WMI_SET_RETRY_LIMITS_CMD
;
800 * WMI_SET_ROAM_CTRL_CMDID
802 * This command is used to influence the Roaming behaviour
803 * Set the host biases of the BSSs before setting the roam mode as bias
808 * Different types of Roam Control
812 WMI_FORCE_ROAM
= 1, /* Roam to the specified BSSID */
813 WMI_SET_ROAM_MODE
= 2, /* default ,progd bias, no roam */
814 WMI_SET_HOST_BIAS
= 3, /* Set the Host Bias */
815 WMI_SET_LOWRSSI_SCAN_PARAMS
= 4, /* Set lowrssi Scan parameters */
816 } WMI_ROAM_CTRL_TYPE
;
818 #define WMI_MIN_ROAM_CTRL_TYPE WMI_FORCE_ROAM
819 #define WMI_MAX_ROAM_CTRL_TYPE WMI_SET_LOWRSSI_SCAN_PARAMS
826 WMI_DEFAULT_ROAM_MODE
= 1, /* RSSI based ROAM */
827 WMI_HOST_BIAS_ROAM_MODE
= 2, /* HOST BIAS based ROAM */
828 WMI_LOCK_BSS_MODE
= 3 /* Lock to the Current BSS - no Roam */
835 typedef PREPACK
struct {
836 A_UINT8 bssid
[ATH_MAC_LEN
];
838 } POSTPACK WMI_BSS_BIAS
;
840 typedef PREPACK
struct {
842 WMI_BSS_BIAS bssBias
[1];
843 } POSTPACK WMI_BSS_BIAS_INFO
;
845 typedef PREPACK
struct WMI_LOWRSSI_SCAN_PARAMS
{
846 A_UINT16 lowrssi_scan_period
;
847 A_INT16 lowrssi_scan_threshold
;
848 A_INT16 lowrssi_roam_threshold
;
849 A_UINT8 roam_rssi_floor
;
850 A_UINT8 reserved
[1]; /* For alignment */
851 } POSTPACK WMI_LOWRSSI_SCAN_PARAMS
;
853 typedef PREPACK
struct {
855 A_UINT8 bssid
[ATH_MAC_LEN
]; /* WMI_FORCE_ROAM */
856 A_UINT8 roamMode
; /* WMI_SET_ROAM_MODE */
857 WMI_BSS_BIAS_INFO bssBiasInfo
; /* WMI_SET_HOST_BIAS */
858 WMI_LOWRSSI_SCAN_PARAMS lrScanParams
;
860 A_UINT8 roamCtrlType
;
861 } POSTPACK WMI_SET_ROAM_CTRL_CMD
;
864 * WMI_ENABLE_RM_CMDID
866 typedef PREPACK
struct {
867 A_BOOL enable_radio_measurements
;
868 } POSTPACK WMI_ENABLE_RM_CMD
;
871 * WMI_SET_MAX_OFFHOME_DURATION_CMDID
873 typedef PREPACK
struct {
874 A_UINT8 max_offhome_duration
;
875 } POSTPACK WMI_SET_MAX_OFFHOME_DURATION_CMD
;
877 typedef PREPACK
struct {
880 } POSTPACK WMI_SET_HB_CHALLENGE_RESP_PARAMS_CMD
;
884 BT_STREAM_SCO
, /* SCO stream */
885 BT_STREAM_A2DP
, /* A2DP stream */
890 BT_PARAM_SCO
= 1, /* SCO stream parameters */
891 BT_PARAM_A2DP
, /* A2DP stream parameters */
892 BT_PARAM_MISC
, /* miscellaneous parameters */
893 BT_PARAM_REGS
, /* co-existence register parameters */
906 typedef PREPACK
struct {
909 } POSTPACK WMI_SET_BT_STATUS_CMD
;
911 typedef PREPACK
struct {
913 A_UINT8 pspollTimeout
;
915 } POSTPACK BT_PARAMS_SCO
;
917 typedef PREPACK
struct {
921 } POSTPACK BT_PARAMS_A2DP
;
923 typedef PREPACK
struct {
930 } POSTPACK BT_COEX_REGS
;
933 WLAN_PROTECT_POLICY
= 1,
935 } BT_PARAMS_MISC_TYPE
;
938 WLAN_PROTECT_PER_STREAM
= 0x01, /* default */
939 WLAN_PROTECT_ANY_TX
= 0x02
940 } WLAN_PROTECT_FLAGS
;
943 #define WLAN_DISABLE_COEX_IN_DISCONNECT 0x01 /* default */
944 #define WLAN_KEEP_COEX_IN_DISCONNECT 0x02
945 #define WLAN_STOMPBT_IN_DISCONNECT 0x04
947 #define WLAN_DISABLE_COEX_IN_ROAM 0x10 /* default */
948 #define WLAN_KEEP_COEX_IN_ROAM 0x20
949 #define WLAN_STOMPBT_IN_ROAM 0x40
951 #define WLAN_DISABLE_COEX_IN_SCAN 0x100 /* default */
952 #define WLAN_KEEP_COEX_IN_SCAN 0x200
953 #define WLAN_STOMPBT_IN_SCAN 0x400
955 #define WLAN_DISABLE_COEX_BT_OFF 0x1000 /* default */
956 #define WLAN_KEEP_COEX_BT_OFF 0x2000
957 #define WLAN_STOMPBT_BT_OFF 0x4000
959 typedef PREPACK
struct {
964 } POSTPACK WLAN_PROTECT_POLICY_TYPE
;
966 typedef PREPACK
struct {
968 WLAN_PROTECT_POLICY_TYPE protectParams
;
969 A_UINT16 wlanCtrlFlags
;
972 } POSTPACK BT_PARAMS_MISC
;
974 typedef PREPACK
struct {
976 BT_PARAMS_SCO scoParams
;
977 BT_PARAMS_A2DP a2dpParams
;
978 BT_PARAMS_MISC miscParams
;
982 } POSTPACK WMI_SET_BT_PARAMS_CMD
;
989 * WMI_GET_CHANNEL_LIST_CMDID reply
991 typedef PREPACK
struct {
993 A_UINT8 numChannels
; /* number of channels in reply */
994 A_UINT16 channelList
[1]; /* channel in Mhz */
995 } POSTPACK WMI_CHANNEL_LIST_REPLY
;
999 A_FAILED_DELETE_STREAM_DOESNOT_EXIST
=250,
1000 A_SUCCEEDED_MODIFY_STREAM
=251,
1001 A_FAILED_INVALID_STREAM
= 252,
1002 A_FAILED_MAX_THINSTREAMS
= 253,
1003 A_FAILED_CREATE_REMOVE_PSTREAM_FIRST
= 254,
1004 } PSTREAM_REPLY_STATUS
;
1007 * List of Events (target to host)
1010 WMI_READY_EVENTID
= 0x1001,
1011 WMI_CONNECT_EVENTID
,
1012 WMI_DISCONNECT_EVENTID
,
1013 WMI_BSSINFO_EVENTID
,
1014 WMI_CMDERROR_EVENTID
,
1015 WMI_REGDOMAIN_EVENTID
,
1016 WMI_PSTREAM_TIMEOUT_EVENTID
,
1017 WMI_NEIGHBOR_REPORT_EVENTID
,
1018 WMI_TKIP_MICERR_EVENTID
,
1019 WMI_SCAN_COMPLETE_EVENTID
,
1020 WMI_REPORT_STATISTICS_EVENTID
,
1021 WMI_RSSI_THRESHOLD_EVENTID
,
1022 WMI_ERROR_REPORT_EVENTID
,
1023 WMI_OPT_RX_FRAME_EVENTID
,
1024 WMI_REPORT_ROAM_TBL_EVENTID
,
1025 WMI_EXTENSION_EVENTID
,
1027 WMI_SNR_THRESHOLD_EVENTID
,
1028 WMI_LQ_THRESHOLD_EVENTID
,
1029 WMI_TX_RETRY_ERR_EVENTID
,
1030 WMI_REPORT_ROAM_DATA_EVENTID
,
1033 WMI_GET_WOW_LIST_EVENTID
,
1034 WMI_GET_PMKID_LIST_EVENTID
1038 WMI_11A_CAPABILITY
= 1,
1039 WMI_11G_CAPABILITY
= 2,
1040 WMI_11AG_CAPABILITY
= 3,
1041 } WMI_PHY_CAPABILITY
;
1043 typedef PREPACK
struct {
1044 A_UINT8 macaddr
[ATH_MAC_LEN
];
1045 A_UINT8 phyCapability
; /* WMI_PHY_CAPABILITY */
1046 } POSTPACK WMI_READY_EVENT
;
1051 typedef PREPACK
struct {
1053 A_UINT8 bssid
[ATH_MAC_LEN
];
1054 A_UINT16 listenInterval
;
1055 A_UINT16 beaconInterval
;
1056 A_UINT32 networkType
;
1057 A_UINT8 beaconIeLen
;
1058 A_UINT8 assocReqLen
;
1059 A_UINT8 assocRespLen
;
1060 A_UINT8 assocInfo
[1];
1061 } POSTPACK WMI_CONNECT_EVENT
;
1067 NO_NETWORK_AVAIL
= 0x01,
1068 LOST_LINK
= 0x02, /* bmiss */
1069 DISCONNECT_CMD
= 0x03,
1070 BSS_DISCONNECTED
= 0x04,
1072 ASSOC_FAILED
= 0x06,
1073 NO_RESOURCES_AVAIL
= 0x07,
1074 CSERV_DISCONNECT
= 0x08,
1075 INVALID_PROFILE
= 0x0a,
1076 DOT11H_CHANNEL_SWITCH
= 0x0b,
1077 } WMI_DISCONNECT_REASON
;
1079 typedef PREPACK
struct {
1080 A_UINT16 protocolReasonStatus
; /* reason code, see 802.11 spec. */
1081 A_UINT8 bssid
[ATH_MAC_LEN
]; /* set if known */
1082 A_UINT8 disconnectReason
; /* see WMI_DISCONNECT_REASON */
1083 A_UINT8 assocRespLen
;
1084 A_UINT8 assocInfo
[1];
1085 } POSTPACK WMI_DISCONNECT_EVENT
;
1089 * Mechanism used to inform host of the presence and characteristic of
1090 * wireless networks present. Consists of bss info header followed by
1091 * the beacon or probe-response frame body. The 802.11 header is not included.
1100 BSS_ELEMID_CHANSWITCH
= 0x01,
1101 BSS_ELEMID_ATHEROS
= 0x02,
1104 typedef PREPACK
struct {
1106 A_UINT8 frameType
; /* see WMI_BI_FTYPE */
1109 A_UINT8 bssid
[ATH_MAC_LEN
];
1111 } POSTPACK WMI_BSS_INFO_HDR
;
1114 * Command Error Event
1117 INVALID_PARAM
= 0x01,
1118 ILLEGAL_STATE
= 0x02,
1119 INTERNAL_ERROR
= 0x03,
1122 typedef PREPACK
struct {
1125 } POSTPACK WMI_CMD_ERROR_EVENT
;
1128 * New Regulatory Domain Event
1130 typedef PREPACK
struct {
1132 } POSTPACK WMI_REG_DOMAIN_EVENT
;
1134 typedef PREPACK
struct {
1135 A_UINT8 trafficClass
;
1136 } POSTPACK WMI_PSTREAM_TIMEOUT_EVENT
;
1139 * The WMI_NEIGHBOR_REPORT Event is generated by the target to inform
1140 * the host of BSS's it has found that matches the current profile.
1141 * It can be used by the host to cache PMKs and/to initiate pre-authentication
1142 * if the BSS supports it. The first bssid is always the current associated
1144 * The bssid and bssFlags information repeats according to the number
1148 WMI_DEFAULT_BSS_FLAGS
= 0x00,
1149 WMI_PREAUTH_CAPABLE_BSS
= 0x01,
1150 WMI_PMKID_VALID_BSS
= 0x02,
1153 typedef PREPACK
struct {
1154 A_UINT8 bssid
[ATH_MAC_LEN
];
1155 A_UINT8 bssFlags
; /* see WMI_BSS_FLAGS */
1156 } POSTPACK WMI_NEIGHBOR_INFO
;
1158 typedef PREPACK
struct {
1160 WMI_NEIGHBOR_INFO neighbor
[1];
1161 } POSTPACK WMI_NEIGHBOR_REPORT_EVENT
;
1164 * TKIP MIC Error Event
1166 typedef PREPACK
struct {
1169 } POSTPACK WMI_TKIP_MICERR_EVENT
;
1172 * WMI_SCAN_COMPLETE_EVENTID - no parameters (old), staus parameter (new)
1174 typedef PREPACK
struct {
1176 } POSTPACK WMI_SCAN_COMPLETE_EVENT
;
1178 #define MAX_OPT_DATA_LEN 1400
1181 * WMI_SET_ADHOC_BSSID_CMDID
1183 typedef PREPACK
struct {
1184 A_UINT8 bssid
[ATH_MAC_LEN
];
1185 } POSTPACK WMI_SET_ADHOC_BSSID_CMD
;
1188 * WMI_SET_OPT_MODE_CMDID
1195 typedef PREPACK
struct {
1197 } POSTPACK WMI_SET_OPT_MODE_CMD
;
1200 * WMI_TX_OPT_FRAME_CMDID
1203 OPT_PROBE_REQ
= 0x01,
1204 OPT_PROBE_RESP
= 0x02,
1205 OPT_CPPP_START
= 0x03,
1206 OPT_CPPP_STOP
= 0x04,
1209 typedef PREPACK
struct {
1210 A_UINT16 optIEDataLen
;
1212 A_UINT8 dstAddr
[ATH_MAC_LEN
];
1213 A_UINT8 bssid
[ATH_MAC_LEN
];
1214 A_UINT8 reserved
; /* For alignment */
1215 A_UINT8 optIEData
[1];
1216 } POSTPACK WMI_OPT_TX_FRAME_CMD
;
1219 * Special frame receive Event.
1220 * Mechanism used to inform host of the receiption of the special frames.
1221 * Consists of special frame info header followed by special frame body.
1222 * The 802.11 header is not included.
1224 typedef PREPACK
struct {
1226 A_UINT8 frameType
; /* see WMI_OPT_FTYPE */
1228 A_UINT8 srcAddr
[ATH_MAC_LEN
];
1229 A_UINT8 bssid
[ATH_MAC_LEN
];
1230 } POSTPACK WMI_OPT_RX_INFO_HDR
;
1233 * Reporting statistics.
1235 typedef PREPACK
struct {
1236 A_UINT32 tx_packets
;
1238 A_UINT32 tx_unicast_pkts
;
1239 A_UINT32 tx_unicast_bytes
;
1240 A_UINT32 tx_multicast_pkts
;
1241 A_UINT32 tx_multicast_bytes
;
1242 A_UINT32 tx_broadcast_pkts
;
1243 A_UINT32 tx_broadcast_bytes
;
1244 A_UINT32 tx_rts_success_cnt
;
1245 A_UINT32 tx_packet_per_ac
[4];
1246 A_UINT32 tx_errors_per_ac
[4];
1249 A_UINT32 tx_failed_cnt
;
1250 A_UINT32 tx_retry_cnt
;
1251 A_UINT32 tx_rts_fail_cnt
;
1252 A_INT32 tx_unicast_rate
;
1253 }POSTPACK tx_stats_t
;
1255 typedef PREPACK
struct {
1256 A_UINT32 rx_packets
;
1258 A_UINT32 rx_unicast_pkts
;
1259 A_UINT32 rx_unicast_bytes
;
1260 A_UINT32 rx_multicast_pkts
;
1261 A_UINT32 rx_multicast_bytes
;
1262 A_UINT32 rx_broadcast_pkts
;
1263 A_UINT32 rx_broadcast_bytes
;
1264 A_UINT32 rx_fragment_pkt
;
1268 A_UINT32 rx_key_cache_miss
;
1269 A_UINT32 rx_decrypt_err
;
1270 A_UINT32 rx_duplicate_frames
;
1271 A_INT32 rx_unicast_rate
;
1272 }POSTPACK rx_stats_t
;
1274 typedef PREPACK
struct {
1275 A_UINT32 tkip_local_mic_failure
;
1276 A_UINT32 tkip_counter_measures_invoked
;
1277 A_UINT32 tkip_replays
;
1278 A_UINT32 tkip_format_errors
;
1279 A_UINT32 ccmp_format_errors
;
1280 A_UINT32 ccmp_replays
;
1281 }POSTPACK tkip_ccmp_stats_t
;
1283 typedef PREPACK
struct {
1284 A_UINT32 power_save_failure_cnt
;
1285 }POSTPACK pm_stats_t
;
1287 typedef PREPACK
struct {
1288 A_UINT32 cs_bmiss_cnt
;
1289 A_UINT32 cs_lowRssi_cnt
;
1290 A_UINT16 cs_connect_cnt
;
1291 A_UINT16 cs_disconnect_cnt
;
1292 A_INT16 cs_aveBeacon_rssi
;
1293 A_UINT16 cs_roam_count
;
1296 A_UINT8 cs_aveBeacon_snr
;
1297 A_UINT8 cs_lastRoam_msec
;
1298 } POSTPACK cserv_stats_t
;
1300 typedef PREPACK
struct {
1301 tx_stats_t tx_stats
;
1302 rx_stats_t rx_stats
;
1303 tkip_ccmp_stats_t tkipCcmpStats
;
1304 }POSTPACK wlan_net_stats_t
;
1306 typedef PREPACK
struct {
1307 A_UINT32 wow_num_pkts_dropped
;
1308 A_UINT16 wow_num_events_discarded
;
1309 A_UINT8 wow_num_host_pkt_wakeups
;
1310 A_UINT8 wow_num_host_event_wakeups
;
1311 } POSTPACK wlan_wow_stats_t
;
1313 typedef PREPACK
struct {
1315 A_INT32 noise_floor_calibation
;
1317 wlan_net_stats_t txrxStats
;
1318 wlan_wow_stats_t wowStats
;
1319 cserv_stats_t cservStats
;
1320 } POSTPACK WMI_TARGET_STATS
;
1323 * WMI_RSSI_THRESHOLD_EVENTID.
1324 * Indicate the RSSI events to host. Events are indicated when we breach a
1328 WMI_RSSI_THRESHOLD1_ABOVE
= 0,
1329 WMI_RSSI_THRESHOLD2_ABOVE
,
1330 WMI_RSSI_THRESHOLD3_ABOVE
,
1331 WMI_RSSI_THRESHOLD4_ABOVE
,
1332 WMI_RSSI_THRESHOLD5_ABOVE
,
1333 WMI_RSSI_THRESHOLD6_ABOVE
,
1334 WMI_RSSI_THRESHOLD1_BELOW
,
1335 WMI_RSSI_THRESHOLD2_BELOW
,
1336 WMI_RSSI_THRESHOLD3_BELOW
,
1337 WMI_RSSI_THRESHOLD4_BELOW
,
1338 WMI_RSSI_THRESHOLD5_BELOW
,
1339 WMI_RSSI_THRESHOLD6_BELOW
1340 }WMI_RSSI_THRESHOLD_VAL
;
1342 typedef PREPACK
struct {
1345 }POSTPACK WMI_RSSI_THRESHOLD_EVENT
;
1348 * WMI_ERROR_REPORT_EVENTID
1351 WMI_TARGET_PM_ERR_FAIL
= 0x00000001,
1352 WMI_TARGET_KEY_NOT_FOUND
= 0x00000002,
1353 WMI_TARGET_DECRYPTION_ERR
= 0x00000004,
1354 WMI_TARGET_BMISS
= 0x00000008,
1355 WMI_PSDISABLE_NODE_JOIN
= 0x00000010,
1356 WMI_TARGET_COM_ERR
= 0x00000020,
1357 WMI_TARGET_FATAL_ERR
= 0x00000040
1358 } WMI_TARGET_ERROR_VAL
;
1360 typedef PREPACK
struct {
1362 }POSTPACK WMI_TARGET_ERROR_REPORT_EVENT
;
1364 typedef PREPACK
struct {
1366 }POSTPACK WMI_TX_RETRY_ERR_EVENT
;
1369 WMI_SNR_THRESHOLD1_ABOVE
= 1,
1370 WMI_SNR_THRESHOLD1_BELOW
,
1371 WMI_SNR_THRESHOLD2_ABOVE
,
1372 WMI_SNR_THRESHOLD2_BELOW
,
1373 WMI_SNR_THRESHOLD3_ABOVE
,
1374 WMI_SNR_THRESHOLD3_BELOW
,
1375 WMI_SNR_THRESHOLD4_ABOVE
,
1376 WMI_SNR_THRESHOLD4_BELOW
1377 } WMI_SNR_THRESHOLD_VAL
;
1379 typedef PREPACK
struct {
1380 A_UINT8 range
; /* WMI_SNR_THRESHOLD_VAL */
1382 }POSTPACK WMI_SNR_THRESHOLD_EVENT
;
1385 WMI_LQ_THRESHOLD1_ABOVE
= 1,
1386 WMI_LQ_THRESHOLD1_BELOW
,
1387 WMI_LQ_THRESHOLD2_ABOVE
,
1388 WMI_LQ_THRESHOLD2_BELOW
,
1389 WMI_LQ_THRESHOLD3_ABOVE
,
1390 WMI_LQ_THRESHOLD3_BELOW
,
1391 WMI_LQ_THRESHOLD4_ABOVE
,
1392 WMI_LQ_THRESHOLD4_BELOW
1393 } WMI_LQ_THRESHOLD_VAL
;
1395 typedef PREPACK
struct {
1397 A_UINT8 range
; /* WMI_LQ_THRESHOLD_VAL */
1398 }POSTPACK WMI_LQ_THRESHOLD_EVENT
;
1400 * WMI_REPORT_ROAM_TBL_EVENTID
1402 #define MAX_ROAM_TBL_CAND 5
1404 typedef PREPACK
struct {
1406 A_UINT8 bssid
[ATH_MAC_LEN
];
1412 A_UINT8 reserved
; /* For alignment */
1413 } POSTPACK WMI_BSS_ROAM_INFO
;
1416 typedef PREPACK
struct {
1418 A_UINT16 numEntries
;
1419 WMI_BSS_ROAM_INFO bssRoamInfo
[1];
1420 } POSTPACK WMI_TARGET_ROAM_TBL
;
1426 CAC_INDICATION_ADMISSION
= 0x00,
1427 CAC_INDICATION_ADMISSION_RESP
= 0x01,
1428 CAC_INDICATION_DELETE
= 0x02,
1429 CAC_INDICATION_NO_RESP
= 0x03,
1432 #define WMM_TSPEC_IE_LEN 63
1434 typedef PREPACK
struct {
1436 A_UINT8 cac_indication
;
1438 A_UINT8 tspecSuggestion
[WMM_TSPEC_IE_LEN
];
1439 }POSTPACK WMI_CAC_EVENT
;
1442 * WMI_APLIST_EVENTID
1449 typedef PREPACK
struct {
1450 A_UINT8 bssid
[ATH_MAC_LEN
];
1452 } POSTPACK WMI_AP_INFO_V1
;
1454 typedef PREPACK
union {
1455 WMI_AP_INFO_V1 apInfoV1
;
1456 } POSTPACK WMI_AP_INFO
;
1458 typedef PREPACK
struct {
1461 WMI_AP_INFO apList
[1];
1462 } POSTPACK WMI_APLIST_EVENT
;
1465 * developer commands
1469 * WMI_SET_BITRATE_CMDID
1471 * Get bit rate cmd uses same definition as set bit rate cmd
1489 typedef PREPACK
struct {
1490 A_INT8 rateIndex
; /* see WMI_BIT_RATE */
1491 } POSTPACK WMI_BIT_RATE_CMD
, WMI_BIT_RATE_REPLY
;
1494 * WMI_SET_FIXRATES_CMDID
1496 * Get fix rates cmd uses same definition as set fix rates cmd
1501 FIX_RATE_5_5Mb
= 0x4,
1502 FIX_RATE_11Mb
= 0x8,
1503 FIX_RATE_6Mb
= 0x10,
1504 FIX_RATE_9Mb
= 0x20,
1505 FIX_RATE_12Mb
= 0x40,
1506 FIX_RATE_18Mb
= 0x80,
1507 FIX_RATE_24Mb
= 0x100,
1508 FIX_RATE_36Mb
= 0x200,
1509 FIX_RATE_48Mb
= 0x400,
1510 FIX_RATE_54Mb
= 0x800,
1511 } WMI_FIX_RATES_MASK
;
1513 typedef PREPACK
struct {
1514 A_UINT16 fixRateMask
; /* see WMI_BIT_RATE */
1515 } POSTPACK WMI_FIX_RATES_CMD
, WMI_FIX_RATES_REPLY
;
1518 * WMI_SET_RECONNECT_AUTH_MODE_CMDID
1520 * Set authentication mode
1523 RECONN_DO_AUTH
= 0x00,
1524 RECONN_NOT_AUTH
= 0x01
1527 typedef PREPACK
struct {
1529 } POSTPACK WMI_SET_AUTH_MODE_CMD
;
1532 * WMI_SET_REASSOC_MODE_CMDID
1534 * Set authentication mode
1537 REASSOC_DO_DISASSOC
= 0x00,
1538 REASSOC_DONOT_DISASSOC
= 0x01
1541 typedef PREPACK
struct {
1543 }POSTPACK WMI_SET_REASSOC_MODE_CMD
;
1546 ROAM_DATA_TIME
= 1, /* Get The Roam Time Data */
1549 typedef PREPACK
struct {
1550 A_UINT32 disassoc_time
;
1551 A_UINT32 no_txrx_time
;
1552 A_UINT32 assoc_time
;
1553 A_UINT32 allow_txrx_time
;
1554 A_UINT32 last_data_txrx_time
;
1555 A_UINT32 first_data_txrx_time
;
1556 A_UINT8 disassoc_bssid
[ATH_MAC_LEN
];
1557 A_INT8 disassoc_bss_rssi
;
1558 A_UINT8 assoc_bssid
[ATH_MAC_LEN
];
1559 A_INT8 assoc_bss_rssi
;
1560 } POSTPACK WMI_TARGET_ROAM_TIME
;
1562 typedef PREPACK
struct {
1564 WMI_TARGET_ROAM_TIME roamTime
;
1566 A_UINT8 roamDataType
;
1567 } POSTPACK WMI_TARGET_ROAM_DATA
;
1570 WMI_WMM_DISABLED
= 0,
1574 typedef PREPACK
struct {
1576 }POSTPACK WMI_SET_WMM_CMD
;
1579 WMI_TXOP_DISABLED
= 0,
1583 typedef PREPACK
struct {
1585 }POSTPACK WMI_SET_WMM_TXOP_CMD
;
1587 typedef PREPACK
struct {
1588 A_UINT8 keepaliveInterval
;
1589 } POSTPACK WMI_SET_KEEPALIVE_CMD
;
1591 typedef PREPACK
struct {
1593 A_UINT8 keepaliveInterval
;
1594 } POSTPACK WMI_GET_KEEPALIVE_CMD
;
1597 * Add Application specified IE to a management frame
1599 #define WMI_MAX_IE_LEN 78
1601 typedef PREPACK
struct {
1602 A_UINT8 mgmtFrmType
; /* one of WMI_MGMT_FRAME_TYPE */
1603 A_UINT8 ieLen
; /* Length of the IE that should be added to the MGMT frame */
1605 } POSTPACK WMI_SET_APPIE_CMD
;
1608 * Notify the WSC registration status to the target
1610 #define WSC_REG_ACTIVE 1
1611 #define WSC_REG_INACTIVE 0
1612 /* Generic Hal Interface for setting hal paramters. */
1613 /* Add new Set HAL Param cmdIds here for newer params */
1615 WHAL_SETCABTO_CMDID
= 1,
1618 typedef PREPACK
struct {
1620 } POSTPACK WHAL_SETCABTO_PARAM
;
1622 typedef PREPACK
struct {
1625 } POSTPACK WHAL_PARAMCMD
;
1628 #define WOW_MAX_FILTER_LISTS 1 /*4*/
1629 #define WOW_MAX_FILTERS_PER_LIST 4
1630 #define WOW_PATTERN_SIZE 64
1631 #define WOW_MASK_SIZE 64
1633 typedef PREPACK
struct {
1634 A_UINT8 wow_valid_filter
;
1635 A_UINT8 wow_filter_id
;
1636 A_UINT8 wow_filter_size
;
1637 A_UINT8 wow_filter_offset
;
1638 A_UINT8 wow_filter_mask
[WOW_MASK_SIZE
];
1639 A_UINT8 wow_filter_pattern
[WOW_PATTERN_SIZE
];
1640 } POSTPACK WOW_FILTER
;
1643 typedef PREPACK
struct {
1644 A_UINT8 wow_valid_list
;
1645 A_UINT8 wow_list_id
;
1646 A_UINT8 wow_num_filters
;
1647 A_UINT8 wow_total_list_size
;
1648 WOW_FILTER list
[WOW_MAX_FILTERS_PER_LIST
];
1649 } POSTPACK WOW_FILTER_LIST
;
1651 typedef PREPACK
struct {
1654 } POSTPACK WMI_SET_HOST_SLEEP_MODE_CMD
;
1656 typedef PREPACK
struct {
1658 } POSTPACK WMI_SET_WOW_MODE_CMD
;
1660 typedef PREPACK
struct {
1661 A_UINT8 filter_list_id
;
1662 } POSTPACK WMI_GET_WOW_LIST_CMD
;
1665 * WMI_GET_WOW_LIST_CMD reply
1667 typedef PREPACK
struct {
1668 A_UINT8 num_filters
; /* number of patterns in reply */
1669 A_UINT8 this_filter_num
; /* this is filter # x of total num_filters */
1672 WOW_FILTER wow_filters
[1];
1673 } POSTPACK WMI_GET_WOW_LIST_REPLY
;
1675 typedef PREPACK
struct {
1676 A_UINT8 filter_list_id
;
1677 A_UINT8 filter_size
;
1678 A_UINT8 filter_offset
;
1680 } POSTPACK WMI_ADD_WOW_PATTERN_CMD
;
1682 typedef PREPACK
struct {
1683 A_UINT16 filter_list_id
;
1685 } POSTPACK WMI_DEL_WOW_PATTERN_CMD
;
1687 typedef PREPACK
struct {
1688 A_UINT8 macaddr
[ATH_MAC_LEN
];
1689 } POSTPACK WMI_SET_MAC_ADDRESS_CMD
;
1692 * WMI_SET_AKMP_PARAMS_CMD
1695 #define WMI_AKMP_MULTI_PMKID_EN 0x000001
1697 typedef PREPACK
struct {
1699 } POSTPACK WMI_SET_AKMP_PARAMS_CMD
;
1701 typedef PREPACK
struct {
1702 A_UINT8 pmkid
[WMI_PMKID_LEN
];
1703 } POSTPACK WMI_PMKID
;
1706 * WMI_SET_PMKID_LIST_CMD
1708 #define WMI_MAX_PMKID_CACHE 8
1710 typedef PREPACK
struct {
1712 WMI_PMKID pmkidList
[WMI_MAX_PMKID_CACHE
];
1713 } POSTPACK WMI_SET_PMKID_LIST_CMD
;
1716 * WMI_GET_PMKID_LIST_CMD Reply
1717 * Following the Number of PMKIDs is the list of PMKIDs
1719 typedef PREPACK
struct {
1721 WMI_PMKID pmkidList
[1];
1722 } POSTPACK WMI_PMKID_LIST_REPLY
;
1724 /* index used for priority streams */
1726 WMI_NOT_MAPPED
= -1,
1727 WMI_CONTROL_PRI
= 0,
1728 WMI_BEST_EFFORT_PRI
= 1,
1733 } WMI_PRI_STREAM_ID
;
1736 #include "athendpack.h"
1743 #endif /* _WMI_H_ */