Commit | Line | Data |
---|---|---|
876c9d3a MT |
1 | /* |
2 | * This file contains the function prototypes, data structure | |
3 | * and defines for all the host/station commands | |
4 | */ | |
5 | #ifndef __HOSTCMD__H | |
6 | #define __HOSTCMD__H | |
7 | ||
8 | #include <linux/wireless.h> | |
9 | #include "11d.h" | |
10 | #include "types.h" | |
11 | ||
12 | /* 802.11-related definitions */ | |
13 | ||
14 | /* TxPD descriptor */ | |
15 | struct txpd { | |
16 | /* Current Tx packet status */ | |
981f187b | 17 | __le32 tx_status; |
876c9d3a | 18 | /* Tx control */ |
981f187b DW |
19 | __le32 tx_control; |
20 | __le32 tx_packet_location; | |
876c9d3a | 21 | /* Tx packet length */ |
981f187b | 22 | __le16 tx_packet_length; |
876c9d3a MT |
23 | /* First 2 byte of destination MAC address */ |
24 | u8 tx_dest_addr_high[2]; | |
25 | /* Last 4 byte of destination MAC address */ | |
26 | u8 tx_dest_addr_low[4]; | |
27 | /* Pkt Priority */ | |
28 | u8 priority; | |
29 | /* Pkt Trasnit Power control */ | |
30 | u8 powermgmt; | |
31 | /* Amount of time the packet has been queued in the driver (units = 2ms) */ | |
32 | u8 pktdelay_2ms; | |
33 | /* reserved */ | |
34 | u8 reserved1; | |
35 | }; | |
36 | ||
37 | /* RxPD Descriptor */ | |
38 | struct rxpd { | |
39 | /* Current Rx packet status */ | |
981f187b | 40 | __le16 status; |
876c9d3a MT |
41 | |
42 | /* SNR */ | |
43 | u8 snr; | |
44 | ||
45 | /* Tx control */ | |
46 | u8 rx_control; | |
47 | ||
48 | /* Pkt length */ | |
981f187b | 49 | __le16 pkt_len; |
876c9d3a MT |
50 | |
51 | /* Noise Floor */ | |
52 | u8 nf; | |
53 | ||
54 | /* Rx Packet Rate */ | |
55 | u8 rx_rate; | |
56 | ||
57 | /* Pkt addr */ | |
981f187b | 58 | __le32 pkt_ptr; |
876c9d3a MT |
59 | |
60 | /* Next Rx RxPD addr */ | |
981f187b | 61 | __le32 next_rxpd_ptr; |
876c9d3a MT |
62 | |
63 | /* Pkt Priority */ | |
64 | u8 priority; | |
65 | u8 reserved[3]; | |
66 | }; | |
67 | ||
68 | struct cmd_ctrl_node { | |
69 | /* CMD link list */ | |
70 | struct list_head list; | |
71 | u32 status; | |
72 | /* CMD ID */ | |
73 | u32 cmd_oid; | |
74 | /*CMD wait option: wait for finish or no wait */ | |
75 | u16 wait_option; | |
76 | /* command parameter */ | |
77 | void *pdata_buf; | |
78 | /*command data */ | |
79 | u8 *bufvirtualaddr; | |
80 | u16 cmdflags; | |
81 | /* wait queue */ | |
82 | u16 cmdwaitqwoken; | |
83 | wait_queue_head_t cmdwait_q; | |
84 | }; | |
85 | ||
86 | /* WLAN_802_11_KEY | |
87 | * | |
88 | * Generic structure to hold all key types. key type (WEP40, WEP104, TKIP, AES) | |
89 | * is determined from the keylength field. | |
90 | */ | |
91 | struct WLAN_802_11_KEY { | |
981f187b DW |
92 | __le32 len; |
93 | __le32 flags; /* KEY_INFO_* from wlan_defs.h */ | |
876c9d3a | 94 | u8 key[MRVL_MAX_KEY_WPA_KEY_LENGTH]; |
981f187b | 95 | __le16 type; /* KEY_TYPE_* from wlan_defs.h */ |
876c9d3a MT |
96 | }; |
97 | ||
98 | struct IE_WPA { | |
99 | u8 elementid; | |
100 | u8 len; | |
101 | u8 oui[4]; | |
981f187b | 102 | __le16 version; |
876c9d3a MT |
103 | }; |
104 | ||
105 | struct WLAN_802_11_SSID { | |
106 | /* SSID length */ | |
981f187b | 107 | __le32 ssidlength; |
876c9d3a MT |
108 | |
109 | /* SSID information field */ | |
110 | u8 ssid[IW_ESSID_MAX_SIZE]; | |
111 | }; | |
112 | ||
113 | struct WPA_SUPPLICANT { | |
114 | u8 wpa_ie[256]; | |
115 | u8 wpa_ie_len; | |
116 | }; | |
117 | ||
118 | /* wlan_offset_value */ | |
119 | struct wlan_offset_value { | |
120 | u32 offset; | |
121 | u32 value; | |
122 | }; | |
123 | ||
124 | struct WLAN_802_11_FIXED_IEs { | |
981f187b DW |
125 | __le64 timestamp; |
126 | __le16 beaconinterval; | |
127 | u16 capabilities; /* Actually struct ieeetypes_capinfo */ | |
876c9d3a MT |
128 | }; |
129 | ||
130 | struct WLAN_802_11_VARIABLE_IEs { | |
131 | u8 elementid; | |
132 | u8 length; | |
133 | u8 data[1]; | |
134 | }; | |
135 | ||
136 | /* Define general data structure */ | |
137 | /* cmd_DS_GEN */ | |
138 | struct cmd_ds_gen { | |
981f187b DW |
139 | __le16 command; |
140 | __le16 size; | |
141 | __le16 seqnum; | |
142 | __le16 result; | |
876c9d3a MT |
143 | }; |
144 | ||
145 | #define S_DS_GEN sizeof(struct cmd_ds_gen) | |
146 | /* | |
147 | * Define data structure for cmd_get_hw_spec | |
148 | * This structure defines the response for the GET_HW_SPEC command | |
149 | */ | |
150 | struct cmd_ds_get_hw_spec { | |
151 | /* HW Interface version number */ | |
981f187b | 152 | __le16 hwifversion; |
876c9d3a | 153 | /* HW version number */ |
981f187b | 154 | __le16 version; |
876c9d3a | 155 | /* Max number of TxPD FW can handle */ |
981f187b | 156 | __le16 nr_txpd; |
876c9d3a | 157 | /* Max no of Multicast address */ |
981f187b | 158 | __le16 nr_mcast_adr; |
876c9d3a MT |
159 | /* MAC address */ |
160 | u8 permanentaddr[6]; | |
161 | ||
162 | /* region Code */ | |
981f187b | 163 | __le16 regioncode; |
876c9d3a MT |
164 | |
165 | /* Number of antenna used */ | |
981f187b | 166 | __le16 nr_antenna; |
876c9d3a MT |
167 | |
168 | /* FW release number, example 0x1234=1.2.3.4 */ | |
981f187b | 169 | __le32 fwreleasenumber; |
876c9d3a MT |
170 | |
171 | /* Base Address of TxPD queue */ | |
981f187b | 172 | __le32 wcb_base; |
876c9d3a | 173 | /* Read Pointer of RxPd queue */ |
981f187b | 174 | __le32 rxpd_rdptr; |
876c9d3a MT |
175 | |
176 | /* Write Pointer of RxPd queue */ | |
981f187b | 177 | __le32 rxpd_wrptr; |
876c9d3a MT |
178 | |
179 | /*FW/HW capability */ | |
981f187b | 180 | __le32 fwcapinfo; |
876c9d3a MT |
181 | } __attribute__ ((packed)); |
182 | ||
183 | struct cmd_ds_802_11_reset { | |
981f187b | 184 | __le16 action; |
876c9d3a MT |
185 | }; |
186 | ||
187 | struct cmd_ds_802_11_subscribe_event { | |
981f187b DW |
188 | __le16 action; |
189 | __le16 events; | |
876c9d3a MT |
190 | }; |
191 | ||
192 | /* | |
193 | * This scan handle Country Information IE(802.11d compliant) | |
194 | * Define data structure for cmd_802_11_scan | |
195 | */ | |
196 | struct cmd_ds_802_11_scan { | |
197 | u8 bsstype; | |
198 | u8 BSSID[ETH_ALEN]; | |
199 | u8 tlvbuffer[1]; | |
200 | #if 0 | |
201 | mrvlietypes_ssidparamset_t ssidParamSet; | |
202 | mrvlietypes_chanlistparamset_t ChanListParamSet; | |
203 | mrvlietypes_ratesparamset_t OpRateSet; | |
204 | #endif | |
205 | }; | |
206 | ||
207 | struct cmd_ds_802_11_scan_rsp { | |
981f187b | 208 | __le16 bssdescriptsize; |
876c9d3a MT |
209 | u8 nr_sets; |
210 | u8 bssdesc_and_tlvbuffer[1]; | |
211 | }; | |
212 | ||
213 | struct cmd_ds_802_11_get_log { | |
981f187b DW |
214 | __le32 mcasttxframe; |
215 | __le32 failed; | |
216 | __le32 retry; | |
217 | __le32 multiretry; | |
218 | __le32 framedup; | |
219 | __le32 rtssuccess; | |
220 | __le32 rtsfailure; | |
221 | __le32 ackfailure; | |
222 | __le32 rxfrag; | |
223 | __le32 mcastrxframe; | |
224 | __le32 fcserror; | |
225 | __le32 txframe; | |
226 | __le32 wepundecryptable; | |
876c9d3a MT |
227 | }; |
228 | ||
229 | struct cmd_ds_mac_control { | |
981f187b DW |
230 | __le16 action; |
231 | __le16 reserved; | |
876c9d3a MT |
232 | }; |
233 | ||
234 | struct cmd_ds_mac_multicast_adr { | |
981f187b DW |
235 | __le16 action; |
236 | __le16 nr_of_adrs; | |
876c9d3a MT |
237 | u8 maclist[ETH_ALEN * MRVDRV_MAX_MULTICAST_LIST_SIZE]; |
238 | }; | |
239 | ||
240 | struct cmd_ds_802_11_authenticate { | |
241 | u8 macaddr[ETH_ALEN]; | |
242 | u8 authtype; | |
243 | u8 reserved[10]; | |
244 | }; | |
245 | ||
246 | struct cmd_ds_802_11_deauthenticate { | |
247 | u8 macaddr[6]; | |
981f187b | 248 | __le16 reasoncode; |
876c9d3a MT |
249 | }; |
250 | ||
251 | struct cmd_ds_802_11_associate { | |
252 | u8 peerstaaddr[6]; | |
253 | struct ieeetypes_capinfo capinfo; | |
981f187b DW |
254 | __le16 listeninterval; |
255 | __le16 bcnperiod; | |
876c9d3a MT |
256 | u8 dtimperiod; |
257 | ||
258 | #if 0 | |
259 | mrvlietypes_ssidparamset_t ssidParamSet; | |
260 | mrvlietypes_phyparamset_t phyparamset; | |
261 | mrvlietypes_ssparamset_t ssparamset; | |
262 | mrvlietypes_ratesparamset_t ratesParamSet; | |
263 | #endif | |
264 | } __attribute__ ((packed)); | |
265 | ||
266 | struct cmd_ds_802_11_disassociate { | |
267 | u8 destmacaddr[6]; | |
981f187b | 268 | __le16 reasoncode; |
876c9d3a MT |
269 | }; |
270 | ||
271 | struct cmd_ds_802_11_associate_rsp { | |
272 | struct ieeetypes_assocrsp assocRsp; | |
273 | }; | |
274 | ||
275 | struct cmd_ds_802_11_ad_hoc_result { | |
276 | u8 PAD[3]; | |
277 | u8 BSSID[ETH_ALEN]; | |
278 | }; | |
279 | ||
280 | struct cmd_ds_802_11_set_wep { | |
281 | /* ACT_ADD, ACT_REMOVE or ACT_ENABLE */ | |
981f187b | 282 | __le16 action; |
876c9d3a MT |
283 | |
284 | /* key Index selected for Tx */ | |
981f187b | 285 | __le16 keyindex; |
876c9d3a MT |
286 | |
287 | /* 40, 128bit or TXWEP */ | |
288 | u8 keytype[4]; | |
289 | u8 keymaterial[4][16]; | |
290 | }; | |
291 | ||
292 | struct cmd_ds_802_3_get_stat { | |
981f187b DW |
293 | __le32 xmitok; |
294 | __le32 rcvok; | |
295 | __le32 xmiterror; | |
296 | __le32 rcverror; | |
297 | __le32 rcvnobuffer; | |
298 | __le32 rcvcrcerror; | |
876c9d3a MT |
299 | }; |
300 | ||
301 | struct cmd_ds_802_11_get_stat { | |
981f187b DW |
302 | __le32 txfragmentcnt; |
303 | __le32 mcasttxframecnt; | |
304 | __le32 failedcnt; | |
305 | __le32 retrycnt; | |
306 | __le32 Multipleretrycnt; | |
307 | __le32 rtssuccesscnt; | |
308 | __le32 rtsfailurecnt; | |
309 | __le32 ackfailurecnt; | |
310 | __le32 frameduplicatecnt; | |
311 | __le32 rxfragmentcnt; | |
312 | __le32 mcastrxframecnt; | |
313 | __le32 fcserrorcnt; | |
314 | __le32 bcasttxframecnt; | |
315 | __le32 bcastrxframecnt; | |
316 | __le32 txbeacon; | |
317 | __le32 rxbeacon; | |
318 | __le32 wepundecryptable; | |
876c9d3a MT |
319 | }; |
320 | ||
321 | struct cmd_ds_802_11_snmp_mib { | |
981f187b DW |
322 | __le16 querytype; |
323 | __le16 oid; | |
324 | __le16 bufsize; | |
876c9d3a MT |
325 | u8 value[128]; |
326 | }; | |
327 | ||
328 | struct cmd_ds_mac_reg_map { | |
981f187b | 329 | __le16 buffersize; |
876c9d3a | 330 | u8 regmap[128]; |
981f187b | 331 | __le16 reserved; |
876c9d3a MT |
332 | }; |
333 | ||
334 | struct cmd_ds_bbp_reg_map { | |
981f187b | 335 | __le16 buffersize; |
876c9d3a | 336 | u8 regmap[128]; |
981f187b | 337 | __le16 reserved; |
876c9d3a MT |
338 | }; |
339 | ||
340 | struct cmd_ds_rf_reg_map { | |
981f187b | 341 | __le16 buffersize; |
876c9d3a | 342 | u8 regmap[64]; |
981f187b | 343 | __le16 reserved; |
876c9d3a MT |
344 | }; |
345 | ||
346 | struct cmd_ds_mac_reg_access { | |
981f187b DW |
347 | __le16 action; |
348 | __le16 offset; | |
349 | __le32 value; | |
876c9d3a MT |
350 | }; |
351 | ||
352 | struct cmd_ds_bbp_reg_access { | |
981f187b DW |
353 | __le16 action; |
354 | __le16 offset; | |
876c9d3a MT |
355 | u8 value; |
356 | u8 reserved[3]; | |
357 | }; | |
358 | ||
359 | struct cmd_ds_rf_reg_access { | |
981f187b DW |
360 | __le16 action; |
361 | __le16 offset; | |
876c9d3a MT |
362 | u8 value; |
363 | u8 reserved[3]; | |
364 | }; | |
365 | ||
366 | struct cmd_ds_802_11_radio_control { | |
981f187b DW |
367 | __le16 action; |
368 | __le16 control; | |
876c9d3a MT |
369 | }; |
370 | ||
371 | struct cmd_ds_802_11_sleep_params { | |
372 | /* ACT_GET/ACT_SET */ | |
981f187b | 373 | __le16 action; |
876c9d3a MT |
374 | |
375 | /* Sleep clock error in ppm */ | |
981f187b | 376 | __le16 error; |
876c9d3a MT |
377 | |
378 | /* Wakeup offset in usec */ | |
981f187b | 379 | __le16 offset; |
876c9d3a MT |
380 | |
381 | /* Clock stabilization time in usec */ | |
981f187b | 382 | __le16 stabletime; |
876c9d3a MT |
383 | |
384 | /* control periodic calibration */ | |
385 | u8 calcontrol; | |
386 | ||
387 | /* control the use of external sleep clock */ | |
388 | u8 externalsleepclk; | |
389 | ||
390 | /* reserved field, should be set to zero */ | |
981f187b | 391 | __le16 reserved; |
876c9d3a MT |
392 | }; |
393 | ||
394 | struct cmd_ds_802_11_inactivity_timeout { | |
395 | /* ACT_GET/ACT_SET */ | |
981f187b | 396 | __le16 action; |
876c9d3a MT |
397 | |
398 | /* Inactivity timeout in msec */ | |
981f187b | 399 | __le16 timeout; |
876c9d3a MT |
400 | }; |
401 | ||
402 | struct cmd_ds_802_11_rf_channel { | |
981f187b DW |
403 | __le16 action; |
404 | __le16 currentchannel; | |
405 | __le16 rftype; | |
406 | __le16 reserved; | |
876c9d3a MT |
407 | u8 channellist[32]; |
408 | }; | |
409 | ||
410 | struct cmd_ds_802_11_rssi { | |
411 | /* weighting factor */ | |
981f187b | 412 | __le16 N; |
876c9d3a | 413 | |
981f187b DW |
414 | __le16 reserved_0; |
415 | __le16 reserved_1; | |
416 | __le16 reserved_2; | |
876c9d3a MT |
417 | }; |
418 | ||
419 | struct cmd_ds_802_11_rssi_rsp { | |
981f187b DW |
420 | __le16 SNR; |
421 | __le16 noisefloor; | |
422 | __le16 avgSNR; | |
423 | __le16 avgnoisefloor; | |
876c9d3a MT |
424 | }; |
425 | ||
426 | struct cmd_ds_802_11_mac_address { | |
981f187b | 427 | __le16 action; |
876c9d3a MT |
428 | u8 macadd[ETH_ALEN]; |
429 | }; | |
430 | ||
431 | struct cmd_ds_802_11_rf_tx_power { | |
981f187b DW |
432 | __le16 action; |
433 | __le16 currentlevel; | |
876c9d3a MT |
434 | }; |
435 | ||
436 | struct cmd_ds_802_11_rf_antenna { | |
981f187b | 437 | __le16 action; |
876c9d3a MT |
438 | |
439 | /* Number of antennas or 0xffff(diversity) */ | |
981f187b | 440 | __le16 antennamode; |
876c9d3a MT |
441 | |
442 | }; | |
443 | ||
444 | struct cmd_ds_802_11_ps_mode { | |
981f187b DW |
445 | __le16 action; |
446 | __le16 nullpktinterval; | |
447 | __le16 multipledtim; | |
448 | __le16 reserved; | |
449 | __le16 locallisteninterval; | |
876c9d3a MT |
450 | }; |
451 | ||
452 | struct PS_CMD_ConfirmSleep { | |
981f187b DW |
453 | __le16 command; |
454 | __le16 size; | |
455 | __le16 seqnum; | |
456 | __le16 result; | |
876c9d3a | 457 | |
981f187b DW |
458 | __le16 action; |
459 | __le16 reserved1; | |
460 | __le16 multipledtim; | |
461 | __le16 reserved; | |
462 | __le16 locallisteninterval; | |
876c9d3a MT |
463 | }; |
464 | ||
465 | struct cmd_ds_802_11_data_rate { | |
981f187b DW |
466 | __le16 action; |
467 | __le16 reserverd; | |
876c9d3a MT |
468 | u8 datarate[G_SUPPORTED_RATES]; |
469 | }; | |
470 | ||
471 | struct cmd_ds_802_11_rate_adapt_rateset { | |
981f187b DW |
472 | __le16 action; |
473 | __le16 enablehwauto; | |
474 | __le16 bitmap; | |
876c9d3a MT |
475 | }; |
476 | ||
477 | struct cmd_ds_802_11_ad_hoc_start { | |
478 | u8 SSID[IW_ESSID_MAX_SIZE]; | |
479 | u8 bsstype; | |
981f187b | 480 | __le16 beaconperiod; |
876c9d3a MT |
481 | u8 dtimperiod; |
482 | union IEEEtypes_ssparamset ssparamset; | |
483 | union ieeetypes_phyparamset phyparamset; | |
981f187b | 484 | __le16 probedelay; |
876c9d3a MT |
485 | struct ieeetypes_capinfo cap; |
486 | u8 datarate[G_SUPPORTED_RATES]; | |
487 | u8 tlv_memory_size_pad[100]; | |
488 | } __attribute__ ((packed)); | |
489 | ||
490 | struct adhoc_bssdesc { | |
491 | u8 BSSID[6]; | |
492 | u8 SSID[32]; | |
493 | u8 bsstype; | |
981f187b | 494 | __le16 beaconperiod; |
876c9d3a | 495 | u8 dtimperiod; |
981f187b DW |
496 | __le64 timestamp; |
497 | __le64 localtime; | |
876c9d3a MT |
498 | union ieeetypes_phyparamset phyparamset; |
499 | union IEEEtypes_ssparamset ssparamset; | |
500 | struct ieeetypes_capinfo cap; | |
501 | u8 datarates[G_SUPPORTED_RATES]; | |
502 | ||
503 | /* DO NOT ADD ANY FIELDS TO THIS STRUCTURE. It is used below in the | |
504 | * Adhoc join command and will cause a binary layout mismatch with | |
505 | * the firmware | |
506 | */ | |
507 | } __attribute__ ((packed)); | |
508 | ||
509 | struct cmd_ds_802_11_ad_hoc_join { | |
510 | struct adhoc_bssdesc bssdescriptor; | |
981f187b DW |
511 | __le16 failtimeout; |
512 | __le16 probedelay; | |
876c9d3a MT |
513 | |
514 | } __attribute__ ((packed)); | |
515 | ||
516 | struct cmd_ds_802_11_enable_rsn { | |
981f187b DW |
517 | __le16 action; |
518 | __le16 enable; | |
876c9d3a MT |
519 | }; |
520 | ||
521 | struct MrvlIEtype_keyParamSet { | |
522 | /* type ID */ | |
981f187b | 523 | __le16 type; |
876c9d3a MT |
524 | |
525 | /* length of Payload */ | |
981f187b | 526 | __le16 length; |
876c9d3a MT |
527 | |
528 | /* type of key: WEP=0, TKIP=1, AES=2 */ | |
981f187b | 529 | __le16 keytypeid; |
876c9d3a MT |
530 | |
531 | /* key control Info specific to a keytypeid */ | |
981f187b | 532 | __le16 keyinfo; |
876c9d3a MT |
533 | |
534 | /* length of key */ | |
981f187b | 535 | __le16 keylen; |
876c9d3a MT |
536 | |
537 | /* key material of size keylen */ | |
538 | u8 key[32]; | |
539 | }; | |
540 | ||
541 | struct cmd_ds_802_11_key_material { | |
981f187b | 542 | __le16 action; |
876c9d3a MT |
543 | struct MrvlIEtype_keyParamSet keyParamSet[2]; |
544 | } __attribute__ ((packed)); | |
545 | ||
546 | struct cmd_ds_802_11_eeprom_access { | |
981f187b | 547 | __le16 action; |
876c9d3a MT |
548 | |
549 | /* multiple 4 */ | |
981f187b DW |
550 | __le16 offset; |
551 | __le16 bytecount; | |
876c9d3a MT |
552 | u8 value; |
553 | } __attribute__ ((packed)); | |
554 | ||
555 | struct cmd_ds_802_11_tpc_cfg { | |
981f187b | 556 | __le16 action; |
876c9d3a MT |
557 | u8 enable; |
558 | s8 P0; | |
559 | s8 P1; | |
560 | s8 P2; | |
561 | u8 usesnr; | |
562 | } __attribute__ ((packed)); | |
563 | ||
564 | struct cmd_ds_802_11_led_ctrl { | |
981f187b DW |
565 | __le16 action; |
566 | __le16 numled; | |
876c9d3a MT |
567 | u8 data[256]; |
568 | } __attribute__ ((packed)); | |
569 | ||
570 | struct cmd_ds_802_11_pwr_cfg { | |
981f187b | 571 | __le16 action; |
876c9d3a MT |
572 | u8 enable; |
573 | s8 PA_P0; | |
574 | s8 PA_P1; | |
575 | s8 PA_P2; | |
576 | } __attribute__ ((packed)); | |
577 | ||
578 | struct cmd_ds_802_11_afc { | |
981f187b | 579 | __le16 afc_auto; |
876c9d3a MT |
580 | union { |
581 | struct { | |
981f187b DW |
582 | __le16 threshold; |
583 | __le16 period; | |
876c9d3a MT |
584 | }; |
585 | struct { | |
981f187b DW |
586 | __le16 timing_offset; /* signed */ |
587 | __le16 carrier_offset; /* signed */ | |
876c9d3a MT |
588 | }; |
589 | }; | |
590 | } __attribute__ ((packed)); | |
591 | ||
592 | struct cmd_tx_rate_query { | |
981f187b | 593 | __le16 txrate; |
876c9d3a MT |
594 | } __attribute__ ((packed)); |
595 | ||
596 | struct cmd_ds_get_tsf { | |
597 | __le64 tsfvalue; | |
598 | } __attribute__ ((packed)); | |
599 | ||
600 | struct cmd_ds_bt_access { | |
981f187b DW |
601 | __le16 action; |
602 | __le32 id; | |
876c9d3a MT |
603 | u8 addr1[ETH_ALEN]; |
604 | u8 addr2[ETH_ALEN]; | |
605 | } __attribute__ ((packed)); | |
606 | ||
607 | struct cmd_ds_fwt_access { | |
981f187b DW |
608 | __le16 action; |
609 | __le32 id; | |
90e8eafc | 610 | u8 valid; |
876c9d3a MT |
611 | u8 da[ETH_ALEN]; |
612 | u8 dir; | |
613 | u8 ra[ETH_ALEN]; | |
981f187b DW |
614 | __le32 ssn; |
615 | __le32 dsn; | |
616 | __le32 metric; | |
90e8eafc | 617 | u8 rate; |
876c9d3a MT |
618 | u8 hopcount; |
619 | u8 ttl; | |
981f187b | 620 | __le32 expiration; |
876c9d3a | 621 | u8 sleepmode; |
981f187b DW |
622 | __le32 snr; |
623 | __le32 references; | |
90e8eafc | 624 | u8 prec[ETH_ALEN]; |
876c9d3a MT |
625 | } __attribute__ ((packed)); |
626 | ||
876c9d3a | 627 | struct cmd_ds_mesh_access { |
981f187b DW |
628 | __le16 action; |
629 | __le32 data[32]; /* last position reserved */ | |
876c9d3a MT |
630 | } __attribute__ ((packed)); |
631 | ||
0601e7ee JC |
632 | /* Number of stats counters returned by the firmware */ |
633 | #define MESH_STATS_NUM 8 | |
634 | ||
876c9d3a MT |
635 | struct cmd_ds_command { |
636 | /* command header */ | |
981f187b DW |
637 | __le16 command; |
638 | __le16 size; | |
639 | __le16 seqnum; | |
640 | __le16 result; | |
876c9d3a MT |
641 | |
642 | /* command Body */ | |
643 | union { | |
644 | struct cmd_ds_get_hw_spec hwspec; | |
645 | struct cmd_ds_802_11_ps_mode psmode; | |
646 | struct cmd_ds_802_11_scan scan; | |
647 | struct cmd_ds_802_11_scan_rsp scanresp; | |
648 | struct cmd_ds_mac_control macctrl; | |
649 | struct cmd_ds_802_11_associate associate; | |
650 | struct cmd_ds_802_11_deauthenticate deauth; | |
651 | struct cmd_ds_802_11_set_wep wep; | |
652 | struct cmd_ds_802_11_ad_hoc_start ads; | |
653 | struct cmd_ds_802_11_reset reset; | |
654 | struct cmd_ds_802_11_ad_hoc_result result; | |
655 | struct cmd_ds_802_11_get_log glog; | |
656 | struct cmd_ds_802_11_authenticate auth; | |
657 | struct cmd_ds_802_11_get_stat gstat; | |
658 | struct cmd_ds_802_3_get_stat gstat_8023; | |
659 | struct cmd_ds_802_11_snmp_mib smib; | |
660 | struct cmd_ds_802_11_rf_tx_power txp; | |
661 | struct cmd_ds_802_11_rf_antenna rant; | |
662 | struct cmd_ds_802_11_data_rate drate; | |
663 | struct cmd_ds_802_11_rate_adapt_rateset rateset; | |
664 | struct cmd_ds_mac_multicast_adr madr; | |
665 | struct cmd_ds_802_11_ad_hoc_join adj; | |
666 | struct cmd_ds_802_11_radio_control radio; | |
667 | struct cmd_ds_802_11_rf_channel rfchannel; | |
668 | struct cmd_ds_802_11_rssi rssi; | |
669 | struct cmd_ds_802_11_rssi_rsp rssirsp; | |
670 | struct cmd_ds_802_11_disassociate dassociate; | |
671 | struct cmd_ds_802_11_mac_address macadd; | |
672 | struct cmd_ds_802_11_enable_rsn enbrsn; | |
673 | struct cmd_ds_802_11_key_material keymaterial; | |
674 | struct cmd_ds_mac_reg_access macreg; | |
675 | struct cmd_ds_bbp_reg_access bbpreg; | |
676 | struct cmd_ds_rf_reg_access rfreg; | |
677 | struct cmd_ds_802_11_eeprom_access rdeeprom; | |
678 | ||
679 | struct cmd_ds_802_11d_domain_info domaininfo; | |
680 | struct cmd_ds_802_11d_domain_info domaininforesp; | |
681 | ||
682 | struct cmd_ds_802_11_sleep_params sleep_params; | |
683 | struct cmd_ds_802_11_inactivity_timeout inactivity_timeout; | |
684 | struct cmd_ds_802_11_tpc_cfg tpccfg; | |
685 | struct cmd_ds_802_11_pwr_cfg pwrcfg; | |
686 | struct cmd_ds_802_11_afc afc; | |
687 | struct cmd_ds_802_11_led_ctrl ledgpio; | |
688 | ||
689 | struct cmd_tx_rate_query txrate; | |
690 | struct cmd_ds_bt_access bt; | |
691 | struct cmd_ds_fwt_access fwt; | |
692 | struct cmd_ds_mesh_access mesh; | |
693 | struct cmd_ds_get_tsf gettsf; | |
694 | struct cmd_ds_802_11_subscribe_event subscribe_event; | |
695 | } params; | |
696 | } __attribute__ ((packed)); | |
697 | ||
698 | #endif |