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