goldfish: R.I.P.
[openwrt.git] / target / linux / s3c24xx / files-2.6.30 / drivers / ar6000 / wmi / wmi_doc.h
1 /*
2  *
3  * Copyright (c) 2004-2007 Atheros Communications Inc.
4  * All rights reserved.
5  *
6  *
7  *  This program is free software; you can redistribute it and/or modify
8  *  it under the terms of the GNU General Public License version 2 as
9  *  published by the Free Software Foundation;
10  *
11  *  Software distributed under the License is distributed on an "AS
12  *  IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
13  *  implied. See the License for the specific language governing
14  *  rights and limitations under the License.
15  *
16  *
17  *
18  */
19
20
21 #if 0
22 Wireless Module Interface (WMI) Documentaion
23
24    This section describes the format and the usage model for WMI control and
25    data messages between the host and the AR6000-based targets. The header
26    file include/wmi.h contains all command and event manifest constants as
27    well as structure typedefs for each set of command and reply parameters.
28
29 Data Frames
30
31    The data payload transmitted and received by the target follows RFC-1042
32    encapsulation and thus starts with an 802.2-style LLC-SNAP header. The
33    WLAN module completes 802.11 encapsulation of the payload, including the
34    MAC header, FCS, and WLAN security related fields. At the interface to the
35    message transport (HTC), a data frame is encapsulated in a WMI message.
36
37 WMI Message Structure
38
39    The WMI protocol leverages an 802.3-style Ethernet header in communicating
40    the source and destination information between the host and the AR6000
41    modules using a 14-byte 802.3 header ahead of the 802.2-style payload. In
42    addition, the WMI protocol adds a header to all data messages:
43
44     {
45     INT8    rssi
46                   The RSSI of the received packet and its units are shown in db above the
47                       noise floor, and the noise floor is shown in dbm.
48     UINT8   info
49                       Contains information on message type and user priority. Message type
50                       differentiates between a data packet and a synchronization message.
51     } WMI_DATA_HDR
52
53    User priority contains the 802.1d user priority info from host to target. Host
54    software translates the host Ethernet format to 802.3 format prior to Tx and
55    802.3 format to host format in the Rx direction. The host does not transmit the
56    FCS that follows the data. MsgType differentiates between a regular data
57    packet (msgType=0) and a synchronization message (msgType=1).
58
59 Data Endpoints
60
61    The AR6000 chipset provides several data endpoints to support quality of
62    service (QoS) and maintains separate queues and separate DMA engines for
63    each data endpoint. A data endpoint can be bi-directional.
64
65    Best effort (BE) class traffic uses the default data endpoint (2). The host can
66    establish up to two additional data endpoints for other traffic classes. Once
67    such a data endpoint is established, it sends and receives corresponding QoS
68    traffic in a manner similar to the default data endpoint.
69
70    If QoS is desired over the interconnect, host software must classify each data
71    packet and place it on the appropriate data endpoint. The information
72    required to classify data is generally available in-band as an 802.1p/q style
73    tag or as the ToS field in the IP header. The information may also be available
74    out-of-band depending on the host DDI.
75
76 Connection States
77
78    Table B-1 describes the AR6000 WLAN connection states:
79
80    Table B-1.  AR6000 Connection States
81
82 Connection State
83     Description
84
85    DISCONNECTED
86     In this state, the AR6000 device is not connected to a wireless
87    network. The device is in this state after reset when it sends the
88    WIRELESS MODULE \93READY\94 EVENT, after it processes a
89    DISCONNECT command, and when it loses its link with the
90    access point (AP) that it was connected to. The device signals a
91    transition to the DISCONNECTED state with a \93DISCONNECT\94
92    event.
93
94 CONNECTED
95     In this state, the AR6000 device is connected to wireless networks.
96    The device enters this state after successfully processing a
97    CONNECT, which establishes a connection with a wireless
98    network. The device signals a transition to the CONNECTED state
99    with a \93CONNECT\94 event.
100
101
102 Message Types
103
104    WMI uses commands, replies, and events for the control and configuration of
105    the AR6000 device. The control protocol is asynchronous. Table B-2 describes
106    AR6000 message types:
107
108 Table B-2.  AR6000 Message Types
109
110 Message Type
111     Description
112
113 Commands
114     Control messages that flow from the host to the device
115
116 Replies/Events
117     Control messages that flow from the device to the host.
118
119    The device issues a reply to some WMI commands, but not to others.
120    The payload in a reply is command-specific, and some commands do
121    not trigger a reply message at all. Events are control messages issued
122    by the device to signal the occurrence of an asynchronous event.
123
124
125 WMI Message Format
126
127    All WMI control commands, replies and events use the header format:
128
129    WMI_CMD_HDR Header Format
130    {
131         UINT16 id
132                  This 16-bit constant identifies which WMI command the host is issuing,
133                  which command the target is replying to, or which event has occurred.
134         WMI_CMD_HDR
135    }
136
137
138    A variable-size command-, reply-, or event-specific payload follows the
139    header. Over the interconnect, all fields in control messages (including
140    WMI_CMD_HDR and the command specific payload) use 32-bit little Endian
141    byte ordering and fields are packed. The AR6000 device always executes
142    commands in order, and the host may send multiple commands without
143    waiting for previous commands to complete. A majority of commands are
144    processed to completion once received. Other commands trigger a longer
145    duration activity whose completion is signaled to the host through an event.
146
147 Command Restrictions
148
149    Some commands may only be issued when the AR6000 device is in a certain
150    state. The host is required to wait for an event signaling a state transition
151    before such a command can be issued. For example, if a command requires
152    the device to be in the CONNECTED state, then the host is required to wait
153    for a \93CONNECT\94 event before it issues that command.
154
155    The device ignores any commands inappropriate for its current state. If the
156    command triggers a reply, the device generates an error reply. Otherwise, the
157    device silently ignores the inappropriate command.
158
159 Command and Data Synchronization
160
161    WMI provides a mechanism for a host to advise the device of necessary
162    synchronization between commands and data. The device implements
163    synchronization; no implicit synchronization exists between endpoints.
164
165    The host controls synchronization using the \93SYNCHRONIZE\94 command
166    over the control channel and synchronization messages over data channels.
167    The device stops each data channel upon receiving a synchronization message
168    on that channel, processing all data packets received prior to that message.
169    After the device receives synchronization messages for each data endpoint
170    and the \93SYNCHRONIZE\94 command, it resumes all channels.
171
172    When the host must guarantee a command executes before processing new
173    data packets, it first issues the command, then issues the \93SYNCHRONIZE\94
174    command and sends synchronization messages on data channels. When the
175    host must guarantee the device has processed all old data packets before a
176    processing a new command, it issues a \93SYNCHRONIZE\94 command and
177    synchronization messages on all data channels, then issues the desired
178    command.
179
180
181
182 WMI Commands
183
184    ADD_BAD_AP
185     Cause the AR6000 device to avoid a particular AP
186    ADD_CIPHER_KEY
187     Add or replace any of the four AR6000 encryption keys
188    ADD_WOW_PATTERN
189     Used to add a pattern to the WoW pattern list
190    CLR_RSSI_SNR
191     Clear the current calculated RSSI and SNR value
192    CONNECT_CMD
193     Request that the AR6000 device establish a wireless connection
194         with the specified SSID
195    CREATE_PSTREAM
196     Create prioritized data endpoint between the host and device
197    DELETE_BAD_AP
198     Clear an entry in the bad AP table
199    DELETE_CIPHER_KEY
200     Delete a previously added cipher key
201    DELETE_PSTREAM
202     Delete a prioritized data endpoint
203    DELETE_WOW_PATTERN
204     Remove a pre-specified pattern from the WoW pattern list
205    EXTENSION
206     WMI message interface command
207    GET_BIT_RATE
208     Retrieve rate most recently used by the AR6000
209    GET_CHANNEL_LIST
210     Retrieve list of channels used by the AR6000
211    GET_FIXRATES
212     Retrieves the rate-mask set via the SET_FIXRATES command.
213    GET_PMKID_LIST_CMD
214     Retrieve the firmware list of PMKIDs
215    GET_ROAM_DATA
216     Internal use for data collection; available in special build only
217    GET_ROAM_TBL
218     Retrieve the roaming table maintained on the target
219    GET_TARGET_STATS
220     Request that the target send the statistics it maintains
221    GET_TX_PWR
222     Retrieve the current AR6000 device Tx power levels
223    GET_WOW_LIST
224     Retrieve the current list of WoW patterns
225    LQ_THRESHOLD_PARAMS
226     Set the link quality thresholds
227    OPT_TX_FRAME
228     Send a special frame (special feature)
229    RECONNECT
230     Request a reconnection to a BSS
231    RSSI_THRESHOLD_PARAMS
232     Configure how the AR6000 device monitors and reports signal
233        strength (RSSI) of the connected BSS
234    SCAN_PARAMS
235     Determine dwell time and changes scanned channels
236    SET_ACCESS_PARAMS
237     Set access parameters for the wireless network
238    SET_ADHOC_BSSID
239     Set the BSSID for an ad hoc network
240    SET_AKMP_PARAMS
241     Set multiPMKID mode
242    SET_APPIE
243     Add application-specified IE to a management frame
244    SET_ASSOC_INFO
245     Specify the IEs the device should add to association or
246         reassociation requests
247    SET_AUTH_MODE
248     Set 802.11 authentication mode of reconnection
249    SET_BEACON_INT
250     Set the beacon interval for an ad hoc network
251    SET_BIT_RATE
252     Set the AR6000 to a specific fixed bit rate
253    SET_BMISS_TIME
254     Set the beacon miss time
255    SET_BSS_FILTER
256     Inform the AR6000 of network types about which it wants to
257         receive information using a \93BSSINFO\94 event
258    SET_BT_PARAMS
259     Set the status of a Bluetooth stream (SCO or A2DP) or set
260         Bluetooth coexistence register parameters
261    SET_BT_STATUS
262     Set the status of a Bluetooth stream (SCO or A2DP)
263    SET_CHANNEL_PARAMETERS
264     Configure WLAN channel parameters
265    SET_DISC_TIMEOUT
266     Set the amount of time the AR6000 spends attempting to
267         reestablish a connection
268    SET_FIXRATES
269     Set the device to a specific fixed PHY rate (supported subset)
270    SET_HALPARAM
271     Internal AR6000 command to set certain hardware parameters
272    SET_HOST_SLEEP_MODE
273     Set the host mode to asleep or awake
274    SET_IBSS_PM_CAPS
275     Support a non-standard power management scheme for an
276         ad hoc network
277    SET_LISTEN_INT
278     Request a listen interval
279    SET_LPREAMBLE
280     Override the short preamble capability of the AR6000 device
281    SET_MAX_SP_LEN
282     Set the maximum service period
283    SET_OPT_MODE
284     Set the special mode on/off (special feature)
285    SET_PMKID
286     Set the pairwise master key ID (PMKID)
287    SET_PMKID_LIST_CMD
288     Configure the firmware list of PMKIDs
289    SET_POWER_MODE
290     Set guidelines on trade-off between power utilization
291    SET_POWER_PARAMS
292     Configure power parameters
293    SET_POWERSAVE_PARAMS
294     Set the two AR6000 power save timers
295    SET_PROBED_SSID
296     Provide list of SSIDs the device should seek
297    SET_REASSOC_MODE
298     Specify whether the disassociated frame should be sent upon
299         reassociation
300    SET_RETRY_LIMITS
301     Limit how many times the device tries to send a frame
302    SET_ROAM_CTRL
303     Control roaming behavior
304    SET_RTS
305     Determine when RTS should be sent
306    SET_SCAN_PARAMS
307     Set the AR6000 scan parameters
308    SET_TKIP_COUNTERMEASURES
309     Enable/disable reports of TKIP MIC errors
310    SET_TX_PWR
311     Specify the AR6000 device Tx power levels
312    SET_VOICE_PKT_SIZE
313     Set voice packet size
314    SET_WMM
315     Override the AR6000 WMM capability
316    SET_WMM_TXOP
317     Configure TxOP bursting when sending traffic to a WMM-
318     capable AP
319    SET_WOW_MODE
320     Enable/disable WoW mode
321    SET_WSC_STATUS
322     Enable/disable profile check in cserv when the WPS protocol
323     is in progress
324    SNR_THRESHOLD_PARAMS
325     Configure how the device monitors and reports SNR of BSS
326    START_SCAN
327     Start a long or short channel scan
328    SYNCHRONIZE
329     Force a synchronization point between command and data
330     paths
331    TARGET_REPORT_ERROR_BITMASK
332     Control \93ERROR_REPORT\94 events from the AR6000
333
334
335
336
337 Name
338     ADD_BAD_AP
339
340 Synopsis
341     The host uses this command to cause the AR6000 to avoid a particular AP. The
342     AR6000 maintain a table with up to two APs to avoid. An ADD_BAD_AP command
343     adds or replaces the specified entry in this bad AP table.
344
345     If the AR6000 are currently connected to the AP specified in this command, they
346     disassociate.
347
348 Command
349     wmiconfig eth1 --badap <bssid> <badApIndex>
350
351 Command Parameters
352     UINT8 badApIndex    Index [0...1] that identifies which entry in the
353                         bad AP table to use
354
355
356     UINT8 bssid[6]  MAC address of the AP to avoid
357
358 Command Values
359     badApIndex = 0, 1    Entry in the bad AP table to use
360
361 Reset Value
362     The bad AP table is cleared
363
364 Restrictions
365     None
366
367 See Also
368     \93DELETE_BAD_AP\94 on page B-13
369
370 =====================================================================
371 Name
372     ADD_CIPHER_KEY
373
374 Synopsis
375     The host uses this command to add/replace any of four encryption keys on the
376     AR6000. The ADD_CIPHER_KEY command is issued after the CONNECT event
377     has been received by the host for all dot11Auth modes except for SHARED_AUTH.
378     When the dot11AuthMode is SHARED_AUTH, then the ADD_CIPHER_KEY
379     command should be issued before the \93CONNECT\94 command.
380
381 Command
382     wmiconfig eth1 --cipherkey <keyIndex> <keyType> <keyUsage>
383                             <keyLength> <keyopctrl> <keyRSC> <key>
384
385 Command Parameters
386     UINT8 keyIndex      Index (0...3) of the key to add/replace;
387                         uniquely identifies the key
388     UINT8 keyType    CRYPTO_TYPE
389     UINT8 keyUsage   Specifies usage parameters of the key when
390                      keyType = WEP_CRYPT
391     UINT8 keyLength  Length of the key in bytes
392     UINT8 keyOpCtrl  bit[0] = Initialize TSC (default),
393                      bit[1] = Initialize RSC
394     UINT8 keyRSC[8]  Key replay sequence counter (RSC) initial
395                      value the device should use
396     UINT8 key[32]    Key material used for this connection
397     Command Values
398     {
399         NONE_CRYPT = 1
400         WEP_CRYPT  = 2
401         TKIP_CRYPT = 3
402         AES_CRYPT  = 4
403         KEY_OP_INIT_TSC   0x01
404         KEY_OP_INIT_RSC   0x02
405         KEY_OP_INIT_VAL   0x03
406                 Default is to Initialize the TSC
407         KEY_OP_VALID_MASK 0x04
408                 Two operations defined
409     } CRYPTO_TYPE
410
411     {
412         PAIRWISE_USAGE  = 0  Set if the key is used for unicast traffic only
413         GROUP_USAGE     = 1  Set if the key is used to receive multicast
414                               traffic (also set for static WEP keys)
415         TX_USAGE        = 2  Set for the GROUP key used to transmit frames
416                 All others are reserved
417     } KEY_USAGE
418
419 Reset Value
420     The four available keys are disabled.
421
422 Restrictions
423     The cipher should correspond to the encryption mode specified in the \93CONNECT\94
424     command.
425
426 See Also
427     \93DELETE_CIPHER_KEY\94
428
429 =====================================================================
430
431
432 Name
433     ADD_WOW_PATTERN
434
435 Synopsis
436     The host uses this command to add a pattern to the WoW pattern list; used for
437     pattern-matching for host wakeups by the WoW module. If the host mode is asleep
438     and WoW is enabled, all packets are matched against the existing WoW patterns. If a
439     packet matches any of the patterns specified, the target will wake up the host. All
440     non-matching packets are discarded by the target without being sent up to the host.
441
442 Command
443     wmiconfig \96addwowpattern <list-id> <filter-size> <filter-offset>
444     <pattern> <mask>
445
446 Command Parameters
447     A_UINT8  filter_list_id    ID of the list that is to include the new pattern
448     A_UINT8  filter_size       Size of the new pattern
449     A_UINT8  filter_offset     Offset at which the pattern matching for this
450                                 new pattern should begin at
451     A_UINT8  filter[1]         Byte stream that contains both the pattern and
452                                 the mask of the new WoW wake-up pattern
453
454 Reply Parameters
455     None
456
457 Reset Value
458     None defined (default host mode is awake)
459
460 Restrictions
461     None
462
463 See Also
464     \93DELETE_WOW_PATTERN\94
465
466 =====================================================================
467
468
469 Name
470     CLR_RSSI_SNR
471
472 Synopsis
473     Clears the current calculated RSSI and SNR value. RSSI and SNR are reported by
474     running-average value. This command will clear the history and have a fresh start
475     for the running-average mechanism.
476
477 Command
478     wmiconfig eth1 --cleanRssiSnr
479
480 Command Parameters
481     None
482
483 Reply Parameters
484     None
485
486 Reset Value
487     None defined
488
489 Restrictions
490     None
491
492 =====================================================================
493
494 Name
495     CONNECT_CMD
496
497 Synopsis
498     New connect control information (connectCtrl) is added, with 32 possible modifiers.
499
500     CONNECT_SEND_REASSOC
501         Valid only for a host-controlled connection to a
502         particular AP. If this bit is set, a reassociation frame is
503         sent. If this bit is clear, an association request frame is
504         sent to the AP.
505
506     CONNECT_IGNORE_WPAx_GROUP_CIPHER
507         No group key is issued in the CONNECT command,
508         so use the group key advertised by the AP. In a target-
509         initiated roaming situation this allows a STA to roam
510         between APs that support different multicast ciphers.
511
512     CONNECT_PROFILE_MATCH_DONE
513         In a host-controlled connection case, it is possible that
514         during connect, firmware may not have the
515         information for a profile match (e.g, when the AP
516         supports hidden SSIDs and the device may not
517         transmit probe requests during connect). By setting
518         this bit in the connection control information, the
519         firmware waits for a beacon from the AP with the
520         BSSID supplied in the CONNECT command. No
521         additional profile checks are done.
522
523     CONNECT_IGNORE_AAC_BEACON
524         Ignore the Admission Capacity information in the
525         beacon of the AP
526
527     CONNECT_ASSOC_POLICY_USER
528         When set, the CONNECT_SEND_REASSOC setting
529         determines if an Assoc or Reassoc is sent to an AP
530
531 Command
532     wmiconfig --setconnectctrl <ctrl flags bitmask>
533
534 Command Parameters
535     typedef struct{
536     A_UINT8 networktype;
537     A_UINT8 dot11authmode;
538     A_UINT8 authmode;
539     A_UINT8 pairwiseCryptoType; /*CRYPTO_TYPE*/
540     A_UINT8 pairwiseCryptoLen;
541     A_UINT8 groupCryptoType; /*CRYPTO_TYPE*/
542     A_UINT8 groupCryptoLen;
543     A_UINT8 ssidLength;
544     A_UCHAR ssid[WMI_MAX_SSID_LEN];
545     A_UINT16 channel;
546     A_UINT8 bssid[AUTH_MAC_LEN];
547     A_UINT8 ctrl_flags; /*WMI_CONNECT_CTRL_FLAGS_BITS*/
548     } WMI_CONNECT_CMD;
549
550     ctrl flags bitmask
551         = 0x0001 CONNECT_ASSOC_POLICY_USER
552             Assoc frames are sent using the policy specified by
553             the flag
554         = 0x0002 CONNECT_SEND_REASSOC
555             Send Reassoc frame while connecting, otherwise send
556             assoc frames
557         = 0x0004 CONNECT_IGNORE_WPAx_GROUP_CIPHER
558             Ignore WPAx group cipher for WPA/WPA2
559         = 0x0008 CONNECT_PROFILE_MATCH_DONE
560             Ignore any profile check
561         = 0x0010 CONNECT_IGNORE_AAC_BEACON
562             Ignore the admission control information in the
563             beacon
564         ... CONNECT_CMD, continued
565         Command Values
566         typedef enum {
567             INFRA_NETWORK       = 0x01,
568             ADHOC_NETWORK       = 0x02,
569             ADHOC_CREATOR       = 0x04,
570         } NETWORK_TYPE;
571
572         typedef enum {
573             OPEN_AUTH           = 0x01,
574             SHARED_AUTH         = 0x02,
575             LEAP_AUTH           = 0x04,
576         } DOT11_AUTH_MODE;
577         typedef enum {
578             NONE_AUTH           = 0x01,
579             WPA_AUTH            = 0x02,
580             WPA_PSK_AUTH        = 0x03,
581             WPA2_AUTH           = 0x04,
582             WPA2_PSK_AUTH       = 0x05,
583             WPA_AUTH_CCKM       = 0x06,
584             WPA2_AUTH_CCKM      = 0x07,
585         } AUTH_MODE;
586         typedef enum {
587             NONE_CRYPT          = 0x01,
588             WEP_CRYPT           = 0x02,
589             TKIP_CRYPT          = 0x03,
590             AES_CRYPT           = 0x04,
591         } CRYPTO_TYPE;
592         typedef enum {
593             CONNECT_ASSOC_POLICY_USER = 0x0001,
594             CONNECT_SEND_REASSOC = 0x0002,
595             CONNECT_IGNORE_WPAx_GROUP_CIPHER = 0x0004,
596             CONNECT_PROFILE_MATCH_DONE = 0x0008,
597             CONNECT_IGNORE_AAC_BEACON = 0x0010,
598         } WMI_CONNECT_CTRL_FLAGS_BITS;
599
600     pairwiseCryptoLen and groupCryptoLen are valid when the respective
601     CryptoTypesis WEP_CRYPT, otherwise this value should be 0. This is the length in
602     bytes.
603
604 Reset Value
605     None defined
606
607 Restrictions
608     None
609
610 =====================================================================
611
612
613 Name
614     CREATE_PSTREAM
615
616 Synopsis
617     The host uses this command to create a new prioritized data endpoint between the
618     host and the AR6000 device that carries a prioritized stream of data. If the AP that the
619     device connects to requires TSPEC stream establishment, the device requests the
620     corresponding TSPEC with the AP. The maximum and minimum service interval
621     ranges from 0 \96 0x7FFFFFFF (ms), where 0 = disabled. The device does not send a
622     reply event for this command, as it is always assumed the command has succeeded.
623     An AP admission control response comes to the host via a WMI_CAC_INDICATION
624     event, once the response for the ADDTS frame comes.
625
626     Examples of cases where reassociation is generated (when WMM) and cases where
627     ADDTS is generated (when WMM and enabling ACM) are when:
628         Changing UAPSD flags in WMM mode, reassociation is generated
629         Changing the interval of sending auto QoS Null frame in WMM mode;
630             reassociation is not generated
631         Issuing a command with same previous parameters in WMM mode and enabling
632             ACM, an ADDTS request is generated
633         Changing the interval of a QoS null frame sending in WMM mode and enabling
634             ACM, an ADDTS request is generated
635         Issuing the command in disconnected state, reassociation or ADDTS is not
636             generated but the parameters are available after (re)association
637
638 Command
639     --createqos <user priority> <direction> <traffic class>
640 <trafficType> <voice PS capability> <min service interval> <max
641 service interval> <inactivity interval> <suspension interval>
642 <service start time> <tsid> <nominal MSDU> <max MSDU> <min data
643 rate> <mean data rate> <peak data rate> <max burst size> <delay
644 bound> <min phy rate> <sba> <medium time> where:
645
646     <user priority>
647     802.1D user priority range (0\967)
648     <direction>
649         = 0    Tx (uplink) traffic
650         = 1    Rx (downlink) traffic
651         = 2    Bi-directional traffic
652     <traffic class>
653         = 1    BK
654         = 2    VI
655         = 3    VO
656     <trafficType>
657         = 0    Aperiodic
658         = 1    Periodic
659     <voice PS capability>
660         Specifies whether the voice power save mechanism
661     (APSD if AP supports it or legacy/simulated APSD
662     [using PS-Poll]) should be used
663         = 0    Disable voice power save for traffic class
664         = 1    Enable APSD voice power save for traffic class
665         = 2    Enable voice power save for all traffic classes
666     <min service interval>
667         (In ms)
668     <max service interval>
669         Inactivity interval (in ms) (0 = Infinite)
670     <suspension interval>
671         (In ms)
672     <service start time>
673         Service start time
674     <tsid>
675         TSID range (0\9615)
676     <nominal MSDU>
677         Nominal MAC SDU size
678     <max MSDU>
679         Maximum MAC SDU size
680     <min data rate>
681         Minimum data rate (in bps)
682     <mean data rate>
683         Mean data rate (in bps)
684     <peak data rate>
685         Peak data rate (in bps)
686     <max burst size>
687         Maximum burst size (in bps)
688     <delay bound>
689         Delay bound
690     <min phy rate>
691         Minimum PHY rate (in bps)
692     <sba>
693         Surplus bandwidth allowance
694     <medium time>
695         Medium time in TU of 32-ms periods per sec
696     ... CREATE_PSTREAM (continued)
697
698 Command Parameters
699     UINT8 trafficClass    TRAFFIC_CLASS value
700     UINT8 traffic
701     Direction
702     DIR_TYPE value
703     UINT8    rxQueueNum
704         AR6000 device mailbox index (2 or 3)
705         corresponding to the endpoint the host
706         wishes to use to receive packets for the
707         prioritized stream
708     UINT8 trafficType  TRAFFIC_TYPE value
709     UINT8 voicePS
710 Capability
711     VOICEPS_CAP_TYPE value
712     UINT8 tsid          Traffic stream ID
713     UINT8 userPriority  802.1D user priority
714     UINT16 nominalMSDU  Nominal MSDU in octets
715     UINT16 maxMSDU      Maximum MSDU in octets
716     UINT32 minServiceInt Minimum service interval: the min.
717                             period of traffic specified (in ms)
718     UINT32 maxServiceInt  Maximum service interval: the max.
719                         period of traffic specified (in ms)
720     UINT32 inactivityInt Indicates how many ms an established
721                         stream is inactive before the prioritized
722                         data endpoint is taken down and the
723                         corresponding T-SPEC deleted
724     UINT32 suspensionInt  Suspension interval (in ms)
725     UINT32 service       StartTime Service start time
726     UINT32 minDataRate  Minimum data rate (in bps)
727     UINT32 meanDataRate Mean data rate (in bps)
728     UINT32 peakDataRate Peak data rate (in bps)
729     UINT32 maxBurstSize
730     UINT32 delayBound
731     UINT32 minPhyRate   Minimum PHY rate for TSPEC (in bps)
732     UINT32 sba          Surplus bandwidth allowance
733     UINT32 mediumTime   Medium TSPEC time (in units of 32 ms)
734 Command Values
735     {
736         WMM_AC_BE = 0   Best Effort
737         WMM_AC_BK = 1   Background
738         WMM_AC_VI = 2   Video
739         WMM_AC_VO = 3   Voice
740         All other values reserved
741     } TRAFFIC_CLASS
742     {
743         UPLINK_TRAFFIC   = 0  From the AR6000 device to the AP
744         DOWNLINK_TRAFFIC = 1  From the AP to the AR6000 device
745         BIDIR_TRAFFIC    = 2  Bi-directional traffic
746         All other values reserved
747     } DIR_TYPE
748     {
749         DISABLE_FOR_THIS_AC = 0
750         ENABLE_FOR_THIS_AC  = 1
751         ENABLE_FOR_ALL_AC   = 2
752         All other values reserved
753     } VOICEPS_CAP_TYPE
754
755     ... CREATE_PSTREAM (continued)
756
757
758         VI  BE   BK    Supported, Y/N?
759    0    0    0    0    Y
760    0    0    0    1    Y
761    0    0    1    0    N
762    0    0    1    1    N
763    0    1    0    0    Y
764    0    1    0    1    Y
765    0    1    1    0    N
766    0    1    1    1    N
767    1    0    0    0    Y
768    1    0    0    1    Y
769    1    0    1    0    N
770    1    1    0    0    N
771    1    1    0    1    Y
772    1    1    0    0    N
773    1    1    1    0    N
774    1    1    1    1    Y
775
776 Reset Value
777     No pstream is present after reset; each of the BE, BK, VI,VO pstreams must be created
778     (either implicitly by data flow or explicitly by user)
779
780 Restrictions
781     This command can only be issued when the device is in the CONNECTED state. If
782     the device receives the command while in DISCONNECTED state, it replies with a
783     failure indication. At most four prioritized data endpoints can be created, one for
784     each AC.
785
786 See Also
787     \93DELETE_PSTREAM\94
788 =====================================================================
789
790 Name
791     DELETE_BAD_AP
792
793 Synopsis
794     The host uses this command to clear a particular entry in the bad AP table
795
796 Command
797     wmiconfig eth1 --rmAP [--num=<index>] // used to clear a badAP
798     entry. num is index from 0-3
799
800 Command Parameters
801     UINT8  badApIndex   Index [0...n] that identifies the entry in the bad
802                         AP table to delete
803
804 Command Values
805     badApIndex   = 0, 1, 2, 3
806             Entry in the bad AP table
807
808 Reset Value
809     None defined
810
811 Restrictions
812     None
813
814 See Also
815     \93ADD_BAD_AP\94
816
817 =====================================================================
818
819
820 Name
821     DELETE_CIPHER_KEY
822
823 Synopsis
824     The host uses this command to delete a key that was previously added with the
825     \93ADD_CIPHER_KEY\94 command.
826
827 Command
828     TBD
829
830 Command Parameters
831     UINT8   keyIndex    Index (0...3) of the key to be deleted
832
833 Command Values
834     keyIndex    = 0, 1,2, 3    Key to delete
835
836 Reset Value
837     None
838
839 Restrictions
840     The host should not delete a key that is currently in use by the AR6000.
841
842 See Also
843     \93ADD_CIPHER_KEY\94
844
845 =====================================================================
846
847 Name
848     DELETE_PSTREAM
849
850 Synopsis
851     The host uses this command to delete a prioritized data endpoint created by a
852     previous \93CREATE_PSTREAM\94 command
853
854 Command
855     --deleteqos <trafficClass> <tsid>, where:
856
857     <traffic class>
858         = 0    BE
859         = 1    BK
860         = 2    VI
861         = 3    VO
862     <tsid>
863         The TSpec ID; use the -qosqueue option
864         to get the active TSpec IDs for each traffic class
865
866 Command Parameters
867     A_UINT8    trafficClass    Indicate the traffic class of the stream
868                             being deleted
869
870 Command Values
871     {
872         WMM_AC_BE = 0    Best effort
873         WMM_AC_BK = 1    Background
874         WMM_AC_VI = 2    Video
875         WMM_AC_VO = 3    Voice
876     } TRAFFIC CLASS
877
878     0-15 for TSID
879
880 Reply Values
881     N/A
882
883 Restrictions
884     This command should only be issued after a \93CREATE_PSTREAM\94 command has
885     successfully created a prioritized stream
886
887 See Also
888     \93CREATE_PSTREAM\94
889
890 =====================================================================
891
892
893 Name
894     DELETE_WOW_PATTERN
895
896 Synopsis
897     The host uses this command to remove a pre-specified pattern from the
898     WoW pattern list.
899
900 Command
901     wmiconfig \96delwowpattern <list-id> <pattern-id>
902
903 Command Parameters
904     A_UINT8    filter_list_id    ID of the list that contains the WoW filter
905                                  pattern to delete
906     A_UINT8    filter_id    ID of the WoW filter pattern to delete
907
908 Reply Parameters
909     None
910
911
912
913 Reset Value
914     None defined
915
916 Restrictions
917     None
918
919 See Also
920     \93ADD_WOW_PATTERN\94
921
922 =====================================================================
923
924
925 Name
926     EXTENSION
927
928 Synopsis
929     The WMI message interface is used mostly for wireless control messages to a wireless
930     module applicable to wireless module management regardless of the target platform
931     implementation. However, some commands only peripherally related to wireless
932     management are desired during operation. These wireless extension commands may
933     be platform-specific or implementation-dependent.
934
935 Command
936     N/A
937
938 Command Parameters
939     Command-specific
940
941 Command Values
942     Command-specific
943
944 Reply Parameters
945     Command-specific
946
947 Reset Values
948     None defined
949
950 Restrictions
951     None defined
952
953 =====================================================================
954
955
956 Name
957     GET_BIT_RATE
958
959 Synopsis
960     Used by the host to obtain the rate most recently used by the AR6000 device
961
962 Command
963     wmiconfig eth1 --getfixrates
964
965 Command Parameters
966     None
967
968
969
970 Reply Parameters
971     INT8
972     rateIndex
973     See the \93SET_BIT_RATE\94 command
974
975 Reset Values
976     None
977
978 Restrictions
979     This command should only be used during development/debug; it is not intended
980 for use in production. It is only valid when the device is in the CONNECTED state
981
982 See Also
983     \93SET_BIT_RATE\94
984
985 =====================================================================
986
987
988 Name
989     GET_CHANNEL_LIST
990
991 Synopsis
992     Used by the host uses to retrieve the list of channels that can be used by the device
993     while in the current wireless mode and in the current regulatory domain.
994
995 Command
996     TBD
997
998 Command Parameters
999     None
1000
1001 Reply Parameters
1002     UINT8    reserved    Reserved
1003     UINT8    numberOfChannels    Number of channels the reply contains
1004     UINT16    channelList[numberOfChannels]  Array of channel frequencies (in MHz)
1005
1006 Reset Values
1007     None defined
1008
1009 Restrictions
1010     The maximum number of channels that can be reported are 32
1011
1012 =====================================================================
1013
1014
1015 Name
1016     GET_FIXRATES
1017
1018 Synopsis
1019     Clears the current calculated RSSI and SNR value. RSSI and SNR are reported by
1020     running-average value. This command will clear the history and have a fresh start for
1021     the running-average mechanism.
1022
1023 Synopsis
1024     This returns rate-mask set via WMI_SET_FIXRATES to retrieve the current fixed rate
1025     that the AR6001 or AR6001 is using. See \93SET_FIXRATES\94.
1026
1027 Command
1028     wmiconfig eth1 --getfixrates
1029
1030 Command Parameters
1031     A_UINT16    fixRateMask;    Note: if this command is used prior to
1032                 using WMI_SET_FIXRATES, AR6000
1033                 returns 0xffff as fixRateMask, indicating
1034                 all the rates are enabled
1035
1036 Reply Parameters
1037     None
1038
1039 Reset Value
1040     None defined
1041
1042 Restrictions
1043     None
1044
1045 See Also
1046     \93SET_FIXRATES\94
1047
1048 =====================================================================
1049
1050
1051
1052 Name
1053     GET_PMKID_LIST_CMD
1054
1055 Synopsis
1056     Retrieves the list of PMKIDs on the firmware. The
1057     WMI_GET_PMKID_LIST_EVENT is generated by the firmware.
1058
1059 Command
1060     TBD
1061
1062 Command Parameters
1063
1064 Reset Values
1065     None
1066
1067 Restrictions
1068     None
1069
1070 See Also
1071     SET_PMKID_LIST_CMD GET_PMKID_LIST_EVENT
1072
1073 =====================================================================
1074
1075
1076 Name
1077     GET_ROAM_TBL
1078
1079 Synopsis
1080     Retrieve the roaming table maintained on the target. The response is reported
1081     asynchronously through the ROAM_TBL_EVENT.
1082
1083 Command
1084     wmiconfig --getroamtable <roamctrl> <info>
1085
1086 Command Parameters
1087     A_UINT8    roamCtrlType;
1088     A_UINT16   roamMode
1089     A_UINT16   numEntries
1090     WMI_BSS_ROAM_INFO bssRoamInfo[1]
1091
1092 Reply Value
1093     Reported asynchronously through the ROAM_TBL_EVENT
1094
1095 Reset Value
1096     None defined
1097
1098 Restrictions
1099     None
1100
1101 See Also
1102     SET_KEEPALIVE
1103
1104 =====================================================================
1105
1106
1107 Name
1108     GET_TARGET_STATS
1109
1110 Synopsis
1111     The host uses this command to request that the target send the statistics that it
1112     maintains. The statistics obtained from the target are accrued in the host every time
1113     the GET_TARGET_STATS command is issued. The --clearStats option is added to
1114     clear the target statistics maintained in the host.
1115
1116 Command
1117     wmiconfig --getTargetStats --clearStats
1118
1119 Command Parameters
1120     TARGET_STATS    targetStats
1121     WMI_TARGET_STATS
1122     UINT8   clearStats
1123
1124
1125 Reply Value
1126     RSSI return value (0\96100)
1127
1128 Reset Values
1129     All statistics are cleared (zeroed)
1130
1131 Restrictions
1132     The --getTargetStats option must be used; the --clearStats option is also available also
1133
1134
1135 =====================================================================
1136
1137 Name
1138     GET_TX_PWR
1139
1140 Synopsis
1141     The host uses this command to retrieve the current Tx power level
1142
1143 Command
1144     wmiconfig -i eth1 --getpower
1145
1146 Command Parameters
1147     None
1148
1149 Reply Parameters
1150     UINT16 dbM    The current Tx power level specified in dbM
1151
1152 Reset Values
1153     The maximum permitted by the regulatory domain
1154
1155 Restrictions
1156     None
1157
1158 See Also
1159     \93SET_TX_PWR\94
1160
1161 =====================================================================
1162
1163
1164 Name
1165     GET_WOW_LIST
1166
1167 Synopsis
1168     The host uses this command to retrieve the current list of WoW patterns.
1169
1170 Command
1171     wmiconfig \96getwowlist <list-id>
1172
1173 Command Parameters
1174     A_UINT8 filter_list_id    ID of the list of WoW patterns to retrieve
1175
1176 Reply Value(s)
1177     A_UINT16  num_filters    Number of WoW patterns contained in the list
1178     A_UINT8   wow_mode    Current mode of WoW (enabled or disabled)
1179     A_UINT8    host_mode    Current host mode (asleep or awake)
1180     WOW_FILTER    wow_filters[1]
1181         Contents of the WoW filter pattern list
1182         (contains mask, pattern, offset and size
1183     information for each of the patterns)
1184
1185 Reset Value
1186     None defined
1187
1188 Restrictions
1189     None
1190
1191 See Also
1192     \93SET_WSC_STATUS\94
1193
1194 =====================================================================
1195
1196
1197 Name
1198     LQ_THRESHOLD_PARAMS
1199
1200 Synopsis
1201     Sets Link Quality thresholds, the sampling will happen at every unicast data frame
1202     Tx if a certain threshold is met, and the corresponding event will be sent to the host.
1203
1204 Command
1205     --lqThreshold <enable> <upper_threshold_1> ...
1206     <upper_threshold_4> <lower_threshold_1> ... <lower_threshold_4>
1207
1208 Command Parameters
1209     <enable>    = 0    Disable link quality sampling
1210                 = 1    Enable link quality sampling
1211     <upper_threshold_x>  Above thresholds (value in [0,100]), in
1212                     ascending order
1213     <lower_threshold_x> Below thresholds (value in [0,100]), in
1214                     ascending order
1215
1216 Command Values
1217     See command parameters
1218
1219 Reset Value
1220     None defined
1221
1222 Restrictions
1223     None
1224
1225 =====================================================================
1226
1227
1228 Name
1229     OPT_TX_FRAME
1230
1231 Synopsis
1232     Special feature, sends a special frame.
1233
1234 Command
1235     wmiconfig --sendframe <frmType> <dstaddr> <bssid> <optIEDatalen>
1236     <optIEData>
1237
1238 Command Parameters
1239     {
1240         A_UINT16    optIEDataLen;
1241         A_UINT8    frmType;
1242         A_UINT8    dstAddr[ATH_MAC_LEN];
1243         A_UINT8    bssid[ATH_MAC_LEN];
1244         A_UINT8    optIEData[1];
1245     } WMI_OPT_TX_FRAME_CMD;
1246
1247 Command Values
1248     <frmtype>   = 1    Probe request frame
1249                 = 2    Probe response frame
1250                 = 3    CPPP start
1251                 = 4    CPPP stop
1252
1253 Reset Value
1254     None defined
1255
1256 Restrictions
1257     Send a special frame only when special mode is on.
1258
1259 =====================================================================
1260
1261
1262 Name
1263     RECONNECT
1264
1265 Synopsis
1266     This command requests a reconnection to a BSS to which the AR6000 device was
1267     formerly connected
1268
1269 Command
1270     TBD
1271
1272 Command Parameters
1273     UINT16    channel    Provides a hint as to which channel was
1274                         used for a previous connection
1275     UINT8    bssid[6]    If set, indicates which BSSID to connect to
1276
1277 Command Values
1278     None
1279
1280 Reset Values
1281     None
1282
1283 Restrictions
1284     None
1285
1286 See Also
1287     \93CONNECT_CMD\94
1288
1289 =====================================================================
1290
1291
1292 Name
1293     RSSI_THRESHOLD_PARAMS
1294
1295 Synopsis
1296     Configures how the AR6000 device monitors and reports signal strength (RSSI) of the
1297     connected BSS, which is used as a link quality metric. The four RSSI threshold sets (in
1298     dbM) of the host specification divide the signal strength range into six segments.
1299     When signal strength increases or decreases across one of the boundaries, an
1300     RSSI_THRESHOLD event is signaled to the host. The host may then choose to take
1301     action (such as influencing roaming).
1302
1303 Command
1304     wmiconfig eth1 --rssiThreshold <weight> <pollTime>
1305         <above_threshold_val_1> ... <above_threshold_tag_6>
1306         <above_threshold_val_6>
1307         <below_threshold_tag_1> <below_threshold_val_1> ...
1308         <below_threshold_tag_6> <below_threshold_val_6>
1309
1310 Command Parameters
1311     UINT8    weight    Range in [1, 16] used to calculate average RSSI
1312     UINT32   pollTime   RSSI (signal strength) sampling frequency in
1313                 seconds (if pollTime = 0, single strength
1314         sampling is disabled)
1315     USER_RSS__THOLD tholds[12]  Thresholds (6 x 2)
1316
1317 Command Values
1318     None defined
1319
1320 Reset Values
1321     pollTime is 0, and sampling is disabled
1322
1323 Restrictions
1324     Can only be issued if the AR6000 device is connected
1325
1326
1327 =====================================================================
1328
1329 Name
1330     SCAN_PARAMS
1331
1332 Synopsis
1333     The minact parameter determines the minimum active channel dwell time, within
1334     which if the STA receives any beacon, it remains on that channel until the maxact
1335     channel dwell time. If the STA does not receive a beacon within the minact dwell
1336     time, it switches to scan the next channel.
1337
1338 Command
1339     wmiconfig -scan -minact=<ms> --maxact=<ms>
1340
1341 Command Parameters
1342     UINT16    maxact    Channel dwell time (in ms), default = 0
1343     UINT16    minact    Channel dwell time (in ms), default = 105
1344
1345 Command Values
1346     See channel parameters
1347
1348 Reset Values
1349     None defined
1350
1351 Restrictions
1352     The minact value should be greater than 0; maxact should be between 5\9665535 ms
1353     and greater than minact
1354
1355 =====================================================================
1356
1357
1358 Name
1359     SET_ACCESS_PARAMS
1360
1361 Synopsis
1362     Allows the host to set access parameters for the wireless network. A thorough
1363     understanding of IEEE 802.11 is required to properly manipulate these parameters.
1364
1365 Command
1366     wmiconfig eth1 --acparams --txop <limit> --cwmin <0-15>
1367     --cwmax <0-15> --aifsn<0-15>
1368
1369 Command Parameters
1370     UINT16    txop    The maximum time (expressed in units of
1371                         32 ms) the device can spend transmitting
1372                         after acquiring the right to transmit
1373     UINT8    eCWmin    Minimum contention window
1374     UINT8    eCWmax    Maximum contention window
1375     UINT8    aifsn    The arbitration inter-frame space number
1376
1377 Command Values
1378     None
1379
1380 Reset Values
1381     Reasonable defaults that vary, between endpoints (prioritized streams)
1382
1383 Restrictions
1384     None
1385
1386 =====================================================================
1387
1388
1389 Name
1390     SET_ADHOC_BSSID
1391
1392 Synopsis
1393     Allows the host to set the BSSID for an ad hoc network. If a network with this BSSID
1394     is not found, the target creates an ad hoc network with this BSSID after the connect
1395     WMI command is triggered (e.g., by the SIOCSIWESSID IOCTL).
1396
1397 Command
1398     wmiconfig eth1 --adhocbssid <bssid>
1399
1400 Command Parameters
1401     A_UINT8     bssid[ATH_MAC_LEN]    BSSID is specified in xx:xx:xx:xx:xx:xx format
1402
1403 Command Values
1404     None
1405
1406 Reset Values
1407     None
1408
1409 Restrictions
1410     None
1411
1412 =====================================================================
1413
1414
1415 Name
1416     SET_AKMP_PARAMS
1417
1418 Synopsis
1419     Enables or disables multi PMKID mode.
1420
1421 Command
1422     wmiconfig eth1 --setakmp --multipmkid=<on/off>
1423
1424 Command Parameters
1425     typedef struct {
1426       A_UINT32    akmpInfo;
1427     } WMI_SET_AKMP_PARAMS_CMD;
1428
1429 Command Values
1430     akmpInfo;
1431     bit[0] = 0
1432         MultiPMKID mode is disabled and PMKIDs that
1433         were set using the WMI_SET_PMKID_CMD are
1434         used in the [Re]AssocRequest frame.
1435      bit[0] = 1
1436         MultiPMKID mode is enabled and PMKIDs issued
1437         by the WMI_SET_PMKID_LIST_CMD are used in
1438         the next [Re]AssocRequest sent to the AP.
1439
1440 Reset Values
1441     MultiPMKID mode is disabled
1442
1443 Restrictions
1444     None
1445
1446 =====================================================================
1447
1448
1449 Name
1450     SET_APPIE
1451
1452 Synopsis
1453     Add an application-specified IE to a management frame. The maximum length is
1454     76 bytes. Including the length and the element ID, this translates to 78 bytes.
1455
1456 Command
1457     wmiconfig --setappie <frame> <IE>, where:
1458
1459     frame
1460         One of beacon, probe, respon, assoc
1461
1462     IE
1463         A hex string beginning with DD (if = 0, no
1464         IE is sent in the management frame)
1465
1466 Command Parameters
1467     mgmtFrmType;
1468         A WMI_MGMT_FRAME_TYPE
1469
1470     ieLen;
1471         Length of the IE to add to the GMT frame
1472
1473 Command Values
1474     None
1475
1476 Reset Value
1477     None defined
1478
1479 Restrictions
1480     Supported only for the probe request and association request management frame
1481 types. Also, only one IE can be added per management frame type.
1482
1483 =====================================================================
1484
1485
1486 Name
1487     SET_ASSOC_INFO
1488
1489 Synopsis
1490     The host uses this command to specify any information elements (IEs) it wishes the
1491     AR6000 device to add to all future association and reassociation requests. IEs must be
1492     correct and are used as is by the device. IEs specified through this command are
1493     cleared with a DISCONNECT.
1494
1495 Command
1496     wmiconfig eth1 --setAssocIe <IE>
1497
1498 Command Parameters
1499     UINT8    ieType    Used directly in 802.11 frames
1500     UINT8    bufferSize    Size of assocInfo (in bytes) ranging from
1501                         0\96240. If = 0, previously set IEs are cleared.
1502     UINT8    assocInfo[bufferSize]    Used directly in 802.11 frames
1503
1504 Command Values
1505     None
1506
1507 Reset Values
1508     IEs are cleared
1509
1510 Restrictions
1511     This command can only be issued in the DISCONNECTED state
1512
1513 =====================================================================
1514
1515
1516 Name
1517     SET_AUTHMODE
1518
1519 Synopsis
1520     Sets the 802.11 authentication mode of reconnection
1521
1522 Command
1523     wmiconfig eth1 --setauthmode <mode>
1524
1525 Command Parameters
1526     UINT8    mode
1527
1528 Command Values
1529     mode    = 0x00    Proceed with authentication during reconnect
1530             = 0x01    Do not proceed with authentication during reconnect
1531
1532 Reset Values
1533     Authentication
1534
1535 Restrictions
1536     None
1537
1538 =====================================================================
1539
1540
1541 Name
1542     SET_BEACON_INT
1543
1544 Synopsis
1545     Sets the beacon interval for an ad hoc network. Beacon interval selection may have an
1546     impact on power savings. To some degree, a longer interval reduces power
1547     consumption but also decreases throughput. A thorough understanding of IEEE
1548     802.11 ad hoc networks is required to use this command effectively.
1549
1550 Command
1551     wmiconfig eth1 --ibssconintv
1552
1553 Command Parameters
1554     UINT16    beaconInterval    Specifies the beacon interval in TU units (1024 ms)
1555
1556 Command Values
1557     None
1558
1559 Reset Values
1560     The default beacon interval is 100 TUs (102.4 ms)
1561
1562 Restrictions
1563     This command can only be issued before the AR6000 device starts an ad hoc network
1564
1565 See Also
1566     \93SET_IBSS_PM_CAPS\94
1567
1568 =====================================================================
1569
1570
1571 Name
1572     SET_BIT_RATE
1573
1574 Synopsis
1575     The host uses this command to set the AR6000 device to a specific fixed rate.
1576
1577 Command
1578     wmiconfig eth1 --setfixrates <rate_0> ... <rate_n>
1579
1580 Command Parameters
1581     INT8    rateIndex
1582     A WMI_BIT_RATE value
1583     {
1584         RATE_AUTO    = -1
1585         RATE_1Mb     = 0
1586         RATE_2Mb     = 1
1587         RATE_5_5M    = 2
1588         RATE_11Mb    = 3
1589         RATE_6Mb     = 4
1590         RATE_9Mb     = 5
1591         RATE_12Mb    = 6
1592         RATE_18Mb    = 7
1593         RATE_24Mb    = 8
1594         RATE_36Mb    = 9
1595         RATE_48Mb    = 10
1596         RATE_54Mb    = 11
1597       } WMI_BIT_RATE
1598
1599
1600 Command Values
1601     See command parameters
1602
1603 Reset Values
1604     The dynamic rate is determined by the AR6000 device
1605
1606 Restrictions
1607     This command is intended for use only during development/debug; it is not
1608 intended for use in production
1609
1610 See Also
1611     \93GET_BIT_RATE\94
1612
1613 =====================================================================
1614
1615
1616 Name
1617     SET_BMISS_TIME
1618
1619 Synopsis
1620     This command sets the beacon miss (BMISS) time, which the AR6000 hardware use
1621     to recognize missed beacons. When an excessive number (15) of consecutive beacons
1622     are missed, the AR6000 consider switching to a different BSS. The time can be
1623     specified in number of beacons or in TUs.
1624
1625 Command(s)
1626     wmiconfig eth1 --setbmissbeacons=<val>
1627     wmiconfig eth1 --setbmisstime=<val>
1628
1629 Command Parameters
1630     UINT16    bmissTime    Specifies the beacon miss time
1631                             [1000...5000] in TUs (1024 ms)
1632     UINT16    bmissbeacons  Specifies the number of beacons [5...50]
1633
1634 Command Values
1635     None
1636
1637 Reset Values
1638     bmissTime is 1500 TUs (1536 ms)
1639
1640 Restrictions
1641     None
1642
1643 =====================================================================
1644
1645
1646 Name
1647     SET_BSS_FILTER
1648
1649 Synopsis
1650     The host uses this to inform the AR6000 device of the types of networks about which
1651     it wants to receive information from the \93BSSINFO\94 event. As the device performs
1652     either foreground or background scans, it applies the filter and sends \93BSSINFO\94
1653     events only for the networks that pass the filter. If any of the  bssFilter or the ieMask
1654     filter matches, a BSS Info is sent to the host. The ieMask currently is used as a match
1655     for the IEs in the beacons, probe reponses and channel switch action management
1656     frame. See also \93Scan and Roam\94 on page C-1.
1657
1658     The BSS filter command has been enhanced to support IE based filtering. The IEs can
1659     be specified as a bitmask through this command using this enum.
1660
1661 Command
1662     wmiconfig eth1 \96filter = <filter> --ieMask 0x<mask>
1663
1664 Command Parameters
1665     UINT8    BssFilter
1666
1667  Command Values
1668     typedef struct {
1669         A_UINT8    bssFilter;    See WMI_BSS_FILTER
1670         A_UINT32    ieMask;
1671     } __ATTRIB_PACK WMI_BSS_FILTER_CMD;
1672
1673     The ieMask can take this combination of values:
1674
1675     enum {
1676         BSS_ELEMID_CHANSWITCH   = 0x01
1677         BSS_ELEMID_ATHEROS      = 0x02,
1678     }
1679
1680 Reply Value
1681     None
1682
1683 Reset Value
1684     BssFilter = NONE_BSS_FILTER (0)
1685
1686 Restrictions
1687     None
1688
1689 See Also
1690     \93CONNECT_CMD\94
1691
1692 =====================================================================
1693
1694
1695 Name
1696     SET_BT_PARAMS
1697
1698 Synopsis
1699     This command is used to set the status of a Bluetooth stream or set Bluetooth
1700     coexistence register parameters. The stream may be an SCO or an A2DP stream and
1701     its status can be started/stopped/suspended/resumed.
1702
1703 Command
1704     wmiconfig \96setBTparams <paramType> <params>
1705
1706 Command Parameters
1707     struct {
1708        union {
1709             BT_PARAMS_SCO    scoParams;
1710             BT_PARAMS_A2DP   a2dpParams;
1711             BT_PARAMS_MISC   miscParams;
1712             BT_COEX_REGS     regs;
1713         } info;
1714          A_UINT8 paramType;
1715         struct {
1716             A_UINT8 noSCOPkts;    Number of SCO packets between consecutive PS-POLLs
1717             A_UINT8 pspollTimeout;
1718             A_UINT8 stompbt;
1719         } BT_PARAMS_SCO;
1720         struct {
1721             A2DP BT stream parameters
1722             A_UINT32   period;
1723             A_UINT32   dutycycle;
1724             A_UINT8    stompbt;
1725         } BT_PARAMS_A2DP;
1726         struct {
1727             union {
1728                WLAN_PROTECT_POLICY_TYPE   protectParams;
1729                A_UINT16    wlanCtrlFlags;
1730             }info;
1731         A_UINT8 paramType;
1732         } BT_PARAMS_MISC;
1733         struct {
1734             BT coexistence registers values
1735             A_UINT32    mode;     Coexistence mode
1736             A_UINT32    scoWghts; WLAN and BT weights
1737             A_UINT32    a2dpWghts;
1738             A_UINT32    genWghts;
1739             A_UINT32    mode2;    Coexistence mode2
1740             A_UINT8    setVal;
1741         } BT_COEX_REGS;
1742
1743 Command Values
1744     None defined
1745
1746 Reset Value
1747     None
1748
1749 Restrictions
1750     None
1751
1752 =====================================================================
1753
1754
1755 Name
1756     SET_BT_STATUS
1757
1758 Synopsis
1759     Sets the status of a Bluetooth stream. The stream may be a SCO or an A2DP stream
1760     and its status can be started/stopped/suspended/resumed.
1761
1762 Command
1763     wmiconfig \96setBTstatus <streamType> <status>
1764
1765 Command Parameters
1766     {
1767         A_UINT8        streamType;    Stream type
1768         A_UINT8        status;    Stream status
1769     }WMI_SET_BT_STATUS_CMD;
1770
1771 Command Values
1772     {
1773         BT_STREAM_UNDEF    = 0
1774         BT_STREAM_SCO
1775         SCO stream
1776         BT_STREAM_A2DP
1777         A2DP stream
1778         BT_STREAM_MAX
1779     } BT_STREAM_TYPE;
1780
1781     {
1782         BT_STATUS_UNDEF    = 0
1783         BT_STATUS_START
1784         BT_STATUS_STOP
1785         BT_STATUS_RESUME
1786         BT_STATUS_SUSPEND
1787         BT_STATUS_MAX
1788     } BT_STREAM_STATUS;
1789
1790 Reset Value
1791     None defined
1792
1793 Restrictions
1794     None
1795
1796 =====================================================================
1797
1798
1799 Name
1800     SET_CHANNEL_PARAMETERS
1801
1802 Synopsis
1803     Configures various WLAN parameters related to channels, sets the wireless mode,
1804     and can restrict the AR6000 device to a subset of available channels. The list of
1805     available channels varies depending on the wireless mode and the regulatory
1806     domain. The device never operates on a channel outside of its regulatory domain. The
1807     device starts to scan the list of channels right after this command.
1808
1809 Command
1810     wmiconfig eth1 --wmode <mode> <list>
1811
1812 Command Parameters
1813     UINT8    phyMode    See Values below.
1814     UINT8    numberOfChannels
1815         Number of channels in the channel array that
1816         follows. If = 0, then the device uses all of the
1817         channels permitted by the regulatory domain
1818         and by the specified phyMode.
1819     UINT16    channel[numberOfChannels]
1820         Array listing the subset of channels (expressed
1821         as frequencies in MHz) the host wants the
1822         device to use. Any channel not permitted by
1823         the specified phyMode or by the specified
1824         regulatory domain is ignored by the device.
1825
1826 Command Values
1827     phyMode = {
1828         Wireless mode
1829         11a    = 0x01
1830         11g    = 0x02
1831         11ag   = 0x03
1832         11b    = 0x04
1833         11g only    = 0x05
1834         }
1835
1836 Reset Values
1837     phyMode
1838     11ag
1839     802.11a/g modules
1840         11g
1841     802.11g module
1842     channels
1843         Defaults to all channels permitted by the
1844         current regulatory domain.
1845
1846 Restrictions
1847     This command, if issued, should be issued soon after reset and prior to the first
1848     connection. This command should only be issued in the DISCONNECTED state.
1849
1850 =====================================================================
1851
1852
1853 Name
1854     SET_DISC_TIMEOUT
1855
1856 Synopsis
1857     The host uses this command to configure the amount of time that the AR6000 should
1858     spend when it attempts to reestablish a connection after losing link with its current
1859     BSS. If this time limit is exceeded, the AR6000 send a \93DISCONNECT\94 event. After
1860     sending the \93DISCONNECT\94 event the AR6000 continues to attempt to reestablish a
1861     connection, but they do so at the interval corresponding to a foreground scan as
1862     established by the \93SET_SCAN_PARAMS\94 command.
1863
1864     A timeout value of 0 indicates that the AR6000 will disable all autonomous roaming,
1865     so that the AR6000 will not perform any scans after sending a \93DISCONNECT\94
1866     event to the host. The state is maintained until a shutdown or host sets different
1867     timeout value from 0.
1868
1869 Command
1870     wmiconfig eth1 --disc=<timeout in seconds>
1871
1872 Command Parameters
1873     UINT8    disconnectTimeout
1874         Specifies the time limit (in seconds) after
1875         which a failure to reestablish a connection
1876         results in a \93DISCONNECT\94 event
1877
1878 Command Values
1879     None
1880
1881 Reset Values
1882     disconnectTimeout is 10 seconds
1883
1884 Restrictions
1885     This command can only be issued while in a DISCONNECTED state
1886
1887 =====================================================================
1888
1889
1890 Name
1891     SET_FIXRATES
1892
1893 Synopsis
1894     By default, the AR6000 device uses all PHY rates based on mode of operation. If the
1895     host application requires the device to use subset of supported rates, it can set those
1896     rates with this command. In 802.11g mode, the AR6000 device takes the entire
1897     802.11g basic rate set and the rates specified with this command and uses it as the
1898     supported rate set.
1899
1900     This rate set is advertised in the probe request and the assoc/re-assoc request as
1901     supported rates. Upon successful association, the device modifies the rate set pool
1902     using the: intersection of AP-supported rates with the union of the 802.11g basic rate
1903     set and rates set using this command. The device picks transmission rates from this
1904     pool based on a rate control algorithm.
1905
1906 Command
1907     TBD
1908
1909 Command Parameters
1910     A_UINT16    fixRateMask;
1911         The individual bit is an index for rate table,
1912         and setting the that index to 1 would set that
1913         corresponding rate. E.g., fixRateMask = 9
1914         (1001) sets 1 Mbps and 11 Mbps.
1915
1916 Command Values
1917     None
1918
1919 Reset Value
1920     None defined
1921
1922 Restrictions
1923     None
1924
1925 See Also
1926     \93GET_FIXRATES\94
1927
1928 =====================================================================
1929
1930
1931 Name
1932     SET_WHAL_PARAM
1933
1934 Synopsis
1935     An internal AR6000 command that is used to set certain hardware parameters. The
1936     description of this command is in $WORKAREA/include/halapi.h.
1937
1938 Command
1939     TBD
1940
1941 Command Parameters
1942     ATH_HAL_SETCABTO_CMDID
1943         Sets the timeout waiting for the multicast
1944         traffic after a DTIM beacon (in TUs).
1945
1946 Command Values
1947     None
1948
1949 Reset Value
1950     Default = 10 TUs
1951
1952 Restrictions
1953     This command should be executed before issuing a connect command.
1954
1955 =====================================================================
1956
1957
1958 Name
1959     SET_HOST_SLEEP_MODE
1960
1961 Synopsis
1962     The host uses this command to set the host mode to asleep or awake. All packets are
1963     delivered to the host when the host mode is awake. When host mode is asleep, only if
1964     WoW is enabled and the incoming packet matches one of the specified WoW
1965     patterns, will the packet be delivered to the host. The host will also be woken up by
1966     the target for pattern-matching packets and important events.
1967
1968 Command
1969     wmiconfig \96sethostmode=<asleep/awake>
1970
1971 Command Parameters
1972     A_BOOL    awake    Set the host mode to awake
1973     A_BOOL    asleep   Set the host mode to asleep
1974
1975 Command Values
1976     1 = awake, 0 = asleep
1977
1978 Reset Value
1979     None defined (default host mode is awake)
1980
1981 Restrictions
1982     None
1983
1984
1985 =====================================================================
1986
1987 Name
1988     SET_IBSS_PM_CAPS
1989
1990 Synopsis
1991     Used to support a non-standard power management scheme for an ad hoc wireless
1992     network consisting of up to eight stations (STAs) that support this form of power
1993     saving (e.g., Atheros-based STAs). A thorough understanding of IEEE 802.11 ad hoc
1994     networks is required to use this command effectively.
1995
1996 Command
1997     wmiconfig eth1 --ibsspmcaps --ps=<enable/disable>
1998         --aw=<ATIM Windows in ms>
1999         --ttl=<Time to live in number of beacon periods>
2000         --to=<timeout in ms>
2001
2002 Command Parameters
2003     UINT8    power_saving
2004         = 0
2005         The non-standard power saving scheme is
2006         disabled and maximum throughput (with no
2007         power saving) is obtained.
2008
2009         = 1
2010         Ad hoc power saving scheme is enabled (but
2011         throughput may be decreased)
2012
2013     UINT16    atim_windows
2014         Specifies the length (in ms) of the ad hoc traffic
2015         indication message (ATIM) windows used in an ad
2016         hoc network. All Atheros-based STAs that join the
2017         network use this duration ATIM window.
2018
2019     The duration is communicated between wireless
2020     STAs through an IE in beacons and probe responses.
2021
2022     The host sets atim_windows to control trade-offs
2023     between power use and throughput. The value
2024     chosen should be based on the beacon interval (see
2025     the \93SET_BEACON_INT\94 command) on the
2026     expected number of STAs in the IBSS, and on the
2027     amount of traffic and traffic patterns between STAs.
2028
2029     UINT16    timeout_value
2030         Specifies the timeout (in ms). The value is the same
2031         for all ad hoc connections, but tracks separately for
2032         each.
2033
2034         Applicable only for a beacon period and used to
2035         derive actual timeout values on the Tx and Rx sides.
2036         On the Tx side, the value defines a window during
2037         which the STA accepts the frame(s) from the host for a
2038         particular connection. Until closed, the window
2039         restarts with every frame received from the host. On
2040         the Rx side, indicates the time until which the STA
2041         continues accepting frames from a particular
2042         connection. The value resets with every frame
2043         received. The value can be used to determine the
2044         trade off between throughput and power.
2045         Default = 10 ms
2046
2047     UINT8    ttl
2048         Specifies the value in number of beacon periods. The
2049         value is used to set a limit on the time until which a
2050         frame is kept alive in the AR6001 before being
2051         discarded. Default = 5
2052
2053 Command Values
2054     None
2055
2056 Reset Values
2057     By default, power_saving is enabled with atim_window = 20 ms
2058
2059 Restrictions
2060     Can only be issued before the AR6000 starts an ad hoc network
2061
2062 See Also
2063     \93SET_BEACON_INT\94
2064
2065 =====================================================================
2066
2067
2068
2069 Name
2070     SET_LISTEN_INT
2071
2072 Synopsis
2073     The host uses this command to request a listen interval, which determines how often
2074     the AR6000 device should wake up and listen for traffic. The listen interval can be set
2075     by the TUs or by the number of beacons. The device may not be able to comply with
2076     the request (e.g., if the beacon interval is greater than the requested listen interval, the
2077     device sets the listen interval to the beacon interval). The actual listen interval used
2078     by the device is available in the \93CONNECT\94 event.
2079
2080 Command
2081     wmiconfig eth1 --listen=<#of TUs, can range from 15 to 3000>
2082
2083     --listenbeacons=<#of beacons, can range from 1 to 50>
2084
2085 Command Parameters
2086     UINT16    listenInterval
2087         Specifies the listen interval in Kms
2088         (1024 ms), ranging from 100 to 1000
2089
2090     UINT16    listenbeacons
2091         Specifies the listen interval in beacons,
2092         ranging from 1 to 50
2093
2094 Command Values
2095     None
2096
2097 Reset Values
2098     The device sets the listen interval equal to the beacon interval of the AP it associates
2099     to.
2100
2101 Restrictions
2102     None
2103
2104 =====================================================================
2105
2106
2107 Name
2108     SET_LPREAMBLE
2109
2110 Synopsis
2111     Overrides the short preamble capability of the AR6000 device
2112
2113 Command
2114     TBD
2115
2116 Command Parameters
2117     WMI_LPREAMBLE_DISABLED
2118         The device is short-preamble capable
2119
2120     WMI_LPREAMBLE_ENABLED
2121         The device supports only the long-
2122     preamble mode
2123
2124 Command Values
2125     None
2126
2127 Reset Value
2128     None defined
2129
2130 Restrictions
2131     None
2132
2133
2134 =====================================================================
2135
2136 Name
2137     SET_MAX_SP_LEN
2138
2139 Synopsis
2140     Set the maximum service period; indicates the number of packets the AR6001 can
2141     receive from the AP when triggered
2142
2143 Command
2144     wmiconfig eth1 --setMaxSPLength <maxSPLen>
2145
2146 Command Parameters
2147     UINT8    maxSPLen
2148         An APSD_SP_LEN_TYPE value
2149
2150 Command Values
2151     {
2152         DELIVER_ALL_PKT  = 0x0
2153         DELIVER_2_PKT    = 0x1
2154         DELIVER_4_PKT    = 0x2
2155         DELIVER_6_PKT    = 0x3
2156     }APSD_SP_LEN_TYPE
2157
2158
2159 Reset Values
2160     maxSPLen is DELIVER_ALL_PKT
2161
2162 Restrictions
2163     None
2164
2165 =====================================================================
2166
2167
2168 Name
2169     SET_OPT_MODE
2170
2171 Synopsis
2172     Special feature, sets the special mode on/off
2173
2174 Command
2175     wmiconfig eth1 --mode <mode>
2176     Set the optional mode, where mode is special or off
2177
2178 Command Parameters
2179     enum {
2180         SPECIAL_OFF
2181         SPECIAL_ON
2182     } OPT_MODE_TYPE;
2183
2184 Command Values
2185
2186 Reset Value
2187     Mode = Off
2188
2189 Restrictions
2190     None
2191
2192 =====================================================================
2193
2194
2195 Name
2196     SET_PMKID
2197
2198 Synopsis
2199     The host uses this command to enable or disable a pairwise master key ID (PMKID)
2200     in the AR6000 PMKID cache. The AR6000 clears its PMKID cache on receipt of a
2201     DISCONNECT command from the host. Individual entries in the cache might be
2202     deleted as the AR6000 detect new APs and decides to remove old ones.
2203
2204 Command
2205     wmiconfig eth1 --setbsspmkid --bssid=<aabbccddeeff>
2206     --bsspmkid=<pmkid>
2207
2208 Command Parameters
2209     UINT8    bssid[6]
2210         The MAC address of the AP that the
2211         PMKID corresponds to (6 bytes in hex
2212         format)
2213
2214     UINT8    enable
2215         Either PMKID_DISABLE (0) to disable
2216         the PMKID or PMKID_ENABLE (1) to
2217         enable it (16 bytes in hex format)
2218
2219     UINT8    pmkid[16]
2220         Meaningful only if enable is
2221         PMKID_ENABLE, when it is the PMKID
2222         that the AR6000 should use on the next
2223         reassociation with the specified AP
2224
2225 Command Values
2226     enable
2227     = 0 (disable), 1 (enable)
2228     PKMID enabled/disabled
2229
2230 Reset Values
2231     None defined
2232
2233 Restrictions
2234     Only supported in infrastructure networks
2235
2236 =====================================================================
2237
2238
2239 Name
2240     SET_PMKID_LIST_CMD
2241
2242 Synopsis
2243     Configures the list of PMKIDs on the firmware.
2244
2245 Command
2246     wmiconfig --setpmkidlist --numpmkid=<n> --pmkid=<pmkid_1>
2247     ... --pmkid=<pmkid_n>
2248
2249     Where n is the number of pmkids (maximum = 8) and pmkid_i is the ith pmkid (16
2250     bytes in hex format)
2251
2252 Command Parameters
2253     {
2254         A_UINT8 pmkid[WMI_PMKID_LEN];
2255     } __ATTRIB_PACK WMI_PMKID;
2256
2257     {
2258         A_UINT32 numPMKID;
2259         WMI_PMKID pmkidList[WMI_MAX_PMKID_CACHE];
2260     } __ATTRIB_PACK WMI_SET_PMKID_LIST_CMD;
2261
2262 Command Values
2263     None
2264
2265 Reset Values
2266     None
2267
2268 Restrictions
2269     Supported only in infrastructure modes
2270
2271 =====================================================================
2272
2273
2274 Name
2275     SET_POWER_MODE
2276
2277 Synopsis
2278     The host uses this command to provide the AR6000 device with guidelines on the
2279     desired trade-off between power utilization and performance.
2280
2281         In normal power mode, the device enters a sleep state if they have nothing to do,
2282         which conserves power but may cost performance as it can take up to 2 ms to
2283         resume operation after leaving sleep state.
2284
2285         In maximum performance mode, the device never enters sleep state, thus no time
2286         is spent waking up, resulting in higher power consumption and better
2287         performance.
2288
2289 Command
2290     TBD
2291
2292 Command Parameters
2293     UINT8    powerMode
2294         WMI_POWER_MODE value
2295     {
2296         REC_POWER   = 1
2297             (Recommended setting) Tries to conserve
2298             power without sacrificing performance
2299         MAX_PERF_POWER    = 2
2300             Setting that maximizes performance at
2301             the expense of power
2302
2303             All other values are reserved
2304     } WMI_POWER_MODE
2305
2306 Command Values
2307     See command parameters
2308
2309 Reset Values
2310     powerMode is REC_POWER
2311
2312 Restrictions
2313     This command should only be issued in the DISCONNECTED state for the
2314     infrastructure network.
2315
2316             For a PM-disabled ad hoc network, the power mode should remain in
2317             MAX_PERF_POWER.
2318
2319             For a PM-enabled ad hoc network, the device can have REC_POWER or
2320             MAX_PERF_POWER set, but either way it must follow the power save ad hoc
2321             protocol. The host can change power modes in the CONNECTED state.
2322
2323     Host changes to the PS setting when the STA is off the home channel take no effect
2324     and cause a TARGET_PM_FAIL event.
2325
2326 =====================================================================
2327
2328
2329 Name
2330     SET_POWER_PARAMS
2331
2332 Synopsis
2333     The host uses this command to configure power parameters
2334
2335 Command
2336     wmiconfig eth1 --pmparams --it=<ms> --np=<number of PS POLL>
2337     --dp=<DTIM policy: ignore/normal/stick>
2338
2339 Command Parameters
2340     UINT16    idle_period
2341         Length of time (in ms) the AR6000 device
2342         remains awake after frame Rx/Tx before going
2343         to SLEEP state
2344
2345     UINT16    pspoll_number
2346             The number of PowerSavePoll (PS-poll)
2347             messages the device should send before
2348             notifying the AP it is awake
2349
2350     UINT16    dtim_policy
2351             A WMI_POWER_PARAMS_CMD value
2352
2353     {
2354         IGNORE_DTIM    =1
2355             The device does not listen to any content after
2356             beacon (CAB) traffic
2357         NORMAL_DTIM    = 2
2358             DTIM period follows the listen interval (e.g., if
2359             the listen interval is 4 and the DTIM period is 2,
2360             the device wakes up every fourth beacon)
2361         STICK_DTIM    = 3
2362             Device attempt to receive all CAB traffic (e.g., if
2363             the DTIM period is 2 and the listen interval is 4,
2364             the device wakes up every second beacon)
2365     } WMI_POWER_PARAMS_CMD
2366
2367 Command Parameters
2368     See command parameters
2369
2370 Reset Values
2371     idle_period
2372         200 ms
2373
2374     pspoll_number
2375     = 1
2376
2377     dtim_policy
2378     = NORMAL_DTIM
2379
2380 Restrictions
2381     None
2382
2383 =====================================================================
2384
2385
2386 Name
2387     SET_POWERSAVE_PARAMS
2388
2389 Synopsis
2390     Set the two AR6000 power save timers (PS-POLL timer and APSD trigger timer) and
2391     the two ASPD TIM policies
2392
2393 Command
2394     wmiconfig eth1--psparams --psPollTimer=<psPollTimeout in ms>
2395     --triggerTimer=<triggerTimeout in ms> --apsdTimPolicy=<ignore/
2396     adhere> --simulatedAPSDTimPolicy=<ignore/adhere>
2397
2398 Command Parameters
2399     typedef struct {
2400         A_UINT16    psPollTimeout;
2401             Timeout (in ms) after sending PS-POLL; the
2402             AR6000 device sleeps if it does not receive a
2403             data packet from the AP
2404
2405         A_UINT16    triggerTimeout;
2406             Timeout (in ms) after sending a trigger; the
2407             device sleeps if it does not receive any data
2408             or null frame from the AP
2409
2410         APSD_TIM_POLICY    apsdTimPolicy;
2411             TIM behavior with queue APSD enabled
2412
2413         APSD_TIM_POLICY    simulatedAPSD
2414
2415         TimPolicy;
2416             TIM behavior with simulated APSD
2417             enabled
2418
2419     typedef enum {
2420         IGNORE_TIM_ALL_QUEUES_APSD = 0,
2421         PROCESS_TIM_ALL_QUEUES_APSD = 1,
2422         IGNORE_TIM_SIMULATED_APSD = 2,
2423         POWERSAVE_TIMERS_POLICY = 3,
2424     } APSD_TIM_POLICY;
2425
2426 Command Values
2427     None
2428
2429 Reset Values
2430     psPollTimeout is 50 ms; triggerTimeout is 10 ms;
2431     apsdTimPolicy = IGNORE_TIM_ALL_QUEUES_APSD;
2432     simulatedAPSDTimPolicy = POWERSAVE_TIMERS_POLICY
2433
2434 Restrictions
2435     When this command is used, all parameters must be set; this command does not
2436     allow setting only one parameter.
2437
2438 =====================================================================
2439
2440
2441 Name
2442     SET_PROBED_SSID
2443
2444 Synopsis
2445     The host uses this command to provide a list of up to MAX_PROBED_SSID_INDEX
2446     (six) SSIDs that the AR6000 device should actively look for. It lists the active SSID
2447     table. By default, the device actively looks for only the SSID specified in the
2448     \93CONNECT_CMD\94 command, and only when the regulatory domain allows active
2449     probing. With this command, specified SSIDs are probed for, even if they are hidden.
2450
2451 Command
2452     wmiconfig eth1 --ssid=<ssid> [--num=<index>]
2453
2454 Command Parameters
2455     {
2456         A_UINT8    numSsids
2457             A number from 0 to
2458             MAX_PROBED_SSID_INDEX indicating
2459             the active SSID table entry index for this
2460             command (if the specified entry index
2461             already has an SSID, the SSID specified in
2462             this command replaces it)
2463
2464         WMI_PROBED_SSID_INFO    probedSSID[1]
2465     } WMI_PROBED_SSID_CMD
2466
2467     {
2468         A_UINT8    flag
2469             WMI_SSID_FLAG indicates the current
2470             entry in the active SSID table
2471         A_UINT8    ssidLength
2472             Length of the specified SSID in bytes.
2473             If = 0, the entry corresponding to the
2474             index is erased
2475         A_UINT8    ssid[32]
2476             SSID string actively probed for when
2477             permitted by the regulatory domain
2478     } WMI_PROBED_SSID_INFO
2479
2480 Command Values
2481     WMI_SSID_FLAG
2482     {
2483          DISABLE_SSID_FLAG    = 0
2484             Disables entry
2485         SPECIFIC_SSID_FLAG    = 1
2486             Probes specified SSID
2487         ANY_SSID_FLAG    = 2
2488             Probes for any SSID
2489     } WMI_SSID_FLAG
2490
2491 Reset Value
2492     The entries are unused.
2493
2494 Restrictions
2495     None
2496
2497 =====================================================================
2498
2499
2500 Name
2501     SET_REASSOC_MODE
2502
2503 Synopsis
2504     Specify whether the disassociated frame should be sent or not upon reassociation.
2505
2506 Command
2507     wmiconfig eth1 --setreassocmode <mode>
2508
2509 Command Parameters
2510     UINT8    mode
2511
2512 Command Values
2513     mode
2514         = 0x00
2515         Send disassoc to a previously connected AP
2516         upon reassociation
2517         = 0x01
2518         Do not send disassoc to previously connected
2519         AP upon reassociation
2520
2521 Reset Values
2522     None defined
2523
2524 Restrictions
2525     None
2526
2527
2528 =====================================================================
2529
2530 Name
2531     SET_RETRY_LIMITS
2532
2533 Synopsis
2534     Allows the host to influence the number of times that the AR6000 device should
2535     attempt to send a frame before they give up.
2536
2537 Command
2538     wmiconfig --setretrylimits <frameType> <trafficClass> <maxRetries>
2539     <enableNotify>
2540
2541 Command Parameters
2542     {
2543         UINT8    frameType
2544             A WMI_FRAMETYPE specifying
2545             which type of frame is of interest.
2546         UINT8    trafficClass
2547             Specifies a traffic class (see
2548             \93CREATE_PSTREAM\94). This
2549             parameter is only significant when
2550             frameType = DATA_FRAMETYPE.
2551         UINT8    maxRetries
2552             Maximum number of times the
2553             device attempts to retry a frame Tx,
2554             ranging from WMI_MIN_RETRIES
2555             (2) to WMI_MAX_RETRIES (15). If
2556             the special value 0 is used,
2557             maxRetries is set to 15.
2558         A_UINT8    enableNotify
2559             Notify when enabled
2560     } WMI_RETRY_LIMIT_INFO
2561
2562     {
2563         A_UINT8    numEntries
2564         WMI_RETRY_LIMIT_INFO  retryLimitInfo[1]
2565     } WMI_SET_RETRY_LIMITS_CMD
2566
2567 Command Values
2568     {
2569         MGMT_FRAMETYPE    = 0    Management frame
2570         CONTROL_FRAMETYPE = 1    Control frame
2571         DATA_FRAMETYPE    = 2    Data frame
2572     } WMI_FRAMETYPE
2573
2574 Reset Values
2575     Retries are set to 15
2576
2577 Restrictions
2578     None
2579
2580 =====================================================================
2581
2582
2583 Name
2584     SET_ROAM_CTRL
2585
2586 Synopsis
2587     Affects how the AR6000 device selects a BSS. The host uses this command to set and
2588     enable low RSSI scan parameters. The time period of low RSSI background scan is
2589     mentioned in scan period. Low RSSI scan is triggered when the current RSSI
2590     threshold (75% of current RSSI) is equal to or less than scan threshold.
2591
2592     Low RSSI roam is triggered when the current RSSI threshold falls below the roam
2593     threshold and roams to a better AP by the end of the scan cycle. During Low RSSI
2594     roam, if the STA finds a new AP with an RSSI greater than roam RSSI to floor, during
2595     scan, it roams immediately to it instead of waiting for the end of the scan cycle. See
2596     also \93Scan and Roam\94 on page C-1.
2597
2598 Command
2599     wmiconfig --roam <roamctrl> <info>, where info is <scan period>
2600     <scan threshold> <roam threshold> <roam rssi floor>
2601
2602 Command Parameters
2603     A_UINT8    roamCtrlType;
2604
2605 Command Values
2606     WMI_FORCE_ROAM     = 1
2607     Roam to the specified BSSID
2608
2609     WMI_SET_ROAM_MODE  = 2
2610     Default, progd bias, no roam
2611
2612     WMI_SET_HOST_BIAS  = 3
2613     Set the host bias
2614
2615     WMI_SET_LOWRSSI_SCAN_PARAMS  = 4
2616     Info parameters
2617
2618     A_UINT8    bssid[ATH_MAC_LEN];
2619     WMI_FORCE_ROAM
2620
2621     A_UINT8    roamMode;
2622     WMI_SET_ROAM_MODE
2623
2624     A_UINT8    bssBiasInfo;
2625     WMI_SET_HOST_BIAS
2626
2627     A_UINT16    lowrssi_scan_period;
2628     WMI_SET_LOWRSSI_SCAN_PARAMS
2629
2630     A_INT16
2631     lowrssi_scan_threshold;
2632     WMI_SET_LOWRSSI_SCAN_PARAMS
2633
2634     A_INT16    lowrssi_roam_threshold;
2635     WMI_SET_LOWRSSI_SCAN_PARAMS
2636
2637     A_UINT8    roam_rssi_floor;
2638     WMI_SET_LOWRSSI_SCAN_PARAMS
2639
2640 Reset Value
2641     None defined (default lowrssi scan is disabled. Enabled only when scan period is set.)
2642
2643 Restrictions
2644     None
2645
2646 =====================================================================
2647
2648
2649 Name
2650     SET_RTS
2651
2652 Synopsis
2653     Decides when RTS should be sent.
2654
2655 Command
2656     wmiconfig eth1 --setRTS <pkt length threshold>
2657
2658 Command Parameters
2659     A_UINT16
2660     threshold;
2661     Command parameter threshold in bytes. An RTS is
2662     sent if the data length is more than this threshold.
2663     The default is to NOT send RTS.
2664
2665 Command Values
2666     None
2667
2668 Reset Value
2669     Not to send RTS.
2670
2671 Restrictions
2672     None
2673
2674
2675 =====================================================================
2676
2677 Name
2678     SET_SCAN_PARAMS
2679
2680 Synopsis
2681     The host uses this command to set the AR6000 scan parameters, including the duty
2682     cycle for both foreground and background scanning. Foreground scanning takes
2683     place when the AR6000 device is not connected, and discovers all available wireless
2684     networks to find the best BSS to join. Background scanning takes place when the
2685     device is already connected to a network and scans for potential roaming candidates
2686     and maintains them in order of best to worst. A second priority of background
2687     scanning is to find new wireless networks.
2688
2689     The device initiates a scan when necessary. For example, a foreground scan is always
2690     started on receipt of a \93CONNECT_CMD\94 command or when the device cannot find
2691     a BSS to connect to. Foreground scanning is disabled by default until receipt of a
2692     CONNECT command. Background scanning is enabled by default and occurs every
2693     60 seconds after the device is connected.
2694
2695     The device implements a binary backoff interval for foreground scanning when it
2696     enters the DISCONNECTED state after losing connectivity with an AP or when a
2697     CONNECT command is received. The first interval is ForegroundScanStartPeriod,
2698     which doubles after each scan until the interval reaches ForegroundScanEndPeriod.
2699     If the host terminates a connection with DISCONNECT, the foreground scan period
2700     is ForegroundScanEndPeriod. All scan intervals are measured from the time a full
2701     scan ends to the time the next full scan starts. The host starts a scan by issuing a
2702     \93START_SCAN\94 command. See also \93Scan and Roam\94 on page C-1.
2703
2704 Command
2705     wmiconfig eth1 --scan --fgstart=<sec> --fgend=<sec> --bg=<sec> --
2706     act=<msec> --pas=<msec> --sr=<short scan ratio> --scanctrlflags
2707     <connScan> <scanConnected> <activeScan> <reportBSSINFO>
2708
2709 Command Parameters
2710     UINT16    fgStartPeriod
2711         First interval used by the device when it
2712         disconnects from an AP or receives a
2713         CONNECT command, specified in seconds (0\96
2714         65535). If = 0, the device uses the reset value.
2715         If = 65535, the device disables foreground
2716         scanning.
2717
2718     UINT16    fgEndPeriod
2719         The maximum interval the device waits between
2720         foreground scans specified in seconds (from
2721         ForegroundScanStartPeriod to 65535). If = 0, the
2722         device uses the reset value.
2723
2724     UINT16    bgScanPeriod
2725         The period of background scan specified in
2726         seconds (0\9665535). By default, it is set to the reset
2727         value of 60 seconds. If 0 or 65535 is specified, the
2728         device disables background scanning.
2729
2730     UINT16    maxactChDwellTime
2731         The period of time the device stays on a
2732         particular channel while active scanning. It is
2733         specified in ms (10\9665535). If the special value of
2734         0 is specified, the device uses the reset value.
2735
2736     UINT16    PasChDwellTime
2737         The period of time the device remains on a
2738         particular channel while passive scanning. It is
2739         specified in ms (10\9665535). If the special value of
2740         0 is specified, the device uses the reset value.
2741
2742     UINT8    shortScanRatio
2743         Number of short scans to perform for each
2744         long scan.
2745
2746     UINT8    scanCtrlFlasgs
2747
2748     UINT16    minactChDwellTime
2749         Specified in ms
2750
2751     UINT32    maxDFSchActTime
2752         The maximum time a DFS channel can stay
2753         active before being marked passive, specified in
2754         ms.
2755
2756 Command Values
2757     None
2758
2759 Reset Values
2760     ForegroundScanStart
2761 Period
2762         1 sec
2763
2764     ForegroundScanEndPeriod
2765         60 sec
2766
2767     BackgroundScanPeriod
2768         60 sec
2769
2770     ActiveChannelDwellTime
2771         105 ms
2772
2773 =====================================================================
2774
2775
2776 Name
2777     SET_TKIP_COUNTERMEASURES
2778
2779 Synopsis
2780     The host issues this command to tell the target whether to enable or disable TKIP
2781     countermeasures.
2782
2783 Command
2784     TBD
2785
2786 Command Parameters
2787     UINT8    WMI_TKIP_CM_ENABLE
2788         Enables the countermeasures
2789
2790
2791     UINT8    TKIP_CM_DISABLE
2792         Disables the countermeasures
2793
2794 Command Values
2795     None
2796
2797 Reset Values
2798     By default, TKIP MIC reporting is disabled
2799
2800 Restrictions
2801     None
2802
2803 =====================================================================
2804
2805
2806 Name
2807     SET_TX_PWR
2808
2809 Synopsis
2810     The host uses this command to specify the Tx power level of the AR6000. Cannot be
2811     used to exceed the power limit permitted by the regulatory domain. The maximum
2812     output power is limited in the chip to 31.5 dBm; the range is 0 \96 31.5 dbm.
2813
2814 Command
2815     wmiconfig --power <dbM>
2816
2817 Command Parameters
2818     UINT8    dbM
2819         The desired Tx power specified in dbM.
2820         If = 0, the device chooses the maximum
2821         permitted by the regulatory domain.
2822
2823 Command Values
2824     None
2825
2826 Reset Values
2827     The maximum permitted by the regulatory domain
2828
2829 Restrictions
2830     None
2831
2832 See Also
2833     \93GET_TX_PWR\94
2834
2835
2836 =====================================================================
2837
2838 Name
2839     SET_VOICE_PKT_SIZE
2840
2841 Synopsis
2842     If an AP does not support WMM, it has no way to differentiate voice from data.
2843     Because the voice packet is typically small, packet in size less than voicePktSize are
2844     assumed to be voice, otherwise it is treated as data.
2845
2846 Command
2847     wmiconfig eth1 --setVoicePktSize <size-in-bytes>
2848
2849 Command Parameters
2850     UINT16    voicePktSize
2851         Packet size in octets
2852
2853 Command Values
2854     None
2855
2856 Reset Values
2857     voicePktSize default is 400 bytes
2858
2859 Restrictions
2860     No effect if WMM is unavailable
2861
2862
2863 =====================================================================
2864
2865 Name
2866     SET_WMM
2867
2868 Synopsis
2869     Overrides the AR6000 device WMM capability
2870
2871 Command
2872     wmiconfig eth1 --setwmm <enable>
2873
2874 Command Parameters
2875     WMI_WMM_ENABLED
2876         Enables WMM
2877
2878     WMI_WMM_DISABLED
2879         Disables WMM support
2880
2881 Command Values
2882     0 = disabled
2883     1 = enabled
2884
2885 Reset Value
2886     WMM Disabled
2887
2888 Restrictions
2889     None
2890
2891
2892 =====================================================================
2893
2894 Name
2895     SET_WMM_TXOP
2896
2897 Synopsis
2898     Configures TxOP Bursting when sending traffic to a WMM capable AP
2899
2900 Command
2901     wmiconfig eth1 --txopbursting <burstEnable>
2902
2903     <burstEnable>
2904         = 0
2905     Disallow TxOp bursting
2906
2907         = 1
2908     Allow TxOp bursting
2909
2910 Command Parameters
2911     txopEnable
2912         = WMI_TXOP_DISABLED
2913         Disabled
2914
2915         = WMI_TXOP_ENABLED
2916         Enabled
2917
2918 Command Values
2919     txopEnable
2920         = 0    Disabled
2921
2922         = 1    Enabled
2923
2924 Reset Value
2925     Bursting is off by default
2926
2927 Restrictions
2928     None
2929
2930 =====================================================================
2931
2932
2933 Name
2934     SET_WOW_MODE
2935
2936 Synopsis
2937     The host uses this command to enable or disable the WoW mode. When WoW mode
2938     is enabled and the host is asleep, pattern matching takes place at the target level.
2939     Only packets that match any of the pre-specified WoW filter patterns, will be passed
2940     up to the host. The host will also be woken up by the target. Packets which do not
2941     match any of the WoW patterns are discarded.
2942
2943 Command
2944     wmiconfig \96setwowmode <enable/disable>
2945
2946 Command Parameters
2947     A_BOOL    enable_wow
2948         Enable or disable WoW:
2949
2950 Command Values
2951         = 0
2952     Disable WoW
2953
2954         = 1
2955     Enable WoW
2956
2957 Reset Value
2958     None defined (default WoW mode is disabled).
2959
2960 Restrictions
2961     None
2962
2963 See Also
2964     \93GET_WOW_LIST\94
2965
2966
2967 =====================================================================
2968
2969 Name
2970     SET_WSC_STATUS
2971
2972 Synopsis
2973     The supplicant uses this command to inform the target about the status of the WSC
2974     registration protocol. During the WSC registration protocol, a flag is set so the target
2975     bypasses some of the checks in the CSERV module. At the end of the registration, this
2976     flag is reset.
2977
2978 Command
2979     N/A
2980
2981 Command Parameters
2982     A_BOOL status
2983         = 1    WSC registration in progress
2984         = 0    WSC protocol not running
2985
2986 Reply Parameters
2987     None
2988
2989 Reset Value
2990     None defined (default = 0)
2991
2992 Restrictions
2993     None
2994
2995
2996 =====================================================================
2997
2998 Name
2999     SNR_THRESHOLD_PARAMS
3000
3001 Synopsis
3002     Configures how the AR6000 device monitors and reports SNR of the connected BSS,
3003     used as a link quality metric.
3004
3005 Command
3006     --snrThreshold <weight> <upper_threshold_1> ...
3007     <upper_threshold_4> <lower_threshold_1> ... <lower_threshold_4>
3008     <pollTimer>
3009
3010 Command Parameters
3011     <weight>
3012         Share with rssiThreshold. Range in [1, 16], used
3013         in the formula to calculate average RSSI
3014
3015     <upper_threshold_x>
3016         Above thresholds expressed in db, in ascending
3017         order
3018
3019     <lower_threshold_x>
3020         Below thresholds expressed in db, in ascending
3021         order
3022
3023     <pollTimer>
3024         The signal strength sampling frequency in
3025         seconds. If polltime = 0, signal strength
3026         sampling is disabled
3027
3028 Command Values
3029     None
3030
3031 Reset Value
3032     None defined
3033
3034 Restrictions
3035     None
3036
3037 =====================================================================
3038
3039
3040 Name
3041     START_SCAN
3042
3043 Synopsis
3044     The host uses this command to start a long or short channel scan. All future scans are
3045     relative to the time the AR6000 device processes this command. The device performs
3046     a channel scan on receipt of this command, even if a scan was already in progress.
3047     The host uses this command when it wishes to refresh its cached database of wireless
3048     networks. The isLegacy field will be removed (0 for now) because it is achieved by
3049     setting CONNECT_PROFILE_MATCH_DONE in the CONNECT command. See also
3050     \93Scan and Roam\94
3051
3052 Command
3053     wmiconfig eth1 --startscan <scan type> <forcefgscan> 0
3054     <homeDwellTime> <forceScanInterval>
3055
3056 Command Parameters
3057     UINT8    scanType
3058         WMI_SCAN_TYPE
3059
3060 Command Values
3061     {
3062         WMI_LONG_SCAN    =0x0
3063             Requests a full scan
3064         WMI_SHORT_SCAN   =0x1
3065             Requests a short scan
3066     } WMI_SCAN_TYPE
3067
3068     A_BOOL    forceFgScan
3069         forceFgScan
3070         = 0
3071         Disable the foreground scan
3072
3073         forceFgScan
3074         = 1
3075         Forces a foreground scan
3076
3077     A_UINT32    homeDwellTime
3078         Maximum duration in the home
3079         channel (in ms)
3080
3081     A_UINT32     forceScanInterval
3082         Time interval between scans (in ms)
3083
3084     A_UINT32     scanType
3085         WMI_SCAN_TYPE
3086
3087 Reset Value
3088     Disable forcing foreground scan
3089
3090 Restrictions
3091     isLegacy field will no longer be supported (pass as 0 for now)
3092
3093
3094 =====================================================================
3095
3096 Name
3097     SYNCHRONIZE
3098
3099 Synopsis
3100     The host uses this command to force a synchronization point between the command
3101     and data paths
3102
3103 Command
3104     TBD
3105
3106 Command Parameters
3107     None
3108
3109
3110
3111 Command Values
3112     None
3113
3114
3115
3116 Reset Values
3117     None
3118
3119
3120
3121 Restrictions
3122     None
3123
3124
3125 =====================================================================
3126
3127 Name
3128     TARGET_ERROR_REPORT_BITMASK
3129
3130 Synopsis
3131     Allows the host to control \93ERROR_REPORT\94 events from the AR6000 device.
3132
3133         If error reporting is disabled for an error type, a count of errors of that type is
3134         maintained by the device.
3135
3136         If error reporting is enabled for an error type, an \93ERROR_REPORT\94 event is
3137         sent when an error occurs and the error report bit is cleared.
3138
3139     Error counts for each error type are available through the \93GET_TARGET_STATS\94
3140     command.
3141
3142 Command
3143     wmiconfig eth1 --setErrorReportingBitmask
3144
3145 Command Parameters
3146     UINT32    bitmask
3147         Represents the set of
3148         WMI_TARGET_ERROR_VAL error types
3149         enabled for reporting
3150
3151 Command Values
3152     {
3153         WMI_TARGET_PM_ERR_FAIL    = 0x00000001
3154             Power save fails (only two cases):
3155                Retry out of null function/QoS null
3156                function to associated AP for PS
3157                indication'
3158                Host changes the PS setting when
3159                STA is off home channel
3160
3161         WMI_TARGET_KEY_NOT_FOUND    = 0x00000002
3162             No cipher key
3163         WMI_TARGET_DECRYPTION_ERR   = 0x00000004
3164             Decryption error
3165         WMI_TARGET_BMISS            = 0x00000008
3166             Beacon miss
3167         WMI_PSDISABLE_NODE_JOIN     = 0x00000010
3168             A non-PS-enabled STA joined the
3169             PS-enabled network
3170         WMI_TARGET_COM_ERR          = 0x00000020
3171             Host/target communication error
3172         WMI_TARGET_FATAL_ERR        = 0x00000040
3173             Fatal error
3174     } WMI_TARGET_ERROR_VAL
3175
3176 Reset Values
3177     Bitmask is 0, and all error reporting is disabled
3178
3179 Restrictions
3180     None
3181
3182
3183 =====================================================================
3184 WMI Events
3185
3186 Event
3187     Description
3188     Page
3189
3190
3191 BSSINFO
3192     Contains information describing BSSs collected during a scan
3193
3194 CAC_EVENTID
3195     Indicates signalling events in admission control
3196
3197 CMDERROR
3198     The AR6000 device encounters an error while attempting to process
3199     a command
3200
3201 CONNECT
3202     The device has connected to a wireless network
3203
3204 DISCONNECT
3205     The device lost connectivity with a wireless network
3206
3207 ERROR_REPORT
3208     An error has occurred for which the host previously requested
3209     notification with the command
3210     \93TARGET_ERROR_REPORT_BITMASK\94
3211
3212 EXTENSION
3213     WMI extension event
3214
3215 GET_PMKID_LIST_EVENT
3216     Created in response to a \93GET_PMKID_LIST_CMD\94 command
3217
3218 GET_WOW_LIST_EVENT
3219     Response to the wmiconfig \93GET_WOW_LIST\94 command to
3220     retrieve the configured WoW patterns
3221
3222 NEIGHBOR_REPORT
3223     Neighbor APs that match the current profile were detected
3224
3225 OPT_RX_FRAME_EVENT
3226     (Special feature) informs the host of the reception of a special frame
3227
3228 PSTREAM_TIMEOUT
3229     A prioritized stream has been idle for a specified interval
3230
3231 READY
3232     The AR6000 device is ready to accept commands
3233
3234 REGDOMAIN
3235     The regulatory domain has changed
3236
3237 REPORT_ROAM_DATA_EVENT
3238     Reports the roam time calculations made by the device
3239     (generated with a special build)
3240     \97
3241
3242 REPORT_STATISTICS
3243     Reply to a \93GET_TARGET_STATS\94 command
3244
3245 ROAM_TBL_EVENT
3246     Reports the roam table
3247
3248 RSSI_THRESHOLD
3249     Signal strength from the connected AP has crossed the threshold
3250     defined in the \93RSSI_THRESHOLD_PARAMS\94 command
3251
3252 SCAN_COMPLETE_EVENT
3253     A scan has completed (added status SCAN_ABORTED in release 2.0)
3254
3255 TEST_EVENT
3256     Event generated by the TCMD
3257
3258 TKIP_MICERROR
3259     TKIP MIC errors were detected
3260
3261 =====================================================================
3262
3263 Name
3264     BSSINFO
3265
3266 Synopsis
3267     Contains information describing one or more BSSs as collected during a scan.
3268     Information includes the BSSID, SSID, RSSI, network type, channel, supported rates,
3269     and IEs. BSSINFO events are sent only after the device receives a beacon or probe-
3270     response frame that pass the filter specified in the \93SET_BSS_FILTER\94 command.
3271     BSSINFO events consist of a small header followed by a copy of the beacon or probe
3272     response frame. The 802.11 header is not present. For formats of beacon and probe-
3273     response frames please consult the IEEE 802.11 specification.
3274
3275     The beacons or probe responses containing the IE specified by the
3276     WMI_BSS_FILTER_CMD are passed to the host through the
3277     WMI_BSSINFO_EVENT. The event carries a 32-bit bitmask that indicates the IEs that
3278     were detected in the management frame. The frame type field has been extended to
3279     indicate action management frames. This would be helpful to route these frames
3280     through the same event mechanism as used by the beacon processing function.
3281
3282     If the bssFilter in the SET_BSS_FILTER matches, then the ieMask is not relevant
3283     because the BSSINFO event is sent to the host. If the bssFilter doesnot match in the
3284     beacons/probe respones, then the ieMask match dictates whether the BSSINFO
3285     event is sent to the host. In the case of action management frames, the ieMask is the
3286     filter that is applied.
3287
3288 Event ID
3289     0x1004
3290
3291 Event Parameters
3292     typedef struct {
3293         A_UINT16    channel;
3294             Specifies the frequency (in MHz) where the
3295             frame was received
3296         A_UINT8    frameType;
3297             A WMI_BI_FTYPE value
3298         A_UINT8    snr;
3299         A_INT16    rssi;
3300             Indicates signal strength
3301         A_UINT8    bssid[ATH_MAC_LEN];
3302         A_UINT32    ieMask;
3303     } _ATTRIB_PACK_WMI_BSS_INFO_HDR;
3304
3305     Beacon or Probe Response Frame
3306
3307 Event Values
3308     {
3309         BEACON_FTYPE    = 0x1
3310             Indicates a beacon frame
3311         PROBERESP_FTYPE
3312             Indicates a probe response frame
3313         ACTION_MGMT_FTYPE
3314      } WMI_BI_FTYPE
3315
3316 =====================================================================
3317
3318 Name
3319     CAC_EVENTID
3320
3321 Synopsis
3322     Indicates signalling events in admission control. Events are generated when
3323     admission is accepted, rejected, or deleted by either the host or the AP. If the AP does
3324     not respond to an admission request within a timeout of 500 ms, an event is
3325     generated to the host.
3326
3327 Event ID
3328     0x1011
3329
3330 Event Parameters
3331     UINT8
3332     ac
3333     Access class pertaining to the
3334 signalling
3335
3336     UINT8    cac_indication
3337         Type of indication; indications are
3338         listed in WMI_CAC_INDICATION
3339
3340     UINT8    statusCode
3341         AP response status code for a
3342         request
3343
3344     UINT8    tspecSuggestion[63]
3345         Suggested TSPEC from AP
3346
3347 Event Values
3348     {
3349         CAC_INDICATION_ADMISSION = 0x00
3350         CAC_INDICATION_ADMISSION_RESP    = 0x01
3351         CAC_INDICATION_DELETE    = 0x02
3352         CAC_INDICATION_NO_RESP   = 0x03
3353     } WMI_CAC_INDICATION
3354
3355
3356 =====================================================================
3357
3358
3359 Name
3360     CMDERROR
3361
3362 Synopsis
3363     Indicates that the AR6000 device encountered an error while attempting to process a
3364     command. This error is fatal and indicates that the device requires a reset.
3365
3366 Event ID
3367     0x1005
3368
3369 Event Parameters
3370     UINT16    commandId
3371         Corresponds to the command which generated
3372         the error
3373     UINT8    errorCode
3374         A WMI_ERROR_CODE value
3375
3376 Event Values
3377     {
3378         INVALID_PARAM    = 1
3379             Invalid parameter
3380         ILLEGAL_STATE    = 2
3381             Illegal state
3382         INTERNAL_ERROR   = 3
3383             Internal Error
3384         All other values reserved
3385     } WMI_ERROR_CODE
3386
3387
3388 =====================================================================
3389
3390
3391 Name
3392     CONNECT
3393
3394 Synopsis
3395     Signals that the AR6000 connected to a wireless network. Connection occurs due to a
3396     \93CONNECT\94 command or roaming to a new AP. For infrastructure networks, shows
3397     that the AR6000 successfully performed 802.11 authentication and AP association.
3398
3399 Event ID
3400     0x1002
3401
3402 Event Parameters
3403     UINT16    channel
3404         Channel frequency (in MHz) of the network the
3405         AR6000 are connected to
3406
3407     UINT8    bssid[6]
3408         MAC address of the AP the AR6000 are
3409         connected to or the BSSID of the ad hoc
3410         network
3411
3412     UINT16    listenInterval
3413         Listen interval (in Kms) that the AR6000 are
3414         using
3415
3416     UINT 8    beaconIeLen
3417         Length (in bytes) of the beacon IEs
3418
3419     UINT8    assocInfo
3420         Pointer to an array containing beacon IEs,
3421         followed first by association request IEs then by
3422         association response IEs
3423
3424     UINT8    assocReqLen
3425         Length (in bytes) of the assocReqIEs array
3426
3427     UINT8    assocRespLen
3428         Length (in bytes) of the assocRespIEs array
3429
3430 Event Values
3431     None defined
3432
3433 =====================================================================
3434
3435
3436 Name
3437     DISCONNECT
3438
3439 Synopsis
3440     Signals that the AR6000 device lost connectivity with the wireless network.
3441     DISCONENCT is generated when the device fails to complete a \93CONNECT\94
3442     command or as a result of a transition from a connected state to disconnected state.
3443
3444     After sending the \93DISCONNECT\94 event the device continually tries to re-establish
3445     a connection. A LOST_LINK occurs when STA cannot receive beacons within the
3446     specified time for the SET_BMISS_TIME command.
3447
3448 Event ID
3449     0x1003
3450
3451 Event Parameters
3452     UINT8    disconnect
3453         Reason
3454         A WMI_DISCONNECT_REASON value
3455
3456     UINT8    bssid[6]
3457         Indicates which BSS the device was connected to
3458
3459     UINT8    assocRespLen
3460         Length of the 802.11 association response frame
3461         that triggered this event, or 0 if not applicable
3462
3463     UINT8    assocInfo[assocRespLen]
3464         Copy of the 802.11 association response frame
3465
3466 Event Values
3467     {
3468         NO_NETWORK_AVAIL    =0x01
3469             Indicates that the device was unable to
3470             establish or find the desired network
3471         LOST_LINK    =0x02
3472             Indicates the devices is no longer receiving
3473             beacons from the BSS it was previously
3474             connected to
3475
3476         DISCONNECT_CMD  =0x03
3477             Indicates a \93DISCONNECT\94 command was
3478             processed
3479         BSS_DISCONNECTED =0x04
3480             Indicates the BSS explicitly disconnected the
3481             device. Possible mechanisms include the AP
3482             sending 802.11 management frames
3483             (e.g., disassociate or deauthentication
3484             messages).
3485         AUTH_FAILED    =0x05
3486             Indicates that the device failed 802.11
3487             authentication with the BSS
3488         ASSOC_FAILED    =0x06
3489             Indicates that the device failed 802.11
3490             association with the BSS
3491         NO_RESOURCES_AVAIL    =0x07
3492             Indicates that a connection failed because the
3493             AP had insufficient resources to complete the
3494             connection
3495         CSERV_DISCONNECT    =0x08
3496             Indicates that the device\92s connection services
3497             module decided to disconnect from a BSS,
3498             which can happen for a variety of reasons (e.g.,
3499             the host marks the current connected AP as a
3500             bad AP).
3501         INVALID_PROFILE    =0x0A
3502             Indicates that an attempt was made to
3503             reconnect to a BSS that no longer matches the
3504             current profile
3505         All other values are reserved
3506     } WMI_DISCONNECT_REASON
3507
3508
3509 =====================================================================
3510
3511
3512 Name
3513     ERROR_REPORT
3514
3515 Synopsis
3516     Signals that a type of error has occurred for which the host previously requested
3517     notification through the \93TARGET_ERROR_REPORT_BITMASK\94 command.
3518
3519 Event ID
3520     0x100D
3521
3522 Event Parameters
3523     UINT32    errorVal
3524             WMI_TARGET_ERROR_VAL value. See
3525             \93TARGET_ERROR_REPORT_BITMASK\94.
3526
3527 Event Values
3528     errorVal
3529     = 0x00000001
3530     Power save fails
3531
3532         = 0x00000002
3533     No cipher key
3534
3535         = 0x00000004
3536     Decryption error
3537
3538         = 0x00000008
3539     Beacon miss
3540
3541         = 0x00000010
3542     A non-power save disabled node has joined
3543     the PS-enabled network
3544
3545
3546 =====================================================================
3547
3548
3549 Name
3550     EXTENSION
3551
3552 Synopsis
3553     The WMI is used mostly for wireless control messages to a wireless module that
3554     apply to wireless module management regardless of the target platform
3555     implementation. However, some events peripherally related to wireless management
3556     are desired during operation. These wireless extension events may be platform-
3557     specific or implementation-dependent. See \93WMI Extension Commands\94
3558
3559
3560 Event ID
3561     0x1010
3562
3563
3564 =====================================================================
3565
3566
3567 Name
3568     GET_PMKID_LIST_EVENT
3569
3570 Synopsis
3571     Generated by firmware in response to a \93GET_PMKID_LIST_CMD\94 command.
3572
3573 Event Parameters
3574     typedef struct {
3575         A_UINT32    numPMKID;
3576             Contains the number of PMKIDs in the reply
3577         WMI_PMKID   pmkidList[1];
3578     } __ATTRIB_PACK WMI_PMKID_LIST_REPLY;
3579
3580 Event Values
3581     None
3582
3583
3584 =====================================================================
3585
3586
3587 Name
3588     GET_WOW_LIST_EVENT
3589
3590 Synopsis
3591     Response to the wmiconfig \96getwowlist command to retrieve the configured Wake on
3592     Wireless patterns
3593
3594 Event ID
3595     0x10018
3596
3597 Event Parameters
3598     {
3599
3600     A_UINT8    num_filters
3601         Total number of patterns in the list
3602     A_UINT8    this_filter_num
3603         The filter number
3604     A_UINT8    wow_mode
3605         Shows whether WoW is enabled or disabled
3606     A_UINT8    host_mode
3607         Shows whether the host is asleep or awake
3608     WOW_FILTER    wow_filters[1]
3609         List of WoW filters (pattern and mask data bytes)
3610     } WMI_GET_WOW_LIST_REPLY;
3611
3612     {
3613         Each wow_filter_list element shows:
3614     A_UINT8    wow_valid_filter
3615         Whether the filter is valid
3616     A_UINT8    wow_filter_list_id
3617         Filter List ID (23 = default)
3618     A_UINT8    wow_filter_size
3619         Size in bytes of the filter
3620     A_UINT8    wow_filter_offset
3621         Offset of the pattern to search in the data packet
3622     A_UINT8    wow_filter_mask[MASK_SIZE]
3623         The mask to be applied to the pattern
3624     A_UINT8    wow_filter_pattern[WOW_PATTERN_SIZE]
3625         The pattern that to match to wake up the host
3626     } WOW_FILTER
3627
3628 Event Values
3629     None
3630
3631 =====================================================================
3632
3633
3634
3635 Name
3636     NEIGHBOR_REPORT
3637
3638 Synopsis
3639     Indicates the existence of neighbor APs that match the current profile. The host uses
3640     this event to populate the PMKID cache on the AR6000 and/or to perform
3641     preauthentication. This event is only generated in infrastructure mode.
3642
3643     A total of numberOfAps pairs of bssid/bssFlags exist, one pair for each AP.
3644
3645 Event ID
3646     0x1008
3647
3648 Event Parameters
3649     UINT8    numberOfAps
3650         The number of APs reported about in
3651         this event
3652     {
3653         UINT8    bssid[6]
3654             MAC address of a neighbor AP
3655         UINT8    bssFlags
3656             A WMI_BSS_FLAGS value
3657     }[numberOfAps]
3658
3659
3660 Event Values
3661     {
3662         WMI_DEFAULT_BSS_FLAGS    = 0
3663             Logical OR of 1 or more
3664         WMI_BSS_FLAGS
3665         WMI_PREAUTH_CAPABLE_BSS
3666             = 1
3667             Indicates that this AP is capable of
3668             preauthentication
3669         WMI_PMKID_VALID_BSS
3670             = 2
3671             Indicates that the AR6000 have a
3672             valid pairwise master key for this AP
3673     } WMI_BSS_FLAGS
3674
3675
3676 =====================================================================
3677
3678
3679
3680 Name
3681     OPT_RX_FRAME_EVENT
3682
3683 Synopsis
3684     Special feature, informs host of the reception of a special frame.
3685
3686 Event ID
3687     0x100E
3688
3689 Event Parameters
3690     {
3691         A_UINT16    channel;
3692         A_UINT8    frameType;
3693         A_INT8    snr;
3694         A_UINT8    srcAddr[ATH_MAC_LEN];
3695         A_UINT8    bssid[ATH_MAC_LEN];
3696         }WMI_OPT_RX_INFO_HDR
3697
3698 Event Values
3699     None
3700
3701 =====================================================================
3702
3703
3704
3705 Name
3706     PSTREAM_TIMEOUT
3707
3708 Synopsis
3709     Indicates that a priority stream that got created as a result of priority-marked data
3710     flow (priority marked in IP TOS) being idle for the default inactivity interval period
3711     (specified in the \93CREATE_PSTREAM\94 command) used for priority streams created
3712     implicitly by the driver. This event is not indicated for user-created priority streams.
3713     User-created priority streams exist until the users delete them explicitly. They do not
3714     timeout due to data inactivity.
3715
3716 Event ID
3717     0x1007
3718
3719 Event Parameters
3720     A_UINT8
3721     trafficClass
3722     Indicated the traffic class of priority
3723     stream that timed out
3724
3725 Event Values
3726     {
3727         WMM_AC_BE    = 0
3728             Best effort
3729         WMM_AC_BK    = 1
3730             Background
3731         WMM_AC_VI    = 2
3732             Video
3733         WMM_AC_VO     = 3
3734             Voice
3735     } TRAFFIC CLASS
3736
3737
3738 =====================================================================
3739
3740 Name
3741     READY
3742
3743 Synopsis
3744     Indicates that the AR6000 device is prepared to accept commands. It is sent once after
3745     power on or reset. It also indicates the MAC address of the device.
3746
3747 Event ID
3748     0x1001
3749
3750 Event Parameters
3751     UINT8    macAddr[6]
3752         Device MAC address
3753     UINT8    phyCapability
3754         A WMI_PHY_CAPABILITY value. Indicates the
3755         capabilities of the device wireless module\92s radio
3756
3757 Event Values
3758     {
3759         WMI_11A_CAPABILITY       = 1
3760         WMI_11G_CAPABILITY       = 2
3761         WMI_11AG_CAPABILITY      = 3
3762     } WMI_PHY_CAPABILITY
3763
3764
3765 =====================================================================
3766
3767 Name
3768     REGDOMAIN
3769
3770 Synopsis
3771     Indicates that the regulatory domain has changed. It initially occurs when the
3772     AR6000 device reads the board data information. The regulatory domain can also
3773     change when the device is a world-mode SKU. In this case, the regulatory domain is
3774     based on the country advertised by APs per the IEEE 802.11d specification. A
3775     potential side effect of a regulatory domain change is a change in the list of available
3776     channels. Any channel restrictions that exist as a result of a previous
3777     \93SET_CHANNEL_PARAMETERS\94 command are lifted.
3778
3779 Event ID
3780     0x1006
3781
3782 Event Parameters
3783     UINT32    regDomain
3784         The range of 0x0000 \96 0x00FF
3785         corresponds to an ISO country code.
3786
3787     Other regCodes are reserved for world
3788     mode settings and specific regulatory
3789     domains.
3790
3791 Event Values
3792     None
3793
3794
3795 =====================================================================
3796
3797
3798
3799 Name
3800     REPORT_STATISTICS
3801
3802 Synopsis
3803     A reply to a \93GET_TARGET_STATS\94 command.
3804
3805 Event ID
3806     0x100B
3807
3808 Event Parameters
3809     When the statistics are sent to the host, the AR6001 clear them so that a new set of
3810     statistics are collected for the next report.
3811
3812     UINT32    tx_packets
3813     UINT32    tx_bytes
3814     UINT32    tx_unicast_pkts
3815     UINT32    tx_unicast_bytes
3816     UINT32    tx_multicast_pkts
3817     UINT32    tx_multicast_bytes
3818     UINT32    tx_broadcast_pkts
3819     UINT32    tx_broadcast_bytes
3820     UINT32    tx_rts_success_cnt
3821     UINT32    tx_packet_per_ac[4]
3822         Tx packets per AC: [0] = BE, [1] = BK,
3823         [2] = VI, [3] = VO
3824     UINT32    tx_errors
3825         Number of packets which failed Tx, due
3826         to all failures
3827     ... REPORT_STATISTICS, continued
3828     UINT32    tx_failed_cnt
3829         Number of data packets that failed Tx
3830     UINT32    tx_retry_cnt
3831         Number of Tx retries for all packets
3832     UINT32    tx_rts_fail_cnt
3833         Number of RTS Tx failed count
3834     UINT32    rx_packets
3835     UINT32    rx_bytes
3836     UINT32    rx_unicast_pkts
3837     UINT32    rx_unicast_bytes
3838     UINT32    rx_multicast_pkts
3839     UINT32    rx_multicast_bytes
3840     UINT32    rx_broadcast_pkts
3841     UINT32    rx_broadcast_bytes
3842     UINT32    rx_fragment_pkt
3843         Number of fragmented packets received
3844     UINT32    rx_errors
3845         Number of Rx errors due to all failures
3846     UINT32    rx_crcerr
3847         Number of Rx errors due to CRC errors
3848     UINT32    rx_key_cache_miss
3849         Number of Rx errors due to a key not
3850         being plumbed
3851     UINT32    rx_decrypt_err
3852         Number of Rx errors due to decryption
3853         failure
3854     UINT32    rx_duplicate_frames
3855         Number of duplicate frames received
3856     UINT32    tkip_local_mic_failure
3857         Number of TKIP MIC errors detected
3858     UINT32    tkip_counter_measures_invoked
3859         Number of times TKIP countermeasures
3860         were invoked
3861     UINT32    tkip_replays
3862         Number of frames that replayed a TKIP
3863         encrypted frame received earlier
3864     UINT32    tkip_format_errors
3865         Number of frames that did not conform
3866         to the TKIP frame format
3867     UINT32    ccmp_format_errors
3868         Number of frames that did not conform
3869         to the CCMP frame format
3870     UINT32    ccmp_replays
3871         Number of frames that replayed a CCMP
3872         encrypted frame received earlier
3873     UINT32    power_save_failure_cnt
3874         Number of failures that occurred when
3875         the AR6001 could not go to sleep
3876     UINT32    cs_bmiss_cnt
3877         Number of BMISS interrupts since
3878     connection
3879     UINT32    cs_lowRssi_cnt
3880         Number of the times the RSSI went below
3881         the low RSSI threshold
3882     UINT16    cs_connect_cnt
3883         Number of connection times
3884     UINT16    cs_disconnect_cnt
3885         Number of disconnection times
3886     UINT8    cs_aveBeacon_rssi
3887         The current averaged value of the RSSI
3888         from the beacons of the connected BSS
3889     UINT8    cs_lastRoam_msec
3890         Time that the last roaming took, in ms.
3891         This time is the difference between
3892         roaming start and actual connection.
3893
3894 Event Values
3895     None defined
3896
3897
3898 =====================================================================
3899
3900 Name
3901     ROAM_TBL_EVENT
3902
3903 Synopsis
3904     Reports the roam table, which contains the current roam mode and this information
3905     for every BSS:
3906
3907 Event ID
3908     0x100F
3909
3910 Event Parameters
3911     A_UINT8     bssid[ATH_MAC_LEN];
3912         BSSID
3913     A_UINT8     rssi
3914         Averaged RSSI
3915     A_UINT8     rssidt
3916         Change in RSSI
3917     A_UINT8     last_rssi
3918         Last recorded RSSI
3919     A_UINT8     roam_util
3920         Utility value used in roaming decision
3921     A_UINT8     util
3922         Base utility with the BSS
3923     A_UINT8     bias
3924         Host configured for this BSS
3925
3926 Event Values
3927     roamMode
3928         Current roam mode
3929
3930         = 1
3931     RSSI based roam
3932
3933         = 2
3934     Host bias-based roam
3935
3936         = 3
3937     Lock to the current BSS
3938
3939         = 4
3940     Autonomous roaming disabled
3941
3942
3943 =====================================================================
3944
3945 Name
3946     RSSI_THRESHOLD
3947
3948 Synopsis
3949     Alerts the host that the signal strength from the connected AP has crossed a
3950     interesting threshold as defined in a previous \93RSSI_THRESHOLD_PARAMS\94
3951     command.
3952
3953 Event ID
3954     0x100C
3955
3956 Event Parameters
3957     UINT8    range
3958         A WMI_RSSI_THRESHOLD_VAL
3959         value, which indicates the range of
3960         the average signal strength
3961
3962 Event Values
3963     {
3964         WMI_RSSI_LOWTHRESHOLD_BELOW_LOWERVAL  = 1
3965         WMI_RSSI_LOWTHRESHOLD_LOWERVAL        = 2
3966         WMI_RSSI_LOWTHRESHOLD_UPPERVAL        = 3
3967         WMI_RSSI_HIGHTHRESHOLD_LOWERVAL       = 4
3968         WMI_RSSI_HIGHTHRESHOLD_HIGHERVAL      = 5
3969     } WMI_RSSI_THRESHOLD_VAL
3970
3971
3972 =====================================================================
3973
3974 Name
3975     SCAN_COMPLETE_EVENT
3976
3977 Synopsis
3978     Indicates the scan status. if the Scan was not completed, this event is generated with
3979     the status A_ECANCELED.
3980
3981 Event ID
3982     0x100A
3983
3984 Event Parameters
3985     A_UINT8    scanStatus
3986
3987 Event Values
3988     {
3989         #define     SCAN_ABORTED 16
3990         #define     SCAN_COMPLETED 0
3991         A_UINT8     scanStatus
3992             A_OK or A_ECANCELED
3993     } WMI_SCAN_COMPLETE_EVENT;
3994
3995
3996 =====================================================================
3997
3998 Name
3999     TEST_EVENT
4000
4001 Synopsis
4002     The TCMD application uses a single WMI event (WMI_TEST_EVENTID) to
4003     communicate events from target to host. The events are parsed by the TCMD
4004     application and WMI layer is oblivious of it.
4005
4006 Event ID
4007     0x1016
4008
4009 Event Parameters
4010     WMI_TEST_EVENTID
4011
4012
4013 Event Values
4014     None
4015
4016
4017 =====================================================================
4018
4019
4020
4021 Name
4022     TKIP_MICERR
4023
4024 Synopsis
4025     Indicates that TKIP MIC errors were detected.
4026
4027 Event ID
4028     0x1009
4029
4030 Event Parameters
4031     UINT8    keyid
4032         Indicates the TKIP key ID
4033
4034     UINT8    ismcast
4035         0 = Unicast
4036         1 = Multicast
4037
4038 Event Values
4039     See event parameters
4040
4041 =====================================================================
4042
4043 WMI Extension Commands
4044
4045 The WMI EXTENSION command is used to multiplex a collection of
4046 commands that:
4047
4048         Are not generic wireless commands
4049         May be implementation-specific
4050         May be target platform-specific
4051         May be optional for a host implementation
4052
4053     An extension command is sent to the AR6000 targets like any other WMI
4054 command message and uses the WMI_EXTENSION. The first field of the
4055 payload for this EXTENSION command is another commandId, sometimes
4056 called the subcommandId, which indicates which extension command is
4057 being used. A subcommandId-specific payload follows the subcommandId.
4058
4059 All extensions (subcommandIds) are listed in the header file include/wmix.h.
4060 See also \93WMI Extension Events\94 on page B-58.
4061
4062
4063 WMI Extension Commands
4064
4065
4066 GPIO_INPUT_GET
4067     Read GPIO pins configured for input
4068
4069 GPIO_INTR_ACK
4070     Acknowledge and re-arm GPIO interrupts reported earlier
4071
4072 GPIO_OUTPUT_SET
4073     Manage output on GPIO pins configured for output
4074
4075 GPIO_REGISTER_GET
4076     Read an arbitrary GPIO register
4077
4078 GPIO_REGISTER_SET
4079     Dynamically change GPIO configuration
4080
4081 SET_LQTHRESHOLD
4082     Set link quality thresholds; the sampling happens at every unicast
4083     data frame Tx, if certain thresholds are met, and corresponding
4084     events are sent to the host
4085
4086
4087 =====================================================================
4088
4089 Name
4090     GPIO_INPUT_GET
4091
4092 Synopsis
4093     Allows the host to read GPIO pins that are configured for input. The values read are
4094     returned through a \93GPIO_DATA\94 extension event.
4095
4096 NOTE: Support for GPIO is optional.
4097
4098 Command
4099     N/A
4100
4101 Command Parameters
4102     None
4103
4104
4105
4106 Reply Parameters
4107     None
4108
4109
4110 Reset Value
4111     None
4112
4113
4114
4115 Restrictions
4116     None
4117
4118 =====================================================================
4119
4120
4121 Name
4122     GPIO_INTR_ACK
4123
4124 Synopsis
4125     The host uses this command to acknowledge and to re-arm GPIO interrupts reported
4126     through an earlier \93GPIO_INTR\94 extension event. A single \93GPIO_INTR_ACK\94
4127     command should be used to acknowledge all GPIO interrupts that the host knows to
4128     be outstanding (if pending interrupts are not acknowledged through
4129     \93GPIO_INTR_ACK\94, another \93GPIO_INTR\94 extension event is raised).
4130
4131 NOTE: Support for GPIO is optional.
4132
4133 Command
4134     N/A
4135
4136 Command Parameters
4137     UINT32    ack_mask
4138         A mask of interrupting GPIO pins (e.g., ack_mask
4139         bit [3] acknowledges an interrupt from the pin GPIO3).
4140
4141 Command Values
4142     None
4143
4144 Reset Value
4145     None
4146
4147 Restrictions
4148     The host should acknowledge only interrupts about which it was notified.
4149
4150
4151 =====================================================================
4152
4153 Name
4154     GPIO_OUTPUT_SET
4155
4156 Synopsis
4157     Manages output on GPIO pins configured for output.
4158
4159     Conflicts between set_mask and clear_mask or enable_mask and disable_mask result
4160     in undefined behavior.
4161
4162 NOTE: Support for GPIO is optional.
4163
4164 Command
4165     N/A
4166
4167 Command Parameters
4168     UINT32    set_mask
4169         Specifies which pins should drive a 1 out
4170     UINT32    clear_mask
4171         Specifies which pins should drive a 0 out
4172     UINT32    enable_mask
4173         Specifies which pins should be enabled for output
4174     UINT32    disable_mask
4175         Specifies which pins should be disabled for output
4176
4177 Command Values
4178     None
4179
4180
4181 Reset Value
4182     None
4183
4184
4185 Restrictions
4186     None
4187
4188
4189
4190 =====================================================================
4191
4192
4193 Name
4194     GPIO_REGISTER_GET
4195
4196 Synopsis
4197     Allows the host to read an arbitrary GPIO register. It is intended for use during
4198     bringup/debug. The target responds to this command with a \93GPIO_DATA\94 event.
4199
4200 NOTE: Support for GPIO is optional.
4201
4202 Command
4203     N/A
4204
4205 Command Parameters
4206     UINT32
4207     gpioreg_id
4208     Specifies a GPIO register identifier, as defined
4209 in include/AR6000/AR6000_gpio.h
4210
4211 Reply Parameters
4212     None
4213
4214 Reset Value
4215     N/A
4216
4217 Restrictions
4218     None
4219
4220
4221 =====================================================================
4222
4223 Name
4224     GPIO_REGISTER_SET
4225
4226 Synopsis
4227     Allows the host to dynamically change GPIO configuration (usually handled
4228     statically through the GPIO configuration DataSet).
4229
4230 NOTE: Support for GPIO is optional.
4231
4232 Command
4233     N/A
4234
4235 Command Parameters
4236     UINT32    gpioreg_id
4237         Specifies a GPIO register identifier, as defined in
4238         include/AR6000/AR6000_gpio.h
4239     UINT32    value
4240         Specifies a value to write to the specified
4241         GPIO register
4242
4243 Command Values
4244     None
4245
4246
4247 Reset Value
4248     Initial hardware configuration is as defined in the AR6001 or AR6002 ROCmTM
4249     Single-Chip MAC/BB/Radio for 2.4/5 GHz Embedded WLAN Applications data sheet. This
4250     configuration is modified by the GPIO Configuration DataSet, if one exists.
4251
4252 Restrictions
4253     None
4254
4255
4256 =====================================================================
4257
4258
4259 Name
4260     SET_LQTHRESHOLD
4261
4262 Synopsis
4263     Set link quality thresholds, the sampling happens at every unicast data frame Tx, if
4264     certain threshold is met, corresponding event will be sent to host.
4265
4266 Command
4267     wmiconfig eth1 --lqThreshold <enable> <upper_threshold_1>...
4268     <upper_threshold_4> <lower_threshold_1>... <lower_threshold_4>
4269
4270 Command Parameters
4271     A_UINT8   enable;
4272     A_UINT8   thresholdAbove1_Val;
4273     A_UINT8   thresholdAbove2_Val;
4274     A_UINT8   thresholdAbove3_Val;
4275     A_UINT8   thresholdAbove4_Val;
4276     A_UINT8   thresholdBelow1_Val;
4277     A_UINT8   thresholdBelow2_Val;
4278     A_UINT8   thresholdBelow3_Val;
4279     A_UINT8   thresholdBelow4_Val;
4280
4281 Command Values
4282     enable
4283     = 0
4284     Disable link quality sampling
4285
4286         = 1
4287     Enable link quality sampling
4288
4289
4290     thresholdAbove_Val
4291     [1...4]
4292     Above thresholds (value in [0,100]), in ascending
4293     order threshold
4294
4295     Below_Val [1...4] = below thresholds (value
4296     in [0,100]), in ascending order
4297
4298 Reset Values
4299     None
4300
4301 Restrictions
4302     None
4303
4304 =====================================================================
4305 WMI Extension Events
4306
4307 The WMI EXTENSION event is used for a collection of events that:
4308
4309     Are not generic wireless events
4310     May be implementation-specific
4311     May be target platform-specific
4312     May be optional for a host implementation
4313
4314     An extension event is sent from the AR6000 device targets to the host just like
4315 any other WMI event message, using the WMI_EXTENSION_EVENTID. The
4316 first field of the payload for this \93EXTENSION\94 event is another commandId
4317 (sometimes called the subcommandId) that indicates which \93EXTENSION\94
4318 event is being used. A subcommandId-specific payload follows the
4319 subcommandId.
4320
4321 All extensions (subcommandIds) are listed in the header file include/wmix.h.
4322 See also \93WMI Extension Commands\94 on page B-55.
4323
4324
4325 WMI Extension Events
4326
4327
4328 GPIO_ACK
4329     Acknowledges a host set command has been processed by the device
4330
4331 GPIO_DATA
4332     Response to a host\92s request for data
4333
4334 GPIO_INTR
4335     Signals that GPIO interrupts are pending
4336
4337
4338 =====================================================================
4339
4340 Name
4341     GPIO_ACK
4342
4343 Synopsis
4344     Acknowledges that a host set command (either \93GPIO_OUTPUT_SET\94 or
4345     \93GPIO_REGISTER_SET\94) has been processed by the AR6000 device.
4346
4347 NOTE: Support for GPIO is optional.
4348
4349 Event ID
4350     N/A
4351
4352 Event Parameters
4353     None
4354
4355
4356 Event Values
4357     None
4358
4359 =====================================================================
4360
4361
4362 Name
4363     GPIO_DATA
4364
4365 Synopsis
4366     The AR6000 device uses this event to respond to the host\92s earlier request for data
4367     (through either a \93GPIO_REGISTER_GET\94 or a \93GPIO_INPUT_GET\94 command).
4368
4369 NOTE: Support for GPIO is optional.
4370
4371 Event ID
4372     N/A
4373
4374 Event Parameters
4375     UINT32    value
4376         Holds the data of interest, which is either a register value
4377         (in the case of \93GPIO_REGISTER_GET\94) or a mask of
4378         pin inputs (in the case of \93GPIO_INPUT_GET\94).
4379     UINT32    reg_id
4380         Indicates which register was read (in the case of
4381         \93GPIO_REGISTER_GET\94) or is GPIO_ID_NONE (in the
4382         case of \93GPIO_INPUT_GET\94)
4383
4384 Event Values
4385     None
4386
4387
4388 =====================================================================
4389
4390
4391
4392 Name
4393     GPIO_INTR
4394
4395 Synopsis
4396     The AR6000 device raises this event to signal that GPIO interrupts are pending.
4397     These GPIOs may be interrupts that occurred after the last \93GPIO_INTR_ACK\94
4398     command was issued, or may be GPIO interrupts that the host failed to acknowledge
4399     in the last \93GPIO_INTR_ACK\94. The AR6000 will not raise another GPIO_INTR
4400     event until this event is acknowledged through a \93GPIO_INTR_ACK\94 command.
4401
4402 NOTE: Support for GPIO is optional.
4403
4404 Event ID
4405     N/A
4406
4407 Event Parameters
4408     UINT32    intr_mask
4409         Indicates which GPIO interrupts are currently pending
4410
4411     UINT32    input_values
4412         A recent copy of the GPIO input values, taken at the
4413         time the most recent GPIO interrupt was processed
4414
4415 Event Values
4416     None
4417
4418
4419
4420 =====================================================================
4421 #endif