TWD/FirmwareApi/public_commands.h
changeset 0 10c42ec6c05f
equal deleted inserted replaced
-1:000000000000 0:10c42ec6c05f
       
     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*/