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 22Wireless 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 29Data 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 37WMI 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 59Data 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 76Connection States 77 78 Table B-1 describes the AR6000 WLAN connection states: 79 80 Table B-1. AR6000 Connection States 81 82Connection 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 �READY� 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 �DISCONNECT� 92 event. 93 94CONNECTED 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 �CONNECT� event. 100 101 102Message 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 108Table B-2. AR6000 Message Types 109 110Message Type 111 Description 112 113Commands 114 Control messages that flow from the host to the device 115 116Replies/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 125WMI 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 147Command 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 �CONNECT� 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 159Command 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 �SYNCHRONIZE� 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 �SYNCHRONIZE� 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 �SYNCHRONIZE� 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 �SYNCHRONIZE� command and 177 synchronization messages on all data channels, then issues the desired 178 command. 179 180 181 182WMI 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 �BSSINFO� 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 �ERROR_REPORT� events from the AR6000 333 334 335 336 337Name 338 ADD_BAD_AP 339 340Synopsis 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 348Command 349 wmiconfig eth1 --badap <bssid> <badApIndex> 350 351Command 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 358Command Values 359 badApIndex = 0, 1 Entry in the bad AP table to use 360 361Reset Value 362 The bad AP table is cleared 363 364Restrictions 365 None 366 367See Also 368 �DELETE_BAD_AP� on page B-13 369 370===================================================================== 371Name 372 ADD_CIPHER_KEY 373 374Synopsis 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 �CONNECT� command. 380 381Command 382 wmiconfig eth1 --cipherkey <keyIndex> <keyType> <keyUsage> 383 <keyLength> <keyopctrl> <keyRSC> <key> 384 385Command 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 419Reset Value 420 The four available keys are disabled. 421 422Restrictions 423 The cipher should correspond to the encryption mode specified in the �CONNECT� 424 command. 425 426See Also 427 �DELETE_CIPHER_KEY� 428 429===================================================================== 430 431 432Name 433 ADD_WOW_PATTERN 434 435Synopsis 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 442Command 443 wmiconfig �addwowpattern <list-id> <filter-size> <filter-offset> 444 <pattern> <mask> 445 446Command 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 454Reply Parameters 455 None 456 457Reset Value 458 None defined (default host mode is awake) 459 460Restrictions 461 None 462 463See Also 464 �DELETE_WOW_PATTERN� 465 466===================================================================== 467 468 469Name 470 CLR_RSSI_SNR 471 472Synopsis 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 477Command 478 wmiconfig eth1 --cleanRssiSnr 479 480Command Parameters 481 None 482 483Reply Parameters 484 None 485 486Reset Value 487 None defined 488 489Restrictions 490 None 491 492===================================================================== 493 494Name 495 CONNECT_CMD 496 497Synopsis 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 531Command 532 wmiconfig --setconnectctrl <ctrl flags bitmask> 533 534Command 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 604Reset Value 605 None defined 606 607Restrictions 608 None 609 610===================================================================== 611 612 613Name 614 CREATE_PSTREAM 615 616Synopsis 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 � 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 638Command 639 --createqos <user priority> <direction> <traffic class> 640<trafficType> <voice PS capability> <min service interval> <max 641service interval> <inactivity interval> <suspension interval> 642<service start time> <tsid> <nominal MSDU> <max MSDU> <min data 643rate> <mean data rate> <peak data rate> <max burst size> <delay 644bound> <min phy rate> <sba> <medium time> where: 645 646 <user priority> 647 802.1D user priority range (0�7) 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�15) 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 698Command 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 710Capability 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) 734Command 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 776Reset 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 780Restrictions 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 786See Also 787 �DELETE_PSTREAM� 788===================================================================== 789 790Name 791 DELETE_BAD_AP 792 793Synopsis 794 The host uses this command to clear a particular entry in the bad AP table 795 796Command 797 wmiconfig eth1 --rmAP [--num=<index>] // used to clear a badAP 798 entry. num is index from 0-3 799 800Command Parameters 801 UINT8 badApIndex Index [0...n] that identifies the entry in the bad 802 AP table to delete 803 804Command Values 805 badApIndex = 0, 1, 2, 3 806 Entry in the bad AP table 807 808Reset Value 809 None defined 810 811Restrictions 812 None 813 814See Also 815 �ADD_BAD_AP� 816 817===================================================================== 818 819 820Name 821 DELETE_CIPHER_KEY 822 823Synopsis 824 The host uses this command to delete a key that was previously added with the 825 �ADD_CIPHER_KEY� command. 826 827Command 828 TBD 829 830Command Parameters 831 UINT8 keyIndex Index (0...3) of the key to be deleted 832 833Command Values 834 keyIndex = 0, 1,2, 3 Key to delete 835 836Reset Value 837 None 838 839Restrictions 840 The host should not delete a key that is currently in use by the AR6000. 841 842See Also 843 �ADD_CIPHER_KEY� 844 845===================================================================== 846 847Name 848 DELETE_PSTREAM 849 850Synopsis 851 The host uses this command to delete a prioritized data endpoint created by a 852 previous �CREATE_PSTREAM� command 853 854Command 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 866Command Parameters 867 A_UINT8 trafficClass Indicate the traffic class of the stream 868 being deleted 869 870Command 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 880Reply Values 881 N/A 882 883Restrictions 884 This command should only be issued after a �CREATE_PSTREAM� command has 885 successfully created a prioritized stream 886 887See Also 888 �CREATE_PSTREAM� 889 890===================================================================== 891 892 893Name 894 DELETE_WOW_PATTERN 895 896Synopsis 897 The host uses this command to remove a pre-specified pattern from the 898 WoW pattern list. 899 900Command 901 wmiconfig �delwowpattern <list-id> <pattern-id> 902 903Command 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 908Reply Parameters 909 None 910 911 912 913Reset Value 914 None defined 915 916Restrictions 917 None 918 919See Also 920 �ADD_WOW_PATTERN� 921 922===================================================================== 923 924 925Name 926 EXTENSION 927 928Synopsis 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 935Command 936 N/A 937 938Command Parameters 939 Command-specific 940 941Command Values 942 Command-specific 943 944Reply Parameters 945 Command-specific 946 947Reset Values 948 None defined 949 950Restrictions 951 None defined 952 953===================================================================== 954 955 956Name 957 GET_BIT_RATE 958 959Synopsis 960 Used by the host to obtain the rate most recently used by the AR6000 device 961 962Command 963 wmiconfig eth1 --getfixrates 964 965Command Parameters 966 None 967 968 969 970Reply Parameters 971 INT8 972 rateIndex 973 See the �SET_BIT_RATE� command 974 975Reset Values 976 None 977 978Restrictions 979 This command should only be used during development/debug; it is not intended 980for use in production. It is only valid when the device is in the CONNECTED state 981 982See Also 983 �SET_BIT_RATE� 984 985===================================================================== 986 987 988Name 989 GET_CHANNEL_LIST 990 991Synopsis 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 995Command 996 TBD 997 998Command Parameters 999 None 1000 1001Reply 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 1006Reset Values 1007 None defined 1008 1009Restrictions 1010 The maximum number of channels that can be reported are 32 1011 1012===================================================================== 1013 1014 1015Name 1016 GET_FIXRATES 1017 1018Synopsis 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 1023Synopsis 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 �SET_FIXRATES�. 1026 1027Command 1028 wmiconfig eth1 --getfixrates 1029 1030Command 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 1036Reply Parameters 1037 None 1038 1039Reset Value 1040 None defined 1041 1042Restrictions 1043 None 1044 1045See Also 1046 �SET_FIXRATES� 1047 1048===================================================================== 1049 1050 1051 1052Name 1053 GET_PMKID_LIST_CMD 1054 1055Synopsis 1056 Retrieves the list of PMKIDs on the firmware. The 1057 WMI_GET_PMKID_LIST_EVENT is generated by the firmware. 1058 1059Command 1060 TBD 1061 1062Command Parameters 1063 1064Reset Values 1065 None 1066 1067Restrictions 1068 None 1069 1070See Also 1071 SET_PMKID_LIST_CMD GET_PMKID_LIST_EVENT 1072 1073===================================================================== 1074 1075 1076Name 1077 GET_ROAM_TBL 1078 1079Synopsis 1080 Retrieve the roaming table maintained on the target. The response is reported 1081 asynchronously through the ROAM_TBL_EVENT. 1082 1083Command 1084 wmiconfig --getroamtable <roamctrl> <info> 1085 1086Command Parameters 1087 A_UINT8 roamCtrlType; 1088 A_UINT16 roamMode 1089 A_UINT16 numEntries 1090 WMI_BSS_ROAM_INFO bssRoamInfo[1] 1091 1092Reply Value 1093 Reported asynchronously through the ROAM_TBL_EVENT 1094 1095Reset Value 1096 None defined 1097 1098Restrictions 1099 None 1100 1101See Also 1102 SET_KEEPALIVE 1103 1104===================================================================== 1105 1106 1107Name 1108 GET_TARGET_STATS 1109 1110Synopsis 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 1116Command 1117 wmiconfig --getTargetStats --clearStats 1118 1119Command Parameters 1120 TARGET_STATS targetStats 1121 WMI_TARGET_STATS 1122 UINT8 clearStats 1123 1124 1125Reply Value 1126 RSSI return value (0�100) 1127 1128Reset Values 1129 All statistics are cleared (zeroed) 1130 1131Restrictions 1132 The --getTargetStats option must be used; the --clearStats option is also available also 1133 1134 1135===================================================================== 1136 1137Name 1138 GET_TX_PWR 1139 1140Synopsis 1141 The host uses this command to retrieve the current Tx power level 1142 1143Command 1144 wmiconfig -i eth1 --getpower 1145 1146Command Parameters 1147 None 1148 1149Reply Parameters 1150 UINT16 dbM The current Tx power level specified in dbM 1151 1152Reset Values 1153 The maximum permitted by the regulatory domain 1154 1155Restrictions 1156 None 1157 1158See Also 1159 �SET_TX_PWR� 1160 1161===================================================================== 1162 1163 1164Name 1165 GET_WOW_LIST 1166 1167Synopsis 1168 The host uses this command to retrieve the current list of WoW patterns. 1169 1170Command 1171 wmiconfig �getwowlist <list-id> 1172 1173Command Parameters 1174 A_UINT8 filter_list_id ID of the list of WoW patterns to retrieve 1175 1176Reply 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 1185Reset Value 1186 None defined 1187 1188Restrictions 1189 None 1190 1191See Also 1192 �SET_WSC_STATUS� 1193 1194===================================================================== 1195 1196 1197Name 1198 LQ_THRESHOLD_PARAMS 1199 1200Synopsis 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 1204Command 1205 --lqThreshold <enable> <upper_threshold_1> ... 1206 <upper_threshold_4> <lower_threshold_1> ... <lower_threshold_4> 1207 1208Command 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 1216Command Values 1217 See command parameters 1218 1219Reset Value 1220 None defined 1221 1222Restrictions 1223 None 1224 1225===================================================================== 1226 1227 1228Name 1229 OPT_TX_FRAME 1230 1231Synopsis 1232 Special feature, sends a special frame. 1233 1234Command 1235 wmiconfig --sendframe <frmType> <dstaddr> <bssid> <optIEDatalen> 1236 <optIEData> 1237 1238Command 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 1247Command Values 1248 <frmtype> = 1 Probe request frame 1249 = 2 Probe response frame 1250 = 3 CPPP start 1251 = 4 CPPP stop 1252 1253Reset Value 1254 None defined 1255 1256Restrictions 1257 Send a special frame only when special mode is on. 1258 1259===================================================================== 1260 1261 1262Name 1263 RECONNECT 1264 1265Synopsis 1266 This command requests a reconnection to a BSS to which the AR6000 device was 1267 formerly connected 1268 1269Command 1270 TBD 1271 1272Command 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 1277Command Values 1278 None 1279 1280Reset Values 1281 None 1282 1283Restrictions 1284 None 1285 1286See Also 1287 �CONNECT_CMD� 1288 1289===================================================================== 1290 1291 1292Name 1293 RSSI_THRESHOLD_PARAMS 1294 1295Synopsis 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 1303Command 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 1310Command 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 1317Command Values 1318 None defined 1319 1320Reset Values 1321 pollTime is 0, and sampling is disabled 1322 1323Restrictions 1324 Can only be issued if the AR6000 device is connected 1325 1326 1327===================================================================== 1328 1329Name 1330 SCAN_PARAMS 1331 1332Synopsis 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 1338Command 1339 wmiconfig -scan -minact=<ms> --maxact=<ms> 1340 1341Command Parameters 1342 UINT16 maxact Channel dwell time (in ms), default = 0 1343 UINT16 minact Channel dwell time (in ms), default = 105 1344 1345Command Values 1346 See channel parameters 1347 1348Reset Values 1349 None defined 1350 1351Restrictions 1352 The minact value should be greater than 0; maxact should be between 5�65535 ms 1353 and greater than minact 1354 1355===================================================================== 1356 1357 1358Name 1359 SET_ACCESS_PARAMS 1360 1361Synopsis 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 1365Command 1366 wmiconfig eth1 --acparams --txop <limit> --cwmin <0-15> 1367 --cwmax <0-15> --aifsn<0-15> 1368 1369Command 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 1377Command Values 1378 None 1379 1380Reset Values 1381 Reasonable defaults that vary, between endpoints (prioritized streams) 1382 1383Restrictions 1384 None 1385 1386===================================================================== 1387 1388 1389Name 1390 SET_ADHOC_BSSID 1391 1392Synopsis 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 1397Command 1398 wmiconfig eth1 --adhocbssid <bssid> 1399 1400Command Parameters 1401 A_UINT8 bssid[ATH_MAC_LEN] BSSID is specified in xx:xx:xx:xx:xx:xx format 1402 1403Command Values 1404 None 1405 1406Reset Values 1407 None 1408 1409Restrictions 1410 None 1411 1412===================================================================== 1413 1414 1415Name 1416 SET_AKMP_PARAMS 1417 1418Synopsis 1419 Enables or disables multi PMKID mode. 1420 1421Command 1422 wmiconfig eth1 --setakmp --multipmkid=<on/off> 1423 1424Command Parameters 1425 typedef struct { 1426 A_UINT32 akmpInfo; 1427 } WMI_SET_AKMP_PARAMS_CMD; 1428 1429Command 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 1440Reset Values 1441 MultiPMKID mode is disabled 1442 1443Restrictions 1444 None 1445 1446===================================================================== 1447 1448 1449Name 1450 SET_APPIE 1451 1452Synopsis 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 1456Command 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 1466Command Parameters 1467 mgmtFrmType; 1468 A WMI_MGMT_FRAME_TYPE 1469 1470 ieLen; 1471 Length of the IE to add to the GMT frame 1472 1473Command Values 1474 None 1475 1476Reset Value 1477 None defined 1478 1479Restrictions 1480 Supported only for the probe request and association request management frame 1481types. Also, only one IE can be added per management frame type. 1482 1483===================================================================== 1484 1485 1486Name 1487 SET_ASSOC_INFO 1488 1489Synopsis 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 1495Command 1496 wmiconfig eth1 --setAssocIe <IE> 1497 1498Command Parameters 1499 UINT8 ieType Used directly in 802.11 frames 1500 UINT8 bufferSize Size of assocInfo (in bytes) ranging from 1501 0�240. If = 0, previously set IEs are cleared. 1502 UINT8 assocInfo[bufferSize] Used directly in 802.11 frames 1503 1504Command Values 1505 None 1506 1507Reset Values 1508 IEs are cleared 1509 1510Restrictions 1511 This command can only be issued in the DISCONNECTED state 1512 1513===================================================================== 1514 1515 1516Name 1517 SET_AUTHMODE 1518 1519Synopsis 1520 Sets the 802.11 authentication mode of reconnection 1521 1522Command 1523 wmiconfig eth1 --setauthmode <mode> 1524 1525Command Parameters 1526 UINT8 mode 1527 1528Command Values 1529 mode = 0x00 Proceed with authentication during reconnect 1530 = 0x01 Do not proceed with authentication during reconnect 1531 1532Reset Values 1533 Authentication 1534 1535Restrictions 1536 None 1537 1538===================================================================== 1539 1540 1541Name 1542 SET_BEACON_INT 1543 1544Synopsis 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 1550Command 1551 wmiconfig eth1 --ibssconintv 1552 1553Command Parameters 1554 UINT16 beaconInterval Specifies the beacon interval in TU units (1024 ms) 1555 1556Command Values 1557 None 1558 1559Reset Values 1560 The default beacon interval is 100 TUs (102.4 ms) 1561 1562Restrictions 1563 This command can only be issued before the AR6000 device starts an ad hoc network 1564 1565See Also 1566 �SET_IBSS_PM_CAPS� 1567 1568===================================================================== 1569 1570 1571Name 1572 SET_BIT_RATE 1573 1574Synopsis 1575 The host uses this command to set the AR6000 device to a specific fixed rate. 1576 1577Command 1578 wmiconfig eth1 --setfixrates <rate_0> ... <rate_n> 1579 1580Command 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 1600Command Values 1601 See command parameters 1602 1603Reset Values 1604 The dynamic rate is determined by the AR6000 device 1605 1606Restrictions 1607 This command is intended for use only during development/debug; it is not 1608intended for use in production 1609 1610See Also 1611 �GET_BIT_RATE� 1612 1613===================================================================== 1614 1615 1616Name 1617 SET_BMISS_TIME 1618 1619Synopsis 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 1625Command(s) 1626 wmiconfig eth1 --setbmissbeacons=<val> 1627 wmiconfig eth1 --setbmisstime=<val> 1628 1629Command 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 1634Command Values 1635 None 1636 1637Reset Values 1638 bmissTime is 1500 TUs (1536 ms) 1639 1640Restrictions 1641 None 1642 1643===================================================================== 1644 1645 1646Name 1647 SET_BSS_FILTER 1648 1649Synopsis 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 �BSSINFO� event. As the device performs 1652 either foreground or background scans, it applies the filter and sends �BSSINFO� 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 �Scan and Roam� 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 1661Command 1662 wmiconfig eth1 �filter = <filter> --ieMask 0x<mask> 1663 1664Command 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 1680Reply Value 1681 None 1682 1683Reset Value 1684 BssFilter = NONE_BSS_FILTER (0) 1685 1686Restrictions 1687 None 1688 1689See Also 1690 �CONNECT_CMD� 1691 1692===================================================================== 1693 1694 1695Name 1696 SET_BT_PARAMS 1697 1698Synopsis 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 1703Command 1704 wmiconfig �setBTparams <paramType> <params> 1705 1706Command 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 1743Command Values 1744 None defined 1745 1746Reset Value 1747 None 1748 1749Restrictions 1750 None 1751 1752===================================================================== 1753 1754 1755Name 1756 SET_BT_STATUS 1757 1758Synopsis 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 1762Command 1763 wmiconfig �setBTstatus <streamType> <status> 1764 1765Command Parameters 1766 { 1767 A_UINT8 streamType; Stream type 1768 A_UINT8 status; Stream status 1769 }WMI_SET_BT_STATUS_CMD; 1770 1771Command 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 1790Reset Value 1791 None defined 1792 1793Restrictions 1794 None 1795 1796===================================================================== 1797 1798 1799Name 1800 SET_CHANNEL_PARAMETERS 1801 1802Synopsis 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 1809Command 1810 wmiconfig eth1 --wmode <mode> <list> 1811 1812Command 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 1826Command Values 1827 phyMode = { 1828 Wireless mode 1829 11a = 0x01 1830 11g = 0x02 1831 11ag = 0x03 1832 11b = 0x04 1833 11g only = 0x05 1834 } 1835 1836Reset 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 1846Restrictions 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 1853Name 1854 SET_DISC_TIMEOUT 1855 1856Synopsis 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 �DISCONNECT� event. After 1860 sending the �DISCONNECT� 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 �SET_SCAN_PARAMS� 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 �DISCONNECT� 1866 event to the host. The state is maintained until a shutdown or host sets different 1867 timeout value from 0. 1868 1869Command 1870 wmiconfig eth1 --disc=<timeout in seconds> 1871 1872Command Parameters 1873 UINT8 disconnectTimeout 1874 Specifies the time limit (in seconds) after 1875 which a failure to reestablish a connection 1876 results in a �DISCONNECT� event 1877 1878Command Values 1879 None 1880 1881Reset Values 1882 disconnectTimeout is 10 seconds 1883 1884Restrictions 1885 This command can only be issued while in a DISCONNECTED state 1886 1887===================================================================== 1888 1889 1890Name 1891 SET_FIXRATES 1892 1893Synopsis 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 1906Command 1907 TBD 1908 1909Command 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 1916Command Values 1917 None 1918 1919Reset Value 1920 None defined 1921 1922Restrictions 1923 None 1924 1925See Also 1926 �GET_FIXRATES� 1927 1928===================================================================== 1929 1930 1931Name 1932 SET_WHAL_PARAM 1933 1934Synopsis 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 1938Command 1939 TBD 1940 1941Command Parameters 1942 ATH_HAL_SETCABTO_CMDID 1943 Sets the timeout waiting for the multicast 1944 traffic after a DTIM beacon (in TUs). 1945 1946Command Values 1947 None 1948 1949Reset Value 1950 Default = 10 TUs 1951 1952Restrictions 1953 This command should be executed before issuing a connect command. 1954 1955===================================================================== 1956 1957 1958Name 1959 SET_HOST_SLEEP_MODE 1960 1961Synopsis 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 1968Command 1969 wmiconfig �sethostmode=<asleep/awake> 1970 1971Command Parameters 1972 A_BOOL awake Set the host mode to awake 1973 A_BOOL asleep Set the host mode to asleep 1974 1975Command Values 1976 1 = awake, 0 = asleep 1977 1978Reset Value 1979 None defined (default host mode is awake) 1980 1981Restrictions 1982 None 1983 1984 1985===================================================================== 1986 1987Name 1988 SET_IBSS_PM_CAPS 1989 1990Synopsis 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 1996Command 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 2002Command 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 �SET_BEACON_INT� 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 2053Command Values 2054 None 2055 2056Reset Values 2057 By default, power_saving is enabled with atim_window = 20 ms 2058 2059Restrictions 2060 Can only be issued before the AR6000 starts an ad hoc network 2061 2062See Also 2063 �SET_BEACON_INT� 2064 2065===================================================================== 2066 2067 2068 2069Name 2070 SET_LISTEN_INT 2071 2072Synopsis 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 �CONNECT� event. 2079 2080Command 2081 wmiconfig eth1 --listen=<#of TUs, can range from 15 to 3000> 2082 2083 --listenbeacons=<#of beacons, can range from 1 to 50> 2084 2085Command 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 2094Command Values 2095 None 2096 2097Reset Values 2098 The device sets the listen interval equal to the beacon interval of the AP it associates 2099 to. 2100 2101Restrictions 2102 None 2103 2104===================================================================== 2105 2106 2107Name 2108 SET_LPREAMBLE 2109 2110Synopsis 2111 Overrides the short preamble capability of the AR6000 device 2112 2113Command 2114 TBD 2115 2116Command 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 2124Command Values 2125 None 2126 2127Reset Value 2128 None defined 2129 2130Restrictions 2131 None 2132 2133 2134===================================================================== 2135 2136Name 2137 SET_MAX_SP_LEN 2138 2139Synopsis 2140 Set the maximum service period; indicates the number of packets the AR6001 can 2141 receive from the AP when triggered 2142 2143Command 2144 wmiconfig eth1 --setMaxSPLength <maxSPLen> 2145 2146Command Parameters 2147 UINT8 maxSPLen 2148 An APSD_SP_LEN_TYPE value 2149 2150Command 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 2159Reset Values 2160 maxSPLen is DELIVER_ALL_PKT 2161 2162Restrictions 2163 None 2164 2165===================================================================== 2166 2167 2168Name 2169 SET_OPT_MODE 2170 2171Synopsis 2172 Special feature, sets the special mode on/off 2173 2174Command 2175 wmiconfig eth1 --mode <mode> 2176 Set the optional mode, where mode is special or off 2177 2178Command Parameters 2179 enum { 2180 SPECIAL_OFF 2181 SPECIAL_ON 2182 } OPT_MODE_TYPE; 2183 2184Command Values 2185 2186Reset Value 2187 Mode = Off 2188 2189Restrictions 2190 None 2191 2192===================================================================== 2193 2194 2195Name 2196 SET_PMKID 2197 2198Synopsis 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 2204Command 2205 wmiconfig eth1 --setbsspmkid --bssid=<aabbccddeeff> 2206 --bsspmkid=<pmkid> 2207 2208Command 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 2225Command Values 2226 enable 2227 = 0 (disable), 1 (enable) 2228 PKMID enabled/disabled 2229 2230Reset Values 2231 None defined 2232 2233Restrictions 2234 Only supported in infrastructure networks 2235 2236===================================================================== 2237 2238 2239Name 2240 SET_PMKID_LIST_CMD 2241 2242Synopsis 2243 Configures the list of PMKIDs on the firmware. 2244 2245Command 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 2252Command 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 2262Command Values 2263 None 2264 2265Reset Values 2266 None 2267 2268Restrictions 2269 Supported only in infrastructure modes 2270 2271===================================================================== 2272 2273 2274Name 2275 SET_POWER_MODE 2276 2277Synopsis 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 2289Command 2290 TBD 2291 2292Command 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 2306Command Values 2307 See command parameters 2308 2309Reset Values 2310 powerMode is REC_POWER 2311 2312Restrictions 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 2329Name 2330 SET_POWER_PARAMS 2331 2332Synopsis 2333 The host uses this command to configure power parameters 2334 2335Command 2336 wmiconfig eth1 --pmparams --it=<ms> --np=<number of PS POLL> 2337 --dp=<DTIM policy: ignore/normal/stick> 2338 2339Command 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 2367Command Parameters 2368 See command parameters 2369 2370Reset Values 2371 idle_period 2372 200 ms 2373 2374 pspoll_number 2375 = 1 2376 2377 dtim_policy 2378 = NORMAL_DTIM 2379 2380Restrictions 2381 None 2382 2383===================================================================== 2384 2385 2386Name 2387 SET_POWERSAVE_PARAMS 2388 2389Synopsis 2390 Set the two AR6000 power save timers (PS-POLL timer and APSD trigger timer) and 2391 the two ASPD TIM policies 2392 2393Command 2394 wmiconfig eth1--psparams --psPollTimer=<psPollTimeout in ms> 2395 --triggerTimer=<triggerTimeout in ms> --apsdTimPolicy=<ignore/ 2396 adhere> --simulatedAPSDTimPolicy=<ignore/adhere> 2397 2398Command 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 2426Command Values 2427 None 2428 2429Reset Values 2430 psPollTimeout is 50 ms; triggerTimeout is 10 ms; 2431 apsdTimPolicy = IGNORE_TIM_ALL_QUEUES_APSD; 2432 simulatedAPSDTimPolicy = POWERSAVE_TIMERS_POLICY 2433 2434Restrictions 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 2441Name 2442 SET_PROBED_SSID 2443 2444Synopsis 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 �CONNECT_CMD� 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 2451Command 2452 wmiconfig eth1 --ssid=<ssid> [--num=<index>] 2453 2454Command 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 2480Command 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 2491Reset Value 2492 The entries are unused. 2493 2494Restrictions 2495 None 2496 2497===================================================================== 2498 2499 2500Name 2501 SET_REASSOC_MODE 2502 2503Synopsis 2504 Specify whether the disassociated frame should be sent or not upon reassociation. 2505 2506Command 2507 wmiconfig eth1 --setreassocmode <mode> 2508 2509Command Parameters 2510 UINT8 mode 2511 2512Command 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 2521Reset Values 2522 None defined 2523 2524Restrictions 2525 None 2526 2527 2528===================================================================== 2529 2530Name 2531 SET_RETRY_LIMITS 2532 2533Synopsis 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 2537Command 2538 wmiconfig --setretrylimits <frameType> <trafficClass> <maxRetries> 2539 <enableNotify> 2540 2541Command 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 �CREATE_PSTREAM�). 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 2567Command Values 2568 { 2569 MGMT_FRAMETYPE = 0 Management frame 2570 CONTROL_FRAMETYPE = 1 Control frame 2571 DATA_FRAMETYPE = 2 Data frame 2572 } WMI_FRAMETYPE 2573 2574Reset Values 2575 Retries are set to 15 2576 2577Restrictions 2578 None 2579 2580===================================================================== 2581 2582 2583Name 2584 SET_ROAM_CTRL 2585 2586Synopsis 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 �Scan and Roam� on page C-1. 2597 2598Command 2599 wmiconfig --roam <roamctrl> <info>, where info is <scan period> 2600 <scan threshold> <roam threshold> <roam rssi floor> 2601 2602Command Parameters 2603 A_UINT8 roamCtrlType; 2604 2605Command 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 2640Reset Value 2641 None defined (default lowrssi scan is disabled. Enabled only when scan period is set.) 2642 2643Restrictions 2644 None 2645 2646===================================================================== 2647 2648 2649Name 2650 SET_RTS 2651 2652Synopsis 2653 Decides when RTS should be sent. 2654 2655Command 2656 wmiconfig eth1 --setRTS <pkt length threshold> 2657 2658Command 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 2665Command Values 2666 None 2667 2668Reset Value 2669 Not to send RTS. 2670 2671Restrictions 2672 None 2673 2674 2675===================================================================== 2676 2677Name 2678 SET_SCAN_PARAMS 2679 2680Synopsis 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 �CONNECT_CMD� 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 �START_SCAN� command. See also �Scan and Roam� on page C-1. 2703 2704Command 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 2709Command 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� 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�65535). 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�65535). 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�65535). 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 2756Command Values 2757 None 2758 2759Reset Values 2760 ForegroundScanStart 2761Period 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 2776Name 2777 SET_TKIP_COUNTERMEASURES 2778 2779Synopsis 2780 The host issues this command to tell the target whether to enable or disable TKIP 2781 countermeasures. 2782 2783Command 2784 TBD 2785 2786Command Parameters 2787 UINT8 WMI_TKIP_CM_ENABLE 2788 Enables the countermeasures 2789 2790 2791 UINT8 TKIP_CM_DISABLE 2792 Disables the countermeasures 2793 2794Command Values 2795 None 2796 2797Reset Values 2798 By default, TKIP MIC reporting is disabled 2799 2800Restrictions 2801 None 2802 2803===================================================================== 2804 2805 2806Name 2807 SET_TX_PWR 2808 2809Synopsis 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 � 31.5 dbm. 2813 2814Command 2815 wmiconfig --power <dbM> 2816 2817Command 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 2823Command Values 2824 None 2825 2826Reset Values 2827 The maximum permitted by the regulatory domain 2828 2829Restrictions 2830 None 2831 2832See Also 2833 �GET_TX_PWR� 2834 2835 2836===================================================================== 2837 2838Name 2839 SET_VOICE_PKT_SIZE 2840 2841Synopsis 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 2846Command 2847 wmiconfig eth1 --setVoicePktSize <size-in-bytes> 2848 2849Command Parameters 2850 UINT16 voicePktSize 2851 Packet size in octets 2852 2853Command Values 2854 None 2855 2856Reset Values 2857 voicePktSize default is 400 bytes 2858 2859Restrictions 2860 No effect if WMM is unavailable 2861 2862 2863===================================================================== 2864 2865Name 2866 SET_WMM 2867 2868Synopsis 2869 Overrides the AR6000 device WMM capability 2870 2871Command 2872 wmiconfig eth1 --setwmm <enable> 2873 2874Command Parameters 2875 WMI_WMM_ENABLED 2876 Enables WMM 2877 2878 WMI_WMM_DISABLED 2879 Disables WMM support 2880 2881Command Values 2882 0 = disabled 2883 1 = enabled 2884 2885Reset Value 2886 WMM Disabled 2887 2888Restrictions 2889 None 2890 2891 2892===================================================================== 2893 2894Name 2895 SET_WMM_TXOP 2896 2897Synopsis 2898 Configures TxOP Bursting when sending traffic to a WMM capable AP 2899 2900Command 2901 wmiconfig eth1 --txopbursting <burstEnable> 2902 2903 <burstEnable> 2904 = 0 2905 Disallow TxOp bursting 2906 2907 = 1 2908 Allow TxOp bursting 2909 2910Command Parameters 2911 txopEnable 2912 = WMI_TXOP_DISABLED 2913 Disabled 2914 2915 = WMI_TXOP_ENABLED 2916 Enabled 2917 2918Command Values 2919 txopEnable 2920 = 0 Disabled 2921 2922 = 1 Enabled 2923 2924Reset Value 2925 Bursting is off by default 2926 2927Restrictions 2928 None 2929 2930===================================================================== 2931 2932 2933Name 2934 SET_WOW_MODE 2935 2936Synopsis 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 2943Command 2944 wmiconfig �setwowmode <enable/disable> 2945 2946Command Parameters 2947 A_BOOL enable_wow 2948 Enable or disable WoW: 2949 2950Command Values 2951 = 0 2952 Disable WoW 2953 2954 = 1 2955 Enable WoW 2956 2957Reset Value 2958 None defined (default WoW mode is disabled). 2959 2960Restrictions 2961 None 2962 2963See Also 2964 �GET_WOW_LIST� 2965 2966 2967===================================================================== 2968 2969Name 2970 SET_WSC_STATUS 2971 2972Synopsis 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 2978Command 2979 N/A 2980 2981Command Parameters 2982 A_BOOL status 2983 = 1 WSC registration in progress 2984 = 0 WSC protocol not running 2985 2986Reply Parameters 2987 None 2988 2989Reset Value 2990 None defined (default = 0) 2991 2992Restrictions 2993 None 2994 2995 2996===================================================================== 2997 2998Name 2999 SNR_THRESHOLD_PARAMS 3000 3001Synopsis 3002 Configures how the AR6000 device monitors and reports SNR of the connected BSS, 3003 used as a link quality metric. 3004 3005Command 3006 --snrThreshold <weight> <upper_threshold_1> ... 3007 <upper_threshold_4> <lower_threshold_1> ... <lower_threshold_4> 3008 <pollTimer> 3009 3010Command 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 3028Command Values 3029 None 3030 3031Reset Value 3032 None defined 3033 3034Restrictions 3035 None 3036 3037===================================================================== 3038 3039 3040Name 3041 START_SCAN 3042 3043Synopsis 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 �Scan and Roam� 3051 3052Command 3053 wmiconfig eth1 --startscan <scan type> <forcefgscan> 0 3054 <homeDwellTime> <forceScanInterval> 3055 3056Command Parameters 3057 UINT8 scanType 3058 WMI_SCAN_TYPE 3059 3060Command 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 3087Reset Value 3088 Disable forcing foreground scan 3089 3090Restrictions 3091 isLegacy field will no longer be supported (pass as 0 for now) 3092 3093 3094===================================================================== 3095 3096Name 3097 SYNCHRONIZE 3098 3099Synopsis 3100 The host uses this command to force a synchronization point between the command 3101 and data paths 3102 3103Command 3104 TBD 3105 3106Command Parameters 3107 None 3108 3109 3110 3111Command Values 3112 None 3113 3114 3115 3116Reset Values 3117 None 3118 3119 3120 3121Restrictions 3122 None 3123 3124 3125===================================================================== 3126 3127Name 3128 TARGET_ERROR_REPORT_BITMASK 3129 3130Synopsis 3131 Allows the host to control �ERROR_REPORT� 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 �ERROR_REPORT� 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 �GET_TARGET_STATS� 3140 command. 3141 3142Command 3143 wmiconfig eth1 --setErrorReportingBitmask 3144 3145Command Parameters 3146 UINT32 bitmask 3147 Represents the set of 3148 WMI_TARGET_ERROR_VAL error types 3149 enabled for reporting 3150 3151Command 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 3176Reset Values 3177 Bitmask is 0, and all error reporting is disabled 3178 3179Restrictions 3180 None 3181 3182 3183===================================================================== 3184WMI Events 3185 3186Event 3187 Description 3188 Page 3189 3190 3191BSSINFO 3192 Contains information describing BSSs collected during a scan 3193 3194CAC_EVENTID 3195 Indicates signalling events in admission control 3196 3197CMDERROR 3198 The AR6000 device encounters an error while attempting to process 3199 a command 3200 3201CONNECT 3202 The device has connected to a wireless network 3203 3204DISCONNECT 3205 The device lost connectivity with a wireless network 3206 3207ERROR_REPORT 3208 An error has occurred for which the host previously requested 3209 notification with the command 3210 �TARGET_ERROR_REPORT_BITMASK� 3211 3212EXTENSION 3213 WMI extension event 3214 3215GET_PMKID_LIST_EVENT 3216 Created in response to a �GET_PMKID_LIST_CMD� command 3217 3218GET_WOW_LIST_EVENT 3219 Response to the wmiconfig �GET_WOW_LIST� command to 3220 retrieve the configured WoW patterns 3221 3222NEIGHBOR_REPORT 3223 Neighbor APs that match the current profile were detected 3224 3225OPT_RX_FRAME_EVENT 3226 (Special feature) informs the host of the reception of a special frame 3227 3228PSTREAM_TIMEOUT 3229 A prioritized stream has been idle for a specified interval 3230 3231READY 3232 The AR6000 device is ready to accept commands 3233 3234REGDOMAIN 3235 The regulatory domain has changed 3236 3237REPORT_ROAM_DATA_EVENT 3238 Reports the roam time calculations made by the device 3239 (generated with a special build) 3240 � 3241 3242REPORT_STATISTICS 3243 Reply to a �GET_TARGET_STATS� command 3244 3245ROAM_TBL_EVENT 3246 Reports the roam table 3247 3248RSSI_THRESHOLD 3249 Signal strength from the connected AP has crossed the threshold 3250 defined in the �RSSI_THRESHOLD_PARAMS� command 3251 3252SCAN_COMPLETE_EVENT 3253 A scan has completed (added status SCAN_ABORTED in release 2.0) 3254 3255TEST_EVENT 3256 Event generated by the TCMD 3257 3258TKIP_MICERROR 3259 TKIP MIC errors were detected 3260 3261===================================================================== 3262 3263Name 3264 BSSINFO 3265 3266Synopsis 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 �SET_BSS_FILTER� 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 3288Event ID 3289 0x1004 3290 3291Event 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 3307Event 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 3318Name 3319 CAC_EVENTID 3320 3321Synopsis 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 3327Event ID 3328 0x1011 3329 3330Event Parameters 3331 UINT8 3332 ac 3333 Access class pertaining to the 3334signalling 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 3347Event 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 3359Name 3360 CMDERROR 3361 3362Synopsis 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 3366Event ID 3367 0x1005 3368 3369Event Parameters 3370 UINT16 commandId 3371 Corresponds to the command which generated 3372 the error 3373 UINT8 errorCode 3374 A WMI_ERROR_CODE value 3375 3376Event 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 3391Name 3392 CONNECT 3393 3394Synopsis 3395 Signals that the AR6000 connected to a wireless network. Connection occurs due to a 3396 �CONNECT� command or roaming to a new AP. For infrastructure networks, shows 3397 that the AR6000 successfully performed 802.11 authentication and AP association. 3398 3399Event ID 3400 0x1002 3401 3402Event 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 3430Event Values 3431 None defined 3432 3433===================================================================== 3434 3435 3436Name 3437 DISCONNECT 3438 3439Synopsis 3440 Signals that the AR6000 device lost connectivity with the wireless network. 3441 DISCONENCT is generated when the device fails to complete a �CONNECT� 3442 command or as a result of a transition from a connected state to disconnected state. 3443 3444 After sending the �DISCONNECT� 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 3448Event ID 3449 0x1003 3450 3451Event 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 3466Event 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 �DISCONNECT� 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�s 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 3512Name 3513 ERROR_REPORT 3514 3515Synopsis 3516 Signals that a type of error has occurred for which the host previously requested 3517 notification through the �TARGET_ERROR_REPORT_BITMASK� command. 3518 3519Event ID 3520 0x100D 3521 3522Event Parameters 3523 UINT32 errorVal 3524 WMI_TARGET_ERROR_VAL value. See 3525 �TARGET_ERROR_REPORT_BITMASK�. 3526 3527Event 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 3549Name 3550 EXTENSION 3551 3552Synopsis 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 �WMI Extension Commands� 3558 3559 3560Event ID 3561 0x1010 3562 3563 3564===================================================================== 3565 3566 3567Name 3568 GET_PMKID_LIST_EVENT 3569 3570Synopsis 3571 Generated by firmware in response to a �GET_PMKID_LIST_CMD� command. 3572 3573Event 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 3580Event Values 3581 None 3582 3583 3584===================================================================== 3585 3586 3587Name 3588 GET_WOW_LIST_EVENT 3589 3590Synopsis 3591 Response to the wmiconfig �getwowlist command to retrieve the configured Wake on 3592 Wireless patterns 3593 3594Event ID 3595 0x10018 3596 3597Event 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 3628Event Values 3629 None 3630 3631===================================================================== 3632 3633 3634 3635Name 3636 NEIGHBOR_REPORT 3637 3638Synopsis 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 3645Event ID 3646 0x1008 3647 3648Event 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 3660Event 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 3680Name 3681 OPT_RX_FRAME_EVENT 3682 3683Synopsis 3684 Special feature, informs host of the reception of a special frame. 3685 3686Event ID 3687 0x100E 3688 3689Event 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 3698Event Values 3699 None 3700 3701===================================================================== 3702 3703 3704 3705Name 3706 PSTREAM_TIMEOUT 3707 3708Synopsis 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 �CREATE_PSTREAM� 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 3716Event ID 3717 0x1007 3718 3719Event Parameters 3720 A_UINT8 3721 trafficClass 3722 Indicated the traffic class of priority 3723 stream that timed out 3724 3725Event 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 3740Name 3741 READY 3742 3743Synopsis 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 3747Event ID 3748 0x1001 3749 3750Event 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�s radio 3756 3757Event 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 3767Name 3768 REGDOMAIN 3769 3770Synopsis 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 �SET_CHANNEL_PARAMETERS� command are lifted. 3778 3779Event ID 3780 0x1006 3781 3782Event Parameters 3783 UINT32 regDomain 3784 The range of 0x0000 � 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 3791Event Values 3792 None 3793 3794 3795===================================================================== 3796 3797 3798 3799Name 3800 REPORT_STATISTICS 3801 3802Synopsis 3803 A reply to a �GET_TARGET_STATS� command. 3804 3805Event ID 3806 0x100B 3807 3808Event 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 3894Event Values 3895 None defined 3896 3897 3898===================================================================== 3899 3900Name 3901 ROAM_TBL_EVENT 3902 3903Synopsis 3904 Reports the roam table, which contains the current roam mode and this information 3905 for every BSS: 3906 3907Event ID 3908 0x100F 3909 3910Event 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 3926Event 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 3945Name 3946 RSSI_THRESHOLD 3947 3948Synopsis 3949 Alerts the host that the signal strength from the connected AP has crossed a 3950 interesting threshold as defined in a previous �RSSI_THRESHOLD_PARAMS� 3951 command. 3952 3953Event ID 3954 0x100C 3955 3956Event Parameters 3957 UINT8 range 3958 A WMI_RSSI_THRESHOLD_VAL 3959 value, which indicates the range of 3960 the average signal strength 3961 3962Event 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 3974Name 3975 SCAN_COMPLETE_EVENT 3976 3977Synopsis 3978 Indicates the scan status. if the Scan was not completed, this event is generated with 3979 the status A_ECANCELED. 3980 3981Event ID 3982 0x100A 3983 3984Event Parameters 3985 A_UINT8 scanStatus 3986 3987Event 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 3998Name 3999 TEST_EVENT 4000 4001Synopsis 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 4006Event ID 4007 0x1016 4008 4009Event Parameters 4010 WMI_TEST_EVENTID 4011 4012 4013Event Values 4014 None 4015 4016 4017===================================================================== 4018 4019 4020 4021Name 4022 TKIP_MICERR 4023 4024Synopsis 4025 Indicates that TKIP MIC errors were detected. 4026 4027Event ID 4028 0x1009 4029 4030Event Parameters 4031 UINT8 keyid 4032 Indicates the TKIP key ID 4033 4034 UINT8 ismcast 4035 0 = Unicast 4036 1 = Multicast 4037 4038Event Values 4039 See event parameters 4040 4041===================================================================== 4042 4043WMI Extension Commands 4044 4045The WMI EXTENSION command is used to multiplex a collection of 4046commands 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 4054command message and uses the WMI_EXTENSION. The first field of the 4055payload for this EXTENSION command is another commandId, sometimes 4056called the subcommandId, which indicates which extension command is 4057being used. A subcommandId-specific payload follows the subcommandId. 4058 4059All extensions (subcommandIds) are listed in the header file include/wmix.h. 4060See also �WMI Extension Events� on page B-58. 4061 4062 4063WMI Extension Commands 4064 4065 4066GPIO_INPUT_GET 4067 Read GPIO pins configured for input 4068 4069GPIO_INTR_ACK 4070 Acknowledge and re-arm GPIO interrupts reported earlier 4071 4072GPIO_OUTPUT_SET 4073 Manage output on GPIO pins configured for output 4074 4075GPIO_REGISTER_GET 4076 Read an arbitrary GPIO register 4077 4078GPIO_REGISTER_SET 4079 Dynamically change GPIO configuration 4080 4081SET_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 4089Name 4090 GPIO_INPUT_GET 4091 4092Synopsis 4093 Allows the host to read GPIO pins that are configured for input. The values read are 4094 returned through a �GPIO_DATA� extension event. 4095 4096NOTE: Support for GPIO is optional. 4097 4098Command 4099 N/A 4100 4101Command Parameters 4102 None 4103 4104 4105 4106Reply Parameters 4107 None 4108 4109 4110Reset Value 4111 None 4112 4113 4114 4115Restrictions 4116 None 4117 4118===================================================================== 4119 4120 4121Name 4122 GPIO_INTR_ACK 4123 4124Synopsis 4125 The host uses this command to acknowledge and to re-arm GPIO interrupts reported 4126 through an earlier �GPIO_INTR� extension event. A single �GPIO_INTR_ACK� 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 �GPIO_INTR_ACK�, another �GPIO_INTR� extension event is raised). 4130 4131NOTE: Support for GPIO is optional. 4132 4133Command 4134 N/A 4135 4136Command 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 4141Command Values 4142 None 4143 4144Reset Value 4145 None 4146 4147Restrictions 4148 The host should acknowledge only interrupts about which it was notified. 4149 4150 4151===================================================================== 4152 4153Name 4154 GPIO_OUTPUT_SET 4155 4156Synopsis 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 4162NOTE: Support for GPIO is optional. 4163 4164Command 4165 N/A 4166 4167Command 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 4177Command Values 4178 None 4179 4180 4181Reset Value 4182 None 4183 4184 4185Restrictions 4186 None 4187 4188 4189 4190===================================================================== 4191 4192 4193Name 4194 GPIO_REGISTER_GET 4195 4196Synopsis 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 �GPIO_DATA� event. 4199 4200NOTE: Support for GPIO is optional. 4201 4202Command 4203 N/A 4204 4205Command Parameters 4206 UINT32 4207 gpioreg_id 4208 Specifies a GPIO register identifier, as defined 4209in include/AR6000/AR6000_gpio.h 4210 4211Reply Parameters 4212 None 4213 4214Reset Value 4215 N/A 4216 4217Restrictions 4218 None 4219 4220 4221===================================================================== 4222 4223Name 4224 GPIO_REGISTER_SET 4225 4226Synopsis 4227 Allows the host to dynamically change GPIO configuration (usually handled 4228 statically through the GPIO configuration DataSet). 4229 4230NOTE: Support for GPIO is optional. 4231 4232Command 4233 N/A 4234 4235Command 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 4243Command Values 4244 None 4245 4246 4247Reset 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 4252Restrictions 4253 None 4254 4255 4256===================================================================== 4257 4258 4259Name 4260 SET_LQTHRESHOLD 4261 4262Synopsis 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 4266Command 4267 wmiconfig eth1 --lqThreshold <enable> <upper_threshold_1>... 4268 <upper_threshold_4> <lower_threshold_1>... <lower_threshold_4> 4269 4270Command 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 4281Command 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 4298Reset Values 4299 None 4300 4301Restrictions 4302 None 4303 4304===================================================================== 4305WMI Extension Events 4306 4307The 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 4315any other WMI event message, using the WMI_EXTENSION_EVENTID. The 4316first field of the payload for this �EXTENSION� event is another commandId 4317(sometimes called the subcommandId) that indicates which �EXTENSION� 4318event is being used. A subcommandId-specific payload follows the 4319subcommandId. 4320 4321All extensions (subcommandIds) are listed in the header file include/wmix.h. 4322See also �WMI Extension Commands� on page B-55. 4323 4324 4325WMI Extension Events 4326 4327 4328GPIO_ACK 4329 Acknowledges a host set command has been processed by the device 4330 4331GPIO_DATA 4332 Response to a host�s request for data 4333 4334GPIO_INTR 4335 Signals that GPIO interrupts are pending 4336 4337 4338===================================================================== 4339 4340Name 4341 GPIO_ACK 4342 4343Synopsis 4344 Acknowledges that a host set command (either �GPIO_OUTPUT_SET� or 4345 �GPIO_REGISTER_SET�) has been processed by the AR6000 device. 4346 4347NOTE: Support for GPIO is optional. 4348 4349Event ID 4350 N/A 4351 4352Event Parameters 4353 None 4354 4355 4356Event Values 4357 None 4358 4359===================================================================== 4360 4361 4362Name 4363 GPIO_DATA 4364 4365Synopsis 4366 The AR6000 device uses this event to respond to the host�s earlier request for data 4367 (through either a �GPIO_REGISTER_GET� or a �GPIO_INPUT_GET� command). 4368 4369NOTE: Support for GPIO is optional. 4370 4371Event ID 4372 N/A 4373 4374Event Parameters 4375 UINT32 value 4376 Holds the data of interest, which is either a register value 4377 (in the case of �GPIO_REGISTER_GET�) or a mask of 4378 pin inputs (in the case of �GPIO_INPUT_GET�). 4379 UINT32 reg_id 4380 Indicates which register was read (in the case of 4381 �GPIO_REGISTER_GET�) or is GPIO_ID_NONE (in the 4382 case of �GPIO_INPUT_GET�) 4383 4384Event Values 4385 None 4386 4387 4388===================================================================== 4389 4390 4391 4392Name 4393 GPIO_INTR 4394 4395Synopsis 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 �GPIO_INTR_ACK� 4398 command was issued, or may be GPIO interrupts that the host failed to acknowledge 4399 in the last �GPIO_INTR_ACK�. The AR6000 will not raise another GPIO_INTR 4400 event until this event is acknowledged through a �GPIO_INTR_ACK� command. 4401 4402NOTE: Support for GPIO is optional. 4403 4404Event ID 4405 N/A 4406 4407Event 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 4415Event Values 4416 None 4417 4418 4419 4420===================================================================== 4421#endif 4422