Home | History | Annotate | Download | only in inc
      1 /****************************************************************************
      2 **+-----------------------------------------------------------------------+**
      3 **|                                                                       |**
      4 **| Copyright(c) 1998 - 2008 Texas Instruments. All rights reserved.      |**
      5 **| All rights reserved.                                                  |**
      6 **|                                                                       |**
      7 **| Redistribution and use in source and binary forms, with or without    |**
      8 **| modification, are permitted provided that the following conditions    |**
      9 **| are met:                                                              |**
     10 **|                                                                       |**
     11 **|  * Redistributions of source code must retain the above copyright     |**
     12 **|    notice, this list of conditions and the following disclaimer.      |**
     13 **|  * Redistributions in binary form must reproduce the above copyright  |**
     14 **|    notice, this list of conditions and the following disclaimer in    |**
     15 **|    the documentation and/or other materials provided with the         |**
     16 **|    distribution.                                                      |**
     17 **|  * Neither the name Texas Instruments nor the names of its            |**
     18 **|    contributors may be used to endorse or promote products derived    |**
     19 **|    from this software without specific prior written permission.      |**
     20 **|                                                                       |**
     21 **| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS   |**
     22 **| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT     |**
     23 **| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |**
     24 **| A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT  |**
     25 **| OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |**
     26 **| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT      |**
     27 **| LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |**
     28 **| DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |**
     29 **| THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT   |**
     30 **| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |**
     31 **| OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  |**
     32 **|                                                                       |**
     33 **+-----------------------------------------------------------------------+**
     34 ****************************************************************************/
     35 
     36 #ifndef __PARAM_OUT_H__
     37 #define __PARAM_OUT_H__
     38 
     39 #include "osTIType.h"
     40 #include "osDot11.h"
     41 #include "tiwlnif.h"
     42 #include "ratesTypes.h"
     43 #include "scanTypes.h"
     44 #include "bssTypes.h"
     45 #include "roamingMngrTypes.h"
     46 #include "public_commands.h"
     47 #include "public_infoele.h"
     48 #include "public_radio.h"
     49 
     50 #ifdef EXC_MODULE_INCLUDED
     51 #include "paramOutExc.h"
     52 #else
     53 #define   EXC_PARAM_FIELDS
     54 #endif
     55 
     56 #include "paramMng.h"
     57 #include "commonTypes.h"
     58 #include "coreDefaultParams.h"
     59 
     60 #define DOT11_MAX_DEFAULT_WEP_KEYS          ( 4  )
     61 #define ACX_64BITS_WEP_KEY_LENGTH_BYTES     ( 5  )
     62 #define ACX_128BITS_WEP_KEY_LENGTH_BYTES    ( 13 )
     63 #define ACX_256BITS_WEP_KEY_LENGTH_BYTES    ( 29 )
     64 #define ACX_MAX_WEP_KEY_LENGTH_BYTES        ( 29 )
     65 
     66 #define RX_LEVEL_TABLE_SIZE             (15)
     67 #define SPECIAL_BG_CHANNEL              (14)
     68 
     69 #define BEACON_FILTER_STRING_MAX_LEN 300  /*this is the max possible string length from INI file*/
     70 
     71 #define BEACON_FILTER_IE_TABLE_MIN_SIZE 0
     72 #define BEACON_FILTER_IE_TABLE_MAX_NUM (6+32)
     73 #define BEACON_FILTER_IE_TABLE_MIN_NUM 0
     74 
     75 #define RX_DATA_FILTER_MAX_MASK_SIZE            (8)
     76 #define RX_DATA_FILTER_MAX_PATTERN_SIZE         (64)
     77 #define RX_DATA_FILTER_MAX_FIELD_PATTERNS       (8)
     78 #define RX_DATA_FILTER_FILTER_BOUNDARY          (256)
     79 
     80 #define RX_DATA_FILTER_FLAG_NO_BIT_MASK         (0)
     81 #define RX_DATA_FILTER_FLAG_USE_BIT_MASK        (1)
     82 #define RX_DATA_FILTER_FLAG_IP_HEADER           (0)
     83 #define RX_DATA_FILTER_FLAG_ETHERNET_HEADER     (2)
     84 
     85 #define RX_DATA_FILTER_ETHERNET_HEADER_BOUNDARY (14)
     86 
     87 
     88 /* Soft gemini  values */
     89 
     90 #define NUM_OF_RATES_IN_SG MAX_NUM_OF_TX_RATES_IN_CLASS /* all rates (13)... */
     91 #define SG_RATES_STRING_MAX_DEF 100
     92 #define SG_RATES_DEF "0,0,1,0,0,1,1,1,0,1,1,1,1" /* all rates but 1,2,6,9,22 */
     93 #define NUM_OF_CONFIG_PARAMS_IN_SG 28
     94 #define NUM_OF_STATUS_PARAMS_IN_SG 28
     95 
     96 
     97 /*used by UtilInfoCodeQueryInformation , UtilInfoCodeSetInformation*/
     98 #define VAL_TX_POWER_VALUE			100
     99 #define VAL_NETWORK_TYPE			101
    100 #define VAL_AP_TX_POWER_LEVEL	    102
    101 /* #define VAL_COUNTRY_CODE    	        103 */
    102 /* #define VAL_REG_DOMAIN_BAND_24	    104 */
    103 /* #define VAL_REG_DOMAIN_BAND_50	    105 */
    104 #define VAL_PACKET_BURSTING			106
    105 #define VAL_MIXED_MODE				107
    106 #define VAL_PRIVACY_MODE			108
    107 #define VAL_EXC_SECURITY			109
    108 #define VAL_DEFAULT_KEY_ID			110
    109 #define VAL_AP_SUPPORT_CHANELS 		111
    110 
    111 
    112 
    113 typedef enum
    114 {
    115     DRAFT_5_AND_EARLIER = 5,
    116     DRAFT_6_AND_LATER   = 6
    117 
    118 } draftNumber_t;
    119 
    120 PACKED_STRUCT( ratePair_t,
    121 
    122   rate_e    maxBasic;
    123   rate_e    maxActive;
    124 );
    125 
    126 typedef enum
    127 {
    128     RTS_CTS_DISABLED = 0,
    129     RTS_CTS_ENABLED  = 1
    130 
    131 } RtsCtsStatus_e;
    132 
    133 /* Parameters Structures Definitions per parameter type */
    134 typedef enum
    135 {
    136     AUTH_LEGACY_OPEN_SYSTEM     = 0,
    137     AUTH_LEGACY_SHARED_KEY      = 1,
    138     AUTH_LEGACY_AUTO_SWITCH     = 2,
    139     AUTH_LEGACY_RESERVED1       = 128,
    140     AUTH_LEGACY_NONE            = 255,
    141 } legacyAuthType_e;
    142 
    143 typedef enum
    144 {
    145     CONNECTION_NONE             = 0,
    146     CONNECTION_INFRA            = 1,
    147     CONNECTION_IBSS             = 2,
    148     CONNECTION_SELF             = 3,
    149 } connectionType_e;
    150 
    151 typedef enum
    152 {
    153     RADIO_IN_STAND_BY           = 0,
    154     RADIO_OUT_OF_STAND_BY       = 1,
    155 }radioStandByState_t;
    156 
    157 /**** Regulatory Domain module types ****/
    158 
    159 /* Scan Control Table for 2.4-G band type */
    160 PACKED_STRUCT( scanControlTable24_t,
    161 
    162     UINT8       tableString[NUM_OF_CHANNELS_24];
    163 );
    164 
    165 /* Scan Control Table for 5G-band type */
    166 PACKED_STRUCT( scanControlTable5_t,
    167 
    168     UINT8       tableString[A_5G_BAND_NUM_CHANNELS];
    169 );
    170 
    171 /* Scan Control Table type */
    172 PACKED_STRUCT( scanControlTable_t,
    173 
    174     scanControlTable5_t     ScanControlTable5;
    175     scanControlTable24_t    ScanControlTable24;
    176 );
    177 
    178 PACKED_STRUCT( country_t,
    179 
    180     UINT8		elementId;
    181 	UINT8		len;
    182     countryIE_t countryIE;
    183 );
    184 
    185 PACKED_STRUCT( channelPair_t,
    186 
    187     UINT8   firstChennelNum;
    188     UINT8   NumOfChannels;
    189 );
    190 
    191 typedef enum
    192 {
    193     ACTIVE_SCANNING     = 0,
    194     PASSIVE_SCANNING    = 1,
    195 } regulatoryDomain_scanOption_e;
    196 
    197 PACKED_STRUCT( regulatoryDomainParam_t,
    198 
    199     UINT8*      pChannelBitMap;
    200     UINT8       channelCnt;
    201     INT8        txPower;
    202 );
    203 
    204 PACKED_STRUCT( powerCapability_t,
    205 
    206     UINT8       minTxPower;
    207     UINT8       maxTxPower;
    208 );
    209 
    210 
    211 /* SoftGemini module init parameters */
    212 typedef struct
    213 {
    214     SoftGeminiEnableModes_e SoftGeminiEnable;
    215 	UINT8					SoftGeminiRate[NUM_OF_RATES_IN_SG];
    216     SoftGeminiParam_t		SoftGeminiParam;
    217 	UINT8					scanNumOfProbeRequest;
    218 	UINT32					scanCompensationPercent;
    219 	UINT32					scanCompensationMaxTime;
    220 	UINT32					BSSLossCompensationPercent;
    221  } SoftGeminiInitParams_t;
    222 
    223 typedef enum
    224 {
    225     PHY_UNKNOWN         = 0,
    226     PHY_FH              = 1,
    227     PHY_DSS             = 2,
    228     PHY_UN_USED         = 3,
    229     PHY_OFDM            = 4,
    230     PHY_HIGH_RATE_DSS   = 5,
    231     PHY_ERP             = 6
    232 } phyType_e;
    233 
    234 
    235 typedef enum
    236 {
    237     CLOSE           = 0,
    238     OPEN_NOTIFY     = 1,
    239     OPEN_EAPOL      = 2,
    240     OPEN            = 3,
    241     MAX_NUM_OF_RX_PORT_STATUS,
    242 } portStatus_e;
    243 
    244 typedef enum
    245 {
    246     TX_DATA_CLOSED = 0,
    247     TX_DATA_OPEN   = 1
    248 
    249 } txDataHalInterfaceStatus_t;
    250 
    251 
    252 typedef enum
    253 {
    254     GWSI_PENDING   = 0,
    255     GWSI_OPEN   = 1
    256 } txDataGwsiInterfaceStatus_e;
    257 
    258 
    259 typedef enum
    260 {
    261     DRIVER_STATUS_IDLE              = 0,
    262     DRIVER_STATUS_RUNNING           = 1,
    263 } driverStatus_e;
    264 
    265 typedef enum
    266 {
    267     OS_ABS_LAYER    = 0,
    268     RSN             = 1,
    269 } eapolDestination_e;
    270 
    271 /* enumerator for PRE_AUTH event */
    272 typedef enum
    273 {
    274    RSN_PRE_AUTH_START,
    275    RSN_PRE_AUTH_END,
    276 } preAuthStatusEvent_e;
    277 
    278 
    279 typedef enum
    280 {
    281     STATUS_SCANNING         = 0,
    282     STATUS_SCAN_COMPLETE    = 1,
    283 } scanStatus_e;
    284 
    285 typedef enum
    286 {
    287     SCAN_DISABLED   = 0,	/* FALSE*/
    288     SCAN_ENABLED    = 1,	/* TRUE*/
    289 	SKIP_NEXT_SCAN	= 2		/* Skip only one next coming scan, then set this parameter to TRUE*/
    290 } scanEnabledOptions_e;
    291 
    292 
    293 
    294 
    295 PACKED_STRUCT( rxDataCounters_t,
    296 
    297     UINT32      RecvOk;                 /* the number of frames that the NIC receives without errors */
    298     UINT32      DirectedBytesRecv;      /* the number of bytes in directed packets that are received without errors */
    299     UINT32      DirectedFramesRecv;     /* the number of directed packets that are received without errors */
    300     UINT32      MulticastBytesRecv;     /* the number of bytes in multicast/functional packets that are received without errors */
    301     UINT32      MulticastFramesRecv;    /* the number of multicast/functional packets that are received without errors */
    302     UINT32      BroadcastBytesRecv;     /* the number of bytes in broadcast packets that are received without errors. */
    303     UINT32      BroadcastFramesRecv;    /* the number of broadcast packets that are received without errors. */
    304     UINT32      LastSecBytesRecv;       /* the number of bytes received without errors during last second */
    305 
    306 );
    307 
    308 typedef struct rxDataFilterRequest_t
    309 {
    310     UINT8       offset;
    311     UINT8       maskLength;
    312     UINT8       patternLength;
    313     UINT8       mask[RX_DATA_FILTER_MAX_MASK_SIZE];
    314     UINT8       pattern[RX_DATA_FILTER_MAX_PATTERN_SIZE];
    315 } rxDataFilterRequest_t;
    316 
    317 typedef struct rxDataFilterFieldPattern_t
    318 {
    319     UINT8       offset;
    320     UINT8       length;
    321     UINT8       flag;
    322     UINT8       pattern[RX_DATA_FILTER_MAX_PATTERN_SIZE];
    323     UINT8       mask[RX_DATA_FILTER_MAX_PATTERN_SIZE];
    324 } rxDataFilterFieldPattern_t;
    325 
    326 PACKED_STRUCT( ctrlDataCounters_t,
    327 
    328     UINT32      icvFailCounter;
    329     UINT32      keyNotFoundCounter;
    330     UINT32      MicFailureCounter;
    331 
    332 );
    333 
    334 
    335 typedef struct
    336 {
    337 	PowerMgr_PowerMode_e	PowerMode;
    338 	PowerMgr_Priority_e 	powerMngPriority;
    339 }PowerMgr_PowerMode_t;
    340 
    341 
    342 typedef struct
    343 {
    344 	void	*handler;
    345 	void	*callback;
    346 }QoS_renegVoiceTspecReq_t;
    347 
    348 /* Authentication/encryption capability */
    349 #define MAX_AUTH_ENCR_PAIR 13
    350 
    351 typedef struct
    352 {
    353 	externalAuthMode_e  authenticationMode;
    354 	cipherSuite_e       cipherSuite;
    355 
    356 } authEncrPairList_t;
    357 
    358 typedef struct
    359 {
    360 	UINT32                 NoOfPMKIDs;
    361 	UINT32                 NoOfAuthEncrPairSupported;
    362 	authEncrPairList_t     authEncrPairs[MAX_AUTH_ENCR_PAIR];
    363 
    364 } rsnAuthEncrCapability_t;
    365 
    366 typedef struct
    367 {
    368 	UINT32              numOfPreAuthBssids;
    369 	macAddress_t     	*listOfPreAuthBssid;
    370 
    371 } rsnPreAuthBssidList_t;
    372 
    373 
    374 PACKED_STRUCT( signal_t,
    375 
    376     INT32       rssi;
    377     UINT8       snr;
    378 );
    379 
    380 PACKED_STRUCT( rateMask_t,
    381 
    382     UINT32  basicRateMask;
    383     UINT32  supportedRateMask;
    384 );
    385 
    386 PACKED_STRUCT( assocInformation_t,
    387 
    388     UINT8        *assocRespBuffer;
    389     UINT32       assocRespLen;
    390     UINT8        *assocReqBuffer;
    391     UINT32       assocReqLen;
    392 
    393 );
    394 
    395 /* QOS Parameters Structure */
    396 
    397 typedef struct
    398 {
    399     macAddress_t    siteMacAddress;
    400     BOOL            priority;
    401 } siteMgr_prioritySite_t;
    402 
    403 /*MULTIPLE QUEUES STRUCTURE */
    404 
    405 
    406 
    407 
    408 #define TX_POLICY_FLAGS_TRUNCATE          0x1
    409 #define TX_POLICY_FLAGS_PEEAMBLE_OVERRIDE 0x2
    410 #define TX_POLICY_FLAGS_SHORT_PREAMBLE    0x4
    411 
    412 
    413 typedef struct{
    414 	UINT32 thresholdCross;                /* high or low */
    415 	UINT32 thresholdCrossDirection;       /* direction of crossing */
    416 } trafficIntensityThresholdCross_t;
    417 
    418 /************************************/
    419 /*      QOS edcf params             */
    420 /************************************/
    421 
    422 /*
    423 #define CW_MIN_DEF                         15
    424 #define CW_MIN_MAX                         31
    425 #define CW_MAX_DEF                         1023
    426 */
    427 #define CW_MIN_DEF                         4 /* the power of 2 - cwMin = 2^4-1 = 15 */
    428 #define CW_MIN_MAX                         5 /* the power of 2 - cwMax = 2^5-1 = 31 */
    429 #define CW_MAX_DEF                         10
    430 
    431 #define AIFS_DEF                            2
    432 #define NO_RX_TIME_OUT                      0
    433 #define NO_RX_ACK_POLICY                    0
    434 #define DATA_DCF                            0    /* MSDUs are sent completely including retrys - normal legacy traffic */
    435 #define QOS_DATA_EDCF                       1    /* MPDUs are sent according to TXOP limits - */
    436 #define RETRY_PREEMPTION_DISABLE            0
    437 #define QOS_CONTROL_TAG_MASK                0x0007
    438 #define QOS_CONTROL_EOSP_MASK                0x0010
    439 
    440 
    441 
    442 /* this enum is used for the different txRateClass_t which are components of txRatePolicy_t */
    443 typedef enum {
    444 	USER_RATE_CLASS		= 0,
    445 	SG_RATE_CLASS		= 1,
    446 	NUM_OF_RATE_CLASS_CLIENTS = 2
    447 } rateClassClients_e;
    448 
    449 typedef struct {
    450 	rateClassClients_e	clientID;
    451 	UINT32				clientRateMask;
    452 }	rateClassRateMask_t;
    453 
    454 
    455 typedef enum{
    456     AC_ACTIVE = 0,
    457     AC_NOT_ACTIVE,
    458 }acActive;
    459 
    460 
    461 typedef struct
    462 {
    463 	UINT8	*buffer;
    464 	UINT16	bufLength;
    465 	UINT8	isBeacon; 	/* If true, Beacon packet is returned, otherwise it is Probe Response */
    466 } BufferParameters_t;
    467 
    468 
    469 
    470 typedef struct{
    471 	UINT32		trafficAdmCtrlResponseTimeout;
    472     BOOL        trafficAdmCtrlUseFixedMsduSize;
    473 }trafficAdmCtrlInitParams_t;
    474 
    475 typedef struct{
    476     BOOL       wmeEnable;
    477     BOOL       trafficAdmCtrlEnable;
    478     BOOL       qosTagZeroConverHeader;
    479 	UINT8      PacketBurstEnable;
    480 	UINT32     PacketBurstTxOpLimit;
    481     UINT32     TxOpLimit[MAX_NUM_OF_AC];
    482     UINT32     MsduLifeTime[MAX_NUM_OF_AC];
    483     rxTimeOut_t     rxTimeOut;
    484     UINT8      ShortRetryLimit[MAX_NUM_OF_AC];
    485     UINT8      LongRetryLimit[MAX_NUM_OF_AC];
    486     UINT16      TxQueueSize[MAX_NUM_OF_TX_QUEUES];
    487     UINT8   desiredWmeAcPsMode[MAX_NUM_OF_AC];       /* wme per ac power save mode */
    488     qOvFlowPolicy_e   QueueOvFlowPolicy[MAX_NUM_OF_TX_QUEUES];
    489 	UINT8       acAckPolicy[MAX_NUM_OF_AC];          /* ack policy per AC */
    490     trafficAdmCtrlInitParams_t	trafficAdmCtrlInitParams;
    491 	UINT8			desiredPsMode;						 /* The desired PS mode of the station */
    492 	UINT8				desiredMaxSpLen;
    493 
    494 }QosMngrInitParams_t;
    495 
    496 
    497 
    498 /*END OF MULTIPLE QUEUES STRUCTURE*/
    499 
    500 
    501 typedef struct
    502 {
    503 	UINT16		bufferSize;
    504 	UINT8		*buffer;
    505 } applicationConfigBuffer_t;
    506 
    507 typedef struct
    508 {
    509     macAddress_t	bssID;
    510     UINT16			channel;
    511 } apChannelPair_t;
    512 
    513 typedef struct
    514 {
    515     apChannelPair_t	*apChannelPairs;
    516     UINT16      	numOfEntries;
    517 } neighbor_AP_t;
    518 
    519 typedef struct
    520 {
    521     /* One channel max duration time. (time slot 0 - 65000) */
    522     UINT16          maxChannelDuration;
    523     /* One channel max duration time. (time slot 0 - 65000) */
    524     UINT16          minChannelDuration;
    525     /* 0 = Stay until max duration time. 1 = Terminate scan in
    526     a channel upon a reception of Prob-Res or Beacon. 2 = Terminate scan
    527     in a channel upon a reception of any frame*/
    528     UINT8           earlyTerminationMode;
    529     /* number of AP frames (beacon/probe_resp) to trigger Early termination.
    530     Applicable only when EarlyTerminationMode = 1 */
    531     UINT8           eTMaxNumOfAPframes;
    532     /* Number of probe request transmitted on each channel */
    533     UINT8           numOfProbeReq;
    534 
    535 } periodicScanParams_t;
    536 
    537 
    538 typedef struct
    539 {
    540 	UINT16 		channelNum;
    541 	BOOL		channelValidity;
    542 	radioBand_e		band;
    543 } channelValidity_t;
    544 
    545 typedef struct
    546 {
    547 	BOOL 	channelValidity; /*TRUE-valid, FALSE-invalid */
    548 	UINT8	maxTxPowerDbm; 		/* In Dbm/10 units */
    549 }	channelCapabilityRet_t;
    550 
    551 typedef struct
    552 {
    553 	UINT8		*listOfChannels;
    554 	UINT8		sizeOfList;
    555 } supportedChannels_t;
    556 
    557 typedef struct
    558 {
    559 	regulatoryDomain_scanOption_e 	scanOption; /* Passive or Active */
    560 	UINT8	channelNum;
    561 	radioBand_e                     band;
    562 }	channelCapabilityReq_t;
    563 
    564 typedef struct
    565 {
    566 	UINT16	minDFS_channelNum;
    567 	UINT16	maxDFS_channelNum;
    568 }	DFS_ChannelRange_t;
    569 
    570 typedef struct
    571 {
    572 	txDataCounters_t 	*pTxDataCounters;
    573 	UINT8				acID;
    574 }	reportTsStatisticsReq_t;
    575 
    576 typedef struct
    577 {
    578 	UINT16				vadTimerEnabled;
    579 	UINT16				vadTimerDuration;
    580 } txDataVadTimerParams_t;
    581 
    582 /* General Parameters Structure */
    583 
    584 typedef struct{
    585     UINT32              paramType;
    586     UINT32              paramLength;
    587 
    588     union
    589     {
    590         /* Driver General section */
    591         driverStatus_e          driverStatus;
    592 
    593         /* HAL Control section */
    594         UINT8                   halCtrlCtsToSelf;
    595         UINT8                   halCtrlTxPowerDbm;
    596 
    597         /* site manager section */
    598         UINT8                   siteMgrDesiredChannel;
    599         macAddress_t            siteMgrDesiredBSSID;
    600         ssid_t                  siteMgrDesiredSSID;
    601         bssType_e               siteMgrDesiredBSSType;
    602         ratePair_t              siteMgrDesiredRatePair;
    603         rates_t                 siteMgrDesiredBasicRateSet;
    604         rates_t                 siteMgrDesiredSupportedRateSet;
    605         rateMask_t              siteMgrCurrentRateMask;
    606         UINT8                   siteMgrDesiredTxRate;
    607         UINT8                   siteMgrCurrentTxRate;
    608         modulationType_e        siteMgrDesiredModulationType;
    609         UINT16                  siteMgrDesiredBeaconInterval;
    610         preamble_e              siteMgrDesiredPreambleType;
    611         preamble_e              siteMgrCurrentPreambleType;
    612         radioType_e             siteMgrRadioType;
    613         radioBand_e             siteMgrRadioBand;
    614         OS_802_11_BSSID_LIST_EX *pSiteMgrBssidList;
    615         OS_802_11_BSSID_EX      *pSiteMgrSelectedSiteInfo;
    616         OS_802_11_BSSID         *pSiteMgrPrimarySiteDesc;
    617         dot11mode_e             siteMgrDot11Mode;
    618         dot11mode_e             siteMgrDot11OperationalMode;
    619         draftNumber_t           siteMgrUseDraftNum;
    620         UINT8                   siteMgrCurrentChannel;
    621         ssid_t                  siteMgrCurrentSSID;
    622 		bssType_e				siteMgrCurrentBSSType;
    623         modulationType_e        siteMgrCurrentModulationType;
    624         slotTime_e              siteMgrSlotTime;
    625         signal_t                siteMgrCurrentSignal;
    626         UINT8                   siteMgrNumberOfSites;
    627         TIWLN_COUNTERS          siteMgrTiWlanCounters;
    628         BOOL                    siteMgrBuiltInTestStatus;
    629         UINT8                   siteMgrFwVersion[FW_VERSION_LEN]; /* Firmware version - null terminated string*/
    630         e2Version_t             siteMgrEEpromVersion;             /* EEPROM version*/
    631         UINT32                  siteMgrDisAssocReason;
    632         UINT32                  siteMgrNextDtimTimeStamp;
    633         UINT16                  siteMgrSiteCapability;
    634         BOOL                    siteMgrFourxParam;
    635         UINT16                  beaconInterval;
    636         UINT8                   APTxPower;
    637         BOOL                    siteMgrQuietScanInProcess;
    638         BOOL                    siteMgrScanSliceCurrentlyActive;
    639         UINT8                   siteMgrRoamingRssiGapThreshold;
    640         UINT8                   timeStamp[8];
    641         BOOL                    siteMgrBeaconRecv;
    642         UINT32                  siteMgrDtimPeriod;
    643         INT32                   siteMgrCurrentRssi;
    644         UINT8                   siteMgrIndexOfDesiredSiteEntry;
    645         UINT8                    *pSiteMgrDesiredSiteEntry;
    646         UINT8                   siteMgrCurrentTsfTimeStamp[8];
    647         UINT8                   siteMgrUsrConfigTxPower;
    648 
    649 
    650         OS_802_11_CONFIGURATION *pSiteMgrConfiguration;
    651         siteMgr_prioritySite_t  siteMgrPrioritySite;
    652 		BufferParameters_t		siteMgrLastBeacon;
    653 		UINT8					siteMgrDesiredBeaconFilterState;
    654 		BOOL					siteMgrAllowTxPowerCheck;
    655 
    656         /* SME SM section */
    657         scanStatus_e            smeSmScanStatus;
    658 		scanEnabledOptions_e	smeSMScanEnabled;
    659         TIWLN_DOT11_STATUS      smeSmConnectionStatus;
    660         UINT8                   smeSmState;
    661 
    662         /* connection SM section */
    663         UINT32                  connSelfTimeout;
    664 
    665         /* auth SM section */
    666         UINT32                  authResponseTimeout;
    667 
    668         /* assoc SM section */
    669         UINT32                  assocResponseTimeout;
    670 #ifndef GWSI_LIB
    671         OS_802_11_ASSOCIATION_INFORMATION      assocAssociationInformation;
    672 #endif /* GWSI_LIB */
    673 
    674         /* RSN section */
    675         BOOL                    rsnPrivacyOptionImplemented;
    676         authSuite_e             rsnDesiredAuthType;
    677         OS_802_11_KEY           rsnOsKey;
    678         rsnAuthEncrCapability_t *pRsnAuthEncrCapability;
    679         UINT32                  rsnNoOfPMKIDs;
    680         OS_802_11_PMKID         rsnPMKIDList;
    681         UINT32                  rsnWPAPromoteFlags;
    682         UINT32                  rsnWPAMixedModeSupport;
    683         UINT32                  rsnAuthState; /* supp_1XStates */
    684         cipherSuite_e           rsnEncryptionStatus;
    685         UINT8                   rsnHwEncDecrEnable; /* 0- disable, 1- enable*/
    686         securityKeys_t          *pRsnKey;
    687         UINT8                   rsnDefaultKeyID;
    688 
    689         externalAuthMode_e      rsnExtAuthneticationMode;
    690         BOOL                    rsnMixedMode;
    691 		BOOL					rsnPreAuthStatus;
    692 		macAddress_t			rsnApMac;
    693         OS_802_11_EAP_TYPES     eapType;
    694         BOOL                    wpa_802_1x_AkmExists;
    695 
    696 
    697         /* Rx Data section */
    698         rxDataCounters_t        rxDataCounters;
    699         BOOL                    rxDataFilterEnableDisable;
    700         TIWLAN_DATA_FILTER_REQUEST rxDataFilterRequest;
    701 
    702         /* Tx Data section */
    703         portStatus_e            txDataPortStatus;
    704         txDataCounters_t        *pTxDataCounters;
    705 		reportTsStatisticsReq_t tsMetricsCounters;
    706         OS_802_11_THRESHOLD_CROSS_PARAMS  txDataMediumUsageThreshold;
    707 		txDataHalInterfaceStatus_t  txDataHalInterfaceStatus;
    708         UINT8                       txDataEncryptionFieldSize;
    709 
    710         /* Ctrl Data section */
    711         ctrlDataCounters_t      ctrlDataCounters;
    712         BOOL                    ctrlDataRateControlEnable;
    713         BOOL                    ctrlDataPowerSaveEnable;
    714         BOOL                    ctrlDataPowerSaveForce;
    715         BOOL                    ctrlDataFourXEnable;
    716         BOOL                    ctrlDatapowerSaveEnhanceAlgorithm;
    717         erpProtectionType_e     ctrlDataIbssProtecionType;
    718         RtsCtsStatus_e          ctrlDataRtsCtsStatus;
    719         BOOL                    ctrlDataProtectionEnabled;
    720         BOOL                    ctrlDataCerruentFourXstate;
    721 
    722         macAddress_t            ctrlDataCurrentBSSID;
    723         bssType_e               ctrlDataCurrentBssType;
    724         UINT32                  ctrlDataCurrentRateMask;
    725         rate_e                  ctrlDataCurrentBasicRate;
    726         preamble_e              ctrlDataCurrentPreambleType;
    727         rate_e                  ctrlDataCurrentActiveRate;
    728         macAddress_t            ctrlDataDeviceMacAddress;
    729         STREAM_TRAFFIC_PROPERTIES   ctrlDataUpOfStream;
    730 		clsfr_tableEntry_t		ctrlDataClsfrInsertTable;
    731         clsfrTypeAndSupport     ctrlDataClsfrType;
    732         OS_802_11_THRESHOLD_CROSS_PARAMS  ctrlDataRateThreshold;
    733 		rateClassClients_e		ctrlDataRateClassID;
    734 		rateClassRateMask_t		ctrlDataRateClassMask;
    735 
    736  		ULONG					ctrlDataTrafficIntensityEventsFlag;
    737 		OS_802_11_TRAFFIC_INTENSITY_THRESHOLD_PARAMS ctrlDataTrafficIntensityThresholds;
    738 
    739         connectionType_e        connType;
    740 
    741         /* MLME SM section */
    742         legacyAuthType_e        mlmeLegacyAuthType;
    743         legacyAuthType_e        authLegacyAuthType;
    744         BOOL                    mlmeReAssoc;
    745 
    746 
    747         BOOL                    rxDataExcludeUnencrypted;
    748         eapolDestination_e      rxDataEapolDestination;
    749         portStatus_e            rxDataPortStatus;
    750 
    751         BOOL                    txDataCurrentPrivacyInvokedMode;
    752         BOOL                    txDataEapolEncryptionStatus;
    753         UINT32                  txDataPollApPacketsFromACid;      /* AC to poll AP packets from */
    754 
    755         modulationType_e        ctrlDataCurrentModulationType;
    756         modulationType_e        ctrlDataCurrentBasicModulationType;
    757         UINT32                  ctrlDataBasicRateBitMask;
    758 
    759         /* regulatory Domain section */
    760         regulatoryDomainParam_t regulatoryDomainParam;
    761         UINT8                   channel;
    762         country_t*              pCountry;
    763         UINT8                   pCountryString[COUNTRY_STRING_LEN];
    764         BOOL                    spectrumManagementEnabled;
    765         BOOL                    regulatoryDomainEnabled;
    766         powerCapability_t       powerCapability;
    767         UINT8*                  pSupportedChannel;
    768         UINT8                   powerConstraint;
    769         UINT8                   desiredTxPower; /* The desired Tx power inforced by the User (Utility),
    770                                                  or The desired Tx power (in Dbm) as forced by teh OS */
    771         UINT8                   ExternTxPowerPreferred; /*for other extern elements that want
    772                                                         to effect the transmit power*/
    773 		powerLevelTable_t		powerLevelTable;
    774 		channelValidity_t		channelValidity;
    775 		channelCapabilityRet_t	channelCapabilityRet;
    776 		channelCapabilityReq_t	channelCapabilityReq;
    777 		supportedChannels_t		supportedChannels;
    778         BOOL                    enableDisable_802_11d;
    779         BOOL                    enableDisable_802_11h;
    780 		BOOL					bActivateTempPowerFix;
    781 		BOOL					bIsCountryFound;
    782 		BOOL					bIsChannelSupprted;
    783         DFS_ChannelRange_t      DFS_ChannelRange;
    784         radioBand_e             eRadioBand;
    785 
    786         /* Measurement Manager section */
    787 		UINT32					measurementEnableDisableStatus;
    788         UINT16					measurementTrafficThreshold;
    789 		UINT16					measurementMaxDuration;
    790         interogateCmdCBParams_t     interogateCmdCBParams;
    791 
    792 
    793         /* soft Gemini section */
    794         SoftGeminiEnableModes_e		SoftGeminiEnable;
    795 		UINT8						SoftGeminiRate[NUM_OF_RATES_IN_SG];
    796         UINT32						SoftGeminiParamArray[NUM_OF_CONFIG_PARAMS_IN_SG];
    797 
    798 		/* case EXC MODULE INCLUDED */
    799 		EXC_PARAM_FIELDS
    800 
    801         /* Application Config Parameters Manager */
    802 		applicationConfigBuffer_t	applicationConfigBuffer;
    803 		roamingMngrConfigParams_t	roamingConfigBuffer;
    804 		UINT32						roamingTriggerType;
    805 		UINT32						roamingConnStatus;
    806         bssList_t*              pScanBssList;
    807         scan_Params_t*          pScanParams;
    808 
    809         /* tx data qos related parameters */
    810         txDataQosParams_t           txDataQosParams;
    811 
    812         txDataVadTimerParams_t		txDataVadTimerParams;
    813 
    814         /* QOS Manager */
    815         qosProtocols_e              qosSiteProtocol;
    816 		UINT8						qosPacketBurstEnb;     /* Packet Burst Enable */
    817 		dot11mode_e					qosMngrOperationalMode;
    818 		UINT8					desiredPsMode;
    819 		UINT8					currentPsMode;
    820 		TspecConfigure_t 		TspecConfigure;
    821 
    822         /* Qos params from Os */
    823 		OS_802_11_QOS_RX_TIMEOUT_PARAMS	rxTimeOut;
    824 
    825         OS_802_11_QOS_PARAMS        qosOsParams;
    826 		OS_802_11_AC_QOS_PARAMS		qosApQosParams;
    827 
    828         /* AP Qos Capabilities */
    829         OS_802_11_AP_QOS_CAPABILITIES_PARAMS qosApCapabilities;
    830 
    831         /* Qos current AC status */
    832         OS_802_11_AC_UPSD_STATUS_PARAMS   qosCurrentAcStatus;
    833 
    834         OS_802_11_QOS_DELETE_TSPEC_PARAMS   qosDelTspecRequest;
    835         OS_802_11_QOS_TSPEC_PARAMS     qosAddTspecRequest;
    836 		QoS_renegVoiceTspecReq_t	   qosRenegotiateTspecRequest;
    837 
    838         OS_802_11_QOS_TSPEC_PARAMS     qosTspecParameters;
    839 
    840 		OS_802_11_THRESHOLD_CROSS_PARAMS  QOSRateThreshold;
    841 		OS_802_11_QOS_DESIRED_PS_MODE	qosDesiredPsMode;
    842 
    843     	/* Power Manager */
    844         PowerMgr_PowerMode_e    PowerMode;
    845         powerAutho_PowerPolicy_e PowerSavePowerLevel;
    846         powerAutho_PowerPolicy_e DefaultPowerLevel;
    847         PowerMgr_PowerMode_t   	powerMngPowerMode;
    848         PowerMgr_Priority_e 		powerMngPriority;
    849         PowerMgr_PowerMode_e	powerMngDozeMode;
    850 
    851 
    852         /* txRatePolicy params */
    853         txRatePolicy_t         TxRatePolicy;
    854 
    855         TIWLN_RADIO_RX_QUALITY RxRadioQuality ;
    856 
    857         /*PLT MIB*/
    858         PLT_MIB_t PltMib;
    859 
    860     } content;
    861 } paramInfo_t;
    862 
    863 
    864 /* paramInfoPartial_t is part of paramInfo_t it is implemented to reduce stack usage */
    865 typedef struct{
    866     UINT32              paramType;
    867     UINT32              paramLength;
    868 
    869     union
    870     {
    871 	  TspecConfigure_t 		TspecConfigure;
    872 	  BOOL					rsnPreAuthStatus;
    873 	  macAddress_t			rsnApMac;
    874 	  cipherSuite_e         rsnEncryptionStatus;
    875 	  BOOL                  rsnMixedMode;
    876 
    877 	  /* Application Config Parameters Manager */
    878 	  applicationConfigBuffer_t	applicationConfigBuffer;
    879 
    880 	  /* ctrl data section */
    881 	  preamble_e              ctrlDataCurrentPreambleType;
    882 
    883     } content;
    884 }paramInfoPartial_t;
    885 
    886 /* Set/get params function prototype */
    887 typedef TI_STATUS (*paramFunc_t)(TI_HANDLE handle, paramInfo_t	*pParam);
    888 
    889 
    890 typedef enum
    891 {
    892   MIN_BASIC_TX_RATE         = 0, /* The rate of the CTL & MGMT packets will be the minimal rate advertised in the Basic rate set */
    893   MAX_BASIC_TX_RATE         = 1, /* The rate of the CTL &MGMT packets will be the maximal rate advertised in the Basic rate set */
    894   SPECIFIC_TX_RATE          = 2, /* The rate of the CTL & MGMT packets will be according to the configuration in the MgmtCtrlTxRate registry */
    895 } mgmtCtrlTxRateOption_e;
    896 
    897 
    898 
    899 /*-----------------------------------------------------*/
    900 /*      EEPROM-less support                            */
    901 /*-----------------------------------------------------*/
    902 #define MAX_CALL_DATA_REG_NUM                30
    903 #define HW_EEPROM_PRESENTED                  1
    904 #define HW_EEPROM_NOT_PRESENTED              0
    905 
    906 PACKED_STRUCT( ELPTable_t,
    907 
    908     UINT8   ClockControl;
    909     UINT16  ClockWakupTime;
    910     UINT8   Reserved1;
    911     UINT16  Reserved2;
    912     UINT8   A_1_8_Control;
    913     UINT16  A_1_8_WakeupTime;
    914     UINT8   VsyncControl;
    915     UINT16  VsyncWakeupTime;
    916     UINT8   GcVccControl;
    917     UINT16  GcVccWakeupTime;
    918     UINT8   Reserved3;
    919     UINT16  BBRadioWakeupTime;
    920     UINT8   Reserved4;
    921     UINT16  ClockIdleTime;
    922 
    923 );
    924 
    925 PACKED_STRUCT( MiscTable_t,
    926 
    927     UINT16  TxActivityLED;
    928     UINT16  InitLED;
    929     UINT16  DiagLED;
    930     UINT8   Reserved1;
    931 
    932 );
    933 
    934 
    935 PACKED_STRUCT( PhyRegisters_t,
    936 
    937     UINT16  RegAddress;
    938     UINT16  RegValue;
    939 
    940 );
    941 
    942 
    943 typedef enum
    944 {
    945     PS_MODE_ELP         = 0,
    946     PS_MODE_POWER_DOWN  = 1,
    947     PS_MODE_ACTIVE      = 2,
    948     PS_MODE_WAKE_TNET   = 3,
    949 } powerSaveModes_e;
    950 
    951 
    952 /**************************** Beginning of Init Params ************************************/
    953 
    954 
    955 typedef struct
    956 {
    957     UINT8                   siteMgr_radioRxLevel[RX_LEVEL_TABLE_SIZE];
    958     UINT8                   siteMgr_radioLNA[RX_LEVEL_TABLE_SIZE];
    959     UINT8                   siteMgr_radioRSSI[RX_LEVEL_TABLE_SIZE];
    960     UINT32                  factorRSSI; /* for RADIA only */
    961 }radioValues_t;
    962 
    963 typedef struct
    964 {
    965     radioType_e         siteMgr_radioType;
    966     UINT8               RxLevelTableSize;
    967     radioValues_t*      pSiteMgr_selectedRadioValues;
    968     radioValues_t       siteMgr_rfmdRadioValues;
    969     radioValues_t       siteMgr_maximRadioValues;
    970     radioValues_t       siteMgr_radiaRadioValues;
    971 }siteMgr_radioValues_t;
    972 
    973 
    974 typedef struct
    975 {
    976     UINT8                   siteMgrDesiredChannel;
    977     macAddress_t            siteMgrDesiredBSSID;
    978     ssid_t                  siteMgrDesiredSSID;
    979     bssType_e               siteMgrDesiredBSSType;
    980     dot11mode_e             siteMgrDesiredDot11Mode;
    981     radioBand_e             siteMgrSupportedBand;
    982     draftNumber_t           siteMgrUseDraftNum;
    983     UINT32                  siteMgrRegstryBasicRate[DOT11_MAX_MODE];
    984     UINT32                  siteMgrRegstrySuppRate[DOT11_MAX_MODE];
    985     UINT32                  siteMgrRegstryBasicRateMask;
    986     UINT32                  siteMgrRegstrySuppRateMask;
    987     rateMask_t              siteMgrCurrentDesiredRateMask;
    988     ratePair_t              siteMgrDesiredRatePair;
    989     UINT32                  siteMgrMatchedBasicRateMask;
    990     UINT32                  siteMgrMatchedSuppRateMask;
    991     UINT32                  siteMgrMatchedMaxBasicRate;
    992     UINT32                  siteMgrMatchedMaxActiveRate;
    993     rate_e                  siteMgrRegstryDesiredTxRate;
    994     rate_e                  siteMgrCurrentDesiredTxRate;
    995 	mgmtCtrlTxRateOption_e	siteMgrRegstryDesiredMgmtCtrlTxRateOption;
    996 	rate_e					siteMgrRegstryDesiredMgmtCtrlTxRate;
    997     modulationType_e        siteMgrDesiredModulationType;
    998     preamble_e              siteMgrDesiredPreambleType;
    999     slotTime_e              siteMgrDesiredSlotTime;
   1000     UINT16                  siteMgrDesiredBeaconInterval;
   1001     siteMgr_radioValues_t   siteMgrRadioValues;
   1002     UINT8                   siteMgrFwVersion[FW_VERSION_LEN]; /* Firmware version - null terminated string*/
   1003     e2Version_t             siteMgrEEpromVersion;             /* EEPROM version*/
   1004     UINT32                  siteMgrDesiredAtimWindow;
   1005     UINT32                  siteMgrFreq2ChannelTable[SITE_MGR_CHANNEL_MAX+1];
   1006 
   1007     BOOL                    siteMgrDesiredkeepAliveEnable;
   1008     UINT8                   siteMgrExternalConfiguration;
   1009     UINT8                   siteMgrPrivacyMode;
   1010     BOOL                    siteMgrWiFiAdhoc;
   1011 
   1012 	/* TX Power Control parameters */
   1013     UINT32                  TxPowerCheckTime;
   1014     UINT32                  TxPowerControlOn;
   1015     INT32                   TxPowerRssiThresh;
   1016     INT32                   TxPowerRssiRestoreThresh;
   1017 
   1018 	beaconFilterParams_t	beaconFilterParams; /*contains the desired state*/
   1019 
   1020 } siteMgrInitParams_t;
   1021 
   1022 
   1023 /** \struct scan_Params_t
   1024  * \brief This structure contains parameters for a scan operation
   1025  */
   1026 typedef struct
   1027 {
   1028 	UINT8				txPowerDbm;    			/* In units of Dbm/10 */
   1029     UINT8               probeReqNumber;         /**< number of probe requests to send (for active scan) */
   1030     rateMask_e          probeRequestRate;       /**< the rate at which to send the probe requests */
   1031     UINT8               numOfChannels;          /**< number of channels for BG (2.4) band */
   1032     UINT8 				channelsList[ MAX_NUMBER_OF_CHANNELS_PER_SCAN ];  /* scan channels list for BG */
   1033 	UINT32				minDwellTime;
   1034 	UINT32				maxDwellTime;
   1035 } sme_scan_Params_t;
   1036 
   1037 
   1038 typedef struct
   1039 {
   1040     BOOL                    EnableFirstConnScan;
   1041     UINT32                  InterScanIntervalMin;
   1042     UINT32                  InterScanIntervalMax;
   1043 	UINT32                  InterScanIntervalDelta;
   1044 	sme_scan_Params_t   	scanParamsBG;
   1045     sme_scan_Params_t   	scanParamsA;
   1046 } smeInitParams_t;
   1047 
   1048 typedef struct
   1049 {
   1050     UINT32                  connSelfTimeout;
   1051 } connInitParams_t;
   1052 
   1053 typedef struct
   1054 {
   1055     UINT32                  authResponseTimeout;
   1056     UINT32                  authMaxRetryCount;
   1057 } authInitParams_t;
   1058 
   1059 typedef struct
   1060 {
   1061     UINT32                  assocResponseTimeout;
   1062     UINT32                  assocMaxRetryCount;
   1063 } assocInitParams_t;
   1064 
   1065 typedef struct
   1066 {
   1067 	UINT8				highRateThreshold;
   1068 	UINT8				lowRateThreshold;
   1069 	BOOL				enableEvent;
   1070 }tspecsRateParameters_t;
   1071 
   1072 typedef struct
   1073 {
   1074     UINT8                   contTxPacketsThreshold;
   1075     UINT8                   stepUpTxPacketsThreshold;
   1076     UINT32                  ctrlDataFBShortInterval;
   1077     UINT32                  ctrlDataFBLongInterval;
   1078     UINT32                  rateAdapt_timeout;
   1079 	tspecsRateParameters_t	tspecsRateParameters[MAX_NUM_OF_AC];
   1080 
   1081 }rateAdaptationInitParam_t;
   1082 
   1083 
   1084 typedef struct
   1085 {
   1086     BOOL                    ctrlDataPowerSaveEnhanceAlgorithm;
   1087     UINT16                  ctrlDataPowerSaveTimeOut;
   1088     UINT8                   ctrlDataPowerSaveTxThreshold;
   1089     UINT8                   ctrlDataPowerSaveRxThreshold;
   1090 
   1091 }powerSaveInitParams_t;
   1092 
   1093 typedef struct
   1094 {
   1095     BOOL                    desiredConcatenationEnable;
   1096     BOOL                    desiredCWMinEnable;
   1097     BOOL                    desiredCWComboEnable;
   1098     BOOL                    desiredAckEmulationEnable;
   1099     BOOL                    desiredERP_ProtectionEnable;
   1100     UINT32                  desiredMaxConcatSize;
   1101     UINT16                  desiredCWMin;
   1102     UINT16                  desiredCWMax;
   1103 }fourXInitParams_t;
   1104 
   1105 
   1106 typedef struct
   1107 {
   1108     UINT32  len;
   1109     rate_e  rateAdaptRatesTable[MAX_SUPPORTED_RATES];
   1110     UINT8   rateAdaptFBTable[MAX_SUPPORTED_RATES];
   1111     UINT8   rateAdaptSUTable[MAX_SUPPORTED_RATES];
   1112 } ctrlData_rateAdapt_t;
   1113 
   1114 typedef struct
   1115 {
   1116     ctrlData_rateAdapt_t    ctrlDataCckRateTable;
   1117     ctrlData_rateAdapt_t    ctrlDataPbccRateTable;
   1118     ctrlData_rateAdapt_t    ctrlDataOfdmRateTable;
   1119     ctrlData_rateAdapt_t    ctrlDataOfdmARateTable;
   1120 } rateTables_t;
   1121 
   1122 typedef struct
   1123 {
   1124 	UINT8 longRetryLimit;
   1125 	UINT8 shortRetryLimit;
   1126 }txRatePolicyParams;
   1127 
   1128 typedef struct
   1129 {
   1130 	UINT8 txRate[MAX_NUM_OF_TX_RATES_IN_CLASS];
   1131 } policyClassRatesArray_t;
   1132 
   1133 typedef struct
   1134 {
   1135     BOOL                        ctrlDataRateControlEnable;
   1136     BOOL                        ctrlDataPowerSaveEnable;
   1137     BOOL                        ctrlDataFourXEnable;
   1138     BOOL                        ctrlDataSoftGeminiEnable;
   1139     macAddress_t                ctrlDataDeviceMacAddress;
   1140     rateAdaptationInitParam_t   rateAdaptationInitParam;
   1141     powerSaveInitParams_t       powerSaveInitParams;
   1142     fourXInitParams_t           fourXInitParams;
   1143 	clsfr_Params_t				ClsfrInitParam;
   1144     rateTables_t                rateTable;
   1145     erpProtectionType_e         ctrlDataDesiredIbssProtection;
   1146     RtsCtsStatus_e              ctrlDataDesiredCtsRtsStatus;
   1147     OS_802_11_TRAFFIC_INTENSITY_THRESHOLD_PARAMS   ctrlDataTrafficThreshold;
   1148     BOOL                        ctrlDataTrafficThresholdEnabled;
   1149     txRatePolicyParams          ctrlDataTxRatePolicy      [NUM_OF_RATE_CLASS_CLIENTS];
   1150 	policyClassRatesArray_t		policyClassRatesArrayCck  [NUM_OF_RATE_CLASS_CLIENTS];
   1151 	policyClassRatesArray_t		policyClassRatesArrayPbcc [NUM_OF_RATE_CLASS_CLIENTS];
   1152 	policyClassRatesArray_t		policyClassRatesArrayOfdm [NUM_OF_RATE_CLASS_CLIENTS];
   1153 	policyClassRatesArray_t		policyClassRatesArrayOfdmA[NUM_OF_RATE_CLASS_CLIENTS];
   1154 
   1155 } ctrlDataInitParams_t;
   1156 
   1157 typedef struct
   1158 {
   1159     UINT8                   txDataNumOfDataQueues;
   1160     UINT32                  uFracOfLifeTimeToDrop;
   1161 	UINT32					creditCalculationTimeout;
   1162     BOOL                    admCtrlDelayDueToMediumTimeOverUsage;
   1163 	BOOL					admissionDownGradeEnable;
   1164 	BOOL					bCreditCalcTimerEnabled;
   1165 	/* IMPORT_FROM_4_0_1 */
   1166 	BOOL					txDataHostPacketProcessing;
   1167 
   1168 } txDataInitParams_t;
   1169 
   1170 #define MAX_KEYS_NUM                    4
   1171 
   1172 typedef struct
   1173 {
   1174     authSuite_e             authSuite;
   1175     BOOL                    privacyOn;
   1176     securityKeys_t          keys[MAX_KEYS_NUM];
   1177     UINT8                   defaultKeyId;
   1178     externalAuthMode_e      externalAuthMode;
   1179     BOOL                    mixedMode;
   1180     BOOL                    WPAMixedModeEnable;
   1181     BOOL                    preAuthSupport;
   1182 	UINT32					preAuthTimeout;
   1183 } rsnInitParams_t;
   1184 
   1185 typedef enum
   1186 {
   1187     RADIO_B_G_INDEX = 0,
   1188     RADIO_A_B_G_INDEX = 1,
   1189     NUM_OF_RADIO_TYPES = 2
   1190 } regulatoryDomain_radioIndexType_e;
   1191 
   1192 /* Regulatory Domain module init parameters */
   1193 typedef struct
   1194 {
   1195     UINT32                      uTimeOutToResetCountryMs;   /* Time after which country code will be reset */
   1196     UINT8                       multiRegulatoryDomainEnabled; /* 802.11d */
   1197     UINT8                       spectrumManagementEnabled; /* 802.11h */
   1198     UINT8                       desiredTxPower;
   1199 	UINT8						uTemporaryTxPower;
   1200     scanControlTable_t          desiredScanControlTable;/* for 5 and 2.4 Ghz*/
   1201 } regulatoryDomainInitParams_t;
   1202 
   1203 #ifdef EXC_MODULE_INCLUDED
   1204 typedef enum
   1205 {
   1206     EXC_MODE_DISABLED,
   1207     EXC_MODE_ENABLED,
   1208     EXC_MODE_STANDBY
   1209 } excMngr_mode_t;
   1210 
   1211 typedef struct
   1212 {
   1213     excMngr_mode_t  excEnabled;
   1214 } excMngrParams_t;
   1215 #endif
   1216 
   1217 /* Measurement module init parameters */
   1218 typedef struct
   1219 {
   1220     UINT16              trafficIntensityThreshold;
   1221     UINT16              maxDurationOnNonServingChannel;
   1222 #ifdef EXC_MODULE_INCLUDED
   1223     excMngr_mode_t      excEnabled;
   1224 #endif
   1225 } measurementInitParams_t;
   1226 
   1227 /* Switch Channel Module module init parameters */
   1228 typedef struct
   1229 {
   1230     BOOL              dot11SpectrumManagementRequired;
   1231 
   1232 } SwitchChannelInitParams_t;
   1233 
   1234 typedef struct
   1235 {
   1236   UINT32       qosClassifierTable[MAX_NUM_OF_802_1d_TAGS];
   1237 }
   1238 clsfrParams_t;
   1239 
   1240 /* WDK pack structure */
   1241 #ifdef _WINDOWS
   1242 #endif
   1243 
   1244 typedef struct
   1245 {
   1246     PowerMgr_PowerMode_e        powerMode;
   1247     UINT32                      beaconReceiveTime;
   1248     UINT8                       hangoverPeriod;
   1249     UINT8                       beaconListenInterval;
   1250     UINT8				 		dtimListenInterval;
   1251     UINT8                       nConsecutiveBeaconsMissed;
   1252     UINT8                       EnterTo802_11PsRetries;
   1253     UINT8                       HwPsPollResponseTimeout;
   1254     UINT16                      autoModeInterval;
   1255     UINT16                      autoModeActiveTH;
   1256     UINT16                      autoModeDozeTH;
   1257     PowerMgr_PowerMode_e        autoModeDozeMode;
   1258 
   1259     powerAutho_PowerPolicy_e defaultPowerLevel;
   1260 	powerAutho_PowerPolicy_e PowerSavePowerLevel;
   1261 
   1262 
   1263 	/* powerMgmtConfig IE */
   1264     UINT8						mode;
   1265     UINT8						needToSendNullData;
   1266     UINT8						numNullPktRetries;
   1267     UINT8						hangOverPeriod;
   1268     UINT16						NullPktRateModulation;
   1269 
   1270 	/* PMConfigStruct */
   1271 	UINT32						ELPEnable;			/* based on "elpType" */
   1272 	UINT32						WakeOnGPIOenable;	/* based on "hwPlatformType" */
   1273 	UINT32						BaseBandWakeUpTime;	/* BBWakeUpTime */
   1274 	UINT32						PLLlockTime;
   1275 
   1276 	/* ACXWakeUpCondition */
   1277     UINT8						listenInterval;
   1278 
   1279     /* BET */
   1280     UINT32  MaximalFullBeaconReceptionInterval; /* maximal "beacon periods" between full beacon reception */
   1281     UINT8   BetEnableThreshold;
   1282     UINT8   BetDisableThreshold;
   1283     UINT8	BetEnable;
   1284     UINT8   MaximumConsecutiveET;
   1285 
   1286     UINT32						PsPollDeliveryFailureRecoveryPeriod;
   1287 }PowerMgrInitParams_t;
   1288 
   1289 
   1290 typedef struct
   1291 {
   1292 	UINT32 healthCheckPeriod;
   1293 	UINT8  FullRecoveryEnable;
   1294 	BOOL   recoveryTriggerEnabled[ MAX_FAILURE_EVENTS ];
   1295 } healthMonitorInitParams_t;
   1296 
   1297 typedef struct
   1298 {
   1299     BOOL   ignoreDeauthReason0;
   1300 } apConnParams_t;
   1301 
   1302 typedef struct
   1303 {
   1304     UINT32 passiveScanDwellTime;
   1305     UINT32 minimumDurationBetweenOidScans;
   1306 } scanConcentratorInitParams_t;
   1307 
   1308 
   1309 typedef struct
   1310 {
   1311 	BOOL                rxDataHostPacketProcessing;
   1312     BOOL                rxDataFiltersEnabled;
   1313     filter_e            rxDataFiltersDefaultAction;
   1314     rxDataFilterRequest_t rxDataFilterRequests[MAX_DATA_FILTERS];
   1315 }rxDataInitParams_t;
   1316 
   1317 
   1318 typedef struct
   1319 {
   1320     uint32 activeTimeCnt_Low;
   1321     uint32 activeTimeCnt_Hi;
   1322     uint32 powerDownTimeCnt_Low;
   1323     uint32 powerDownTimeCnt_Hi;
   1324     uint32 elpTimeCnt_Low;
   1325     uint32 elpTimeCnt_Hi;
   1326 }PowerConsumptionTimeStat_t;
   1327 
   1328 
   1329 /* This table is forwarded to the driver upon creation by the Os abstraction layer. */
   1330 typedef struct
   1331 {
   1332 	TnetwDrv_InitParams_t		TnetwDrv_InitParams;
   1333 
   1334     siteMgrInitParams_t             siteMgrInitParams;
   1335     connInitParams_t                connInitParams;
   1336     authInitParams_t                authInitParams;
   1337     assocInitParams_t               assocInitParams;
   1338     txDataInitParams_t              txDataInitParams;
   1339     ctrlDataInitParams_t            ctrlDataInitParams;
   1340     rsnInitParams_t                 rsnInitParams;
   1341     regulatoryDomainInitParams_t    regulatoryDomainInitParams;
   1342     measurementInitParams_t         measurementInitParams;
   1343     smeInitParams_t                 smeInitParams;
   1344     SoftGeminiInitParams_t          SoftGeminiInitParams;
   1345     QosMngrInitParams_t             qosMngrInitParams;
   1346     clsfrParams_t                   clsfrParams;
   1347 #ifdef EXC_MODULE_INCLUDED
   1348     excMngrParams_t                 excMngrParams;
   1349 #endif
   1350 	SwitchChannelInitParams_t		SwitchChannelInitParams;
   1351 	healthMonitorInitParams_t		healthMonitorInitParams;
   1352     apConnParams_t                  apConnParams;
   1353     PowerMgrInitParams_t            PowerMgrInitParams;
   1354     scanConcentratorInitParams_t    scanConcentratorInitParams;
   1355 	rxDataInitParams_t              rxDataInitParams;
   1356 	BOOL							SendINIBufferToUser;
   1357     /* Traffic Monitor */
   1358     UINT8                           trafficMonitorMinIntervalPercentage;
   1359 } initTable_t;
   1360 
   1361 /* WDK end usage of packing */
   1362 #ifdef _WINDOWS
   1363 #endif
   1364 
   1365 /**************************** End of Init Params ************************************/
   1366 
   1367 
   1368 
   1369 #define P_BUFFER_ADD_UINT8(_p_buffer, _uint8)				\
   1370 		{														\
   1371 			*(tiUINT8 *)(_p_buffer++) = _uint8; 				\
   1372 		}
   1373 
   1374 #define P_BUFFER_ADD_UINT16(_p_buffer, _uint16)			  \
   1375 		{														  \
   1376 			*(tiUINT8 *)(_p_buffer++) = (_uint16 & 0x00FF);		  \
   1377 			*(tiUINT8 *)(_p_buffer++) = ((_uint16 & 0xFF00) >> 8);\
   1378 		}
   1379 
   1380 #define P_BUFFER_ADD_UINT32(_p_buffer, _uint32)						   \
   1381 {																	   \
   1382 			*(tiUINT8 *)(_p_buffer++) = (_uint32 & 0x000000FF);		   \
   1383 			*(tiUINT8 *)(_p_buffer++) = ((_uint32 & 0x0000FF00) >> 8); \
   1384 			*(tiUINT8 *)(_p_buffer++) = ((_uint32 & 0x00FF0000) >> 16);\
   1385 			*(tiUINT8 *)(_p_buffer++) = ((_uint32 & 0xFF000000) >> 24);\
   1386 		}
   1387 
   1388 #define P_BUFFER_ADD_DATA(_p_buffer, _p_data, _len)		\
   1389 		{														\
   1390 			memcpy(_p_buffer, _p_data, _len);					\
   1391 			_p_buffer += _len;									\
   1392 		}
   1393 
   1394 #define P_BUFFER_GET_UINT8(_p_buffer, _uint8)					\
   1395 		{														\
   1396 			_uint8 = *(tiUINT8 *)(_p_buffer++);	 				\
   1397 		}
   1398 
   1399 #define P_BUFFER_GET_UINT16(_p_buffer, _uint16)				    \
   1400 		{													    \
   1401 			_uint16 = *(tiUINT8 *)(_p_buffer++);			    \
   1402 			_uint16 |= (*(tiUINT8 *)(_p_buffer++) << 8);		\
   1403 		}
   1404 
   1405 
   1406 #define P_BUFFER_GET_UINT32(_p_buffer, _uint32)					\
   1407 		{														\
   1408 			_uint32 = *(tiUINT8 *)(_p_buffer++);			    \
   1409 			_uint32 |= (*(tiUINT8 *)(_p_buffer++) << 8);		\
   1410 			_uint32 |= (*(tiUINT8 *)(_p_buffer++) << 16);		\
   1411 			_uint32 |= (*(tiUINT8 *)(_p_buffer++) << 24);		\
   1412 		}
   1413 
   1414 #define P_BUFFER_ADD_HDR_PARAMS(_p_buffer, _op, _status)	\
   1415 		{														\
   1416 			*(tiUINT8 *)(_p_buffer + 0) = (_op & 0x00FF);		\
   1417 			*(tiUINT8 *)(_p_buffer + 1) = ((_op & 0xFF00) >> 8);\
   1418 			*(tiUINT8 *)(_p_buffer + 2) = _status;				\
   1419 			_p_buffer += 3;										\
   1420 		}
   1421 
   1422 
   1423 
   1424 
   1425 #endif /* __PARAM_OUT_H__ */
   1426 
   1427