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
113typedef enum
114{
115    DRAFT_5_AND_EARLIER = 5,
116    DRAFT_6_AND_LATER   = 6
117
118} draftNumber_t;
119
120PACKED_STRUCT( ratePair_t,
121
122  rate_e    maxBasic;
123  rate_e    maxActive;
124);
125
126typedef enum
127{
128    RTS_CTS_DISABLED = 0,
129    RTS_CTS_ENABLED  = 1
130
131} RtsCtsStatus_e;
132
133/* Parameters Structures Definitions per parameter type */
134typedef 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
143typedef enum
144{
145    CONNECTION_NONE             = 0,
146    CONNECTION_INFRA            = 1,
147    CONNECTION_IBSS             = 2,
148    CONNECTION_SELF             = 3,
149} connectionType_e;
150
151typedef 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 */
160PACKED_STRUCT( scanControlTable24_t,
161
162    UINT8       tableString[NUM_OF_CHANNELS_24];
163);
164
165/* Scan Control Table for 5G-band type */
166PACKED_STRUCT( scanControlTable5_t,
167
168    UINT8       tableString[A_5G_BAND_NUM_CHANNELS];
169);
170
171/* Scan Control Table type */
172PACKED_STRUCT( scanControlTable_t,
173
174    scanControlTable5_t     ScanControlTable5;
175    scanControlTable24_t    ScanControlTable24;
176);
177
178PACKED_STRUCT( country_t,
179
180    UINT8		elementId;
181	UINT8		len;
182    countryIE_t countryIE;
183);
184
185PACKED_STRUCT( channelPair_t,
186
187    UINT8   firstChennelNum;
188    UINT8   NumOfChannels;
189);
190
191typedef enum
192{
193    ACTIVE_SCANNING     = 0,
194    PASSIVE_SCANNING    = 1,
195} regulatoryDomain_scanOption_e;
196
197PACKED_STRUCT( regulatoryDomainParam_t,
198
199    UINT8*      pChannelBitMap;
200    UINT8       channelCnt;
201    INT8        txPower;
202);
203
204PACKED_STRUCT( powerCapability_t,
205
206    UINT8       minTxPower;
207    UINT8       maxTxPower;
208);
209
210
211/* SoftGemini module init parameters */
212typedef 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
223typedef 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
235typedef 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
244typedef enum
245{
246    TX_DATA_CLOSED = 0,
247    TX_DATA_OPEN   = 1
248
249} txDataHalInterfaceStatus_t;
250
251
252typedef enum
253{
254    GWSI_PENDING   = 0,
255    GWSI_OPEN   = 1
256} txDataGwsiInterfaceStatus_e;
257
258
259typedef enum
260{
261    DRIVER_STATUS_IDLE              = 0,
262    DRIVER_STATUS_RUNNING           = 1,
263} driverStatus_e;
264
265typedef enum
266{
267    OS_ABS_LAYER    = 0,
268    RSN             = 1,
269} eapolDestination_e;
270
271/* enumerator for PRE_AUTH event */
272typedef enum
273{
274   RSN_PRE_AUTH_START,
275   RSN_PRE_AUTH_END,
276} preAuthStatusEvent_e;
277
278
279typedef enum
280{
281    STATUS_SCANNING         = 0,
282    STATUS_SCAN_COMPLETE    = 1,
283} scanStatus_e;
284
285typedef 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
295PACKED_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
308typedef 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
317typedef 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
326PACKED_STRUCT( ctrlDataCounters_t,
327
328    UINT32      icvFailCounter;
329    UINT32      keyNotFoundCounter;
330    UINT32      MicFailureCounter;
331
332);
333
334
335typedef struct
336{
337	PowerMgr_PowerMode_e	PowerMode;
338	PowerMgr_Priority_e 	powerMngPriority;
339}PowerMgr_PowerMode_t;
340
341
342typedef 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
351typedef struct
352{
353	externalAuthMode_e  authenticationMode;
354	cipherSuite_e       cipherSuite;
355
356} authEncrPairList_t;
357
358typedef struct
359{
360	UINT32                 NoOfPMKIDs;
361	UINT32                 NoOfAuthEncrPairSupported;
362	authEncrPairList_t     authEncrPairs[MAX_AUTH_ENCR_PAIR];
363
364} rsnAuthEncrCapability_t;
365
366typedef struct
367{
368	UINT32              numOfPreAuthBssids;
369	macAddress_t     	*listOfPreAuthBssid;
370
371} rsnPreAuthBssidList_t;
372
373
374PACKED_STRUCT( signal_t,
375
376    INT32       rssi;
377    UINT8       snr;
378);
379
380PACKED_STRUCT( rateMask_t,
381
382    UINT32  basicRateMask;
383    UINT32  supportedRateMask;
384);
385
386PACKED_STRUCT( assocInformation_t,
387
388    UINT8        *assocRespBuffer;
389    UINT32       assocRespLen;
390    UINT8        *assocReqBuffer;
391    UINT32       assocReqLen;
392
393);
394
395/* QOS Parameters Structure */
396
397typedef 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
413typedef 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 */
443typedef enum {
444	USER_RATE_CLASS		= 0,
445	SG_RATE_CLASS		= 1,
446	NUM_OF_RATE_CLASS_CLIENTS = 2
447} rateClassClients_e;
448
449typedef struct {
450	rateClassClients_e	clientID;
451	UINT32				clientRateMask;
452}	rateClassRateMask_t;
453
454
455typedef enum{
456    AC_ACTIVE = 0,
457    AC_NOT_ACTIVE,
458}acActive;
459
460
461typedef 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
470typedef struct{
471	UINT32		trafficAdmCtrlResponseTimeout;
472    BOOL        trafficAdmCtrlUseFixedMsduSize;
473}trafficAdmCtrlInitParams_t;
474
475typedef 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
501typedef struct
502{
503	UINT16		bufferSize;
504	UINT8		*buffer;
505} applicationConfigBuffer_t;
506
507typedef struct
508{
509    macAddress_t	bssID;
510    UINT16			channel;
511} apChannelPair_t;
512
513typedef struct
514{
515    apChannelPair_t	*apChannelPairs;
516    UINT16      	numOfEntries;
517} neighbor_AP_t;
518
519typedef 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
538typedef struct
539{
540	UINT16 		channelNum;
541	BOOL		channelValidity;
542	radioBand_e		band;
543} channelValidity_t;
544
545typedef struct
546{
547	BOOL 	channelValidity; /*TRUE-valid, FALSE-invalid */
548	UINT8	maxTxPowerDbm; 		/* In Dbm/10 units */
549}	channelCapabilityRet_t;
550
551typedef struct
552{
553	UINT8		*listOfChannels;
554	UINT8		sizeOfList;
555} supportedChannels_t;
556
557typedef struct
558{
559	regulatoryDomain_scanOption_e 	scanOption; /* Passive or Active */
560	UINT8	channelNum;
561	radioBand_e                     band;
562}	channelCapabilityReq_t;
563
564typedef struct
565{
566	UINT16	minDFS_channelNum;
567	UINT16	maxDFS_channelNum;
568}	DFS_ChannelRange_t;
569
570typedef struct
571{
572	txDataCounters_t 	*pTxDataCounters;
573	UINT8				acID;
574}	reportTsStatisticsReq_t;
575
576typedef struct
577{
578	UINT16				vadTimerEnabled;
579	UINT16				vadTimerDuration;
580} txDataVadTimerParams_t;
581
582/* General Parameters Structure */
583
584typedef 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 */
865typedef 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 */
887typedef TI_STATUS (*paramFunc_t)(TI_HANDLE handle, paramInfo_t	*pParam);
888
889
890typedef 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
906PACKED_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
925PACKED_STRUCT( MiscTable_t,
926
927    UINT16  TxActivityLED;
928    UINT16  InitLED;
929    UINT16  DiagLED;
930    UINT8   Reserved1;
931
932);
933
934
935PACKED_STRUCT( PhyRegisters_t,
936
937    UINT16  RegAddress;
938    UINT16  RegValue;
939
940);
941
942
943typedef 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
955typedef 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
963typedef 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
974typedef 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 */
1026typedef 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
1038typedef 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
1048typedef struct
1049{
1050    UINT32                  connSelfTimeout;
1051} connInitParams_t;
1052
1053typedef struct
1054{
1055    UINT32                  authResponseTimeout;
1056    UINT32                  authMaxRetryCount;
1057} authInitParams_t;
1058
1059typedef struct
1060{
1061    UINT32                  assocResponseTimeout;
1062    UINT32                  assocMaxRetryCount;
1063} assocInitParams_t;
1064
1065typedef struct
1066{
1067	UINT8				highRateThreshold;
1068	UINT8				lowRateThreshold;
1069	BOOL				enableEvent;
1070}tspecsRateParameters_t;
1071
1072typedef 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
1084typedef struct
1085{
1086    BOOL                    ctrlDataPowerSaveEnhanceAlgorithm;
1087    UINT16                  ctrlDataPowerSaveTimeOut;
1088    UINT8                   ctrlDataPowerSaveTxThreshold;
1089    UINT8                   ctrlDataPowerSaveRxThreshold;
1090
1091}powerSaveInitParams_t;
1092
1093typedef 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
1106typedef 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
1114typedef 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
1122typedef struct
1123{
1124	UINT8 longRetryLimit;
1125	UINT8 shortRetryLimit;
1126}txRatePolicyParams;
1127
1128typedef struct
1129{
1130	UINT8 txRate[MAX_NUM_OF_TX_RATES_IN_CLASS];
1131} policyClassRatesArray_t;
1132
1133typedef 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
1157typedef 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
1172typedef 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
1185typedef 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 */
1193typedef 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
1204typedef enum
1205{
1206    EXC_MODE_DISABLED,
1207    EXC_MODE_ENABLED,
1208    EXC_MODE_STANDBY
1209} excMngr_mode_t;
1210
1211typedef struct
1212{
1213    excMngr_mode_t  excEnabled;
1214} excMngrParams_t;
1215#endif
1216
1217/* Measurement module init parameters */
1218typedef 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 */
1228typedef struct
1229{
1230    BOOL              dot11SpectrumManagementRequired;
1231
1232} SwitchChannelInitParams_t;
1233
1234typedef struct
1235{
1236  UINT32       qosClassifierTable[MAX_NUM_OF_802_1d_TAGS];
1237}
1238clsfrParams_t;
1239
1240/* WDK pack structure */
1241#ifdef _WINDOWS
1242#endif
1243
1244typedef 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
1290typedef struct
1291{
1292	UINT32 healthCheckPeriod;
1293	UINT8  FullRecoveryEnable;
1294	BOOL   recoveryTriggerEnabled[ MAX_FAILURE_EVENTS ];
1295} healthMonitorInitParams_t;
1296
1297typedef struct
1298{
1299    BOOL   ignoreDeauthReason0;
1300} apConnParams_t;
1301
1302typedef struct
1303{
1304    UINT32 passiveScanDwellTime;
1305    UINT32 minimumDurationBetweenOidScans;
1306} scanConcentratorInitParams_t;
1307
1308
1309typedef struct
1310{
1311	BOOL                rxDataHostPacketProcessing;
1312    BOOL                rxDataFiltersEnabled;
1313    filter_e            rxDataFiltersDefaultAction;
1314    rxDataFilterRequest_t rxDataFilterRequests[MAX_DATA_FILTERS];
1315}rxDataInitParams_t;
1316
1317
1318typedef 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. */
1330typedef 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