3 * Copyright (c) 2004-2007 Atheros Communications Inc.
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;
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.
22 Wireless Module
Interface (WMI
) Documentaion
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
.
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
.
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
:
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
.
49 Contains information on message type
and user priority
. Message type
50 differentiates between a data packet
and a synchronization message
.
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).
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
.
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
.
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
.
78 Table B
-1 describes the AR6000 WLAN connection states
:
80 Table B
-1. AR6000 Connection States
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
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
.
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
:
108 Table B
-2. AR6000 Message Types
114 Control messages that flow from the host to the device
117 Control messages that flow from the device to the host
.
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
.
127 All WMI control commands
, replies
and events use the header format
:
129 WMI_CMD_HDR Header Format
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
.
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
.
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
.
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
.
159 Command
and Data Synchronization
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
.
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
.
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
185 Cause the AR6000 device to avoid a particular AP
187 Add
or replace any of the four AR6000 encryption keys
189 Used to add a pattern to the WoW pattern list
191 Clear the current calculated RSSI
and SNR value
193 Request that the AR6000 device establish a wireless connection
194 with the specified SSID
196 Create prioritized data endpoint between the host
and device
198 Clear an entry in the bad AP table
200 Delete a previously added cipher key
202 Delete a prioritized data endpoint
204 Remove a pre
-specified pattern from the WoW pattern list
206 WMI message interface command
208 Retrieve rate most recently used by the AR6000
210 Retrieve list of channels used by the AR6000
212 Retrieves the rate
-mask set via the SET_FIXRATES command
.
214 Retrieve the firmware list of PMKIDs
216 Internal use
for data collection
; available in special build only
218 Retrieve the roaming table maintained on the target
220 Request that the target send the statistics it maintains
222 Retrieve the current AR6000 device Tx power levels
224 Retrieve the current list of WoW patterns
226 Set the link quality thresholds
228 Send a special
frame (special feature
)
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
235 Determine dwell time
and changes scanned channels
237 Set access parameters
for the wireless network
239 Set the BSSID
for an ad hoc network
243 Add application
-specified IE to a management frame
245 Specify the IEs the device should add to association
or
246 reassociation requests
248 Set
802.11 authentication mode of reconnection
250 Set the beacon interval
for an ad hoc network
252 Set the AR6000 to a specific fixed bit rate
254 Set the beacon miss time
256 Inform the AR6000 of network types about which it wants to
257 receive information
using a
\93BSSINFO
\94 event
259 Set the status of a Bluetooth
stream (SCO
or A2DP
) or set
260 Bluetooth coexistence
register parameters
262 Set the status of a Bluetooth
stream (SCO
or A2DP
)
263 SET_CHANNEL_PARAMETERS
264 Configure WLAN channel parameters
266 Set the amount of time the AR6000 spends attempting to
267 reestablish a connection
269 Set the device to a specific fixed PHY
rate (supported subset
)
271 Internal AR6000 command to set certain hardware parameters
273 Set the host mode to asleep
or awake
275 Support a non
-standard power management scheme
for an
278 Request a listen interval
280 Override the
short preamble capability of the AR6000 device
282 Set the maximum service period
284 Set the special mode on
/off (special feature
)
286 Set the pairwise master key
ID (PMKID
)
288 Configure the firmware list of PMKIDs
290 Set guidelines on trade
-off between power utilization
292 Configure power parameters
294 Set the two AR6000 power save timers
296 Provide list of SSIDs the device should seek
298 Specify whether the disassociated frame should be sent upon
301 Limit how many times the device tries to send a frame
303 Control roaming behavior
305 Determine when RTS should be sent
307 Set the AR6000 scan parameters
308 SET_TKIP_COUNTERMEASURES
309 Enable
/disable reports of TKIP MIC errors
311 Specify the AR6000 device Tx power levels
313 Set voice packet size
315 Override the AR6000 WMM capability
317 Configure TxOP bursting when sending traffic to a WMM
-
320 Enable
/disable WoW mode
322 Enable
/disable profile check in cserv when the WPS protocol
325 Configure how the device monitors
and reports SNR of BSS
327 Start a
long or short channel scan
329 Force a synchronization point between command
and data
331 TARGET_REPORT_ERROR_BITMASK
332 Control
\93ERROR_REPORT
\94 events from the AR6000
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
.
345 If the AR6000 are currently connected to the AP specified in
this command
, they
349 wmiconfig eth1
--badap
<bssid
> <badApIndex
>
352 UINT8 badApIndex Index
[0...1] that identifies which entry in the
356 UINT8 bssid
[6] MAC address of the AP to avoid
359 badApIndex
= 0, 1 Entry in the bad AP table to use
362 The bad AP table is cleared
368 \93DELETE_BAD_AP
\94 on page B
-13
370 =====================================================================
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
.
382 wmiconfig eth1
--cipherkey
<keyIndex
> <keyType
> <keyUsage
>
383 <keyLength
> <keyopctrl
> <keyRSC
> <key
>
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
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
406 Default is to Initialize the TSC
407 KEY_OP_VALID_MASK
0x04
408 Two operations defined
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
420 The four available keys are disabled
.
423 The cipher should correspond to the encryption mode specified in the
\93CONNECT
\94
427 \93DELETE_CIPHER_KEY
\94
429 =====================================================================
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
.
443 wmiconfig
\96addwowpattern
<list
-id
> <filter
-size
> <filter
-offset
>
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
458 None
defined (default host mode is awake
)
464 \93DELETE_WOW_PATTERN
\94
466 =====================================================================
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
.
478 wmiconfig eth1
--cleanRssiSnr
492 =====================================================================
498 New connect control
information (connectCtrl
) is added
, with
32 possible modifiers
.
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
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
.
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
.
523 CONNECT_IGNORE_AAC_BEACON
524 Ignore the Admission Capacity information in the
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
532 wmiconfig
--setconnectctrl
<ctrl flags bitmask
>
537 A_UINT8 dot11authmode
;
539 A_UINT8 pairwiseCryptoType
; /*CRYPTO_TYPE*/
540 A_UINT8 pairwiseCryptoLen
;
541 A_UINT8 groupCryptoType
; /*CRYPTO_TYPE*/
542 A_UINT8 groupCryptoLen
;
544 A_UCHAR ssid
[WMI_MAX_SSID_LEN
];
546 A_UINT8 bssid
[AUTH_MAC_LEN
];
547 A_UINT8 ctrl_flags
; /*WMI_CONNECT_CTRL_FLAGS_BITS*/
551 = 0x0001 CONNECT_ASSOC_POLICY_USER
552 Assoc frames are sent
using the policy specified by
554 = 0x0002 CONNECT_SEND_REASSOC
555 Send Reassoc frame
while connecting
, otherwise send
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
564 ... CONNECT_CMD
, continued
567 INFRA_NETWORK
= 0x01,
568 ADHOC_NETWORK
= 0x02,
569 ADHOC_CREATOR
= 0x04,
582 WPA2_PSK_AUTH
= 0x05,
583 WPA_AUTH_CCKM
= 0x06,
584 WPA2_AUTH_CCKM
= 0x07,
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
;
600 pairwiseCryptoLen
and groupCryptoLen are valid when the respective
601 CryptoTypesis WEP_CRYPT
, otherwise
this value should be
0. This is the length in
610 =====================================================================
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
.
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
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
:
647 802.1D user priority
range (0\967)
649 = 0 Tx (uplink
) traffic
650 = 1 Rx (downlink
) traffic
651 = 2 Bi
-directional traffic
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
>
668 <max service interval
>
669 Inactivity
interval (in ms
) (0 = Infinite
)
670 <suspension interval
>
681 Minimum data
rate (in bps
)
683 Mean data
rate (in bps
)
685 Peak data
rate (in bps
)
687 Maximum burst
size (in bps
)
691 Minimum PHY
rate (in bps
)
693 Surplus bandwidth allowance
695 Medium time in TU of
32-ms periods per sec
696 ... CREATE_PSTREAM (continued
)
699 UINT8 trafficClass TRAFFIC_CLASS value
704 AR6000 device mailbox
index (2 or 3)
705 corresponding to the endpoint the host
706 wishes to use to receive packets
for the
708 UINT8 trafficType TRAFFIC_TYPE value
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
)
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
)
736 WMM_AC_BE
= 0 Best Effort
737 WMM_AC_BK
= 1 Background
740 All other values reserved
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
749 DISABLE_FOR_THIS_AC
= 0
750 ENABLE_FOR_THIS_AC
= 1
751 ENABLE_FOR_ALL_AC
= 2
752 All other values reserved
755 ... CREATE_PSTREAM (continued
)
758 VI BE BK Supported
, Y
/N
?
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
)
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
788 =====================================================================
794 The host uses
this command to clear a particular entry in the bad AP table
797 wmiconfig eth1
--rmAP
[--num
=<index
>] // used to clear a badAP
798 entry
. num is index from
0-3
801 UINT8 badApIndex Index
[0...n
] that identifies the entry in the bad
805 badApIndex
= 0, 1, 2, 3
806 Entry in the bad AP table
817 =====================================================================
824 The host uses
this command to
delete a key that was previously added with the
825 \93ADD_CIPHER_KEY
\94 command
.
831 UINT8 keyIndex
Index (0...3) of the key to be deleted
834 keyIndex
= 0, 1,2, 3 Key to
delete
840 The host should
not delete a key that is currently in use by the AR6000
.
845 =====================================================================
851 The host uses
this command to
delete a prioritized data endpoint created by a
852 previous
\93CREATE_PSTREAM
\94 command
855 --deleteqos
<trafficClass
> <tsid
>, where
:
863 The TSpec ID
; use the
-qosqueue option
864 to get the active TSpec IDs
for each traffic
class
867 A_UINT8 trafficClass Indicate the traffic
class of the stream
872 WMM_AC_BE
= 0 Best effort
873 WMM_AC_BK
= 1 Background
884 This command should only be issued after a
\93CREATE_PSTREAM
\94 command has
885 successfully created a prioritized stream
890 =====================================================================
897 The host uses
this command to remove a pre
-specified pattern from the
901 wmiconfig
\96delwowpattern
<list
-id
> <pattern
-id
>
904 A_UINT8 filter_list_id ID of the list that contains the WoW filter
906 A_UINT8 filter_id ID of the WoW filter pattern to
delete
920 \93ADD_WOW_PATTERN
\94
922 =====================================================================
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
.
953 =====================================================================
960 Used by the host to obtain the rate most recently used by the AR6000 device
963 wmiconfig eth1
--getfixrates
973 See the
\93SET_BIT_RATE
\94 command
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
985 =====================================================================
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
.
1002 UINT8 reserved Reserved
1003 UINT8 numberOfChannels Number of channels the reply contains
1004 UINT16 channelList
[numberOfChannels
] Array of channel
frequencies (in MHz
)
1010 The maximum number of channels that can be reported are
32
1012 =====================================================================
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
.
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.
1028 wmiconfig eth1
--getfixrates
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
1048 =====================================================================
1056 Retrieves the list of PMKIDs on the firmware
. The
1057 WMI_GET_PMKID_LIST_EVENT is generated by the firmware
.
1071 SET_PMKID_LIST_CMD GET_PMKID_LIST_EVENT
1073 =====================================================================
1080 Retrieve the roaming table maintained on the target
. The response is reported
1081 asynchronously through the ROAM_TBL_EVENT
.
1084 wmiconfig
--getroamtable
<roamctrl
> <info
>
1087 A_UINT8 roamCtrlType
;
1090 WMI_BSS_ROAM_INFO bssRoamInfo
[1]
1093 Reported asynchronously through the ROAM_TBL_EVENT
1104 =====================================================================
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
.
1117 wmiconfig
--getTargetStats
--clearStats
1120 TARGET_STATS targetStats
1126 RSSI
return value (0\96100)
1129 All statistics are
cleared (zeroed
)
1132 The
--getTargetStats option must be used
; the
--clearStats option is also available also
1135 =====================================================================
1141 The host uses
this command to retrieve the current Tx power level
1144 wmiconfig
-i eth1
--getpower
1150 UINT16 dbM The current Tx power level specified in dbM
1153 The maximum permitted by the regulatory domain
1161 =====================================================================
1168 The host uses
this command to retrieve the current list of WoW patterns
.
1171 wmiconfig
\96getwowlist
<list
-id
>
1174 A_UINT8 filter_list_id ID of the list of WoW patterns to retrieve
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
)
1192 \93SET_WSC_STATUS
\94
1194 =====================================================================
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
.
1205 --lqThreshold
<enable
> <upper_threshold_1
> ...
1206 <upper_threshold_4
> <lower_threshold_1
> ... <lower_threshold_4
>
1209 <enable
> = 0 Disable link quality sampling
1210 = 1 Enable link quality sampling
1211 <upper_threshold_x
> Above
thresholds (value in
[0,100]), in
1213 <lower_threshold_x
> Below
thresholds (value in
[0,100]), in
1217 See command parameters
1225 =====================================================================
1232 Special feature
, sends a special frame
.
1235 wmiconfig
--sendframe
<frmType
> <dstaddr
> <bssid
> <optIEDatalen
>
1240 A_UINT16 optIEDataLen
;
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
;
1248 <frmtype
> = 1 Probe request frame
1249 = 2 Probe response frame
1257 Send a special frame only when special mode is on
.
1259 =====================================================================
1266 This command requests a reconnection to a BSS to which the AR6000 device was
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
1289 =====================================================================
1293 RSSI_THRESHOLD_PARAMS
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
).
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
>
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)
1321 pollTime is
0, and sampling is disabled
1324 Can only be issued
if the AR6000 device is connected
1327 =====================================================================
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
.
1339 wmiconfig
-scan
-minact
=<ms
> --maxact
=<ms
>
1342 UINT16 maxact Channel dwell
time (in ms
), default = 0
1343 UINT16 minact Channel dwell
time (in ms
), default = 105
1346 See channel parameters
1352 The minact value should be greater than
0; maxact should be between
5\9665535 ms
1353 and greater than minact
1355 =====================================================================
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
.
1366 wmiconfig eth1
--acparams
--txop
<limit
> --cwmin
<0-15>
1367 --cwmax
<0-15> --aifsn
<0-15>
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
1381 Reasonable defaults that vary
, between
endpoints (prioritized streams
)
1386 =====================================================================
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
).
1398 wmiconfig eth1
--adhocbssid
<bssid
>
1401 A_UINT8 bssid
[ATH_MAC_LEN
] BSSID is specified in xx
:xx
:xx
:xx
:xx
:xx format
1412 =====================================================================
1419 Enables
or disables multi PMKID mode
.
1422 wmiconfig eth1
--setakmp
--multipmkid
=<on
/off
>
1427 } WMI_SET_AKMP_PARAMS_CMD
;
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
.
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
.
1441 MultiPMKID mode is disabled
1446 =====================================================================
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
.
1457 wmiconfig
--setappie
<frame
> <IE
>, where
:
1460 One of beacon
, probe
, respon
, assoc
1463 A hex string beginning with
DD (if = 0, no
1464 IE is sent in the management frame
)
1468 A WMI_MGMT_FRAME_TYPE
1471 Length of the IE to add to the GMT frame
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
.
1483 =====================================================================
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
.
1496 wmiconfig eth1
--setAssocIe
<IE
>
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
1511 This command can only be issued in the DISCONNECTED state
1513 =====================================================================
1520 Sets the
802.11 authentication mode of reconnection
1523 wmiconfig eth1
--setauthmode
<mode
>
1529 mode
= 0x00 Proceed with authentication during reconnect
1530 = 0x01 Do
not proceed with authentication during reconnect
1538 =====================================================================
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
.
1551 wmiconfig eth1
--ibssconintv
1554 UINT16 beaconInterval Specifies the beacon interval in TU
units (1024 ms
)
1560 The
default beacon interval is
100 TUs (102.4 ms
)
1563 This command can only be issued before the AR6000 device starts an ad hoc network
1566 \93SET_IBSS_PM_CAPS
\94
1568 =====================================================================
1575 The host uses
this command to set the AR6000 device to a specific fixed rate
.
1578 wmiconfig eth1
--setfixrates
<rate_0
> ... <rate_n
>
1582 A WMI_BIT_RATE value
1601 See command parameters
1604 The dynamic rate is determined by the AR6000 device
1607 This command is intended
for use only during development
/debug
; it is
not
1608 intended
for use in production
1613 =====================================================================
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
.
1626 wmiconfig eth1
--setbmissbeacons
=<val
>
1627 wmiconfig eth1
--setbmisstime
=<val
>
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]
1638 bmissTime is
1500 TUs (1536 ms
)
1643 =====================================================================
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.
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.
1662 wmiconfig eth1
\96filter
= <filter
> --ieMask
0x
<mask
>
1669 A_UINT8 bssFilter
; See WMI_BSS_FILTER
1671 } __ATTRIB_PACK WMI_BSS_FILTER_CMD
;
1673 The ieMask can take
this combination of values
:
1676 BSS_ELEMID_CHANSWITCH
= 0x01
1677 BSS_ELEMID_ATHEROS
= 0x02,
1684 BssFilter
= NONE_BSS_FILTER (0)
1692 =====================================================================
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
.
1704 wmiconfig
\96setBTparams
<paramType
> <params
>
1709 BT_PARAMS_SCO scoParams
;
1710 BT_PARAMS_A2DP a2dpParams
;
1711 BT_PARAMS_MISC miscParams
;
1716 A_UINT8 noSCOPkts
; Number of SCO packets between consecutive PS
-POLLs
1717 A_UINT8 pspollTimeout
;
1721 A2DP BT stream parameters
1728 WLAN_PROTECT_POLICY_TYPE protectParams
;
1729 A_UINT16 wlanCtrlFlags
;
1734 BT coexistence registers values
1735 A_UINT32 mode
; Coexistence mode
1736 A_UINT32 scoWghts
; WLAN
and BT weights
1739 A_UINT32 mode2
; Coexistence mode2
1752 =====================================================================
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
.
1763 wmiconfig
\96setBTstatus
<streamType
> <status
>
1767 A_UINT8 streamType
; Stream type
1768 A_UINT8 status
; Stream status
1769 }WMI_SET_BT_STATUS_CMD
;
1796 =====================================================================
1800 SET_CHANNEL_PARAMETERS
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
.
1810 wmiconfig eth1
--wmode
<mode
> <list
>
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
.
1843 Defaults to all channels permitted by the
1844 current regulatory domain
.
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
.
1850 =====================================================================
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
.
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.
1870 wmiconfig eth1
--disc
=<timeout in seconds
>
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
1882 disconnectTimeout is
10 seconds
1885 This command can only be issued
while in a DISCONNECTED state
1887 =====================================================================
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
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
.
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
.
1928 =====================================================================
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
.
1942 ATH_HAL_SETCABTO_CMDID
1943 Sets the timeout waiting
for the multicast
1944 traffic after a DTIM
beacon (in TUs
).
1953 This command should be executed before issuing a connect command
.
1955 =====================================================================
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
.
1969 wmiconfig
\96sethostmode
=<asleep
/awake
>
1972 A_BOOL awake Set the host mode to awake
1973 A_BOOL asleep Set the host mode to asleep
1976 1 = awake
, 0 = asleep
1979 None
defined (default host mode is awake
)
1985 =====================================================================
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
.
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
>
2005 The non
-standard power saving scheme is
2006 disabled
and maximum
throughput (with no
2007 power saving
) is obtained
.
2010 Ad hoc power saving scheme is
enabled (but
2011 throughput may be decreased
)
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
.
2019 The duration is communicated between wireless
2020 STAs through an IE in beacons
and probe responses
.
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
.
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
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
.
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
2057 By
default, power_saving is enabled with atim_window
= 20 ms
2060 Can only be issued before the AR6000 starts an ad hoc network
2063 \93SET_BEACON_INT
\94
2065 =====================================================================
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
.
2081 wmiconfig eth1
--listen
=<#of TUs, can range from 15 to 3000>
2083 --listenbeacons
=<#of beacons, can range from 1 to 50>
2086 UINT16 listenInterval
2087 Specifies the listen interval in Kms
2088 (1024 ms
), ranging from
100 to
1000
2090 UINT16 listenbeacons
2091 Specifies the listen interval in beacons
,
2092 ranging from
1 to
50
2098 The device sets the listen interval equal to the beacon interval of the AP it associates
2104 =====================================================================
2111 Overrides the
short preamble capability of the AR6000 device
2117 WMI_LPREAMBLE_DISABLED
2118 The device is
short-preamble capable
2120 WMI_LPREAMBLE_ENABLED
2121 The device supports only the
long-
2134 =====================================================================
2140 Set the maximum service period
; indicates the number of packets the AR6001 can
2141 receive from the AP when triggered
2144 wmiconfig eth1
--setMaxSPLength
<maxSPLen
>
2148 An APSD_SP_LEN_TYPE value
2152 DELIVER_ALL_PKT
= 0x0
2160 maxSPLen is DELIVER_ALL_PKT
2165 =====================================================================
2172 Special feature
, sets the special mode on
/off
2175 wmiconfig eth1
--mode
<mode
>
2176 Set the optional mode
, where mode is special
or off
2192 =====================================================================
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
.
2205 wmiconfig eth1
--setbsspmkid
--bssid
=<aabbccddeeff
>
2210 The MAC address of the AP that the
2211 PMKID corresponds
to (6 bytes in hex
2215 Either
PMKID_DISABLE (0) to disable
2216 the PMKID
or PMKID_ENABLE (1) to
2217 enable
it (16 bytes in hex format
)
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
2227 = 0 (disable
), 1 (enable
)
2228 PKMID enabled
/disabled
2234 Only supported in infrastructure networks
2236 =====================================================================
2243 Configures the list of PMKIDs on the firmware
.
2246 wmiconfig
--setpmkidlist
--numpmkid
=<n
> --pmkid
=<pmkid_1
>
2247 ... --pmkid
=<pmkid_n
>
2249 Where n is the number of
pmkids (maximum
= 8) and pmkid_i is the ith
pmkid (16
2250 bytes in hex format
)
2254 A_UINT8 pmkid
[WMI_PMKID_LEN
];
2255 } __ATTRIB_PACK WMI_PMKID
;
2259 WMI_PMKID pmkidList
[WMI_MAX_PMKID_CACHE
];
2260 } __ATTRIB_PACK WMI_SET_PMKID_LIST_CMD
;
2269 Supported only in infrastructure modes
2271 =====================================================================
2278 The host uses
this command to provide the AR6000 device with guidelines on the
2279 desired trade
-off between power utilization
and performance
.
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
.
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
2294 WMI_POWER_MODE value
2297 (Recommended setting
) Tries to conserve
2298 power without sacrificing performance
2300 Setting that maximizes performance at
2301 the expense of power
2303 All other values are reserved
2307 See command parameters
2310 powerMode is REC_POWER
2313 This command should only be issued in the DISCONNECTED state
for the
2314 infrastructure network
.
2316 For a PM
-disabled ad hoc network
, the power mode should remain in
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
.
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
.
2326 =====================================================================
2333 The host uses
this command to configure power parameters
2336 wmiconfig eth1
--pmparams
--it
=<ms
> --np
=<number of PS POLL
>
2337 --dp
=<DTIM policy
: ignore
/normal
/stick
>
2341 Length of
time (in ms
) the AR6000 device
2342 remains awake after frame Rx
/Tx before going
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
2351 A WMI_POWER_PARAMS_CMD value
2355 The device does
not listen to any content after
2356 beacon (CAB
) traffic
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
)
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
2368 See command parameters
2383 =====================================================================
2387 SET_POWERSAVE_PARAMS
2390 Set the two AR6000 power save
timers (PS
-POLL timer
and APSD trigger timer
) and
2391 the two ASPD TIM policies
2394 wmiconfig eth1
--psparams
--psPollTimer
=<psPollTimeout in ms
>
2395 --triggerTimer
=<triggerTimeout in ms
> --apsdTimPolicy
=<ignore
/
2396 adhere
> --simulatedAPSDTimPolicy
=<ignore
/adhere
>
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
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
2410 APSD_TIM_POLICY apsdTimPolicy
;
2411 TIM behavior with queue APSD enabled
2413 APSD_TIM_POLICY simulatedAPSD
2416 TIM behavior with simulated APSD
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,
2430 psPollTimeout is
50 ms
; triggerTimeout is
10 ms
;
2431 apsdTimPolicy
= IGNORE_TIM_ALL_QUEUES_APSD
;
2432 simulatedAPSDTimPolicy
= POWERSAVE_TIMERS_POLICY
2435 When
this command is used
, all parameters must be set
; this command does
not
2436 allow setting only one parameter
.
2438 =====================================================================
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
.
2452 wmiconfig eth1
--ssid
=<ssid
> [--num
=<index
>]
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
)
2464 WMI_PROBED_SSID_INFO probedSSID
[1]
2465 } WMI_PROBED_SSID_CMD
2469 WMI_SSID_FLAG indicates the current
2470 entry in the active SSID table
2472 Length of the specified SSID in bytes
.
2473 If
= 0, the entry corresponding to the
2476 SSID string actively probed
for when
2477 permitted by the regulatory domain
2478 } WMI_PROBED_SSID_INFO
2483 DISABLE_SSID_FLAG
= 0
2485 SPECIFIC_SSID_FLAG
= 1
2486 Probes specified SSID
2492 The entries are unused
.
2497 =====================================================================
2504 Specify whether the disassociated frame should be sent
or not upon reassociation
.
2507 wmiconfig eth1
--setreassocmode
<mode
>
2515 Send disassoc to a previously connected AP
2518 Do
not send disassoc to previously connected
2519 AP upon reassociation
2528 =====================================================================
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
.
2538 wmiconfig
--setretrylimits
<frameType
> <trafficClass
> <maxRetries
>
2544 A WMI_FRAMETYPE specifying
2545 which type of frame is of interest
.
2547 Specifies a traffic
class (see
2548 \93CREATE_PSTREAM
\94). This
2549 parameter is only significant when
2550 frameType
= DATA_FRAMETYPE
.
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
2560 } WMI_RETRY_LIMIT_INFO
2564 WMI_RETRY_LIMIT_INFO retryLimitInfo
[1]
2565 } WMI_SET_RETRY_LIMITS_CMD
2569 MGMT_FRAMETYPE
= 0 Management frame
2570 CONTROL_FRAMETYPE
= 1 Control frame
2571 DATA_FRAMETYPE
= 2 Data frame
2575 Retries are set to
15
2580 =====================================================================
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
.
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.
2599 wmiconfig
--roam
<roamctrl
> <info
>, where info is
<scan period
>
2600 <scan threshold
> <roam threshold
> <roam rssi floor
>
2603 A_UINT8 roamCtrlType
;
2607 Roam to the specified BSSID
2609 WMI_SET_ROAM_MODE
= 2
2610 Default
, progd bias
, no roam
2612 WMI_SET_HOST_BIAS
= 3
2615 WMI_SET_LOWRSSI_SCAN_PARAMS
= 4
2618 A_UINT8 bssid
[ATH_MAC_LEN
];
2624 A_UINT8 bssBiasInfo
;
2627 A_UINT16 lowrssi_scan_period
;
2628 WMI_SET_LOWRSSI_SCAN_PARAMS
2631 lowrssi_scan_threshold
;
2632 WMI_SET_LOWRSSI_SCAN_PARAMS
2634 A_INT16 lowrssi_roam_threshold
;
2635 WMI_SET_LOWRSSI_SCAN_PARAMS
2637 A_UINT8 roam_rssi_floor
;
2638 WMI_SET_LOWRSSI_SCAN_PARAMS
2641 None
defined (default lowrssi scan is disabled
. Enabled only when scan period is set
.)
2646 =====================================================================
2653 Decides when RTS should be sent
.
2656 wmiconfig eth1
--setRTS
<pkt length 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
.
2675 =====================================================================
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
.
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
.
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.
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
>
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
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
.
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
.
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
.
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
.
2742 UINT8 shortScanRatio
2743 Number of
short scans to perform
for each
2746 UINT8 scanCtrlFlasgs
2748 UINT16 minactChDwellTime
2751 UINT32 maxDFSchActTime
2752 The maximum time a DFS channel can stay
2753 active before being marked passive
, specified in
2764 ForegroundScanEndPeriod
2767 BackgroundScanPeriod
2770 ActiveChannelDwellTime
2773 =====================================================================
2777 SET_TKIP_COUNTERMEASURES
2780 The host issues
this command to tell the target whether to enable
or disable TKIP
2787 UINT8 WMI_TKIP_CM_ENABLE
2788 Enables the countermeasures
2791 UINT8 TKIP_CM_DISABLE
2792 Disables the countermeasures
2798 By
default, TKIP MIC reporting is disabled
2803 =====================================================================
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
.
2815 wmiconfig
--power
<dbM
>
2819 The desired Tx power specified in dbM
.
2820 If
= 0, the device chooses the maximum
2821 permitted by the regulatory domain
.
2827 The maximum permitted by the regulatory domain
2836 =====================================================================
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
.
2847 wmiconfig eth1
--setVoicePktSize
<size
-in
-bytes
>
2851 Packet size in octets
2857 voicePktSize
default is
400 bytes
2860 No effect
if WMM is unavailable
2863 =====================================================================
2869 Overrides the AR6000 device WMM capability
2872 wmiconfig eth1
--setwmm
<enable
>
2879 Disables WMM support
2892 =====================================================================
2898 Configures TxOP Bursting when sending traffic to a WMM capable AP
2901 wmiconfig eth1
--txopbursting
<burstEnable
>
2905 Disallow TxOp bursting
2925 Bursting is off by
default
2930 =====================================================================
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
.
2944 wmiconfig
\96setwowmode
<enable
/disable
>
2948 Enable
or disable WoW
:
2958 None
defined (default WoW mode is disabled
).
2967 =====================================================================
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
2983 = 1 WSC registration in progress
2984 = 0 WSC protocol
not running
2990 None
defined (default = 0)
2996 =====================================================================
2999 SNR_THRESHOLD_PARAMS
3002 Configures how the AR6000 device monitors
and reports SNR of the connected BSS
,
3003 used as a link quality metric
.
3006 --snrThreshold
<weight
> <upper_threshold_1
> ...
3007 <upper_threshold_4
> <lower_threshold_1
> ... <lower_threshold_4
>
3012 Share with rssiThreshold
. Range in
[1, 16], used
3013 in the formula to calculate average RSSI
3016 Above thresholds expressed in db
, in ascending
3020 Below thresholds expressed in db
, in ascending
3024 The signal strength sampling frequency in
3025 seconds
. If polltime
= 0, signal strength
3026 sampling is disabled
3037 =====================================================================
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
3053 wmiconfig eth1
--startscan
<scan type
> <forcefgscan
> 0
3054 <homeDwellTime
> <forceScanInterval
>
3063 Requests a full scan
3065 Requests a
short scan
3071 Disable the foreground scan
3075 Forces a foreground scan
3077 A_UINT32 homeDwellTime
3078 Maximum duration in the home
3081 A_UINT32 forceScanInterval
3082 Time interval between
scans (in ms
)
3088 Disable forcing foreground scan
3091 isLegacy field will no longer be
supported (pass as
0 for now
)
3094 =====================================================================
3100 The host uses
this command to force a synchronization point between the command
3125 =====================================================================
3128 TARGET_ERROR_REPORT_BITMASK
3131 Allows the host to control
\93ERROR_REPORT
\94 events from the AR6000 device
.
3133 If error reporting is disabled
for an error type
, a count of errors of that type is
3134 maintained by the device
.
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
.
3139 Error counts
for each error type are available through the
\93GET_TARGET_STATS
\94
3143 wmiconfig eth1
--setErrorReportingBitmask
3147 Represents the set of
3148 WMI_TARGET_ERROR_VAL error types
3149 enabled
for reporting
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
3158 Host changes the PS setting when
3159 STA is off home channel
3161 WMI_TARGET_KEY_NOT_FOUND = 0x00000002
3163 WMI_TARGET_DECRYPTION_ERR = 0x00000004
3165 WMI_TARGET_BMISS = 0x00000008
3167 WMI_PSDISABLE_NODE_JOIN = 0x00000010
3168 A non-PS-enabled STA joined the
3170 WMI_TARGET_COM_ERR = 0x00000020
3171 Host/target communication error
3172 WMI_TARGET_FATAL_ERR = 0x00000040
3174 } WMI_TARGET_ERROR_VAL
3177 Bitmask is 0, and all error reporting is disabled
3183 =====================================================================
3192 Contains information describing BSSs collected during a scan
3195 Indicates signalling events in admission control
3198 The AR6000 device encounters an error while attempting to process
3202 The device has connected to a wireless network
3205 The device lost connectivity with a wireless network
3208 An error has occurred for which the host previously requested
3209 notification with the command
3210 \93TARGET_ERROR_REPORT_BITMASK\94
3215 GET_PMKID_LIST_EVENT
3216 Created in response to a \93GET_PMKID_LIST_CMD\94 command
3219 Response to the wmiconfig \93GET_WOW_LIST\94 command to
3220 retrieve the configured WoW patterns
3223 Neighbor APs that match the current profile were detected
3226 (Special feature) informs the host of the reception of a special frame
3229 A prioritized stream has been idle for a specified interval
3232 The AR6000 device is ready to accept commands
3235 The regulatory domain has changed
3237 REPORT_ROAM_DATA_EVENT
3238 Reports the roam time calculations made by the device
3239 (generated with a special build)
3243 Reply to a \93GET_TARGET_STATS\94 command
3246 Reports the roam table
3249 Signal strength from the connected AP has crossed the threshold
3250 defined in the \93RSSI_THRESHOLD_PARAMS\94 command
3253 A scan has completed (added status SCAN_ABORTED in release 2.0)
3256 Event generated by the TCMD
3259 TKIP MIC errors were detected
3261 =====================================================================
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.
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.
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.
3294 Specifies the frequency (in MHz) where the
3297 A WMI_BI_FTYPE value
3300 Indicates signal strength
3301 A_UINT8 bssid[ATH_MAC_LEN];
3303 } _ATTRIB_PACK_WMI_BSS_INFO_HDR;
3305 Beacon or Probe Response Frame
3310 Indicates a beacon frame
3312 Indicates a probe response frame
3316 =====================================================================
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.
3333 Access class pertaining to the
3336 UINT8 cac_indication
3337 Type of indication; indications are
3338 listed in WMI_CAC_INDICATION
3341 AP response status code for a
3344 UINT8 tspecSuggestion[63]
3345 Suggested TSPEC from AP
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
3356 =====================================================================
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.
3371 Corresponds to the command which generated
3374 A WMI_ERROR_CODE value
3384 All other values reserved
3388 =====================================================================
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.
3404 Channel frequency (in MHz) of the network the
3405 AR6000 are connected to
3408 MAC address of the AP the AR6000 are
3409 connected to or the BSSID of the ad hoc
3412 UINT16 listenInterval
3413 Listen interval (in Kms) that the AR6000 are
3417 Length (in bytes) of the beacon IEs
3420 Pointer to an array containing beacon IEs,
3421 followed first by association request IEs then by
3422 association response IEs
3425 Length (in bytes) of the assocReqIEs array
3428 Length (in bytes) of the assocRespIEs array
3433 =====================================================================
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.
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.
3454 A WMI_DISCONNECT_REASON value
3457 Indicates which BSS the device was connected to
3460 Length of the 802.11 association response frame
3461 that triggered this event, or 0 if not applicable
3463 UINT8 assocInfo[assocRespLen]
3464 Copy of the 802.11 association response frame
3468 NO_NETWORK_AVAIL =0x01
3469 Indicates that the device was unable to
3470 establish or find the desired network
3472 Indicates the devices is no longer receiving
3473 beacons from the BSS it was previously
3476 DISCONNECT_CMD =0x03
3477 Indicates a \93DISCONNECT\94 command was
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
3486 Indicates that the device failed 802.11
3487 authentication with the BSS
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
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
3501 INVALID_PROFILE =0x0A
3502 Indicates that an attempt was made to
3503 reconnect to a BSS that no longer matches the
3505 All other values are reserved
3506 } WMI_DISCONNECT_REASON
3509 =====================================================================
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.
3524 WMI_TARGET_ERROR_VAL value. See
3525 \93TARGET_ERROR_REPORT_BITMASK\94.
3542 A non-power save disabled node has joined
3543 the PS-enabled network
3546 =====================================================================
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
3564 =====================================================================
3568 GET_PMKID_LIST_EVENT
3571 Generated by firmware in response to a \93GET_PMKID_LIST_CMD\94 command.
3576 Contains the number of PMKIDs in the reply
3577 WMI_PMKID pmkidList[1];
3578 } __ATTRIB_PACK WMI_PMKID_LIST_REPLY;
3584 =====================================================================
3591 Response to the wmiconfig \96getwowlist command to retrieve the configured Wake on
3601 Total number of patterns in the list
3602 A_UINT8 this_filter_num
3605 Shows whether WoW is enabled or disabled
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;
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
3631 =====================================================================
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.
3643 A total of numberOfAps pairs of bssid/bssFlags exist, one pair for each AP.
3650 The number of APs reported about in
3654 MAC address of a neighbor AP
3656 A WMI_BSS_FLAGS value
3662 WMI_DEFAULT_BSS_FLAGS = 0
3663 Logical OR of 1 or more
3665 WMI_PREAUTH_CAPABLE_BSS
3667 Indicates that this AP is capable of
3671 Indicates that the AR6000 have a
3672 valid pairwise master key for this AP
3676 =====================================================================
3684 Special feature, informs host of the reception of a special frame.
3694 A_UINT8 srcAddr[ATH_MAC_LEN];
3695 A_UINT8 bssid[ATH_MAC_LEN];
3696 }WMI_OPT_RX_INFO_HDR
3701 =====================================================================
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.
3722 Indicated the traffic class of priority
3723 stream that timed out
3738 =====================================================================
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.
3754 A WMI_PHY_CAPABILITY value. Indicates the
3755 capabilities of the device wireless module\92s radio
3759 WMI_11A_CAPABILITY = 1
3760 WMI_11G_CAPABILITY = 2
3761 WMI_11AG_CAPABILITY = 3
3762 } WMI_PHY_CAPABILITY
3765 =====================================================================
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.
3784 The range of 0x0000 \96 0x00FF
3785 corresponds to an ISO country code.
3787 Other regCodes are reserved for world
3788 mode settings and specific regulatory
3795 =====================================================================
3803 A reply to a \93GET_TARGET_STATS\94 command.
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.
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,
3825 Number of packets which failed Tx, due
3827 ... REPORT_STATISTICS, continued
3828 UINT32 tx_failed_cnt
3829 Number of data packets that failed Tx
3831 Number of Tx retries for all packets
3832 UINT32 tx_rts_fail_cnt
3833 Number of RTS Tx failed count
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
3845 Number of Rx errors due to all failures
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
3851 UINT32 rx_decrypt_err
3852 Number of Rx errors due to decryption
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
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
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
3877 Number of BMISS interrupts since
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.
3898 =====================================================================
3904 Reports the roam table, which contains the current roam mode and this information
3911 A_UINT8 bssid[ATH_MAC_LEN];
3920 Utility value used in roaming decision
3922 Base utility with the BSS
3924 Host configured for this BSS
3934 Host bias-based roam
3937 Lock to the current BSS
3940 Autonomous roaming disabled
3943 =====================================================================
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
3958 A WMI_RSSI_THRESHOLD_VAL
3959 value, which indicates the range of
3960 the average signal strength
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
3972 =====================================================================
3978 Indicates the scan status. if the Scan was not completed, this event is generated with
3979 the status A_ECANCELED.
3989 #define SCAN_ABORTED 16
3990 #define SCAN_COMPLETED 0
3993 } WMI_SCAN_COMPLETE_EVENT;
3996 =====================================================================
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.
4017 =====================================================================
4025 Indicates that TKIP MIC errors were detected.
4032 Indicates the TKIP key ID
4039 See event parameters
4041 =====================================================================
4043 WMI Extension Commands
4045 The WMI EXTENSION command is used to multiplex a collection of
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
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.
4059 All extensions (subcommandIds) are listed in the header file include/wmix.h.
4060 See also \93WMI Extension Events\94 on page B-58.
4063 WMI Extension Commands
4067 Read GPIO pins configured for input
4070 Acknowledge and re-arm GPIO interrupts reported earlier
4073 Manage output on GPIO pins configured for output
4076 Read an arbitrary GPIO register
4079 Dynamically change GPIO configuration
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
4087 =====================================================================
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.
4096 NOTE: Support for GPIO is optional.
4118 =====================================================================
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).
4131 NOTE: Support for GPIO is optional.
4138 A mask of interrupting GPIO pins (e.g., ack_mask
4139 bit [3] acknowledges an interrupt from the pin GPIO3).
4148 The host should acknowledge only interrupts about which it was notified.
4151 =====================================================================
4157 Manages output on GPIO pins configured for output.
4159 Conflicts between set_mask and clear_mask or enable_mask and disable_mask result
4160 in undefined behavior.
4162 NOTE: Support for GPIO is optional.
4169 Specifies which pins should drive a 1 out
4171 Specifies which pins should drive a 0 out
4173 Specifies which pins should be enabled for output
4175 Specifies which pins should be disabled for output
4190 =====================================================================
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.
4200 NOTE: Support for GPIO is optional.
4208 Specifies a GPIO register identifier, as defined
4209 in include/AR6000/AR6000_gpio.h
4221 =====================================================================
4227 Allows the host to dynamically change GPIO configuration (usually handled
4228 statically through the GPIO configuration DataSet).
4230 NOTE: Support for GPIO is optional.
4237 Specifies a GPIO register identifier, as defined in
4238 include/AR6000/AR6000_gpio.h
4240 Specifies a value to write to the specified
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.
4256 =====================================================================
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.
4267 wmiconfig eth1 --lqThreshold <enable> <upper_threshold_1>...
4268 <upper_threshold_4> <lower_threshold_1>... <lower_threshold_4>
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;
4284 Disable link quality sampling
4287 Enable link quality sampling
4292 Above thresholds (value in [0,100]), in ascending
4295 Below_Val [1...4] = below thresholds (value
4296 in [0,100]), in ascending order
4304 =====================================================================
4305 WMI Extension Events
4307 The WMI EXTENSION event is used for a collection of events that:
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
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
4321 All extensions (subcommandIds) are listed in the header file include/wmix.h.
4322 See also \93WMI Extension Commands\94 on page B-55.
4325 WMI Extension Events
4329 Acknowledges a host set command has been processed by the device
4332 Response to a host\92s request for data
4335 Signals that GPIO interrupts are pending
4338 =====================================================================
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.
4347 NOTE: Support for GPIO is optional.
4359 =====================================================================
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).
4369 NOTE: Support for GPIO is optional.
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).
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)
4388 =====================================================================
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.
4402 NOTE: Support for GPIO is optional.
4409 Indicates which GPIO interrupts are currently pending
4412 A recent copy of the GPIO input values, taken at the
4413 time the most recent GPIO interrupt was processed
4420 =====================================================================