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