• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /****************************************************************************
2 **+-----------------------------------------------------------------------+**
3 **|                                                                       |**
4 **| Copyright(c) 1998 - 2008 Texas Instruments. All rights reserved.      |**
5 **| All rights reserved.                                                  |**
6 **|                                                                       |**
7 **| Redistribution and use in source and binary forms, with or without    |**
8 **| modification, are permitted provided that the following conditions    |**
9 **| are met:                                                              |**
10 **|                                                                       |**
11 **|  * Redistributions of source code must retain the above copyright     |**
12 **|    notice, this list of conditions and the following disclaimer.      |**
13 **|  * Redistributions in binary form must reproduce the above copyright  |**
14 **|    notice, this list of conditions and the following disclaimer in    |**
15 **|    the documentation and/or other materials provided with the         |**
16 **|    distribution.                                                      |**
17 **|  * Neither the name Texas Instruments nor the names of its            |**
18 **|    contributors may be used to endorse or promote products derived    |**
19 **|    from this software without specific prior written permission.      |**
20 **|                                                                       |**
21 **| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS   |**
22 **| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT     |**
23 **| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |**
24 **| A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT  |**
25 **| OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |**
26 **| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT      |**
27 **| LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |**
28 **| DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |**
29 **| THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT   |**
30 **| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |**
31 **| OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  |**
32 **|                                                                       |**
33 **+-----------------------------------------------------------------------+**
34 ****************************************************************************/
35 
36 #ifndef PUBLIC_COMMANDS_H
37 #define PUBLIC_COMMANDS_H
38 
39 
40 #include "public_types.h"
41 #include "public_radio.h"
42 
43 typedef enum
44 {
45     CMD_RESET           = 0,
46     CMD_INTERROGATE     = 1,    /*use this to read information elements*/
47     CMD_CONFIGURE       = 2,    /*use this to write information elements*/
48     CMD_ENABLE_RX       = 3,
49     CMD_ENABLE_TX       = 4,
50     CMD_DISABLE_RX      = 5,
51     CMD_DISABLE_TX      = 6,
52     CMD_SCAN            = 8,
53     CMD_STOP_SCAN       = 9,
54     CMD_VBM             = 10,
55     CMD_START_JOIN      = 11,
56     CMD_SET_KEYS        = 12,
57     CMD_READ_MEMORY     = 13,
58     CMD_WRITE_MEMORY    = 14,
59 
60     CMD_BEACON          = 19,
61     CMD_PROBE_RESP      = 20,
62     CMD_NULL_DATA       = 21,
63     CMD_PROBE_REQ       = 22,
64     CMD_TEST            = 23,
65 
66     CMD_RADIO_CALIBRATE     = 25,   /* OBSOLETE !!!*/
67 
68     CMD_ENABLE_RX_PATH      = 27,   /* OBSOLETE !!! (what is the difference from CMD_ENABLE_RX)*/
69     CMD_NOISE_HIST      = 28,
70     CMD_RX_RESET        = 29,
71 
72     CMD_PS_POLL         = 30,
73     CMD_QOS_NULL_DATA   = 31,
74 
75     CMD_LNA_CONTROL     = 32,
76     CMD_SET_BCN_MODE    = 33,
77 
78     CMD_MEASUREMENT      = 34,
79     CMD_STOP_MEASUREMENT = 35,
80     CMD_DISCONNECT       = 36,
81     CMD_SET_PS_MODE      = 37,
82 
83     CMD_CHANNEL_SWITCH   = 38,
84     CMD_STOP_CHANNEL_SWICTH = 39,
85 
86     CMD_AP_DISCOVERY     = 40,
87     CMD_STOP_AP_DISCOVERY = 41,
88 
89     CMD_SPS_SCAN = 42,
90     CMD_STOP_SPS_SCAN = 43,
91 
92     CMD_HEALTH_CHECK     = 45,
93     CMD_DEBUG            = 46,
94 	CMD_TRIGGER_SCAN_TO  = 47,
95 
96 NUM_COMMANDS,
97     MAX_COMMAND_ID = 0xFFFF
98 } Command_enum;
99 
100 #ifdef HOST_COMPILE
101 typedef uint16 Command_e;
102 #else
103 typedef Command_enum Command_e;
104 #endif
105 
106 
107 #ifdef HOST_COMPILE
108 
109 #define 	CMD_MAILBOX_IDLE               		0
110 #define     CMD_STATUS_SUCCESS             		1
111 #define     CMD_STATUS_UNKNOWN_CMD         		2
112 #define     CMD_STATUS_UNKNOWN_IE          		3
113 #define		CMD_STATUS_REJECT_MEAS_SG_ACTIVE 	11
114 #define     CMD_STATUS_RX_BUSY             		13
115 #define     CMD_STATUS_INVALID_PARAM       		14
116 #define     CMD_STATUS_TEMPLATE_TOO_LARGE  		15
117 #define     CMD_STATUS_OUT_OF_MEMORY       		16
118 #define     CMD_STATUS_STA_TABLE_FULL      		17
119 #define     CMD_STATUS_RADIO_ERROR         		18
120 #define     CMD_STATUS_WRONG_NESTING       		19
121 #define     CMD_STATUS_TIMEOUT             		21 /* Driver internal use.*/
122 #define     CMD_STATUS_FW_RESET            		22 /* Driver internal use.*/
123 #define     MAX_COMMAND_STATUS             		MAX_POSITIVE16
124 
125 #else
126 
127 typedef enum
128 {
129 	CMD_MAILBOX_IDLE              		=  0,
130     CMD_STATUS_SUCCESS            		=  1,
131     CMD_STATUS_UNKNOWN_CMD        		=  2,
132     CMD_STATUS_UNKNOWN_IE         		=  3,
133 	CMD_STATUS_REJECT_MEAS_SG_ACTIVE 	= 11,
134     CMD_STATUS_RX_BUSY            		= 13,
135     CMD_STATUS_INVALID_PARAM      		= 14,
136     CMD_STATUS_TEMPLATE_TOO_LARGE 		= 15,
137     CMD_STATUS_OUT_OF_MEMORY      		= 16,
138     CMD_STATUS_STA_TABLE_FULL     		= 17,
139     CMD_STATUS_RADIO_ERROR        		= 18,
140     CMD_STATUS_WRONG_NESTING      		= 19,
141     CMD_STATUS_TIMEOUT            		= 21, /* Driver internal use.*/
142     CMD_STATUS_FW_RESET           		= 22, /* Driver internal use.*/
143     MAX_COMMAND_STATUS            		= MAX_POSITIVE16
144 } CommandStatus_enum;
145 
146 #endif
147 
148 #ifdef HOST_COMPILE
149 typedef uint16 CommandStatus_e;
150 #else
151 typedef CommandStatus_enum CommandStatus_e;
152 #endif
153 
154 
155 #ifdef FW_RUNNING_AS_STA
156 #define MAX_CMD_PARAMS 572
157 #else
158 #define MAX_CMD_PARAMS 384
159 #endif
160 
161 #define DEBUG_INDICATOR      0x8000
162 
163 typedef struct
164 {
165     Command_e cmdID;
166     CommandStatus_e cmdStatus;
167     uint8 parameters[MAX_CMD_PARAMS];
168 } Command_t;
169 
170 
171 /******************************************************************************
172 
173     ID:		  CMD_RESET
174 	Desc:	  This command resets all state machines in the WiLink to their power
175 	          up state and restarts the eCPU. This command has no parameters. After
176 			  issuing this command, the host must reconfigure the adapter before
177 			  normal operations resume.
178 	          In general, the host should only use this command if the WiLink has
179 			  stopped functioning properly.
180     Params:	  None.
181 	Note:     The WiLink does not return a response/status message for this command.
182 
183 ******************************************************************************/
184 
185 
186 /******************************************************************************
187 
188     ID:		  CMD_INTERROGATE
189 	Desc:	  This command requests an information element from the WiLink. The
190 	          interface for this command is somewhat different from other commands
191 			  since the interface is bi-directional and asymmetric.
192 	          The host structure consists of the Command ID, a Command Status
193 			  (returned by WiLink) place holder, and the Information Element Heading
194 			  (ID and expected length).
195 	          The response to that command is a buffer of the information element's
196 			  actual values returned by the WiLink just after the command is issued.
197 			  The response to that command is a buffer of the information element's
198               actual values returned by the WiLink just after the command is issued.
199 	Params:	  InfoElement_t - see below.
200 
201 
202 ******************************************************************************/
203 /*
204 Description of InfoElement structure - defined in "public_infoele.h"
205 offset	length	source	description
206 ======	======	======	===========
207 0		2		host	Information Element ID - contains the ID of the requested
208                         information element (refer to InfoElement_enum in
209 						pblic_infoele.h). In response to this command, the WiLink
210 						writes the requested information element to the response area
211 						for the command mailbox.
212 2		4		wilink	Length - the length of the response (different for each IE
213 						according to definitions in public_infoele.h).
214 4       Length	wilink  IE payload according to definition in public_infoele.h.
215 */
216 
217 
218 
219 /******************************************************************************
220 
221     ID:		  CMD_CONFIGURE
222 	Desc:	  This command configures an information element in the WiLink.
223     Params:	  InfoElement_t - see below.
224 
225 ******************************************************************************/
226 /*
227 Description of InfoElement structure - defined in "public_infoele.h"
228 offset	length	source	description
229 ======	======	======	===========
230 0		2		host	Information Element ID - contains the ID of the requested
231                         information element (refer to InfoElement_enum in
232 						pblic_infoele.h). In response to this command, the WiLink
233 						writes the requested information element to the response area
234 						for the command mailbox.
235 2		4		host	Length - the length of the response (different for each IE
236 						according to definitions in public_infoele.h).
237 4       Length	host    IE payload according to definition in public_infoele.h.
238 */
239 
240 
241 /******************************************************************************
242 
243     ID:		  CMD_ENABLE_RX
244 	Desc:	  This command enables the normal reception of frames.
245     Params:	  Channel Number - this field indicates the radio channel on which to
246 	                           receive data. This parameter also sets the channel on
247 							   which to transmit. The last channel number used,
248 							   regardless of the order in which the ENABLE_RX and
249 							   ENABLE_TX commands are issued, is the channel number
250 							   for both RX and TX. This command must be issued after
251 							   the host has set all necessary configuration elements
252 							   appropriately.
253 
254 ******************************************************************************/
255 
256 
257 
258 /******************************************************************************
259 
260     ID:		  CMD_ENABLE_TX
261 	Desc:	  This command enables the normal transmission of frames.
262     Params:	  Channel Number - this field indicates the radio channel on which to
263 	                           transmit data. This parameter also sets the channel on
264 							   which to receive. The last channel number used,
265 							   regardless of the order in which the ENABLE_RX and
266 							   ENABLE_TX commands are issued, is the channel number
267 							   for both RX and TX. This command must be issued after
268 							   the host has set all necessary configuration elements
269 							   appropriately.
270 
271 ******************************************************************************/
272 
273 /******************************************************************************
274 
275     ID:		  CMD_DISABLE_RX
276 	Desc:	  This command disables the normal reception of packets over the
277 	          Baseband interface.
278     Params:	  None
279 
280 ******************************************************************************/
281 
282 /******************************************************************************
283 
284     ID:		  CMD_DISABLE_TX
285 	Desc:	  This command disables the normal transmission of frames.
286     Params:	  None.
287 
288 ******************************************************************************/
289 
290 /******************************************************************************
291 
292     ID:		  CMD_SCAN
293 	Desc:	  This command instructs the WiLink to scan for BSS/IBSSs. The host
294 			  may perform either an active scan or a passive scan. During an active
295 			  scan, the WiLink transmits a probe request on the specified channel(s)
296 			  and then listens for beacon/probe responses. During a passive scan, the
297 			  WiLink monitors the specified channel(s) for beacons.
298 	          The WiLink sends SCAN_COMPLETE event to notify the host when it has
299 			  completed a scan.
300 	Params:	  ScanParameters_t - see below
301 
302 ******************************************************************************/
303 /*
304 Offset	Length	Definition
305 0		8		RX filters for Scan (refer to ACXRxConfigStruct)
306 8		2		Scan options (Band select, Voice mode and Scan type = Active/Passive)
307 10		1		NumChannels
308 11		1		Number of Probe requests (used for Active scan)
309 12		2		Probe request rate & modulation
310 14		1		AC trigger (for Voice mode only)
311 15		1		SSID length
312 16		32		SSID string (Null terminated)
313 48		2		Channel [0] ScanMinDuration
314 50		2		Channel [0] ScanMaxDuration
315 52		6		Channel [0] BSSID (4 bytes LOW and 2 bytes HIGH)
316 58		1		Channel [0].bit0-3: Early Termination count. Bit 4-5: Condition
317 59		1		Channel [0] TX power level for Scan (0 means do not change - other values:1-5)
318 60		1		Channel [0] Channel
319 61		3		Channel [0] Reserved
320 64-404	340		Optional Channel [1] - Channel [15] - same format as Channel [0] fields above.
321 */
322 
323 /* Defines for Rx "ConfigOptions".*/
324 /* Only bits 2-10 can be configured by the Driver".*/
325 #define CFG_RX_SERIAL           BIT_0    /* 0 = use parallel interface,         1 = use serial interface from ACX101- not valid.*/
326 #define CFG_RX_RAW              BIT_1    /* 1 = write all data from baseband to frame buffer including PHY header.*/
327 #define CFG_RX_FCS              BIT_2    /* 1 = write FCS to end of frame in memory, 0 = do not write FCS to memory.*/
328 #define CFG_RX_ALL_GOOD         BIT_3    /* promiscuous mode, receive all good frames.*/
329 #define CFG_UNI_FILTER_EN       BIT_4    /* local MAC address filter enable.*/
330 #define CFG_BSSID_FILTER_EN     BIT_5    /* BSSID filter enable.*/
331 #define CFG_MC_FILTER_EN        BIT_6    /* 0 = receive all multicast,          1 = use one or both multicast address filters.*/
332 #define CFG_MC_ADDR0_EN         BIT_7    /* 1 = receive frames from mc_addr0,   0 = do not use this filter.*/
333 #define CFG_MC_ADDR1_EN         BIT_8    /* 1 = receive frames from mc_addr1,   0 = do not use this filter .*/
334 #define CFG_BC_REJECT_EN        BIT_9    /* 0 = receive all broadcast,          1 = filter all broadcast.*/
335 #define CFG_SSID_FILTER_EN      BIT_10   /* SSID Filter Enable.*/
336 #define CFG_RX_INT_FCS_ERROR    BIT_11   /* 1 = give rx complete interrupt for FCS errors.*/
337 #define CFG_RX_INT_ENCRYPTED    BIT_12   /* 1 = only give rx header interrupt if frame is encrypted.*/
338 #define CFG_RX_WR_RX_STATUS     BIT_13   /* 0 = do not write three status words, 1 = write three receive status words to top of rx'd MPDU.*/
339 #define CFG_RX_FILTER_NULTI     BIT_14   /* 1 = filter multicast/broadcast frame if SA matchs local MAC addr->.*/
340 #define CFG_RX_RESERVE          BIT_15   /* reserve.*/
341 #define CFG_RX_TIMESTAMP_TSF    BIT_16   /* 1 = sample frame's' arrival time in 32bits TSF, 0 = write it in MAC time stamp.*/
342 
343 
344 /* Defines for Rx "FilterOptions".*/
345 /* The rx filter enables control what type of receive frames will be rejected or received by the rx hardware*/
346 /* 1 = frame is written to memory,*/
347 /* 0 = not written to memory, rejected.*/
348 #define CFG_RX_RSV_EN       BIT_0  /* reserved types and subtypes.*/
349 #define CFG_RX_RCTS_ACK     BIT_1  /* rts, cts, ack frames.*/
350 #define CFG_RX_PRSP_EN      BIT_2  /* probe response.*/
351 #define CFG_RX_PREQ_EN      BIT_3  /* probe request.*/
352 #define CFG_RX_MGMT_EN      BIT_4  /* type = management.*/
353 #define CFG_RX_FCS_ERROR    BIT_5  /* frames with FCS errors.*/
354 #define CFG_RX_DATA_EN      BIT_6  /* type = data.*/
355 #define CFG_RX_CTL_EN       BIT_7  /* type = control.*/
356 #define CFG_RX_CF_EN        BIT_8  /* contention free frames.*/
357 #define CFG_RX_BCN_EN       BIT_9  /* beacons.*/
358 #define CFG_RX_AUTH_EN      BIT_10 /* authentication, deauthentication.*/
359 #define CFG_RX_ASSOC_EN     BIT_11 /* association related frames (all 5 subtypes – assoc req/resp,*/
360 
361 
362 typedef struct
363 {
364 #ifdef FW_RUNNING_AS_AP
365     uint16          ConfigOptions;
366     uint16          FilterOptions;
367 #else
368     uint32          ConfigOptions;
369     uint32          FilterOptions;
370 #endif
371 } ACXRxConfigStruct;
372 
373 /*
374 TxdRateSet_t definition
375 Bit     Description
376 ===     ===========
377 0-12    Every one of bits 0-12 specifies rate described in the column on left. Only
378         one bit could be set for the command, all other should be zeroed.
379 0       1 MBPS
380 1       2 MBPS
381 2       5.5 MBPS
382 3       6 MBPS
383 4       9 MBPS
384 5       11 MBPS
385 6       12 MBPS
386 7       18 MBPS
387 8       22 MBPS
388 9       24 MBPS
389 10      36 MBPS
390 11      48 MBPS
391 12      54 MBPS
392 13      Unused (set to 0).
393 14      PBCC - When this bit is set, the WiLink transmits probe requests with PBCC
394         modulation.
395         Notes:
396            Does not apply (set to 0) for rates 1 and 2 Mbps.
397            Does not apply (set to 0) for RevG-OFDM rates.
398 15      Preamble - When this bit is set, the WiLink transmits probe requests with a
399                    short preamble. When this bit is clear, the WiLink transmits the
400 				   frame with a long preamble.
401                    Notes:
402                      Must be LONG (0) for 1Mbps rate.
403 				     Does not apply (set to 0) for RevG-OFDM rates.
404 
405 If neither the PBCC bit or OFDM rate are set, then the modulation format for probe
406 requests is CCK for 5.5 or 11 Mbps or DBPSK/DQPSK for 1 and 2 Mbps.
407 */
408 
409 /* ScanOptions bit mask field.*/
410 #define SCAN_ACTIVE         0
411 #define SCAN_PASSIVE        1   /* 1 = passive scan, 0 = active scan*/
412 #define SCAN_5GHZ_BAND      2   /* 1 = scan channel list in 5 Ghz band, 0 = scan channel list in 2.4 Ghz band*/
413 #define TRIGGERED_SCAN      4   /* 1 = Triggered scan, 0 = Normal scan*/
414 #define SCAN_PRIORITY_HIGH  8   /* 1 = High priority scan, 0 = Low priority scan*/
415 
416 typedef uint8 TidTrigger_t;
417 
418 /* General scan parameters.*/
419 typedef struct
420 {
421     ACXRxConfigStruct  rxCfg;         /* Rx filter to be used for each channel scan. */
422                                       /* The BSSID filter enable will be set (by the */
423 	                                  /* scan process) to ON for a specific channel if*/
424 	                                  /* the BSSID of this channel is a unicast address.*/
425 	                                  /* Otherwise it will be set to OFF (Refer to */
426 	                                  /* ACXRxConfig IE in public_infoele.h).*/
427 
428     uint16             scanOptions;   /* This bitwise field indicates the scan options. */
429 	                                  /* Bits [3:15] are reserved. */
430 	                                  /* Bits [0:2] are defined as follows: */
431                                       /* Scan Type (bit 0) - When this bit is set, the */
432 	                                  /*  WiLink performs a passive scan. When this bit*/
433 	                                  /*  is cleared, the WiLink performs an active scan. */
434 		                              /* Band Select (bit 1) - When this bit is set, the*/
435 	                                  /*  WiLink scans the specified channels in the */
436 	                                  /*  5GHz band. When this bit is cleared, the */
437 	                                  /*  WiLink scans the specified channels in the */
438 	                                  /*  2.4GHz band. */
439 		                              /* Voice mode (bit 2) - When this bit is set, */
440 	                                  /*  the request is for a voice scan. When this bit*/
441 	                                  /*  is cleared, the request is for a normal scan. */
442 		                              /* Scan priority (bit 3) - When this bit is set, */
443 	                                  /*  the request is for a high priority scan. When*/
444 	                                  /*  this bit is cleared, the request is for a low*/
445 	                                  /*  priority scan.*/
446 
447     uint8              numChannels;   /* Number of scan channels in the list (minimum is*/
448 	                                  /* 1, maximum is 30).*/
449 
450     uint8              numOfProbRqst; /* This field indicates the number of probe */
451 	                                  /* requests to send per channel, in active scan. */
452 
453     TxdRateSet_t       txdRateSet;    /* This bitwise field specifies the rate and */
454 	                                  /* modulation to transmit the probe request during*/
455 	                                  /* an active scan. The allowable values for this */
456 	                                  /* field are listed in the above table (refer to */
457 	                                  /* TxdRateSet). It is not used for passive scans.*/
458 
459     TidTrigger_t       tidTrigger;    /* used for TidTriggered scan only.*/
460 
461     uint8              ssidLength;    /* This field specifies the size of the SSID, */
462 	                                  /* which can be up to 32 bytes long. If this field*/
463 	                                  /* equals to zero, SSID filter is not applied. */
464 
465     uint32             ssidStr[8];    /* This field specifies the SSID packets from that*/
466 	                                  /* are relevant for the Scan result. The WiLink*/
467 	                                  /* uses this information to filter beacon, probe*/
468 	                                  /* response frames (if the SSID length field of */
469 	                                  /* this command structure is not zero) */
470 } BasicScanParameters_t;
471 
472 
473 
474 #define SCAN_ET_COND_MASK  0x30
475 #define SCAN_ET_COUNT_MASK 0x0F
476 
477 #define SCAN_MAX_NUM_OF_CHANNELS 16
478 
479 /* Early Termination condition (bits 4-5) - This field can have one of the following */
480 /* values (note that bits 0-3 indicates Early Termination count): */
481 typedef enum
482 {
483     ET_COND_DISABLE = 0x00,          /* Disable - No early termination condition.*/
484 
485 	ET_COND_BEACON  = 0x10,          /* Beacon only. When this value is selected, the */
486 		                             /* Early Termination count field specifies the */
487 									 /* maximum number of beacons to collect before */
488 									 /* ending a scan. */
489 
490     ET_COND_PROBE_RESP = 0x20,       /* Probe responses only. When this value is */
491 	                                 /* selected, the Early Termination count field */
492 									 /* specifies the maximum number of probe responses*/
493 									 /* to collect before ending a scan. */
494 
495     ET_COND_BEACON_PROBE_RESP = 0x30,/* Beacon/probe response. When this value is */
496 	                                 /* selected, the Early Termination count field */
497 									 /* specifies the maximum number of beacons or probe*/
498 									 /* responses to collect before ending a scan. */
499 
500     ET_COND_INVALID = 0xFF
501 } ETCondition_enum;
502 
503 #ifdef HOST_COMPILE
504 typedef uint8 ETCondition_e;
505 #else
506 typedef ETCondition_enum ETCondition_e;
507 #endif
508 
509 
510 typedef uint8 ETCondCount_t;
511 
512 
513 
514 #define PROCESS_SCAN_IS_HIGH(pScanParameters) ((pScanParameters)->basicScanParameters.scanOptions & SCAN_PRIORITY_HIGH)
515 #define PROCESS_SCAN_IS_LOW(pScanParameters) ((PROCESS_SCAN_IS_HIGH(pScanParameters)) == 0)
516 
517 
518 /* Per-Channel scan parameters.*/
519 typedef struct
520 {
521 
522     uint32        scanMinDuration;    /* For active scans, this field specifies the */
523                                       /* minimum amount of time, in time units (TUs), */
524                                       /* to wait for a frame on a channel. This */
525                                       /* parameter is not used for passive scans. The*/
526                                       /*  value can range from 0 to 65535 TUs */
527                                       /* (67.1 seconds). */
528 
529     uint32        scanMaxDuration;    /* For active scans, this field specifies the */
530 	                                  /* maximum amount of time, in time units (TUs), */
531 	                                  /* to wait for a probe response on a channel.*/
532 	                                  /* For passive scans, this field specifies the */
533 	                                  /* amount of time, in time units (TUs), to listen*/
534 	                                  /* on a channel. The value can range from 0 to */
535 	                                  /* 65535 TUs (67.1 seconds). */
536 
537 
538     uint32        bssIdL;             /* 32 LSBits of BSSID of the AP to scan for. */
539 	                                  /* If scanning on this channel any BSSID, this */
540 	                                  /* field shall be set to broadcast BSSID. */
541 
542     uint16        bssIdH;             /* 16 MSBits of BSSID of the AP to scan for.*/
543 
544     ETCondCount_t ETCondCount;        /* bit 0-3: Early Termination count - This field */
545 	                                  /*          defines the maximum number of beacons*/
546 	                                  /*          or probe responses or both (according*/
547 	                                  /*          to condition) to collect before ending*/
548 	                                  /*          a scan.*/
549 
550 	                                  /* Bit 4-5: Early Termination Condition (refer */
551 	                                  /*          to ETCondition_enum).*/
552 
553     uint8         txPowerAttenuation; /* TX power level to be used per channel scanned. */
554 	                                  /* If 0, leave normal TX power level for this */
555 	                                  /* channel. Range: 0 - 20 [dB].*/
556 
557     Channel_e     channel;            /* Channel number to scan, valid range 0-255 */
558 	                                  /* (1-14 for 802.11b). */
559     uint8		  padding[3];             /* for alignment to 32 bits boundry*/
560 } BasicScanChannelParameters_t;
561 
562 /* The Scan command structure.*/
563 typedef struct
564 {
565     BasicScanParameters_t basicScanParameters; /* refer to BasicScanParameters_t */
566 	                                           /* definition*/
567 
568     BasicScanChannelParameters_t basicScanChannelParameters[SCAN_MAX_NUM_OF_CHANNELS];
569 } ScanParameters_t;
570 
571 /*****************************************************************************
572 
573     ID:		  CMD_TRIGGER_SCAN_TO
574 	Desc:	  This Command will configure the enhanced Trigger Scan Timeout
575 				information.
576 			  To use legacy Trigger Scan, configure the parameter to 0
577     Params:	  None
578 
579 ******************************************************************************/
580 typedef struct
581 {
582 	uint32	SlicedScanTimeOut;			/* 0 - Split Scan Disable
583 										   any other value will represent the timeout
584 										   for each channel "mini scan" in uSec */
585 }enhancedTriggerTO_t;
586 
587 
588 
589 /*****************************************************************************
590 
591     ID:		  CMD_STOP_SCAN
592 	Desc:	  This command instructs the WiLink to terminate any scan in progress.
593 	          After processing this command, the WiLink returns to its previous state
594 			  (the state before the scan was started) and generates the SCAN_COMPLETE
595 			  information message.
596     Params:	  None
597 
598 ******************************************************************************/
599 
600 
601 
602 /******************************************************************************
603 
604     ID:		  CMD_VBM
605 	Desc:	  This command specifies the contents of the beacon TIM template stored
606 	          in the WiLink.
607     Params:	  VBMUpdateRequest_t - see below.
608 	Note:     Second part of Beacon template
609 
610 ******************************************************************************/
611 typedef struct
612 {
613     uint8 identity;       /* TIM IE ID*/
614     uint8 length;         /* TIM IE Length*/
615     uint8 DTIM_count;
616     uint8 DTIM_period;
617     uint8 BitMap_ctrl;
618     uint8 PVB_field[251]; /* Partial Virtual Bitmap*/
619 } TIMStruct_t;
620 
621 
622 typedef struct
623 {
624     uint16 len;           /* length*/
625     uint8  padding[2];    /* for alignment to 32 bits boundry*/
626     TIMStruct_t tim;
627 } VBMUpdateRequest_t;
628 
629 
630 /******************************************************************************
631 
632     ID:		  CMD_START_JOIN
633 	Desc:	  This command instructs the WiLink to either join a BSS or IBSS, or
634 	          start an IBSS. When the device has joined the BSS or IBSS the Join
635 			  Complete event is raised to the host.
636     Params:	  StartJoinRequest_t - see below.
637 
638 ******************************************************************************/
639 
640 #define JOIN_CMD_CTRL_TX_FLUSH         0x80 // When this bit is set, the firmware will flush all Tx
641 		                                    // frames in the pipe and will not transmit them.
642 #define JOIN_CMD_CTRL_EARLY_WAKEUP_ENABLE  0x01 // When this bit is set, the firmware will support
643 		                                        // early wakeup time
644 
645 typedef enum
646 {
647     BSS_TYPE_IBSS = 0,
648     BSS_TYPE_STA_BSS = 2,
649     BSS_TYPE_AP_BSS = 3,
650     MAX_BSS_TYPE = 0xFF
651 } BssType_enum;
652 
653 #ifdef HOST_COMPILE
654 typedef uint8 BSS_e;
655 #else
656 typedef BssType_enum BSS_e;
657 #endif
658 
659 #define MAX_SSID_STR_LEN_BYTESX4 8
660 /*
661 BasicRateSet_t definition
662 Bit     Description
663 ===     ===========
664 0       When this bit is set, 1 MBPS is a member of the basic rate set.
665 1       When this bit is set, 2 MBPS is a member of the basic rate set.
666 2       When this bit is set, 5.5 MBPS is a member of the basic rate set.
667 3       Must be set to 0.
668 4       Must be set to 0.
669 5       When this bit is set, 11 MBPS is a member of the basic rate set.
670 6       Must be set to 0.
671 7       Must be set to 0.
672 8       When this bit is set, 22 MBPS is a member of the basic rate set.
673 9-15    Must be set to 0.
674 
675 Note: For OFDM, the control response frame rates 6, 9, 12, 18, 24 and 36 Mbps are the
676       default values and are not configurable. Contact your TI representative for
677 	  information.
678 */
679 
680 
681 typedef struct
682 {
683     uint32            bssIdL;        /* This field indicates the 32 LSBits of the MAC*/
684 	                                 /* address of the BSS to join. */
685                                      /* Note: To correctly generate beacon frames, the */
686 	                                 /* byte order of the BSS ID field must be */
687 	                                 /* reversed. for example, if the MAC address of */
688 	                                 /* the AP is 00 7E 99 11 22 33, program the BSS */
689 	                                 /* ID field as 33 22 11 99 7E 00.*/
690 
691     uint16            bssIdH;        /* This field indicates the 16 MSBits of the MAC*/
692 	                                 /* address of the BSS to join. */
693 
694     uint16            beaconInterval;/* This field specifies the time between target */
695 	                                 /* beacon transmission times (TBTTs), in time */
696 	                                 /* units (TUs). Valid values are 1 to 1024.*/
697 
698 #ifdef FW_RUNNING_AS_STA
699     ACXRxConfigStruct rxFilter;      /* This filed is the Rx filter configuration for*/
700 	                                 /* the device while connected to the BSS or IBSS.*/
701 	                                 /* This setting is overridden in case of a */
702 	                                 /* measurement or a scan activity and is reset */
703 	                                 /* after these activities end.*/
704 #endif
705     BasicRateSet_t    basicRateSet;  /* For 802.11b, this field specifies the control*/
706 	                                 /* response frame rate for the BSS or IBSS (that*/
707 	                                 /* is, the BSSBasicRateSet parameter in the */
708 	                                 /* 802.11 Specification). The WiLink uses this */
709 	                                 /* field to determine the rate at which to */
710 	                                 /* transmit control frame responses (such as ACK */
711 	                                 /* or CTS frames). The format of this field is */
712 	                                 /* shown in the above table (refer to */
713 	                                 /* BasicRateSet_t).*/
714 
715     uint8             dtimInterval;  /* This field specifies the number of beacon */
716 	                                 /* intervals between DTIM beacon frames. The host*/
717 	                                 /* is only required to set this field when the */
718 	                                 /* BSS Type is infrastructure BSS (STA) or AP. */
719 	                                 /* For an independent BSS, the host should set */
720 	                                 /* this field to 1.*/
721 
722     Rate_e            txCtrlFrmRate; /* OBSOLETE (replaced by ACX_FW_GEN_FRAME_RATES)*/
723     Mod_e             txCtrlFrmMod;  /* OBSOLETE (replaced by ACX_FW_GEN_FRAME_RATES)*/
724 
725     BSS_e             bssType;       /* bits 0-2: This bitwise field specifies the type */
726 	                                 /*  of BSS to start or join (Refer to BssType_enum). */
727 	                                 /* bit 4: Band - The radio band in which to join*/
728 	                                 /*  or start.*/
729                                      /*  0 - 2.4GHz band	*/
730 	                                 /*  1 - 5GHz band*/
731 	                                 /* bits 3, 5-7: Reserved*/
732 
733     Channel_e         channelNumber; /* This field specifies the channel number of the*/
734 	                                 /* BSS to join or start. Valid values are 1 to 14. */
735 	                                 /* If the specified channel is not allowed in the*/
736 	                                 /* regulatory domain, the command is rejected and*/
737 	                                 /* the status code 0x0005 is returned in the */
738 	                                 /* Command Status field.*/
739 
740     uint8             ssidLength;    /* This field specifies the size of the SSID, which*/
741 	                                 /* can be up to 32 bytes long.*/
742 
743     uint32              ssidStr[MAX_SSID_STR_LEN_BYTESX4];
744 	                                 /* This field specifies the SSID of the BSS to */
745 	                                 /* start or join. The WiLink uses this information*/
746 	                                 /* to filter beacon, probe response and probe */
747 	                                 /* request frames (if configured to do so in bit 10*/
748 	                                 /* in the Receive Configuration field of the */
749 	                                 /* ACXRxConfig information element). */
750 	                                 /* It also uses this information to determine if a*/
751 	                                 /* probe response should be transmitted in */
752 	                                 /* response to a received probe request.*/
753 
754     uint8             ctrl;          /* Join command control field (refer to */
755 	                                 /* JoinCmdCtrl_enum).*/
756 
757     Rate_e            txMgmtFrmRate; /* OBSOLETE (replaced by ACX_FW_GEN_FRAME_RATES)*/
758     Mod_e             txMgmtFrmMod;  /* OBSOLETE (replaced by ACX_FW_GEN_FRAME_RATES)*/
759     uint8               reserved1;
760 } StartJoinRequest_t;
761 
762 
763 /******************************************************************************
764 
765     ID:		  CMD_SET_KEYS
766 	Desc:	  The host issues this command to manage the WEP key cache in the WiLink.
767 	          The host can issue this command during the configuration or operation
768 			  phase.
769     Params:	  SetKey_t - see below.
770 
771 ******************************************************************************/
772 
773 #define NUM_ACCESS_CATEGORIES_COPY 4
774 
775 #define MAX_KEY_SIZE 32
776 
777 typedef enum
778 {
779     KEY_ADD_OR_REPLACE = 1,             /* Add or replace a key in the WEP cache*/
780 	KEY_REMOVE         = 2,             /* Remove a key from the WEP cache*/
781 	KEY_SET_ID         = 3,             /* Set Key ID*/
782     MAX_KEY_ACTION     = MAX_POSITIVE16 /* force this enum to be uint16*/
783 } KeyAction_enum;
784 
785 #ifdef HOST_COMPILE
786 typedef uint16 KeyAction_e;
787 #else
788 typedef KeyAction_enum KeyAction_e;
789 #endif
790 
791 typedef enum
792 {
793     KEY_WEP_DEFAULT       = 0,
794     KEY_WEP_ADDR          = 1,
795     KEY_AES_GROUP         = 4,
796     KEY_AES_PAIRWISE      = 5,
797     KEY_WEP_GROUP         = 6,
798     KEY_TKIP_MIC_GROUP    = 10,
799     KEY_TKIP_MIC_PAIRWISE = 11
800 } KeyType_enum;
801 
802 /*
803 Key Size+Key Data table (valid value)
804 KeyType_enum  Key Type	                  Valid Key Size	Key Data Field Format
805 ============  ========	                  ==============    =====================
806 0x00          WEP default key	          5, 13, 29	        Key Size bytes of key data
807 
808 0x01          WEP key mapping key	      5, 13, 29         Key Size bytes of key data
809 
810 0x04          AES Group Key	              16                16 bytes of key data
811 
812 0x05          AES Pairwise Key	          16                16 bytes of key data
813 
814 0x0A          TKIP and MIC Group Key      32                16 bytes of TKIP key data
815                                                         8 bytes of Rx MIC key data
816                                                         8 bytes of Tx MIC key data
817 
818 0x0B          TKIP and MIC Pairwise Key   32                16 bytes of TKIP key data
819                                                         8 bytes of Rx MIC key data
820                                                         8 bytes of Tx MIC key data
821 */
822 
823 #ifdef HOST_COMPILE
824 typedef uint8 KeyType_e;
825 #else
826 typedef KeyType_enum KeyType_e;
827 #endif
828 
829 
830 typedef enum
831 {
832     NO_KEY            =  0,
833     KEY_SIZE_WEP_64   =  5,
834     KEY_SIZE_WEP_128  = 13,
835     KEY_SIZE_WEP_256  = 29,
836     KEY_SIZE_TKIP     = MAX_KEY_SIZE
837 } KeySize_enum;                      /* WEP keysizes reflect 3 bytes appended from IV.*/
838 
839 #ifdef HOST_COMPILE
840 typedef uint8 KeySize_e;
841 #else
842 typedef KeySize_enum KeySize_e;
843 #endif
844 
845 
846 typedef struct
847 {
848     uint8 addr[MAC_ADDR_SIZE]; /* This field specifies the MAC address of the station to*/
849 	                           /* add or remove from the WEP key cache. This field is */
850 	                           /* ignored if a WEP default key is being added or removed.*/
851 
852     KeyAction_e action;        /* This field specifies the action to be performed.*/
853 	                           /* Refer to KeyAction_enum.*/
854 
855     uint16      reserved;
856     KeySize_e   keySize;       /* This field indicates the size of the key in bytes */
857 	                           /* being added. Valid values are listed in the Valid Key */
858 	                           /* Size column in the above "Key Size+Key Data table". */
859 
860     KeyType_e   type;          /* This field indicates the type of key being added.*/
861 	                           /* Valid values are listed in the Value column in the*/
862 	                           /* KeyType_enum.*/
863 
864     uint8       ssidProfile;   /* This field indicates the SSID profile for which the */
865 	                           /* key is set.*/
866     uint8       id;            /* Key ID - For TKIP and AES key types, this field */
867 	                           /* indicates the value that should be inserted into the*/
868 	                           /* KeyID field of frames transmitted using this key */
869 	                           /* entry. For WEP default key types, this field indicates*/
870 	                           /* the ID of the key to add or remove. */
871 	                           /* For WEP key mapping key types, this field is ignored.*/
872 	                           /* Valid values for this field are 0 to 3.*/
873 
874     uint8       reserved2[6];
875     uint8       key[MAX_KEY_SIZE];
876 	                           /* This field holds the security key data to add to the*/
877 	                           /* STA table. The format of this field varies depending*/
878 	                           /* on the type field. The format of this field for each*/
879 	                           /* key type is described in the Key Data Field Format */
880 	                           /* column in the "Key Size+Key Data table", above.*/
881 
882     uint16      AcSeqNum16[NUM_ACCESS_CATEGORIES_COPY];
883 	                           /* This field indicates the lower part of the PN\IV */
884 	                           /* sequence number that is used, for the four Access*/
885 	                           /* Categories.*/
886 
887     uint32      AcSeqNum32[NUM_ACCESS_CATEGORIES_COPY];
888 	                           /* This field indicates the higher part of the PN\IV */
889 	                           /* sequence number that is used, for four Access */
890 	                           /* Categories.*/
891 
892 } SetKey_t;
893 
894 
895 /******************************************************************************
896 
897     ID:		  CMD_READ_MEMORY
898 	Desc:	  The host issues this command to read the WiLink device
899 	          memory/registers.
900     Params:	  ReadWriteCommand_t - see below.
901 	Note:     The Base Band address has special handling (16 bits registers and
902 	          addresses). For more information, see the hardware specification.
903 
904 ******************************************************************************/
905 /******************************************************************************
906 
907     ID:		  CMD_WRITE_MEMORY
908 	Desc:	  The host issues this command to write the WiLink device memory/registers.
909     Params:	  ReadWriteCommand_t - see below.
910 	Note:     The Base Band address has special handling (16 bits registers and
911 	          addresses). For more information, see the hardware specification.
912 
913 ******************************************************************************/
914 
915 #define MAX_READ_SIZE 256
916 
917 typedef struct
918 {
919     uint32 addr;                 /* The address of the memory to read from or write to.*/
920     uint32 size;                 /* The amount of data in bytes to read from or write */
921 	                             /* to the WiLink device.*/
922     uint8  value[MAX_READ_SIZE]; /* The actual value read from or written to the Wilink.*/
923 	                             /* The source of this field is the Host in WRITE */
924 	                             /* command or the Wilink in READ command.*/
925 } ReadWriteCommand_t;
926 
927 
928 /******************************************************************************
929 
930     ID:		  CMD_BEACON
931 	Desc:	  This command specifies the contents of the beacon template stored in
932 	          the WiLink.
933     Params:	  PktTemplate_t - see below.
934 
935 ******************************************************************************/
936 
937 /******************************************************************************
938 
939     ID:		  CMD_PROBE_RESP
940 	Desc:	  This command specifies the contents of the probe response template
941 	          stored in the WiLink.
942     Params:	  PktTemplate_t - see below.
943 
944 ******************************************************************************/
945 
946 /******************************************************************************
947 
948     ID:		  CMD_NULL_DATA
949 	Desc:	  This command specifies the contents of the Null data template
950 	          stored in the WiLink.
951     Params:	  PktTemplate_t - see below.
952 
953 ******************************************************************************/
954 
955 /******************************************************************************
956 
957     ID:		  CMD_PROBE_REQ
958 	Desc:	  This command specifies the contents of the probe request template
959 	          stored in the WiLink.
960     Params:	  PktTemplate_t - see below.
961 
962 ******************************************************************************/
963 
964 /******************************************************************************
965 
966     ID:		  CMD_PS_POLL
967 	Desc:	  This command specifies the contents of the PS-poll template
968 	          stored in the WiLink.
969     Params:	  PktTemplate_t - see below.
970 
971 ******************************************************************************/
972 
973 
974 /******************************************************************************
975 
976     ID:		  CMD_QOS_NULL_DATA
977 	Desc:	  This command specifies the contents of the QOS-Null template
978 	          stored in the WiLink.
979     Params:	  PktTemplate_t - see below.
980 
981 ******************************************************************************/
982 /* Template command data structure.*/
983 #define MAX_TEMPLATES_SIZE 300
984 typedef struct
985 {
986 	uint16 len;
987 	uint8  templateStart[MAX_TEMPLATES_SIZE];
988 } PktTemplate_t;
989 
990 
991 /******************************************************************************
992 
993       ID:	  CMD_TEST
994 	Desc:	The TEST command can be issued immediately after the firmware has
995 		  been downloaded, with no further configuration of the WiLink required.
996 		  Full initialization of the WiLink is not required to invoke the TEST
997 		  command and perform the radio test function.
998 		  After testing, the system must be reset.
999 		  Test parameters can be modified while a test is executing.
1000 		  For instance, the host program can change the channel without resetting
1001 		  the system.
1002 
1003       Params:	  TestCmd_t - see below.
1004 		  The returned values are copied to the cmd/sts MB replacing  the command
1005 		  (similar to the interrogate mechanism).
1006 
1007 ******************************************************************************/
1008 typedef enum
1009 {
1010     TEST_CMD_FCC                            = 0x01,
1011     TEST_CMD_TELEC							= 0x02,
1012     TEST_CMD_PLT_FCC_TELEC_TX_STOP			= 0x04,
1013     TEST_CMD_PLT_GAIN_GET                  	= 0x05,
1014     TEST_CMD_PLT_GAIN_ADJUST				= 0x06,
1015     TEST_CMD_PLT_TXPOWER_CAL_START			= 0x07,
1016     TEST_CMD_PLT_TXPOWER_CAL_STOP			= 0x08,
1017     TEST_CMD_PLT_GET_NVS_UPDATE_BUFFER     	= 0x09,
1018 	TEST_CMD_PLT_RX_CALIBRATION			   	= 0x0a,
1019     TEST_CMD_RADIO_TUNE			   	        = 0x0b,
1020     TEST_CMD_RX_PER_START			   	    = 0x0c,
1021     TEST_CMD_RX_PER_STOP			   	    = 0x0d,
1022     MAX_TEST_CMD_ID							= 0xFF
1023 } TestCmdID_enum;
1024 
1025 #ifdef HOST_COMPILE
1026 typedef uint8 TestCmdID_e;
1027 #else
1028 typedef TestCmdID_enum TestCmdID_e;
1029 #endif
1030 
1031 /******************************************************************************/
1032 typedef enum
1033 {
1034  	TEST_MODE_HOST_ORIGINATED_DATA				= 0x00,
1035 	TEST_MODE_FIXED_SEQ_NUMBER					= 0x00,
1036 	TEST_MODE_FW_ORIGINATED_DATA					= 0x01,
1037 	TEST_MODE_RANDOM_DATA							= 0x05,
1038 	TEST_MODE_ZOZO_DATA							= 0x09,
1039 	TEST_MODE_FILLING_PATERN_MASK					= 0x0F,
1040 	TEST_MODE_DELAY_REQUIRED						= 0x10,
1041 	TEST_MODE_DISABLE_SRCRAMBLING_FLAG			= 0x20
1042 }TestModeCtrlTypes_e;
1043 
1044 #ifdef HOST_COMPILE
1045 typedef uint8 FccTestType_e;
1046 #else
1047 typedef TestModeCtrlTypes_e FccTestType_e;
1048 #endif
1049 
1050 /******************************************************************************/
1051 #define 	TEST_SEQ_NUM_MODE_FIXED				(0)
1052 #define     TEST_SEQ_NUM_MODE_INCREMENTED		(1)
1053 
1054 /******************************************************************************
1055 
1056   TestCmdId :	TEST_CMD_FCC - Tx continuous test
1057 
1058   Description:  Continuous transmit series of numbers with a valid MAC header
1059                 as was received from driver.
1060 				However there is no 802.11 air access compliance.
1061 
1062   Params:     	PERTxCfg_t fcc - see below.
1063 
1064 ******************************************************************************/
1065 #define NUM_OF_MAC_ADDR_ELEMENTS 6
1066 typedef struct PERTxCfg_t
1067 {
1068 			/*input parameters*/
1069             uint32 numFrames;       /* number of frams to transmit, 0 = endless*/
1070             uint32 interFrameGap;   /* time gap in uSec */
1071             uint32 seqNumMode;      /* Fixed / Incremented */
1072             uint32 frameBodySize;    /* length of Mac Payload */
1073             uint8 channel;          /*channel number*/
1074             uint8 dataRate;         /* MBps 1,2,11,22,... 54           */
1075             uint8 modPreamble;		/* CTL_PREAMBLE 0x01 */
1076             uint8 band;				/* {BAND_SELECT_24GHZ 0x00 | BAND_SELECT_5GHZ 0x01} */
1077             uint8 modulation;		/* {PBCC_MODULATION_MASK |OFDM_MODULATION_MASK }*/
1078             FccTestType_e testModeCtrl;
1079             uint8 dest[NUM_OF_MAC_ADDR_ELEMENTS];          /* set to hard codded default {0,0,0xde,0xad,0xbe,0xef}; */
1080 } PERTxCfg_t;
1081 
1082 /******************************************************************************
1083    TestCmdId :		TEST_CMD_TELEC
1084 
1085    Description:  	Generate carrier wave in a specific channel and band
1086 
1087    Params:     	TestCmdChannelBand_t        telec  - see below.
1088 
1089 ******************************************************************************/
1090 typedef struct
1091 {
1092 			/*input parameters*/
1093            Channel_e    channel; 		 /*Channel number*/
1094            RadioBand_e  band;           /* {BAND_SELECT_24GHZ 0x00 | BAND_SELECT_5GHZ 0x01} */
1095            uint8        padding[2];     /* padding to 32 bit */
1096 } TestCmdChannelBand_t;
1097 
1098 /******************************************************************************
1099 
1100   TestCmdId :		TEST_CMD_PLT_GAIN_GET
1101 
1102 	Description: Retrieves the TX chain gain settings.
1103 
1104   Params:    		PltGainGet_t       gainGet - see public_radio.h
1105 
1106 
1107 ******************************************************************************/
1108 
1109 /******************************************************************************
1110 
1111 	TestCmdId:	TEST_CMD_PLT_GET_NVS_UPDATE_BUFFER
1112 
1113 	Description: This PLT function provides the all information required by
1114 					the upper driver in order to update the NVS image.
1115 					It received a parameter defining the type of update
1116 					information required and provides an array of elements
1117 					defining the data bytes to be written to the NVS image
1118 					and the byte offset in which they should be written.
1119  Params:     PltNvsResultsBuffer_t nvsUpdateBuffer  - see public_radio.h
1120 
1121 
1122 *****************************************************************************/
1123 
1124 
1125 /******************************************************************************
1126 
1127   TestCmdId :	TEST_CMD_PLT_GAIN_ADJUST
1128 
1129 	Description: retrieves the TX chain gain settings.
1130 
1131 	Params:     int32                txGainAdjust
1132 
1133 *****************************************************************************/
1134 
1135 /******************************************************************************
1136 
1137   TestCmdId :	TEST_CMD_PLT_RX_CALIBRATION
1138 
1139 	Description: Used as part of the  RX calibration procedure, call this
1140 			function for every calibration channel.
1141 			The response for that function indicates only that command had been received by th FW,
1142 			and not that the calibration procedure had been finished.
1143 			The upper layer need to wait amount of ((numOfSamples*intervalBetweenSamplesUsec).
1144 			To make sure that the RX  calibration  completed. before calling to the next command.
1145 
1146 	Params:     PltRxCalibrationRequest_t	 rxCalibration
1147 
1148   ******************************************************************************/
1149 typedef struct PltRxCalibrationRequest_t
1150 {
1151 	int32           expectedRssi;				/* The calibration generated signal power (db) */
1152 	int32	        intervalBetweenSamplesUsec; /* uSec - recommended value 100 */
1153     uint8	        channel;
1154     RadioBand_e     band;
1155     int16	        numOfSamples;				/* recommended value  1000*/
1156 }PltRxCalibrationRequest_t;
1157 
1158 /******************************************************************************
1159 
1160 TestCmdId :	TEST_CMD_PLT_TXPOWER_CAL_START
1161 
1162 Description:
1163 
1164 Params:     PltTxCalibrationRequest_t
1165 
1166 ******************************************************************************/
1167 typedef struct
1168 {
1169 	uint8			refTxPower;
1170 	uint8			padding[3];
1171 }PltTxCalibrationRequest_t;
1172 
1173 /******************************************************************************
1174 	TestCmd_t - the main PLT structure
1175 *******************************************************************************/
1176 typedef struct TestCmd_t
1177 {
1178     union
1179     {
1180            PERTxCfg_t	         			fcc;
1181            TestCmdChannelBand_t        			telec;
1182            PltGainGet_t          			gainGet;
1183            PltNvsResultsBuffer_t 			nvsUpdateBuffer;
1184            PltRxCalibrationRequest_t	 	rxCalibration;
1185            uint32               			txGainAdjust;
1186            TestCmdChannelBand_t     		radioTune;
1187 		   PltTxCalibrationRequest_t		txCalibration;
1188     }testCmd_u;
1189     TestCmdID_e		testCmdId;
1190 	int8			padding[3];
1191 }TestCmd_t;
1192 
1193 
1194 
1195 /******************************************************************************
1196 
1197     ID:		  CMD_NOISE_HIST
1198 	Desc:	  This command starts/stops the noise histogram measurements.
1199     Params:	  NoiseHistRequest_t - see below.
1200 
1201 ******************************************************************************/
1202 #define NOISE_HIST_LEN 8
1203 
1204 typedef enum
1205 {
1206     NOISE_HIST_STOP,
1207     NOISE_HIST_START,
1208     NOISE_HIST_INVALID = MAX_POSITIVE16 /* Force to be 16 bits enum*/
1209 } NoiseHistMode_enum;
1210 
1211 #ifdef HOST_COMPILE
1212 typedef uint16 NoiseHistMode_e;
1213 #else
1214 typedef NoiseHistMode_enum NoiseHistMode_e;
1215 #endif
1216 
1217 typedef struct
1218 {
1219     NoiseHistMode_e mode;             /* Start or stop the FW engine. */
1220 	                                  /* Possible values are 1 (Start) and 0 (Stop).*/
1221 
1222     uint16 sampleIntervalUSec;        /* The time interval in usec between measurements.*/
1223 	                                  /* Valid values are between 100us (default) and */
1224 	                                  /* 2ms (with 100us jumps). This parameter is */
1225 	                                  /* relevant only when Mode is Start (1).*/
1226 
1227     uint8  thresholds[NOISE_HIST_LEN];/* An array of eight 8 bit thresholds. The FW */
1228 	                                  /* takes noise measurements, once every */
1229 	                                  /* SampleIntervalUSec interval. If the measured */
1230 	                                  /* noise level is between the threshold[X] and */
1231 	                                  /* threshold[X 1], then the FW increments the */
1232 	                                  /* noise histogram counter[X]. */
1233 	                                  /* The counters are read via the */
1234 	                                  /* ACXNoiseHistogramResults IE. This parameter is */
1235 	                                  /* relevant only when Mode is Start (1).*/
1236 } NoiseHistRequest_t;
1237 
1238 
1239 /******************************************************************************
1240 
1241     ID:		  CMD_RX_RESET
1242 	Desc:	  This command resets the MAC Rx path. After the command is issued,
1243 	          the MAC Rx path is reset the next time a frame is received (in the PHY
1244 			  Rx Header interrupt).
1245     Params:	  None.
1246 	Note:     This command is for TI internal use only.
1247 
1248 ******************************************************************************/
1249 
1250 
1251 /******************************************************************************
1252 
1253     ID:		  CMD_LNA_CONTROL
1254 	Desc:	  This command controls the LNA state.
1255     Params:	  LNAControl_t - see below.
1256 
1257 ******************************************************************************/
1258 
1259 typedef enum
1260 {
1261     LNA_MODE_MANUAL,    /* 0: The LNA is set to manual mode and is turned off.*/
1262 	LNA_MODE_AUTO,      /* 1: The LNA is set to automatic mode.*/
1263     LNA_MODE_INVALID = 0xFF
1264 } LnaMode_enum;
1265 
1266 #ifdef HOST_COMPILE
1267 typedef uint8 LnaMode_e;
1268 #else
1269 typedef LnaMode_enum LnaMode_e;
1270 #endif
1271 
1272 typedef struct
1273 {
1274 	LnaMode_e LNAControlField; /* refer to LnaMode_enum*/
1275     uint8	  padding[3];      /* for alignment to 32 bits boundry*/
1276 } LNAControl_t;
1277 
1278 
1279 /******************************************************************************
1280 
1281     ID:		  CMD_MEASUREMENT
1282 	Desc:	  This command instructs the WiLink device to begin a basic channel
1283 	          load measurement on the specified channel. When the measurement
1284 			  process actually starts running the WilLink device will raise the
1285 			  Measurement Started event. When the measurement process completes as
1286 			  a result of the end of the measurement duration or a STOP_MEASUREMENT
1287 			  command, the WilLink device will raise a Measurement Complete event.
1288     Params:	  MeasurementParameters_t - see below.
1289 
1290 ******************************************************************************/
1291 typedef struct
1292 {
1293     ACXRxConfigStruct rxFilter; /* This field is the Rx filter configuration for the */
1294 	                            /* device while the measurement process is running. */
1295 	                            /* When the process ends the previous Rx filter */
1296 	                            /* configuration is reset. The filter configuration is*/
1297 	                            /* composed of two 32 bit registers. When they are set*/
1298 	                            /* to 0xFFFFFFFF the Rx filter configuration is not*/
1299 	                            /* changed.*/
1300 
1301     uint32 duration;            /* Specifies the measurement process duration in */
1302 	                            /* microseconds. The value of 0 means infinite duration*/
1303 	                            /* in which only a STOP_MEASUREMENT command can*/
1304 	                            /* stop the measurement process.*/
1305 
1306     Channel_e channel;          /* Channel number on which the measurement is performed,*/
1307 	                            /* valid range 0-255 (1-14 for 802.11b).*/
1308 
1309     RadioBand_e band;           /* Specifies the band to which the channel belongs. */
1310 	                            /* 0 - 2.4GHz */
1311 	                            /* 1 - 5GHz , */
1312 	                            /* 0xFF - Current band.*/
1313 
1314     uint8 padding[2];           /* for alignment to 32 bits boundry*/
1315 } MeasurementParameters_t;
1316 
1317 /******************************************************************************
1318 
1319     ID:		  CMD_STOP_MEASUREMENT
1320 	Desc:	  This command instructs the WiLink to terminate any measurement in
1321 	          progress. After processing this command, the WiLink returns to its
1322 			  previous state (the state before the measurement was started) and
1323 			  generates the Measurment Complete event.
1324     Params:	  None.
1325 
1326 ******************************************************************************/
1327 
1328 /******************************************************************************
1329 
1330     ID:		  CMD_DISCONNECT
1331 	Desc:	  This command instructs the WiLink device to stop all BSS or IBSS activity.
1332 	          The device will cancel all of its TSF dependent events and activities.
1333 			  Power Save dependent activities are an exception to this, therefore
1334 			  the host must exit Power Save mode by issuing the SET_PS_MODE command
1335 			  before calling this command. When this command is complete the Disconnect
1336 			  Complete event is raised to the host and the WiLink device is allowed
1337 			  to enter the configured low power state.
1338     Params:	  DisconnectParameters_t - see below.
1339 
1340 ******************************************************************************/
1341 typedef struct
1342 {
1343     ACXRxConfigStruct rxFilter; /* This field is the Rx filter configuration for the*/
1344 	                            /* device that is set after the disconnection is */
1345 	                            /* complete. */
1346 
1347 
1348 } DisconnectParameters_t;
1349 
1350 
1351 /******************************************************************************
1352 
1353     ID:		  CMD_SET_PS_MODE
1354 	Desc:	  This command turns ON/OFF Power save protocol on the WiLink.
1355 	          After HW configuration, FW sends Null data packet to the AP with Power
1356 			  Management bit set accordingly to the field "Mode" of this command
1357 			  structure. After processing this command, the FW generates the
1358 			  PS_COMPLETE event.
1359     Params:	  PSModeParameters_t - see below.
1360 
1361 ******************************************************************************/
1362 
1363 typedef enum
1364 {
1365     STATION_ACTIVE_MODE,
1366     STATION_POWER_SAVE_MODE
1367 } StationPSMode_enum;
1368 
1369 #ifdef HOST_COMPILE
1370 typedef uint8 StationPowerSaveMode_e;
1371 #else
1372 typedef StationPSMode_enum StationPowerSaveMode_e;
1373 #endif
1374 
1375 /*
1376 TxdRateSet_t definition
1377 Bit     Description
1378 ===     ===========
1379 0-12    Every one of bits 0-12 specifies rate described in the column on left. Only
1380         one bit could be set for the command, all other should be zeroed.
1381 0       1 MBPS
1382 1       2 MBPS
1383 2       5.5 MBPS
1384 3       6 MBPS
1385 4       9 MBPS
1386 5       11 MBPS
1387 6       12 MBPS
1388 7       18 MBPS
1389 8       22 MBPS
1390 9       24 MBPS
1391 10      36 MBPS
1392 11      48 MBPS
1393 12      54 MBPS
1394 13      Unused (set to 0).
1395 14      PBCC - When this bit is set, the WiLink transmits probe requests with PBCC
1396         modulation.
1397 15      Preamble - When this bit is set, the WiLink transmits probe requests with a
1398                    short preamble. When this bit is clear, the WiLink transmits the
1399 				   frame with a long preamble.
1400 
1401 If neither the PBCC bit or OFDM rate are set, then the modulation format for probe
1402 requests is CCK for 5.5 or 11 Mbps or DBPSK/DQPSK for 1 and 2 Mbps.
1403 */
1404 
1405 typedef struct
1406 {
1407     StationPowerSaveMode_e mode;         /* This field specifies the future Power save*/
1408 	                                     /* protocol mode of the system. */
1409 	                                     /* When set, Power save protocol is enabled. */
1410 	                                     /* When cleared, Power save protocol is */
1411 	                                     /* disabled (refer to StationPSMode_enum).*/
1412 
1413     uint8                  needToSendNullData;
1414     uint8 numberOfRetries;               /* This field specifies the maximum allowed */
1415 	                                     /* number of retries of the Null data packet */
1416 	                                     /* that FW will send after switching the */
1417 	                                     /* Power Save Protocol mode.*/
1418 
1419     uint8 hangOverPeriod;                /* This field specifies the hangover period, */
1420 	                                     /* which is the time in TUs during which the */
1421 	                                     /* WiLink remains awake after sending an MPDU */
1422 	                                     /* with the Power Save bit set, indicating that*/
1423 	                                     /* the station is to go into Power Save mode. */
1424 	                                     /* Setting bit 0 does not affect the hangover */
1425 	                                     /* period.*/
1426 
1427     TxdRateSet_t rateToTransmitNullData; /* This bitwise field specifies the rate and */
1428 	                                     /* modulation to transmit the Null data packet*/
1429 	                                     /* to the AP. refer to above table */
1430 	                                     /* (TxdRateSet_t). */
1431 
1432     uint8 padding[2];                    /* for alignment to 32 bits boundry*/
1433 } PSModeParameters_t;
1434 
1435 /******************************************************************************
1436 
1437     ID:		  CMD_CHANNEL_SWITCH
1438 	Desc:	  This command instructs the WiLink to switch serving channel at the given
1439 	          time. Once the channel switch is performed, the Channel Switch Complete
1440 			  event is raised to the host.
1441     Params:	  ChannelSwitchParameters_t - see below.
1442 
1443 ******************************************************************************/
1444 typedef struct
1445 {
1446     Channel_e channel;  /* The new serving channel.*/
1447     uint8 switchTime;   /* Relative time of the serving channel switch in TBTT units.*/
1448     Bool_e txSuspend;   /* 1: Suspend TX till switch time; */
1449 	                    /* 0: Do not suspend TX*/
1450     Bool_e flush;       /* 1: Flush TX at switch time; */
1451 	                    /* 0: Do not flush*/
1452 
1453 } ChannelSwitchParameters_t;
1454 
1455 /******************************************************************************
1456 
1457     ID:		  CMD_STOP_CHANNEL_SWICTH
1458 	Desc:	  This command instructs the WiLink device to cancel performing a
1459 	          pending channel switch event command.
1460     Params:	  None.
1461 
1462 ******************************************************************************/
1463 
1464 /******************************************************************************
1465 
1466     ID:		  CMD_AP_DISCOVERY
1467 	Desc:	  This command instructs the WiLink device to perform an AP discovery
1468 	          measurement on a single channel. This command can only be issued after
1469 	          a measurement process has been started by the WiLink device as a result
1470 	          of a previous Measurement command. The Measurement command specifies the
1471 	          channel on which the AP discovery is performed. Once the "AP discovery"
1472 	          measurement is completed either by a STOP_AP_DISCOVERY command or when
1473 	          the duration has expired, it will send an "AP discovery complete event"
1474 	          to the host.
1475     Params:	  ApDiscoveryParameters_t - see below.
1476 
1477 ******************************************************************************/
1478 /*
1479 TxdRateSet_t definition
1480 Bit     Description
1481 ===     ===========
1482 0-12    Every one of bits 0-12 specifies rate described in the column on left. Only
1483         one bit could be set for the command, all other should be zeroed.
1484 0       1 MBPS
1485 1       2 MBPS
1486 2       5.5 MBPS
1487 3       6 MBPS
1488 4       9 MBPS
1489 5       11 MBPS
1490 6       12 MBPS
1491 7       18 MBPS
1492 8       22 MBPS
1493 9       24 MBPS
1494 10      36 MBPS
1495 11      48 MBPS
1496 12      54 MBPS
1497 13      Unused (set to 0).
1498 14      PBCC - When this bit is set, the WiLink transmits probe requests with PBCC
1499         modulation.
1500         Notes:
1501            Does not apply (set to 0) for rates 1 and 2 Mbps.
1502            Does not apply (set to 0) for RevG-OFDM rates.
1503 15      Preamble - When this bit is set, the WiLink transmits probe requests with a
1504                    short preamble. When this bit is clear, the WiLink transmits the
1505 				   frame with a long preamble.
1506                    Notes:
1507                      Must be LONG (0) for 1Mbps rate.
1508 				     Does not apply (set to 0) for RevG-OFDM rates.
1509 
1510 If neither the PBCC bit or OFDM rate are set, then the modulation format for probe
1511 requests is CCK for 5.5 or 11 Mbps or DBPSK/DQPSK for 1 and 2 Mbps.
1512 */
1513 typedef struct
1514 {
1515     ACXRxConfigStruct rxFilter; /* This field is the Rx filter configuration for the */
1516 	                            /* device while the AP Discovery process is running. */
1517 	                            /* When the process ends the previous Rx filter */
1518 	                            /* configuration is reset. The filter configuration is*/
1519 	                            /* composed of two 32 bit registers. When they are set */
1520 	                            /* to 0xFFFFFFFF the Rx filter configuration is not */
1521 	                            /* changed.*/
1522 
1523     uint32 scanDuration;        /* This field specifies the amount of time, in time*/
1524 	                            /* units (TUs), to perform the AP discovery. The value*/
1525 	                            /* can range from 0 to 65535 TUs (67.1 seconds). */
1526 
1527     uint16 scanOptions;         /* This field specifies whether the AP discovery is */
1528 	                            /* performed by an active scan or a passive scan. */
1529 	                            /* 0 - ACTIVE, 1 - PASSIVE.*/
1530 
1531     uint8  numOfProbRqst;       /* This field indicates the number of probe requests to*/
1532 	                            /* send per channel, when active scan is specified. */
1533                                 /* Note: for EXC measurement this value should be set */
1534 	                            /*       to 1.*/
1535 
1536     uint8 txPowerAttenuation;   /* TX power level to be used for sending probe requests*/
1537 	                            /* when active scan is specified. */
1538 	                            /* If 0, leave normal TX power level for this channel. */
1539 
1540     TxdRateSet_t txdRateSet;    /* This bitwise field specifies the rate and modulation*/
1541 	                            /* to transmit the probe request when an active scan is*/
1542 	                            /* specified. Refer to above descrption ob TxdRateSet.*/
1543     uint8 padding[3];           /* for alignment to 32 bits boundry*/
1544 } ApDiscoveryParameters_t;
1545 
1546 /******************************************************************************
1547 
1548     ID:		  CMD_STOP_AP_DISCOVERY
1549 	Desc:	  This command instructs the WiLink to terminate the AP Discovery
1550 	          measurement in progress. After processing this command, the WiLink
1551 			  returns to its previous state  and generates the AP Discovery Complete
1552 			  Event.
1553     Params:	  None.
1554 
1555 ******************************************************************************/
1556 
1557 /******************************************************************************
1558 
1559     ID:		  CMD_SPS_SCAN
1560 	Desc:	  This command instructs the WiLink to perform a scheduled passive
1561 	          scan for BSS/IBSSs. The WiLink monitors the specified channel(s)
1562 			  for beacons. The WiLink sends Scheduled Scan Complete event to notify
1563 			  the host when it has completed a scan.
1564     Params:	  InfoElement_t - see below.
1565 
1566 ******************************************************************************/
1567 /* Scheduled - General scan parameters.*/
1568 typedef struct
1569 {
1570     ACXRxConfigStruct rxCfg;         /* Rx filter to be used for each channel scan. */
1571 	                                 /* The BSSID filter enable will be set (by the scan*/
1572 	                                 /* process) to ON for a specific channel if the*/
1573 	                                 /* BSSID of this channel is a unicast address. */
1574 	                                 /* Otherwise it will be set to OFF (Refer to */
1575 	                                 /* ACXRxConfigStruct).*/
1576 
1577     uint32            scanCmdTime_h; /* This filed is the latest 32 MSBits of TSF known*/
1578 	                                 /* at the time the SPS command was issued. When the*/
1579 	                                 /* scan process is about to begin, this value is */
1580 	                                 /* used to determine if the AP has performed a */
1581 	                                 /* recovery by comparing this value to the current*/
1582 	                                 /* TSF. (An AP that has performed a recovery should*/
1583 	                                 /* have a lower TSF then the one that was saved).*/
1584 
1585     uint32            scanCmdTime_l; /* This filed is the latest 32 LSBits of TSF known*/
1586 	                                 /* at the time the SPS command was issued. */
1587 
1588     uint16            scanOptions;   /* This bitwise field indicates the scan options. */
1589 	                                 /* Bits [0,2:15] are reserved. */
1590 	                                 /* Bit 1 is defined as follows:*/
1591 	                                 /*  Band Select - When this bit is set, the WiLink*/
1592 	                                 /*                scans the specified channels in */
1593 	                                 /*                the 5GHz band. */
1594 	                                 /*                When this bit is cleared, the */
1595 	                                 /*                WiLink scans the specified */
1596 	                                 /*                channels in the 2.4GHz band. */
1597 
1598 
1599     uint8             numChannels;   /* Number of scan channels in the list (minimum */
1600 	                                 /* (minimumis 1, maximum is 30).*/
1601 
1602     uint8		      padding;       /* for alignment to 32 bits boundry*/
1603 } ScheduledGeneralParameters_t;
1604 
1605 
1606 /* Scheduled - Per-Channel scan parameters.*/
1607 typedef struct
1608 {
1609     uint32 scanStartTime;      /* Duration in microseconds of the scan on this channel */
1610 	                           /* (Scan could be aborted before this duration in case of*/
1611 	                           /* early termination condition met on the channel). */
1612 
1613     uint32 scanMaxDuration;    /* Lower 4 bytes of TSF time in microseconds when the */
1614 	                           /* scan should start listening on the desired channel. */
1615 
1616     uint32 bssIdL;             /* 32 LSBits of BSSID of the AP to scan for. If scanning */
1617 	                           /* on this  channel any BSSID, this field shall be set */
1618 	                           /* to broadcast BSSID. */
1619 
1620     uint16 bssIdH;             /* 16 MSBits of BSSID of the AP to scan for. */
1621 
1622     ETCondCount_t ETCondCount; /* bit 0-3: Early Termination count - This field */
1623 	                           /*          defines the maximum number of beacons*/
1624 	                           /*          or probe responses or both (according*/
1625 	                           /*          to condition) to collect before ending*/
1626 	                           /*          a scan.*/
1627 
1628 	                           /* Bit 4-5: Early Termination Condition (refer */
1629 	                           /*          to ETCondition_enum).*/
1630     Channel_e     channel;     /* Channel number to scan, valid range 0-255 */
1631 	                           /* (1-14 for 802.11b).*/
1632 } ScheduledChannelParameters_t;
1633 
1634 
1635 /* The Scheduled Scan command structure.*/
1636 typedef struct
1637 {
1638     ScheduledGeneralParameters_t scheduledGeneralParameters;
1639     ScheduledChannelParameters_t scheduledChannelParameters[SCAN_MAX_NUM_OF_CHANNELS];
1640 } ScheduledScanParameters_t;
1641 
1642 /******************************************************************************
1643 
1644     ID:		  CMD_STOP_SPS_SCAN
1645 	Desc:	  This command instructs the WiLink to terminate a currently running
1646 	          SPS or a pending SPS.. After processing this command, the WiLink
1647 			  returns to its previous state and generates the Scheduled Scan
1648 			  Complete Event.
1649     Params:	  None.
1650 
1651 ******************************************************************************/
1652 
1653 /******************************************************************************
1654 
1655     ID:		  CMD_HEALTH_CHECK
1656 	Desc:	  This command instructs the WiLink to raise a MAC status event
1657 	          which contains the current FCS Error counter.
1658     Params:	  None.
1659 
1660 ******************************************************************************/
1661 
1662 /******************************************************************************
1663 
1664     ID:		  CMD_DEBUG
1665 	Desc:
1666     Params:	  debugCommnad_t - see below.
1667 
1668 ******************************************************************************/
1669 #define MAX_DEBUG_PARAMETERS 10
1670 
1671 typedef struct
1672 {
1673     uint32  id;
1674     uint32  params[MAX_DEBUG_PARAMETERS];
1675 } debugCommnad_t;
1676 
1677 /* PLT public definitions*/
1678 #define TEST_CONTINUOUS 0x04       /* transmit frames contimuously */
1679 
1680 
1681 /*This typedef corresponds to the Fig 1 Frame Format for PER test given in PER test doc.*/
1682 #define PER_MODE_TX 1
1683 #define PER_MODE_RX 2
1684 #define INFRA   0x2         /* BSS is in Infrastructure mode */
1685 #define LOCAL_MEM_LAST      0x02000000
1686 #define PBCC_MODULATION_MASK 0x80
1687 #define OFDM_MODULATION_MASK 0x40
1688 #define BAND_SELECT_5GHZ     0x10
1689 #define CTL_PREAMBLE         0x01
1690 
1691 
1692 
1693 #endif /* PUBLIC_COMMANDS_H*/
1694