blob: d6258681d4050cbcde2c4399ad56e76a21dd8713 [file] [log] [blame]
/****************************************************************************
**+-----------------------------------------------------------------------+**
**| |**
**| Copyright(c) 1998 - 2008 Texas Instruments. All rights reserved. |**
**| All rights reserved. |**
**| |**
**| Redistribution and use in source and binary forms, with or without |**
**| modification, are permitted provided that the following conditions |**
**| are met: |**
**| |**
**| * Redistributions of source code must retain the above copyright |**
**| notice, this list of conditions and the following disclaimer. |**
**| * Redistributions in binary form must reproduce the above copyright |**
**| notice, this list of conditions and the following disclaimer in |**
**| the documentation and/or other materials provided with the |**
**| distribution. |**
**| * Neither the name Texas Instruments nor the names of its |**
**| contributors may be used to endorse or promote products derived |**
**| from this software without specific prior written permission. |**
**| |**
**| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |**
**| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |**
**| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |**
**| A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |**
**| OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |**
**| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |**
**| LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |**
**| DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |**
**| THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |**
**| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |**
**| OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |**
**| |**
**+-----------------------------------------------------------------------+**
****************************************************************************/
#if defined(_WINDOWS)
#elif defined( __LINUX__ )
#include "osrgstry_parser.h"
#elif defined(__ARMCC__)
#include "osrgstry_parser.h"
#include "string.h"
#endif
#include "osRgstry.h"
#include "paramOut.h"
#include "osDot11.h"
#include "osApi.h"
/* TODO: remove this line!*/
#include "802_11Defs.h"
extern rate_e RateNumberToHost(UINT8 rateIn);
#define MAX_KEY_BUFFER_LEN 256
#define N_STR(str) NDIS_STRING_CONST(str)
#define INIT_TBL_OFF(field) FIELD_OFFSET(initTable_t, field)
/* Reports */
NDIS_STRING STR_ReportSeverityTable = NDIS_STRING_CONST( "ReportSeverityTable" );
NDIS_STRING STR_ReportModuleTable = NDIS_STRING_CONST( "ReportModuleTable" );
NDIS_STRING STRFilterEnabled = NDIS_STRING_CONST( "Mac_Filter_Enabled");
NDIS_STRING STRnumGroupAddrs = NDIS_STRING_CONST( "numGroupAddrs" );
NDIS_STRING STRGroup_addr0 = NDIS_STRING_CONST( "Group_addr0" );
NDIS_STRING STRGroup_addr1 = NDIS_STRING_CONST( "Group_addr1" );
NDIS_STRING STRGroup_addr2 = NDIS_STRING_CONST( "Group_addr2" );
NDIS_STRING STRGroup_addr3 = NDIS_STRING_CONST( "Group_addr3" );
NDIS_STRING STRGroup_addr4 = NDIS_STRING_CONST( "Group_addr4" );
NDIS_STRING STRGroup_addr5 = NDIS_STRING_CONST( "Group_addr5" );
NDIS_STRING STRGroup_addr6 = NDIS_STRING_CONST( "Group_addr6" );
NDIS_STRING STRGroup_addr7 = NDIS_STRING_CONST( "Group_addr7" );
/* Beacon timing */
/* If Early Wakeup is Enabled, 1251 wakes-up EARLY_WAKEUP_TIME before expected Beacon reception occasion */
/* If Early Wakeup is Disabled, 1251 wakes-up at the expected Beacon reception occasion. */
NDIS_STRING STREarlyWakeup = NDIS_STRING_CONST( "EarlyWakeup" );
NDIS_STRING STRArp_Ip_Addr = NDIS_STRING_CONST( "ArpIp_Addr" );
NDIS_STRING STRArp_Ip_Filter_Ena = NDIS_STRING_CONST( "ArpIp_Filter_ena");
NDIS_STRING STRBeaconFilterDesiredState = NDIS_STRING_CONST( "Beacon_Filter_Desired_State") ;
NDIS_STRING STRBeaconFilterStored = NDIS_STRING_CONST( "Beacon_Filter_Stored") ;
/*this is for configuring table from ini file*/
NDIS_STRING STRBeaconIETableSize = NDIS_STRING_CONST( "Beacon_IE_Table_Size") ;
NDIS_STRING STRBeaconIETable = NDIS_STRING_CONST( "Beacon_IE_Table") ;
NDIS_STRING STRBeaconIETableNumOfElem = NDIS_STRING_CONST( "Beacon_IE_Num_Of_Elem") ;
NDIS_STRING STRTxXferBufferFullTimeToRecovery = NDIS_STRING_CONST( "TxXferBufferFullTimeToRecovery" );
/* ------------------------------------------------------ */
NDIS_STRING STRFirmwareDebug = NDIS_STRING_CONST( "FirmwareDebug" );
NDIS_STRING STRTraceBufferSize = NDIS_STRING_CONST( "TraceBufferSize" );
NDIS_STRING STRPrintTrace = NDIS_STRING_CONST( "PrintTrace" );
NDIS_STRING STRHwACXAccessMethod = NDIS_STRING_CONST( "HwACXAccessMethod" );
NDIS_STRING STRMaxSitesFragCollect = NDIS_STRING_CONST( "MaxSitesFragCollect" );
NDIS_STRING STRNumACXRxDescriptors = NDIS_STRING_CONST( "NumACXRxDescriptors" );
NDIS_STRING STRNumACXTxDescriptors = NDIS_STRING_CONST( "NumACXTxDescriptors" );
NDIS_STRING STRTxFlashEnable = NDIS_STRING_CONST( "TxFlashEnable" );
NDIS_STRING STRBetEnable = NDIS_STRING_CONST( "BetEnable");
NDIS_STRING STRBetMaxConsecutive = NDIS_STRING_CONST( "BetMaxConsecutive");
NDIS_STRING STRMaxFullBeaconInterval = NDIS_STRING_CONST( "MaxlFullBeaconReceptionInterval" );
NDIS_STRING STRBetEnableThreshold = NDIS_STRING_CONST( "BetEnableThreshold");
NDIS_STRING STRBetDisableThreshold = NDIS_STRING_CONST( "BetDisableThreshold");
NDIS_STRING STRNumHostRxDescriptors = NDIS_STRING_CONST( "NumHostRxDescriptors" );
NDIS_STRING STRNumHostTxDescriptors = NDIS_STRING_CONST( "NumHostTxDescriptors" );
NDIS_STRING STRACXMemoryBlockSize = NDIS_STRING_CONST( "ACXMemoryBlockSize" );
NDIS_STRING STRACXRxMemoryBlockSize = NDIS_STRING_CONST( "ACXMemoryBlockSize" );
NDIS_STRING STRACXTxMemoryBlockSize = NDIS_STRING_CONST( "ACXMemoryBlockSize" );
NDIS_STRING STRACXUseTxDataInterrupt = NDIS_STRING_CONST( "ACXUseTxDataInterrupt" );
NDIS_STRING STRACXUseInterruptThreshold = NDIS_STRING_CONST( "ACXUseInterruptThreshold" );
NDIS_STRING STRCalibrationChannel2_4 = NDIS_STRING_CONST( "CalibrationChannel24" );
NDIS_STRING STRCalibrationChannel5_0 = NDIS_STRING_CONST( "CalibrationChannel5" );
NDIS_STRING STRdot11RTSThreshold = NDIS_STRING_CONST( "dot11RTSThreshold" );
NDIS_STRING STRRxDisableBroadcast = NDIS_STRING_CONST( "RxDisableBroadcast" );
NDIS_STRING STRRecoveryEnable = NDIS_STRING_CONST( "RecoveryEnable" );
NDIS_STRING STRdot11TxAntenna = NDIS_STRING_CONST( "dot11TxAntenna" );
NDIS_STRING STRdot11RxAntenna = NDIS_STRING_CONST( "dot11RxAntenna" );
NDIS_STRING STRTxCompleteThreshold = NDIS_STRING_CONST( "TxCompleteThreshold" );
NDIS_STRING STRdot11FragThreshold = NDIS_STRING_CONST( "dot11FragmentationThreshold" );
NDIS_STRING STRdot11MaxTxMSDULifetime = NDIS_STRING_CONST( "dot11MaxTransmitMSDULifetime" );
NDIS_STRING STRdot11MaxReceiveLifetime = NDIS_STRING_CONST( "dot11MaxReceiveLifetime" );
NDIS_STRING STRdot11RateFallBackRetryLimit = NDIS_STRING_CONST( "dot11RateFallBackRetryLimit");
NDIS_STRING STRListenInterval = NDIS_STRING_CONST( "dot11ListenInterval" );
NDIS_STRING STRExternalMode = NDIS_STRING_CONST( "DriverExternalMode" );
NDIS_STRING STRWiFiAdHoc = NDIS_STRING_CONST( "WiFiAdhoc" );
NDIS_STRING STRWiFiWmmPS = NDIS_STRING_CONST( "WiFiWmmPS" );
NDIS_STRING STRKeepAliveEnable = NDIS_STRING_CONST( "KeepAliveEnable" );
NDIS_STRING STRdot11DesiredChannel = NDIS_STRING_CONST( "dot11DesiredChannel");
NDIS_STRING STRdot11DesiredSSID = NDIS_STRING_CONST( "dot11DesiredSSID" );
NDIS_STRING STRdot11DesiredBSSType = NDIS_STRING_CONST( "dot11DesiredBSSType" );
NDIS_STRING STRdot11BasicRateMask_B = NDIS_STRING_CONST( "dot11BasicRateMaskB");
NDIS_STRING STRdot11SupportedRateMask_B = NDIS_STRING_CONST( "dot11SupportedRateMaskB");
NDIS_STRING STRdot11BasicRateMask_G = NDIS_STRING_CONST( "dot11BasicRateMaskG");
NDIS_STRING STRdot11SupportedRateMask_G = NDIS_STRING_CONST( "dot11SupportedRateMaskG");
NDIS_STRING STRdot11BasicRateMask_A = NDIS_STRING_CONST( "dot11BasicRateMaskA");
NDIS_STRING STRdot11SupportedRateMask_A = NDIS_STRING_CONST( "dot11SupportedRateMaskA");
NDIS_STRING STRdot11BasicRateMask_AG = NDIS_STRING_CONST( "dot11BasicRateMaskAG");
NDIS_STRING STRdot11SupportedRateMask_AG = NDIS_STRING_CONST( "dot11SupportedRateMaskAG");
NDIS_STRING STRdot11DesiredTxRate = NDIS_STRING_CONST( "dot11DesiredTxRate");
NDIS_STRING STRdot11MgmtCtrlTxRateSelection = NDIS_STRING_CONST( "dot11MgmtCtrlTxRateSelection");
NDIS_STRING STRdot11MgmtCtrlTxRate = NDIS_STRING_CONST( "dot11MgmtCtrlTxRate");
NDIS_STRING STRRadio11_RxLevel = NDIS_STRING_CONST( "Radio11_RxLevel");
NDIS_STRING STRRadio11_LNA = NDIS_STRING_CONST( "Radio11_LNA");
NDIS_STRING STRRadio11_RSSI = NDIS_STRING_CONST( "Radio11_RSSI");
NDIS_STRING STRRadio0D_RxLevel = NDIS_STRING_CONST( "Radio0D_RxLevel");
NDIS_STRING STRRadio0D_LNA = NDIS_STRING_CONST( "Radio0D_LNA");
NDIS_STRING STRRadio0D_RSSI = NDIS_STRING_CONST( "Radio0D_RSSI");
NDIS_STRING STRdot11DesiredNetworkType = NDIS_STRING_CONST( "dot11NetworkType");
NDIS_STRING STRdot11DefaultNetworkType = NDIS_STRING_CONST( "dot11DefaultNetworkType");
NDIS_STRING STRdot11SlotTime = NDIS_STRING_CONST( "ShortSlotTime");
NDIS_STRING STRdot11IbssProtection = NDIS_STRING_CONST( "IbssProtectionType");
NDIS_STRING STRdot11RtsCtsProtection = NDIS_STRING_CONST( "dot11RtsCtsProtection");
NDIS_STRING STRRxEnergyDetection = NDIS_STRING_CONST( "RxEnergyDetection" );
NDIS_STRING STRTxEnergyDetection = NDIS_STRING_CONST( "TxEnergyDetection" );
NDIS_STRING STRCrtCalibrationInterval = NDIS_STRING_CONST( "CrtCalibrationInterval" );
NDIS_STRING STRTddCalibrationInterval = NDIS_STRING_CONST( "TddCalibrationInterval" );
NDIS_STRING STRMacClockRate = NDIS_STRING_CONST( "MacClockRate" );
NDIS_STRING STRArmClockRate = NDIS_STRING_CONST( "ArmClockRate" );
NDIS_STRING STRg80211DraftNumber = NDIS_STRING_CONST( "g80211DraftNumber" );
NDIS_STRING STRRateAdaptationTable0 = NDIS_STRING_CONST( "RateAdaptationTable0" );
NDIS_STRING STRRateAdaptationFBThd0 = NDIS_STRING_CONST( "RateAdaptationFBThd0" );
NDIS_STRING STRRateAdaptationSUThd0 = NDIS_STRING_CONST( "RateAdaptationSUThd0" );
NDIS_STRING STRRateAdaptationTable1 = NDIS_STRING_CONST( "RateAdaptationTable1" );
NDIS_STRING STRRateAdaptationFBThd1 = NDIS_STRING_CONST( "RateAdaptationFBThd1" );
NDIS_STRING STRRateAdaptationSUThd1 = NDIS_STRING_CONST( "RateAdaptationSUThd1" );
NDIS_STRING STRRateAdaptationTable2 = NDIS_STRING_CONST( "RateAdaptationTable2" );
NDIS_STRING STRRateAdaptationFBThd2 = NDIS_STRING_CONST( "RateAdaptationFBThd2" );
NDIS_STRING STRRateAdaptationSUThd2 = NDIS_STRING_CONST( "RateAdaptationSUThd2" );
NDIS_STRING STRRateAdaptationTable3 = NDIS_STRING_CONST( "RateAdaptationTable3" );
NDIS_STRING STRRateAdaptationFBThd3 = NDIS_STRING_CONST( "RateAdaptationFBThd3" );
NDIS_STRING STRRateAdaptationSUThd3 = NDIS_STRING_CONST( "RateAdaptationSUThd3" );
/* Tspec Rate Thresholds */
NDIS_STRING STRRateAdaptationHighTrshAcVO = NDIS_STRING_CONST( "RateAdaptationHighTrshAcVO" );
NDIS_STRING STRRateAdaptationHighTrshAcVI = NDIS_STRING_CONST( "RateAdaptationHighTrshAcVI" );
NDIS_STRING STRRateAdaptationHighTrshAcBE = NDIS_STRING_CONST( "RateAdaptationHighTrshAcBE" );
NDIS_STRING STRRateAdaptationHighTrshAcBK = NDIS_STRING_CONST( "RateAdaptationHighTrshAcBK" );
NDIS_STRING STRRateAdaptationLowTrshAcVO = NDIS_STRING_CONST( "RateAdaptationLowTrshAcVO" );
NDIS_STRING STRRateAdaptationLowTrshAcVI = NDIS_STRING_CONST( "RateAdaptationLowTrshAcVI" );
NDIS_STRING STRRateAdaptationLowTrshAcBE = NDIS_STRING_CONST( "RateAdaptationLowTrshAcBE" );
NDIS_STRING STRRateAdaptationLowTrshAcBK = NDIS_STRING_CONST( "RateAdaptationLowTrshAcBK" );
NDIS_STRING STRdot11ShortPreambleInvoked = NDIS_STRING_CONST( "dot11ShortPreambleInvoked" );
NDIS_STRING STRdot11BeaconPeriod = NDIS_STRING_CONST( "dot11BeaconPeriod" );
NDIS_STRING STRdot11MaxScanTime = NDIS_STRING_CONST( "dot11MaxScanTime" );
NDIS_STRING STRdot11MinScanTime = NDIS_STRING_CONST( "dot11MinScanTime" );
NDIS_STRING STRdot11MaxSiteLifetime = NDIS_STRING_CONST( "dot11MaxSiteLifetime" );
NDIS_STRING STRdot11MaxAuthRetry = NDIS_STRING_CONST( "dot11MaxAuthRetry" );
NDIS_STRING STRdot11MaxAssocRetry = NDIS_STRING_CONST( "dot11MaxAssocRetry" );
NDIS_STRING STRdot11AuthRespTimeout = NDIS_STRING_CONST( "dot11AuthenticationResponseTimeout" );
NDIS_STRING STRdot11AssocRespTimeout = NDIS_STRING_CONST( "dot11AssociationResponseTimeout" );
NDIS_STRING STRConnSelfTimeout = NDIS_STRING_CONST( "ConnSelfTimeout" );
NDIS_STRING STRNumTxDataQueues = NDIS_STRING_CONST( "NumTxDataQueues" );
NDIS_STRING STRCreditCalcTimout = NDIS_STRING_CONST( "CreditCalcTimout" );
NDIS_STRING STRCreditCalcTimerEnabled = NDIS_STRING_CONST( "CreditCalcTimerEnabled" );
NDIS_STRING STRFracOfLifeTimeToDrop = NDIS_STRING_CONST( "FracOfLifeTimeToDrop" );
NDIS_STRING STRAdmCtrlDelayDueToMediumTimeOverUsage = NDIS_STRING_CONST( "AdmCtrlDelayDueToMediumTimeOverUsage" );
NDIS_STRING STRAdmissionDownGradeEnable = NDIS_STRING_CONST( "AdmissionDownGradeEnable" );
NDIS_STRING STRTrafficAdmControlTimeout = NDIS_STRING_CONST("TrafficAdmControlTimeout");
NDIS_STRING STRTrafficAdmControlUseFixedMsduSize = NDIS_STRING_CONST("TrafficAdmCtrlUseFixedMsduSize");
NDIS_STRING STRDesiredMaxSpLen = NDIS_STRING_CONST("DesiredMaxSpLen");
NDIS_STRING STRRateContThreshold = NDIS_STRING_CONST( "RateContThreshold");
NDIS_STRING STRRateStepUpThreshold = NDIS_STRING_CONST( "RateStepUpThreshold");
NDIS_STRING STRFBShortInterval = NDIS_STRING_CONST( "FBShortInterval");
NDIS_STRING STRFBLongInterval = NDIS_STRING_CONST( "FBLongInterval");
NDIS_STRING STRRateAdaptationTimeout = NDIS_STRING_CONST( "RateAdaptationTimeout");
NDIS_STRING STRRateControlEnable = NDIS_STRING_CONST( "RateControlEnable" );
NDIS_STRING STRRatePolicyUserShortRetryLimit = NDIS_STRING_CONST( "RatePolicyUserShortRetryLimit" );
NDIS_STRING STRRatePolicyUserLongRetryLimit = NDIS_STRING_CONST( "RatePolicyUserLongRetryLimit" );
NDIS_STRING STRRatePolicyUserRetriesPerRateCck = NDIS_STRING_CONST( "RatePolicyUserRetriesPerRateCck" );
NDIS_STRING STRRatePolicyUserRetriesPerRatePbcc = NDIS_STRING_CONST( "RatePolicyUserRetriesPerRatePbcc" );
NDIS_STRING STRRatePolicyUserRetriesPerRateOfdm = NDIS_STRING_CONST( "RatePolicyUserRetriesPerRateOfdm" );
NDIS_STRING STRRatePolicyUserRetriesPerRateOfdmA = NDIS_STRING_CONST( "RatePolicyUserRetriesPerRateOfdmA" );
NDIS_STRING STRRatePolicySGShortRetryLimit = NDIS_STRING_CONST( "RatePolicySGShortRetryLimit" );
NDIS_STRING STRRatePolicySGLongRetryLimit = NDIS_STRING_CONST( "RatePolicySGLongRetryLimit" );
NDIS_STRING STRRatePolicySGRetriesPerRateCck = NDIS_STRING_CONST( "RatePolicySGRetriesPerRateCck" );
NDIS_STRING STRRatePolicySGRetriesPerRatePbcc = NDIS_STRING_CONST( "RatePolicySGRetriesPerRatePbcc" );
NDIS_STRING STRRatePolicySGRetriesPerRateOfdm = NDIS_STRING_CONST( "RatePolicySGRetriesPerRateOfdm" );
NDIS_STRING STRRatePolicySGRetriesPerRateOfdmA = NDIS_STRING_CONST( "RatePolicySGRetriesPerRateOfdmA" );
NDIS_STRING STRdot11FourXEnable = NDIS_STRING_CONST( "Mode4x" );
NDIS_STRING STRdot11AuthenticationMode = NDIS_STRING_CONST( "dot11AuthenticationMode" );
NDIS_STRING STRdot11WEPStatus = NDIS_STRING_CONST( "dot11WEPStatus" );
NDIS_STRING STRdot11ExcludeUnencrypted = NDIS_STRING_CONST( "dot11ExcludeUnencrypted" );
NDIS_STRING STRdot11WEPKeymappingLength = NDIS_STRING_CONST( "dot11WEPKeymappingLength" );
NDIS_STRING STRdot11WEPDefaultKeyID = NDIS_STRING_CONST( "dot11WEPDefaultKeyID" );
NDIS_STRING STRMixedMode = NDIS_STRING_CONST( "MixedMode" );
NDIS_STRING STRWPAMixedMode = NDIS_STRING_CONST( "WPAMixedMode");
NDIS_STRING STRRSNPreAuth = NDIS_STRING_CONST( "RSNPreAuthentication");
NDIS_STRING STRRSNPreAuthTimeout = NDIS_STRING_CONST( "RSNPreAuthTimeout" );
NDIS_STRING STRTimeToResetCountryMs = NDIS_STRING_CONST( "TimeToResetCountryMs" );
NDIS_STRING STRMultiRegulatoryDomainEnabled = NDIS_STRING_CONST( "MultiRegulatoryDomain" );
NDIS_STRING STRSpectrumManagementEnabled = NDIS_STRING_CONST( "SpectrumManagement" );
NDIS_STRING STRScanControlTable24 = NDIS_STRING_CONST( "AllowedChannelsTable24" );
NDIS_STRING STRScanControlTable5 = NDIS_STRING_CONST( "AllowedChannelsTable5" );
/*
Power Manager
*/
NDIS_STRING STRPowerMode = NDIS_STRING_CONST( "dot11PowerMode" );
NDIS_STRING STRBeaconReceiveTime = NDIS_STRING_CONST( "BeaconReceiveTime" );
NDIS_STRING STRBaseBandWakeUpTime = NDIS_STRING_CONST( "BaseBandWakeUpTime" );
NDIS_STRING STRHangoverPeriod = NDIS_STRING_CONST( "HangoverPeriod" );
NDIS_STRING STRBeaconListenInterval = NDIS_STRING_CONST( "BeaconListenInterval" );
NDIS_STRING STRDtimListenInterval = NDIS_STRING_CONST( "DtimListenInterval" );
NDIS_STRING STRNConsecutiveBeaconsMissed = NDIS_STRING_CONST( "NConsecutiveBeaconsMissed" );
NDIS_STRING STREnterTo802_11PsRetries = NDIS_STRING_CONST( "EnterTo802_11PsRetries" );
NDIS_STRING STRAutoPowerModeInterval = NDIS_STRING_CONST( "AutoPowerModeInterval" );
NDIS_STRING STRAutoPowerModeActiveTh = NDIS_STRING_CONST( "AutoPowerModeActiveTh" );
NDIS_STRING STRAutoPowerModeDozeTh = NDIS_STRING_CONST( "AutoPowerModeDozeTh" );
NDIS_STRING STRAutoPowerModeDozeMode = NDIS_STRING_CONST( "AutoPowerModeDozeMode" );
NDIS_STRING STRDefaultPowerLevel = NDIS_STRING_CONST( "defaultPowerLevel" );
NDIS_STRING STRPowerSavePowerLevel = NDIS_STRING_CONST( "PowerSavePowerLevel" );
NDIS_STRING STRPsPollDeliveryFailureRecoveryPeriod = NDIS_STRING_CONST( "PsPollDeliveryFailureRecoveryPeriod" );
NDIS_STRING STRPowerMgmtHangOverPeriod = NDIS_STRING_CONST( "PowerMgmtHangOverPeriod" );
NDIS_STRING STRPowerMgmtMode = NDIS_STRING_CONST( "PowerMgmtMode" );
NDIS_STRING STRPowerMgmtNeedToSendNullData = NDIS_STRING_CONST( "PowerMgmtNeedToSendNullData" );
NDIS_STRING STRPowerMgmtNullPktRateModulation = NDIS_STRING_CONST( "PowerMgmtNullPktRateModulation" );
NDIS_STRING STRPowerMgmtNumNullPktRetries = NDIS_STRING_CONST( "PowerMgmtNumNullPktRetries" );
NDIS_STRING STRPowerMgmtPllLockTime = NDIS_STRING_CONST( "PllLockTime" );
NDIS_STRING STRBeaconRxTimeout = NDIS_STRING_CONST( "BeaconRxTimeout" );
NDIS_STRING STRBroadcastRxTimeout = NDIS_STRING_CONST( "BroadcastRxTimeout" );
NDIS_STRING STRRxBroadcastInPs = NDIS_STRING_CONST( "RxBroadcastInPs" );
NDIS_STRING STRConsecutivePsPollDeliveryFailureThreshold = NDIS_STRING_CONST( "ConsecutivePsPollDeliveryFailureThreshold" );
NDIS_STRING STRTxPower = NDIS_STRING_CONST( "TxPower" );
/* Scan SRV */
NDIS_STRING STRNumberOfNoScanCompleteToRecovery = NDIS_STRING_CONST( "NumberOfNoScanCompleteToRecovery" );
NDIS_STRING STRTriggeredScanTimeOut = NDIS_STRING_CONST( "TriggeredScanTimeOut" );
/*-----------------------------------*/
/* Bluetooth support */
/*-----------------------------------*/
NDIS_STRING STRBThWlanCoexistEnable = NDIS_STRING_CONST( "BThWlanCoexistEnable" );
NDIS_STRING STRBThWlanCoexistRate = NDIS_STRING_CONST( "BThWlanCoexistRate" );
NDIS_STRING STRBThWlanCoexistParamsbtHpMaxTime = NDIS_STRING_CONST( "BThWlanCoexistParamsbtHpMaxTime" );
NDIS_STRING STRBThWlanCoexistParamswlanHpMaxTime = NDIS_STRING_CONST( "BThWlanCoexistParamswlanHpMaxTime" );
NDIS_STRING STRBThWlanCoexistParamssenseDisableTimer = NDIS_STRING_CONST( "BThWlanCoexistParamssenseDisableTimer" );
NDIS_STRING STRBThWlanCoexistParamsprotectiveRxTimeBeforeBtHp = NDIS_STRING_CONST( "BThWlanCoexistParamsprotectiveRxTimeBeforeBtHp" );
NDIS_STRING STRBThWlanCoexistParamsprotectiveTxTimeBeforeBtHp = NDIS_STRING_CONST( "BThWlanCoexistParamstimeoutWlanPacketCount" );
NDIS_STRING STRBThWlanCoexistParamsprotectiveRxTimeBeforeBtHpFastAp = NDIS_STRING_CONST( "BThWlanCoexistParamsprotectiveRxTimeBeforeBtHpFastAp" );
NDIS_STRING STRBThWlanCoexistParamsprotectiveTxTimeBeforeBtHpFastAp = NDIS_STRING_CONST( "BThWlanCoexistParamsprotectiveTxTimeBeforeBtHpFastAp" );
NDIS_STRING STRBThWlanCoexistParamsprotectiveWlanCycleTimeForFastAp = NDIS_STRING_CONST( "BThWlanCoexistParamsprotectiveWlanCycleTimeForFastAp" );
NDIS_STRING STRBThWlanCoexistParamstimeoutNextBtLpPacket = NDIS_STRING_CONST( "BThWlanCoexistParamstimeoutNextBtLpPacket" );
NDIS_STRING STRBThWlanCoexistParamssgAntennaType = NDIS_STRING_CONST( "BThWlanCoexistParamssgAntennaType" );
NDIS_STRING STRBThWlanCoexistParamssignalingType = NDIS_STRING_CONST( "BThWlanCoexistParamssignalingType" );
NDIS_STRING STRBThWlanCoexistParamsafhLeverageOn = NDIS_STRING_CONST( "BThWlanCoexistParamsafhLeverageOn" );
NDIS_STRING STRBThWlanCoexistParamsnumberQuietCycle = NDIS_STRING_CONST( "BThWlanCoexistParamsnumberQuietCycle" );
NDIS_STRING STRBThWlanCoexistParamsmaxNumCts = NDIS_STRING_CONST( "BThWlanCoexistParamsmaxNumCts" );
NDIS_STRING STRBThWlanCoexistParamsnumberOfWlanPackets = NDIS_STRING_CONST( "BThWlanCoexistParamsnumberOfWlanPackets" );
NDIS_STRING STRBThWlanCoexistParamsnumberOfBtPackets = NDIS_STRING_CONST( "BThWlanCoexistParamsnumberOfBtPackets" );
NDIS_STRING STRBThWlanCoexistParamsnumberOfMissedRxForAvalancheTrigger = NDIS_STRING_CONST( "BThWlanCoexistParamsnumberOfMissedRxForAvalancheTrigger" );
NDIS_STRING STRBThWlanCoexistParamswlanElpHpSupport = NDIS_STRING_CONST( "BThWlanCoexistParamswlanElpHpSupport" );
NDIS_STRING STRBThWlanCoexistParamsbtAntiStarvationPeriod = NDIS_STRING_CONST( "BThWlanCoexistParamsbtAntiStarvationPeriod" );
NDIS_STRING STRBThWlanCoexistParamsbtAntiStarvationNumberOfCyclesWithinThePeriod = NDIS_STRING_CONST( "BThWlanCoexistParamsbtAntiStarvationNumberOfCyclesWithinThePeriod" );
NDIS_STRING STRBThWlanCoexistParamsackModeDuringBtLpInDualAnt = NDIS_STRING_CONST( "BThWlanCoexistParamsackModeDuringBtLpInDualAnt" );
NDIS_STRING STRBThWlanCoexistParamsallowPaSdToggleDuringBtActivityEnable = NDIS_STRING_CONST( "BThWlanCoexistParamsallowPaSdToggleDuringBtActivityEnable" );
NDIS_STRING STRBThWlanCoexistParamswakeUpTimeBeforeBeacon = NDIS_STRING_CONST( "BThWlanCoexistParamswakeUpTimeBeforeBeacon" );
NDIS_STRING STRBThWlanCoexistParamshpdmMaxGuardTime = NDIS_STRING_CONST( "BThWlanCoexistParamshpdmMaxGuardTime" );
NDIS_STRING STRBThWlanCoexistParamstimeoutNextWlanPacket = NDIS_STRING_CONST( "BThWlanCoexistParamstimeoutNextWlanPacket" );
NDIS_STRING STRBThWlanCoexistParamssgAutoModeNoCts = NDIS_STRING_CONST( "BThWlanCoexistParamssgAutoModeNoCts" );
NDIS_STRING STRBThWlanCoexistParamsnumOfBtHpRespectedReq = NDIS_STRING_CONST( "BThWlanCoexistParamsnumOfBtHpRespectedReq" );
NDIS_STRING STRBThWlanCoexistParamswlanRxMinRateToRespectBtHp = NDIS_STRING_CONST( "BThWlanCoexistParamswlanRxMinRateToRespectBtHp" );
NDIS_STRING STRBThWlanCoexistScanNumberOfProbes = NDIS_STRING_CONST( "BThWlanCoexistScanNumberOfProbes" );
NDIS_STRING STRBThWlanCoexistScanCompensationPercent = NDIS_STRING_CONST( "BThWlanCoexistScanCompensationPercent" );
NDIS_STRING STRBThWlanCoexistScanCompensationMaxTime = NDIS_STRING_CONST( "BThWlanCoexistScanCompensationMaxTime" );
NDIS_STRING STRBThWlanCoexistBSSLossCompensationPercent = NDIS_STRING_CONST( "BThWlanCoexistBSSLossCompensationPercent" );
NDIS_STRING STRDisableSsidPending = NDIS_STRING_CONST( "DisableSsidPending" );
/*-----------------------------------*/
/* SME Init Params */
/*-----------------------------------*/
NDIS_STRING STRdot11SmeScanEnabled = NDIS_STRING_CONST( "FirstConnScanEnabled" );
NDIS_STRING STRdot11SmeInterScanMin = NDIS_STRING_CONST( "FirstConnInterScanMinTimout" );
NDIS_STRING STRdot11SmeInterScanMax = NDIS_STRING_CONST( "FirstConnInterScanMaxTimout" );
NDIS_STRING STRdot11SmeInterScanDelta = NDIS_STRING_CONST( "FirstConnInterScanDeltaTimout" );
/* SME B/G Scan Params */
NDIS_STRING STRdot11SmeScanBGChannelList = NDIS_STRING_CONST( "FirstConnScanBandB_ChannelList" );
NDIS_STRING STRdot11SmeScanBGMinDwellTime = NDIS_STRING_CONST( "FirstConnScanBandB_MinDwellTime" );
NDIS_STRING STRdot11SmeScanBGMaxDwellTime = NDIS_STRING_CONST( "FirstConnScanBandB_MaxDwellTime" );
NDIS_STRING STRdot11SmeScanBGNumProbReq = NDIS_STRING_CONST( "FirstConnScanBandB_NumOfProbReqs" );
NDIS_STRING STRdot11SmeScanBGProbReqRate = NDIS_STRING_CONST( "FirstConnScanBandB_ProbReqRate" );
NDIS_STRING STRdot11SmeScanBGTxPowerLevel = NDIS_STRING_CONST( "FirstConnScanBandB_TxPowerLevel" );
/* SME A Scan Params */
NDIS_STRING STRdot11SmeScanAChannelList = NDIS_STRING_CONST( "FirstConnScanBandA_ChannelList" );
NDIS_STRING STRdot11SmeScanAMinDwellTime = NDIS_STRING_CONST( "FirstConnScanBandA_MinDwellTime" );
NDIS_STRING STRdot11SmeScanAMaxDwellTime = NDIS_STRING_CONST( "FirstConnScanBandA_MaxDwellTime" );
NDIS_STRING STRdot11SmeScanANumProbReq = NDIS_STRING_CONST( "FirstConnScanBandA_NumOfProbReqs" );
NDIS_STRING STRdot11SmeScanAProbReqRate = NDIS_STRING_CONST( "FirstConnScanBandA_ProbReqRate" );
NDIS_STRING STRdot11SmeScanATxPowerLevel = NDIS_STRING_CONST( "FirstConnScanBandA_TxPowerLevel" );
/*-----------------------------------*/
/* Health Check Init Params */
/*-----------------------------------*/
NDIS_STRING STRHealthMonitorCheckPeriod = NDIS_STRING_CONST( "HealthMonitorCheckPeriod" );
NDIS_STRING STRRecoveryEnabledNoScanComplete = NDIS_STRING_CONST( "RecoveryEnabledNoScanComplete" );
NDIS_STRING STRRecoveryEnabledMboxFailure = NDIS_STRING_CONST( "RecoveryEnabledMboxFailure" );
NDIS_STRING STRRecoveryEnabledHwAwakeFailure = NDIS_STRING_CONST( "RecoveryEnabledHwAwakeFailure" );
NDIS_STRING STRRecoveryEnabledBusError = NDIS_STRING_CONST( "RecoveryEnabledBusError" );
NDIS_STRING STRRecoveryEnabledDeviceError = NDIS_STRING_CONST( "RecoveryEnabledDeviceError" );
NDIS_STRING STRRecoveryEnabledTxStuck = NDIS_STRING_CONST( "RecoveryEnabledTxStuck" );
NDIS_STRING STRRecoveryEnabledDisconnectTimeout = NDIS_STRING_CONST( "RecoveryEnabledDisconnectTimeout" );
NDIS_STRING STRRecoveryEnabledPowerSaveFailure = NDIS_STRING_CONST( "RecoveryEnabledPowerSaveFailure" );
NDIS_STRING STRRecoveryEnabledMeasurementFailure= NDIS_STRING_CONST( "RecoveryEnabledMeasurementFailure" );
/*-----------------------------------*/
/* Hardware ACI recovery */
/*-----------------------------------*/
NDIS_STRING STRHardwareACIMode = NDIS_STRING_CONST("HardwareACIMode" );
NDIS_STRING STRHardwareACIInputCCA = NDIS_STRING_CONST("HardwareACIInputCCA" );
NDIS_STRING STRHardwareACIQualifiedCCA = NDIS_STRING_CONST("HardwareACIQualifiedCCA" );
NDIS_STRING STRHardwareACIStompForRx = NDIS_STRING_CONST("HardwareACIStompForRx" );
NDIS_STRING STRHardwareACIStompForTx = NDIS_STRING_CONST("HardwareACIStompForTx" );
NDIS_STRING STRHardwareACITxCCA = NDIS_STRING_CONST("HardwareACITxCCA" );
/*-----------------------------------*/
/* Tx Power control */
/*-----------------------------------*/
NDIS_STRING STRTxPowerCheckTime = NDIS_STRING_CONST("TxPowerCheckTime");
NDIS_STRING STRTxPowerControlOn = NDIS_STRING_CONST("TxPowerControlOn");
NDIS_STRING STRTxPowerRssiThresh = NDIS_STRING_CONST("TxPowerRssiThresh");
NDIS_STRING STRTxPowerRssiRestoreThresh = NDIS_STRING_CONST("TxPowerRssiRestoreThresh");
NDIS_STRING STRTxPowerTempRecover = NDIS_STRING_CONST("TxPowerTempRecover");
/*-----------------------------------*/
/*-----------------------------------*/
/* QOS Parameters */
/*-----------------------------------*/
NDIS_STRING STRWMEEnable = NDIS_STRING_CONST("WME_Enable");
NDIS_STRING STRTrafficAdmCtrlEnable = NDIS_STRING_CONST("TrafficAdmCtrl_Enable");
NDIS_STRING STRdesiredPsMode = NDIS_STRING_CONST("desiredPsMode");
NDIS_STRING STRQOSmsduLifeTimeBE = NDIS_STRING_CONST("QOS_msduLifeTimeBE");
NDIS_STRING STRQOSmsduLifeTimeBK = NDIS_STRING_CONST("QOS_msduLifeTimeBK");
NDIS_STRING STRQOSmsduLifeTimeVI = NDIS_STRING_CONST("QOS_msduLifeTimeVI");
NDIS_STRING STRQOSmsduLifeTimeVO = NDIS_STRING_CONST("QOS_msduLifeTimeVO");
NDIS_STRING STRQOSrxTimeOutPsPoll = NDIS_STRING_CONST("QOS_rxTimeoutPsPoll");
NDIS_STRING STRQOSrxTimeOutUPSD = NDIS_STRING_CONST("QOS_rxTimeoutUPSD");
NDIS_STRING STRQOStxQueue0Size = NDIS_STRING_CONST("QOS_txQueue0Size");
NDIS_STRING STRQOStxQueue1Size = NDIS_STRING_CONST("QOS_txQueue1Size");
NDIS_STRING STRQOStxQueue2Size = NDIS_STRING_CONST("QOS_txQueue2Size");
NDIS_STRING STRQOStxQueue3Size = NDIS_STRING_CONST("QOS_txQueue3Size");
NDIS_STRING STRQOSwmePsModeBE = NDIS_STRING_CONST("QOS_wmePsModeBE");
NDIS_STRING STRQOSwmePsModeBK = NDIS_STRING_CONST("QOS_wmePsModeBK");
NDIS_STRING STRQOSwmePsModeVI = NDIS_STRING_CONST("QOS_wmePsModeVI");
NDIS_STRING STRQOSwmePsModeVO = NDIS_STRING_CONST("QOS_wmePsModeVO");
NDIS_STRING STRQOSShortRetryLimitBE = NDIS_STRING_CONST("QOS_ShortRetryLimitBE");
NDIS_STRING STRQOSShortRetryLimitBK = NDIS_STRING_CONST("QOS_ShortRetryLimitBK");
NDIS_STRING STRQOSShortRetryLimitVI = NDIS_STRING_CONST("QOS_ShortRetryLimitVI");
NDIS_STRING STRQOSShortRetryLimitVO = NDIS_STRING_CONST("QOS_ShortRetryLimitVO");
NDIS_STRING STRQOSLongRetryLimitBE = NDIS_STRING_CONST("QOS_LongRetryLimitBE");
NDIS_STRING STRQOSLongRetryLimitBK = NDIS_STRING_CONST("QOS_LongRetryLimitBK");
NDIS_STRING STRQOSLongRetryLimitVI = NDIS_STRING_CONST("QOS_LongRetryLimitVI");
NDIS_STRING STRQOSLongRetryLimitVO = NDIS_STRING_CONST("QOS_LongRetryLimitVO");
NDIS_STRING STRQOSAckPolicyBE = NDIS_STRING_CONST("QOS_AckPolicyBE");
NDIS_STRING STRQOSAckPolicyBK = NDIS_STRING_CONST("QOS_AckPolicyBK");
NDIS_STRING STRQOSAckPolicyVI = NDIS_STRING_CONST("QOS_AckPolicyVI");
NDIS_STRING STRQOSAckPolicyVO = NDIS_STRING_CONST("QOS_AckPolicyVO");
NDIS_STRING STRQoSqueue0OverFlowPolicy = NDIS_STRING_CONST("QOS_queue0OverFlowPolicy");
NDIS_STRING STRQoSqueue1OverFlowPolicy = NDIS_STRING_CONST("QOS_queue1OverFlowPolicy");
NDIS_STRING STRQoSqueue2OverFlowPolicy = NDIS_STRING_CONST("QOS_queue2OverFlowPolicy");
NDIS_STRING STRQoSqueue3OverFlowPolicy = NDIS_STRING_CONST("QOS_queue3OverFlowPolicy");
/* HW Tx queues buffers allocation thresholds */
NDIS_STRING STRQOStxBlksHighPrcntBE = NDIS_STRING_CONST("QOS_txBlksHighPrcntBE");
NDIS_STRING STRQOStxBlksHighPrcntBK = NDIS_STRING_CONST("QOS_txBlksHighPrcntBK");
NDIS_STRING STRQOStxBlksHighPrcntVI = NDIS_STRING_CONST("QOS_txBlksHighPrcntVI");
NDIS_STRING STRQOStxBlksHighPrcntVO = NDIS_STRING_CONST("QOS_txBlksHighPrcntVO");
NDIS_STRING STRQOStxBlksLowPrcntBE = NDIS_STRING_CONST("QOS_txBlksLowPrcntBE");
NDIS_STRING STRQOStxBlksLowPrcntBK = NDIS_STRING_CONST("QOS_txBlksLowPrcntBK");
NDIS_STRING STRQOStxBlksLowPrcntVI = NDIS_STRING_CONST("QOS_txBlksLowPrcntVI");
NDIS_STRING STRQOStxBlksLowPrcntVO = NDIS_STRING_CONST("QOS_txBlksLowPrcntVO");
/* Traffic Intensity parameters*/
NDIS_STRING STRTrafficIntensityThresHigh = NDIS_STRING_CONST("TrafficIntensityThresHigh");
NDIS_STRING STRTrafficIntensityThresLow = NDIS_STRING_CONST("TrafficIntensityThresLow");
NDIS_STRING STRTrafficIntensityTestInterval = NDIS_STRING_CONST("TrafficIntensityTestInterval");
NDIS_STRING STRTrafficIntensityThresholdEnabled = NDIS_STRING_CONST("TrafficIntensityThresholdEnabled");
NDIS_STRING STRTrafficMonitorMinIntervalPercentage = NDIS_STRING_CONST("TrafficMonitorMinIntervalPercent");
/* Packet Burst parameters */
NDIS_STRING STRQOSPacketBurstEnable = NDIS_STRING_CONST("QOS_PacketBurstEnable");
NDIS_STRING STRQOSPacketBurstTxOpLimit = NDIS_STRING_CONST("QOS_PacketBurstTxOpLimit");
/*-----------------------------------*/
/* QOS classifier Parameters */
/*-----------------------------------*/
NDIS_STRING STRClsfr_Type = NDIS_STRING_CONST("Clsfr_Type");
NDIS_STRING STRNumOfCodePoints = NDIS_STRING_CONST("NumOfCodePoints");
NDIS_STRING STRNumOfDstPortClassifiers = NDIS_STRING_CONST("NumOfDstPortClassifiers");
NDIS_STRING STRNumOfDstIPPortClassifiers = NDIS_STRING_CONST("NumOfDstIPPortClassifiers");
NDIS_STRING STRDSCPClassifier00_CodePoint = NDIS_STRING_CONST("DSCPClassifier00_CodePoint");
NDIS_STRING STRDSCPClassifier01_CodePoint = NDIS_STRING_CONST("DSCPClassifier01_CodePoint");
NDIS_STRING STRDSCPClassifier02_CodePoint = NDIS_STRING_CONST("DSCPClassifier02_CodePoint");
NDIS_STRING STRDSCPClassifier03_CodePoint = NDIS_STRING_CONST("DSCPClassifier03_CodePoint");
NDIS_STRING STRDSCPClassifier04_CodePoint = NDIS_STRING_CONST("DSCPClassifier04_CodePoint");
NDIS_STRING STRDSCPClassifier05_CodePoint = NDIS_STRING_CONST("DSCPClassifier05_CodePoint");
NDIS_STRING STRDSCPClassifier06_CodePoint = NDIS_STRING_CONST("DSCPClassifier06_CodePoint");
NDIS_STRING STRDSCPClassifier07_CodePoint = NDIS_STRING_CONST("DSCPClassifier07_CodePoint");
NDIS_STRING STRDSCPClassifier08_CodePoint = NDIS_STRING_CONST("DSCPClassifier08_CodePoint");
NDIS_STRING STRDSCPClassifier09_CodePoint = NDIS_STRING_CONST("DSCPClassifier09_CodePoint");
NDIS_STRING STRDSCPClassifier10_CodePoint = NDIS_STRING_CONST("DSCPClassifier10_CodePoint");
NDIS_STRING STRDSCPClassifier11_CodePoint = NDIS_STRING_CONST("DSCPClassifier11_CodePoint");
NDIS_STRING STRDSCPClassifier12_CodePoint = NDIS_STRING_CONST("DSCPClassifier12_CodePoint");
NDIS_STRING STRDSCPClassifier13_CodePoint = NDIS_STRING_CONST("DSCPClassifier13_CodePoint");
NDIS_STRING STRDSCPClassifier14_CodePoint = NDIS_STRING_CONST("DSCPClassifier14_CodePoint");
NDIS_STRING STRDSCPClassifier15_CodePoint = NDIS_STRING_CONST("DSCPClassifier15_CodePoint");
NDIS_STRING STRDSCPClassifier00_DTag = NDIS_STRING_CONST("DSCPClassifier00_DTag");
NDIS_STRING STRDSCPClassifier01_DTag = NDIS_STRING_CONST("DSCPClassifier01_DTag");
NDIS_STRING STRDSCPClassifier02_DTag = NDIS_STRING_CONST("DSCPClassifier02_DTag");
NDIS_STRING STRDSCPClassifier03_DTag = NDIS_STRING_CONST("DSCPClassifier03_DTag");
NDIS_STRING STRDSCPClassifier04_DTag = NDIS_STRING_CONST("DSCPClassifier04_DTag");
NDIS_STRING STRDSCPClassifier05_DTag = NDIS_STRING_CONST("DSCPClassifier05_DTag");
NDIS_STRING STRDSCPClassifier06_DTag = NDIS_STRING_CONST("DSCPClassifier06_DTag");
NDIS_STRING STRDSCPClassifier07_DTag = NDIS_STRING_CONST("DSCPClassifier07_DTag");
NDIS_STRING STRDSCPClassifier08_DTag = NDIS_STRING_CONST("DSCPClassifier08_DTag");
NDIS_STRING STRDSCPClassifier09_DTag = NDIS_STRING_CONST("DSCPClassifier09_DTag");
NDIS_STRING STRDSCPClassifier10_DTag = NDIS_STRING_CONST("DSCPClassifier10_DTag");
NDIS_STRING STRDSCPClassifier11_DTag = NDIS_STRING_CONST("DSCPClassifier11_DTag");
NDIS_STRING STRDSCPClassifier12_DTag = NDIS_STRING_CONST("DSCPClassifier12_DTag");
NDIS_STRING STRDSCPClassifier13_DTag = NDIS_STRING_CONST("DSCPClassifier13_DTag");
NDIS_STRING STRDSCPClassifier14_DTag = NDIS_STRING_CONST("DSCPClassifier14_DTag");
NDIS_STRING STRDSCPClassifier15_DTag = NDIS_STRING_CONST("DSCPClassifier15_DTag");
NDIS_STRING STRPortClassifier00_Port = NDIS_STRING_CONST("PortClassifier00_Port");
NDIS_STRING STRPortClassifier01_Port = NDIS_STRING_CONST("PortClassifier01_Port");
NDIS_STRING STRPortClassifier02_Port = NDIS_STRING_CONST("PortClassifier02_Port");
NDIS_STRING STRPortClassifier03_Port = NDIS_STRING_CONST("PortClassifier03_Port");
NDIS_STRING STRPortClassifier04_Port = NDIS_STRING_CONST("PortClassifier04_Port");
NDIS_STRING STRPortClassifier05_Port = NDIS_STRING_CONST("PortClassifier05_Port");
NDIS_STRING STRPortClassifier06_Port = NDIS_STRING_CONST("PortClassifier06_Port");
NDIS_STRING STRPortClassifier07_Port = NDIS_STRING_CONST("PortClassifier07_Port");
NDIS_STRING STRPortClassifier08_Port = NDIS_STRING_CONST("PortClassifier08_Port");
NDIS_STRING STRPortClassifier09_Port = NDIS_STRING_CONST("PortClassifier09_Port");
NDIS_STRING STRPortClassifier10_Port = NDIS_STRING_CONST("PortClassifier10_Port");
NDIS_STRING STRPortClassifier11_Port = NDIS_STRING_CONST("PortClassifier11_Port");
NDIS_STRING STRPortClassifier12_Port = NDIS_STRING_CONST("PortClassifier12_Port");
NDIS_STRING STRPortClassifier13_Port = NDIS_STRING_CONST("PortClassifier13_Port");
NDIS_STRING STRPortClassifier14_Port = NDIS_STRING_CONST("PortClassifier14_Port");
NDIS_STRING STRPortClassifier15_Port = NDIS_STRING_CONST("PortClassifier15_Port");
NDIS_STRING STRPortClassifier00_DTag = NDIS_STRING_CONST("PortClassifier00_DTag");
NDIS_STRING STRPortClassifier01_DTag = NDIS_STRING_CONST("PortClassifier01_DTag");
NDIS_STRING STRPortClassifier02_DTag = NDIS_STRING_CONST("PortClassifier02_DTag");
NDIS_STRING STRPortClassifier03_DTag = NDIS_STRING_CONST("PortClassifier03_DTag");
NDIS_STRING STRPortClassifier04_DTag = NDIS_STRING_CONST("PortClassifier04_DTag");
NDIS_STRING STRPortClassifier05_DTag = NDIS_STRING_CONST("PortClassifier05_DTag");
NDIS_STRING STRPortClassifier06_DTag = NDIS_STRING_CONST("PortClassifier06_DTag");
NDIS_STRING STRPortClassifier07_DTag = NDIS_STRING_CONST("PortClassifier07_DTag");
NDIS_STRING STRPortClassifier08_DTag = NDIS_STRING_CONST("PortClassifier08_DTag");
NDIS_STRING STRPortClassifier09_DTag = NDIS_STRING_CONST("PortClassifier09_DTag");
NDIS_STRING STRPortClassifier10_DTag = NDIS_STRING_CONST("PortClassifier10_DTag");
NDIS_STRING STRPortClassifier11_DTag = NDIS_STRING_CONST("PortClassifier11_DTag");
NDIS_STRING STRPortClassifier12_DTag = NDIS_STRING_CONST("PortClassifier12_DTag");
NDIS_STRING STRPortClassifier13_DTag = NDIS_STRING_CONST("PortClassifier13_DTag");
NDIS_STRING STRPortClassifier14_DTag = NDIS_STRING_CONST("PortClassifier14_DTag");
NDIS_STRING STRPortClassifier15_DTag = NDIS_STRING_CONST("PortClassifier15_DTag");
NDIS_STRING STRIPPortClassifier00_IPAddress = NDIS_STRING_CONST("IPPortClassifier00_IPAddress");
NDIS_STRING STRIPPortClassifier01_IPAddress = NDIS_STRING_CONST("IPPortClassifier01_IPAddress");
NDIS_STRING STRIPPortClassifier02_IPAddress = NDIS_STRING_CONST("IPPortClassifier02_IPAddress");
NDIS_STRING STRIPPortClassifier03_IPAddress = NDIS_STRING_CONST("IPPortClassifier03_IPAddress");
NDIS_STRING STRIPPortClassifier04_IPAddress = NDIS_STRING_CONST("IPPortClassifier04_IPAddress");
NDIS_STRING STRIPPortClassifier05_IPAddress = NDIS_STRING_CONST("IPPortClassifier05_IPAddress");
NDIS_STRING STRIPPortClassifier06_IPAddress = NDIS_STRING_CONST("IPPortClassifier06_IPAddress");
NDIS_STRING STRIPPortClassifier07_IPAddress = NDIS_STRING_CONST("IPPortClassifier07_IPAddress");
NDIS_STRING STRIPPortClassifier08_IPAddress = NDIS_STRING_CONST("IPPortClassifier08_IPAddress");
NDIS_STRING STRIPPortClassifier09_IPAddress = NDIS_STRING_CONST("IPPortClassifier09_IPAddress");
NDIS_STRING STRIPPortClassifier10_IPAddress = NDIS_STRING_CONST("IPPortClassifier10_IPAddress");
NDIS_STRING STRIPPortClassifier11_IPAddress = NDIS_STRING_CONST("IPPortClassifier11_IPAddress");
NDIS_STRING STRIPPortClassifier12_IPAddress = NDIS_STRING_CONST("IPPortClassifier12_IPAddress");
NDIS_STRING STRIPPortClassifier13_IPAddress = NDIS_STRING_CONST("IPPortClassifier13_IPAddress");
NDIS_STRING STRIPPortClassifier14_IPAddress = NDIS_STRING_CONST("IPPortClassifier14_IPAddress");
NDIS_STRING STRIPPortClassifier15_IPAddress = NDIS_STRING_CONST("IPPortClassifier15_IPAddress");
NDIS_STRING STRIPPortClassifier00_Port = NDIS_STRING_CONST("IPPortClassifier00_Port");
NDIS_STRING STRIPPortClassifier01_Port = NDIS_STRING_CONST("IPPortClassifier01_Port");
NDIS_STRING STRIPPortClassifier02_Port = NDIS_STRING_CONST("IPPortClassifier02_Port");
NDIS_STRING STRIPPortClassifier03_Port = NDIS_STRING_CONST("IPPortClassifier03_Port");
NDIS_STRING STRIPPortClassifier04_Port = NDIS_STRING_CONST("IPPortClassifier04_Port");
NDIS_STRING STRIPPortClassifier05_Port = NDIS_STRING_CONST("IPPortClassifier05_Port");
NDIS_STRING STRIPPortClassifier06_Port = NDIS_STRING_CONST("IPPortClassifier06_Port");
NDIS_STRING STRIPPortClassifier07_Port = NDIS_STRING_CONST("IPPortClassifier07_Port");
NDIS_STRING STRIPPortClassifier08_Port = NDIS_STRING_CONST("IPPortClassifier08_Port");
NDIS_STRING STRIPPortClassifier09_Port = NDIS_STRING_CONST("IPPortClassifier09_Port");
NDIS_STRING STRIPPortClassifier10_Port = NDIS_STRING_CONST("IPPortClassifier10_Port");
NDIS_STRING STRIPPortClassifier11_Port = NDIS_STRING_CONST("IPPortClassifier11_Port");
NDIS_STRING STRIPPortClassifier12_Port = NDIS_STRING_CONST("IPPortClassifier12_Port");
NDIS_STRING STRIPPortClassifier13_Port = NDIS_STRING_CONST("IPPortClassifier13_Port");
NDIS_STRING STRIPPortClassifier14_Port = NDIS_STRING_CONST("IPPortClassifier14_Port");
NDIS_STRING STRIPPortClassifier15_Port = NDIS_STRING_CONST("IPPortClassifier15_Port");
NDIS_STRING STRIPPortClassifier00_DTag = NDIS_STRING_CONST("IPPortClassifier00_DTag");
NDIS_STRING STRIPPortClassifier01_DTag = NDIS_STRING_CONST("IPPortClassifier01_DTag");
NDIS_STRING STRIPPortClassifier02_DTag = NDIS_STRING_CONST("IPPortClassifier02_DTag");
NDIS_STRING STRIPPortClassifier03_DTag = NDIS_STRING_CONST("IPPortClassifier03_DTag");
NDIS_STRING STRIPPortClassifier04_DTag = NDIS_STRING_CONST("IPPortClassifier04_DTag");
NDIS_STRING STRIPPortClassifier05_DTag = NDIS_STRING_CONST("IPPortClassifier05_DTag");
NDIS_STRING STRIPPortClassifier06_DTag = NDIS_STRING_CONST("IPPortClassifier06_DTag");
NDIS_STRING STRIPPortClassifier07_DTag = NDIS_STRING_CONST("IPPortClassifier07_DTag");
NDIS_STRING STRIPPortClassifier08_DTag = NDIS_STRING_CONST("IPPortClassifier08_DTag");
NDIS_STRING STRIPPortClassifier09_DTag = NDIS_STRING_CONST("IPPortClassifier09_DTag");
NDIS_STRING STRIPPortClassifier10_DTag = NDIS_STRING_CONST("IPPortClassifier10_DTag");
NDIS_STRING STRIPPortClassifier11_DTag = NDIS_STRING_CONST("IPPortClassifier11_DTag");
NDIS_STRING STRIPPortClassifier12_DTag = NDIS_STRING_CONST("IPPortClassifier12_DTag");
NDIS_STRING STRIPPortClassifier13_DTag = NDIS_STRING_CONST("IPPortClassifier13_DTag");
NDIS_STRING STRIPPortClassifier14_DTag = NDIS_STRING_CONST("IPPortClassifier14_DTag");
NDIS_STRING STRIPPortClassifier15_DTag = NDIS_STRING_CONST("IPPortClassifier15_DTag");
/*-----------------------------
Rx Data Filter parameters
-----------------------------*/
NDIS_STRING STRRxDataFiltersEnabled = NDIS_STRING_CONST("RxDataFilters_Enabled");
NDIS_STRING STRRxDataFiltersDefaultAction = NDIS_STRING_CONST("RxDataFilters_DefaultAction");
NDIS_STRING STRRxDataFiltersFilter1Offset = NDIS_STRING_CONST("RxDataFilters_Filter1Offset");
NDIS_STRING STRRxDataFiltersFilter1Mask = NDIS_STRING_CONST("RxDataFilters_Filter1Mask");
NDIS_STRING STRRxDataFiltersFilter1Pattern = NDIS_STRING_CONST("RxDataFilters_Filter1Pattern");
NDIS_STRING STRRxDataFiltersFilter2Offset = NDIS_STRING_CONST("RxDataFilters_Filter2Offset");
NDIS_STRING STRRxDataFiltersFilter2Mask = NDIS_STRING_CONST("RxDataFilters_Filter2Mask");
NDIS_STRING STRRxDataFiltersFilter2Pattern = NDIS_STRING_CONST("RxDataFilters_Filter2Pattern");
NDIS_STRING STRRxDataFiltersFilter3Offset = NDIS_STRING_CONST("RxDataFilters_Filter3Offset");
NDIS_STRING STRRxDataFiltersFilter3Mask = NDIS_STRING_CONST("RxDataFilters_Filter3Mask");
NDIS_STRING STRRxDataFiltersFilter3Pattern = NDIS_STRING_CONST("RxDataFilters_Filter3Pattern");
NDIS_STRING STRRxDataFiltersFilter4Offset = NDIS_STRING_CONST("RxDataFilters_Filter4Offset");
NDIS_STRING STRRxDataFiltersFilter4Mask = NDIS_STRING_CONST("RxDataFilters_Filter4Mask");
NDIS_STRING STRRxDataFiltersFilter4Pattern = NDIS_STRING_CONST("RxDataFilters_Filter4Pattern");
/*---------------------------
Measurement parameters
-----------------------------*/
NDIS_STRING STRMeasurTrafficThreshold = NDIS_STRING_CONST( "MeasurTrafficThreshold" );
NDIS_STRING STRMeasurMaxDurationOnNonServingChannel = NDIS_STRING_CONST( "MeasurMaxDurationOnNonServingChannel" );
/*---------------------------
EXC Manager parameters
-----------------------------*/
#ifdef EXC_MODULE_INCLUDED
NDIS_STRING STRExcModeEnabled = NDIS_STRING_CONST( "ExcModeEnabled" );
#endif
NDIS_STRING STRExcTestIgnoreDeAuth0 = NDIS_STRING_CONST( "ExcTestRogeAP" );
/*-----------------------------------*/
/* EEPROM-less support */
/*-----------------------------------*/
NDIS_STRING STREEPROMlessModeSupported = NDIS_STRING_CONST( "EEPROMlessModeSupported" );
NDIS_STRING STRstationMacAddress = NDIS_STRING_CONST("dot11StationID");
/*-----------------------------------*/
/* INI file to configuration */
/*-----------------------------------*/
NDIS_STRING SendINIBufferToUser = NDIS_STRING_CONST("SendINIBufferToUserMode");
void regConvertStringtoMACAddress(UINT8 *staMACAddressString,UINT8 *MacAddressArray);
void regConvertStringtoIpAddress(UINT8 *staIpAddressString,UINT8 *IpAddressArray);
void regConvertStringtoBeaconIETable(UINT8 *staIpAddressString,UINT8 *BeaconIEArray, UINT8 size);
/*-----------------------------------*/
/* Scan concentrator parameters */
/*-----------------------------------*/
NDIS_STRING STRPassiveScanDwellTime = NDIS_STRING_CONST( "DriverPassiveScanDefaultDwellTime" );
// TRS: Scan changes from TI
NDIS_STRING STRMinimumDurationBetweenOidScans = NDIS_STRING_CONST( "MinimumDurationBetweenOidScans" );
//TRS: end of Scan changes from TI
/*
NDIS_STRING STRPctACXRxMemoryPool = NDIS_STRING_CONST( "PctACXRxMemoryPool" );
NDIS_STRING STRSendPacketsPerOID = NDIS_STRING_CONST( "Dot11SendPacketsPerOID" );
NDIS_STRING STRFragCacheSize = NDIS_STRING_CONST( "FragCacheSize" );
*/
static int decryptWEP( PCHAR pSrc, PCHAR pDst, ULONG len);
short _btoi ( char *sptr, short slen, int *pi, short base );
static VOID initRadioValusFromRgstryString( PCHAR pSrc, PCHAR pDst, ULONG len);
static void readRates(PTIWLN_ADAPTER_T pAdapter, initTable_t *pInitTable);
static void decryptScanControlTable(PUCHAR src, PUCHAR dst, USHORT len);
static UINT32 regReadIntegerTable(PTIWLN_ADAPTER_T pAdapter,
PNDIS_STRING pParameterName,
PCHAR pDefaultValue,
USHORT defaultLen,
PUCHAR pParameter);
static void assignRegValue(PULONG lValue, PNDIS_CONFIGURATION_PARAMETER ndisParameter);
static void parse_filter_request(rxDataFilterRequest_t * request, UINT8 offset, char * mask, UINT8 maskLength, char * pattern, UINT8 patternLength);
/* ---------------------------------------------------------------------------*/
/* Converts a string to a signed int. Assumes base 10. Assumes positive*/
/* number*/
/**/
/* Returns value on success, -1 on failure*/
/**/
/* ---------------------------------------------------------------------------*/
ULONG
tiwlnstrtoi(char *num, UINT length)
{
ULONG value;
if(num == NULL || length == 0 )
{
return 0;
}
for(value=0;length&&*num;num++,length--)
{
if(*num<='9'&&*num>= '0')
{
value=(value*10)+(*num - '0');
}
else { /* Out of range*/
break;
}
}
return value;
}
/*-----------------------------------------------------------------------------
Routine Name:
regReadConfigString
Routine Description:
Arguments:
Return Value:
None
-----------------------------------------------------------------------------*/
BOOLEAN
regReadConfigString(
IN NDIS_HANDLE hConfig,
IN NDIS_STRING *pParmName,
OUT PCHAR pStringOut,
OUT USHORT cbString
)
{
BOOLEAN fRC = FALSE;
NDIS_STATUS rc;
PNDIS_CONFIGURATION_PARAMETER pParameter;
ANSI_STRING strAnsi;
do {
/* Read the string...*/
NdisReadConfiguration( &rc, &pParameter, hConfig, pParmName,
NdisParameterString );
if ( NDIS_STATUS_SUCCESS != rc ) break;
/* convert the string...*/
strAnsi.Length = 0;
strAnsi.MaximumLength = cbString;
strAnsi.Buffer = pStringOut;
rc = NdisUnicodeStringToAnsiString(&strAnsi,
&pParameter->ParameterData.StringData);
if ( NDIS_STATUS_SUCCESS != rc ) break;
/* NULL terminate the output string. If we cannot fit the NULL, that's*/
/* an error...*/
if ( cbString < strAnsi.Length + 1 ) break;
pStringOut[ strAnsi.Length ] = '\0';
fRC = TRUE;
} while( 0 );
return( fRC );
}
/*-----------------------------------------------------------------------------
Routine Name:
regReadRatesConfigArray
Routine Description:
Arguments:
Return Value:
None
-----------------------------------------------------------------------------*/
BOOLEAN
regReadRatesConfigArray(
NDIS_HANDLE SubKeyHandle,
PNDIS_STRING Str,
PUCHAR target,
PUCHAR def,
PULONG size
)
{
BOOLEAN fRC = TRUE;
CHAR str[200];
UCHAR val;
int i,j;
if (!regReadConfigString(SubKeyHandle, Str, (PCHAR)str, 200) ) {
fRC = FALSE;
}
i=j=0;
do
{
val = 0;
if (!fRC) {
val = def[i];
if(!val) break;
}
else
{
if(!str[j])
break;
while (str[j] && (str[j]<'0' || str[j]>'9')) j++;
if (str[j])
{
while (str[j] && str[j]>='0' && str[j]<='9')
{
val=10*val+str[j]-'0';
j++;
}
}
}
target[i++] = val;
}
while (val);
*size = i;
return fRC;
}
/*-----------------------------------------------------------------------------
Routine Name:
convertRatesFromRegistryFormatToDriver
Routine Description:
Arguments:
Return Value:
None
-----------------------------------------------------------------------------*/
rate_e convertRatesFromRegistryFormatToDriver(UCHAR rateIn)
{
switch(rateIn)
{
case 0x1: return DRV_RATE_1M;
case 0x2: return DRV_RATE_2M;
case 0x5: return DRV_RATE_5_5M;
case 0xB: return DRV_RATE_11M;
case 0x16: return DRV_RATE_22M;
case 0x6: return DRV_RATE_6M;
case 0x9: return DRV_RATE_9M;
case 0xC: return DRV_RATE_12M;
case 0x12: return DRV_RATE_18M;
case 0x18: return DRV_RATE_24M;
case 0x24: return DRV_RATE_36M;
case 0x30: return DRV_RATE_48M;
case 0x36: return DRV_RATE_54M;
default: return DRV_RATE_6M;
}
}
/*-----------------------------------------------------------------------------
Routine Name:
regConvertStringtoMACAddress
Routine Description: Converts the MAC Adrress in a form of string readen from the Registry
to the MAC Address Array to be stored in the init_table struct
Arguments:
Return Value:
None
-----------------------------------------------------------------------------*/
void regConvertStringtoMACAddress(UINT8 *staMACAddressString,UINT8 *MacAddressArray)
{
char *ptr;
UINT8 *tmpMacAddr;
UINT8 value = 0, value_l, value_h, add_value;
int i, str_len;
/* Take the pointer to the string MAC Address to convert it to the Array MAC Address */
ptr = (char *)staMACAddressString;
tmpMacAddr = MacAddressArray;
str_len = 3 * MAC_ADDR_LEN - 1;
#if 0
for(i=0; i<MAC_ADDR_LEN ; ptr++)
{
value_l = (*ptr-'0');
/* PRINTF(DBG_REGISTRY,("value_l [%d] *ptr %c value %d\n",value_l,*ptr,value));*/
if( value_l < 9)
{
value = value*10 + value_l;
/* PRINTF(DBG_REGISTRY,("value %d value_l %d \n",value,value_l));*/
}
else
{
tmpMacAddr[i] = value;
/* PRINTF(DBG_REGISTRY,("tmpMacAddr[%d] is %d\n",i,tmpMacAddr[i]));*/
value = 0;
i++;
}
}
#else
for(i=0;(i < MAC_ADDR_LEN);ptr++,str_len--)
{
if (str_len > 0) {
/* The value can be or "0-9" or from "a-f" */
value_l = (*ptr - '0');
value_h = (*ptr - 'a');
}
else { /* last element */
value_l = value_h = 16;
}
/*PRINTF(DBG_REGISTRY,("value_l [%d] value_h [%d] *ptr %c value %d\n",value_l,value_h,*ptr,value));*/
if( (value_l <= 9) || (value_h <= 15 ) )
{
/* We are in an expected range */
/* nCheck if 0-9 */
if(value_l <= 9 )
{
add_value = value_l;
}
/* Check if a-f */
else
{
/* 'a' is in fact 10 decimal in hexa */
add_value = value_h + 10;
}
value = value * 16 + add_value;
/*PRINTF(DBG_REGISTRY,("value %d add_value %d \n",value,add_value));*/
}
else
{
tmpMacAddr[i] = value;
/*PRINTF(DBG_REGISTRY,("tmpMacAddr[%d] is %x\n",i,tmpMacAddr[i]));*/
value = 0;
i++;
}
}
#endif
}
/*-----------------------------------------------------------------------------
Routine Name:
regFillInitTable
Routine Description:
Arguments:
Return Value:
None
-----------------------------------------------------------------------------*/
VOID
regFillInitTable(
PTIWLN_ADAPTER_T pAdapter,
PVOID pInitTable
)
{
UINT8 radioString[3*RX_LEVEL_TABLE_SIZE];
UINT8 bssidBroadcast[MAC_ADDR_LEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
UINT8* RFMD_RxLevel = "bc b3 a9 9a 90 89 80 79 70 68 64 61 60 55 00";
UINT8* RFMD_Lna = "01 01 01 01 01 01 01 01 01 01 01 01 01 01 01";
UINT8* RFMD_Rssi = "0a 0f 14 19 1e 23 28 2d 32 37 3c 41 46 4b c8";
UINT8* MAXIM_RxLevel = "55 4f 4a 43 3a 32 5d 56 4e 46 3e 37 2a 23 1f";
UINT8* MAXIM_Lna = "00 00 00 00 00 00 01 01 01 01 01 01 01 01 01";
UINT8* MAXIM_Rssi = "0a 0f 14 19 1e 23 28 2d 32 37 3c 41 46 4b 5a";
char dummySsidString[MAX_SSID_LEN];
ctrlData_rateAdapt_t RateAdapt;
UCHAR temp[MAX_SUPPORTED_RATES], i;
UINT8 *ClsfrIp = "0a 03 01 c9";
UINT8 ClsfrIpString[16];
UINT8 ClsfrIpStringSize;
/* EEPROM-less : MAC address */
UINT8 regMACstrLen = REG_MAC_ADDR_STR_LEN;
UINT8 staMACAddress[REG_MAC_ADDR_STR_LEN];
UINT8 defStaMacAddress[]= "00 22 11 33 44 55";
UINT8 regArpIpStrLen = REG_ARP_IP_ADDR_STR_LEN ;
UINT8 staArpIpAddress[REG_ARP_IP_ADDR_STR_LEN];
UINT8 defArpIpAddress[] = "0a 00 00 0a" ; /*value by default*/
/*defaults values for beacon IE table*/
/*UINT8 defBeaconIETableSize = 0 ;*/
UINT8 defBeaconIETable[] = "00 01 01 01 32 01 2a 01 03 01 06 01 07 01 20 01 25 01 23 01 30 01 28 01 2e 01 85 01 dd 01 00 52 f2 02 00 01";
/*UINT8 tmpIeTable[BEACON_FILTER_TABLE_MAX_SIZE] ;*/
UINT8 staBeaconFilterIETable[BEACON_FILTER_STRING_MAX_LEN] ;
UINT8 tmpIeTableSize = 35;
UINT8 strSize = 104 ;
UINT filterOffset = 0;
char filterMask[16];
UINT8 filterMaskLength;
char filterPattern[16];
UINT8 filterPatternLength;
initTable_t* p = (initTable_t*) pInitTable;
USHORT tableLen = 0;
USHORT loopIndex = 0;
UINT8 ScanControlTable24Tmp[2 * NUM_OF_CHANNELS_24];
UINT8 ScanControlTable5Tmp[2 * A_5G_BAND_NUM_CHANNELS];
UINT8 ScanControlTable24Def[2* NUM_OF_CHANNELS_24] = "FFFFFFFFFFFFFFFFFFFFFFFFFFFF";
UINT8 ScanControlTable5Def[2 * A_5G_BAND_NUM_CHANNELS] = "FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000000000000000000000000000000000000000000000000000000000000000000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000000000000000FF000000FF000000FF000000FF00000000000000000000000000000000000000";
UINT8 reportSeverityTableDefaults[WLAN_MAX_SEVERITIES] = "000000000000";
UINT8 reportModuleTableDefaults[WLAN_MAX_LOG_MODULES];
UINT16 reportSeverityTableLen;
UINT16 reportModuleTableLen;
int macIndex ; /*used for group address filtering*/
UINT32 localNumTxDesc;
PRINT(DBG_REGISTRY_LOUD, "TIWL: Reading InitTable parameters\n");
/*set all report modules.as default*/
memset(reportModuleTableDefaults, '1', WLAN_MAX_LOG_MODULES );
/* Reset structure */
NdisZeroMemory(p, sizeof(initTable_t));
NdisZeroMemory(&RateAdapt, sizeof(ctrlData_rateAdapt_t));
/*reads the arp ip from table*/
regReadStringParameter(pAdapter ,&STRArp_Ip_Addr,
(PCHAR)(defArpIpAddress),REG_ARP_IP_ADDR_STR_LEN,
(PUCHAR)staArpIpAddress,&regArpIpStrLen ) ;
regReadIntegerParameter(pAdapter, &STRArp_Ip_Filter_Ena,
DEF_FILTER_ENABLE_VALUE, MIN_FILTER_ENABLE_VALUE, MAX_FILTER_ENABLE_VALUE,
sizeof p->TnetwDrv_InitParams.arpIpFilterParams.isFilterEnabled,
(PUCHAR)&p->TnetwDrv_InitParams.arpIpFilterParams.isFilterEnabled );
regConvertStringtoIpAddress(staArpIpAddress, (PUCHAR)&(p->TnetwDrv_InitParams.arpIpFilterParams.arpIpInitParams.addr[0]) );
/* Beacon filter*/
/*is the desired state ENABLED ?*/
regReadIntegerParameter(pAdapter, &STRBeaconFilterDesiredState,
DEF_BEACON_FILTER_ENABLE_VALUE, MIN_BEACON_FILTER_ENABLE_VALUE, MAX_BEACON_FILTER_ENABLE_VALUE,
sizeof p->siteMgrInitParams.beaconFilterParams.desiredState,
(PUCHAR)&p->siteMgrInitParams.beaconFilterParams.desiredState );
regReadIntegerParameter(pAdapter, &STRBeaconFilterStored,
DEF_NUM_STORED_FILTERS, MIN_NUM_STORED_FILTERS, MAX_NUM_STORED_FILTERS,
sizeof p->siteMgrInitParams.beaconFilterParams.numOfStored,
(PUCHAR)&p->siteMgrInitParams.beaconFilterParams.numOfStored );
/*Read the beacon filter IE table*/
/*Read the size of the table*/
regReadIntegerParameter(pAdapter, &STRBeaconIETableSize,
BEACON_FILTER_IE_TABLE_MIN_SIZE, BEACON_FILTER_IE_TABLE_MIN_SIZE,
BEACON_FILTER_IE_TABLE_MAX_SIZE,
sizeof p->siteMgrInitParams.beaconFilterParams.IETableSize,
(PUCHAR)(&p->siteMgrInitParams.beaconFilterParams.IETableSize) );
tmpIeTableSize = p->siteMgrInitParams.beaconFilterParams.IETableSize;
/*Read the number of elements in the table ( this is because 221 has 5 values following it )*/
regReadIntegerParameter(pAdapter, &STRBeaconIETableNumOfElem,
DEF_BEACON_FILTER_IE_TABLE_NUM, BEACON_FILTER_IE_TABLE_MIN_NUM,
BEACON_FILTER_IE_TABLE_MAX_NUM,
sizeof p->siteMgrInitParams.beaconFilterParams.numOfElements,
(PUCHAR)(&p->siteMgrInitParams.beaconFilterParams.numOfElements) );
/*printk("\n OsRgstr tmpIeTableSize = %d numOfElems = %d" , tmpIeTableSize , p->siteMgrInitParams.beaconFilterParams.numOfElements) ;*/
strSize = tmpIeTableSize*2 +tmpIeTableSize - 1 ; /*includes spaces between bytes*/
if ( ( tmpIeTableSize > 0 ) && ( tmpIeTableSize <= BEACON_FILTER_IE_TABLE_MAX_SIZE) )
{
regReadStringParameter(pAdapter, &STRBeaconIETable ,
(PCHAR)(defBeaconIETable), strSize,
(PUCHAR)staBeaconFilterIETable, &strSize);
regConvertStringtoBeaconIETable(staBeaconFilterIETable , (PUCHAR)&p->siteMgrInitParams.beaconFilterParams.IETable[0]/*(PUCHAR)&(tmpIeTable[0] )*/ , tmpIeTableSize);
}
/* MAC ADDRESSES FILTER*/
regReadIntegerParameter(pAdapter, &STRFilterEnabled,
DEF_FILTER_ENABLE_VALUE, MIN_FILTER_ENABLE_VALUE,
MAX_FILTER_ENABLE_VALUE,
sizeof p->TnetwDrv_InitParams.macAddrFilterParams.isFilterEnabled,
(PUCHAR) &p->TnetwDrv_InitParams.macAddrFilterParams.isFilterEnabled);
regReadIntegerParameter(pAdapter, &STRnumGroupAddrs,
NUM_GROUP_ADDRESS_VALUE_DEF, NUM_GROUP_ADDRESS_VALUE_MIN,
NUM_GROUP_ADDRESS_VALUE_MAX,
sizeof p->TnetwDrv_InitParams.macAddrFilterParams.numOfMacAddresses,
(PUCHAR) &p->TnetwDrv_InitParams.macAddrFilterParams.numOfMacAddresses);
/*printk("\nOsRgstry Num Of Group Addr:%d \n" , p->TnetwDrv_InitParams.macAddrFilterParams.numOfMacAddresses) ;*/
macIndex = p->TnetwDrv_InitParams.macAddrFilterParams.numOfMacAddresses -1 ;
switch( macIndex )
{
case 7:
{
regReadStringParameter(pAdapter, &STRGroup_addr7,
(PCHAR)(defStaMacAddress), REG_MAC_ADDR_STR_LEN,
(PUCHAR)staMACAddress, &regMACstrLen);
regConvertStringtoMACAddress(staMACAddress,(PUCHAR) &p->TnetwDrv_InitParams.macAddrFilterParams.macAddrTable[7].addr);
--macIndex;
}
case 6:
{
regReadStringParameter(pAdapter, &STRGroup_addr6,
(PCHAR)(defStaMacAddress), REG_MAC_ADDR_STR_LEN,
(PUCHAR)staMACAddress, &regMACstrLen);
regConvertStringtoMACAddress(staMACAddress,(PUCHAR) &p->TnetwDrv_InitParams.macAddrFilterParams.macAddrTable[6].addr);
--macIndex;
}
case 5:
{
regReadStringParameter(pAdapter, &STRGroup_addr5,
(PCHAR)(defStaMacAddress), REG_MAC_ADDR_STR_LEN,
(PUCHAR)staMACAddress, &regMACstrLen);
regConvertStringtoMACAddress(staMACAddress,(PUCHAR) &p->TnetwDrv_InitParams.macAddrFilterParams.macAddrTable[5].addr);
--macIndex;
}
case 4:
{
regReadStringParameter(pAdapter, &STRGroup_addr4,
(PCHAR)(defStaMacAddress), REG_MAC_ADDR_STR_LEN,
(PUCHAR)staMACAddress, &regMACstrLen);
regConvertStringtoMACAddress(staMACAddress,(PUCHAR) &p->TnetwDrv_InitParams.macAddrFilterParams.macAddrTable[4].addr);
--macIndex;
}
case 3:
{
regReadStringParameter(pAdapter, &STRGroup_addr3,
(PCHAR)(defStaMacAddress), REG_MAC_ADDR_STR_LEN,
(PUCHAR)staMACAddress, &regMACstrLen);
regConvertStringtoMACAddress(staMACAddress,(PUCHAR) &p->TnetwDrv_InitParams.macAddrFilterParams.macAddrTable[3].addr);
--macIndex;
}
case 2:
{
regReadStringParameter(pAdapter, &STRGroup_addr2,
(PCHAR)(defStaMacAddress), REG_MAC_ADDR_STR_LEN,
(PUCHAR)staMACAddress, &regMACstrLen);
regConvertStringtoMACAddress(staMACAddress,(PUCHAR) &p->TnetwDrv_InitParams.macAddrFilterParams.macAddrTable[2].addr );
--macIndex;
}
case 1:
{
regReadStringParameter(pAdapter, &STRGroup_addr1,
(PCHAR)(defStaMacAddress), REG_MAC_ADDR_STR_LEN,
(PUCHAR)staMACAddress, &regMACstrLen);
regConvertStringtoMACAddress(staMACAddress,(PUCHAR) &p->TnetwDrv_InitParams.macAddrFilterParams.macAddrTable[1].addr);
--macIndex;
}
case 0:
{
regReadStringParameter(pAdapter, &STRGroup_addr0,
(PCHAR)(defStaMacAddress), REG_MAC_ADDR_STR_LEN,
(PUCHAR)staMACAddress, &regMACstrLen);
regConvertStringtoMACAddress(staMACAddress,(PUCHAR) &p->TnetwDrv_InitParams.macAddrFilterParams.macAddrTable[0].addr);
}
default:
{
}
}
/* Read Beacon early wakeup parmeter */
regReadIntegerParameter(pAdapter, &STREarlyWakeup,
EARLY_WAKEUP_ENABLE_DEF, EARLY_WAKEUP_ENABLE_MIN,
EARLY_WAKEUP_ENABLE_MAX,
sizeof(p->TnetwDrv_InitParams.macPreambleParams.earlyWakeUp),
(PUCHAR) &p->TnetwDrv_InitParams.macPreambleParams.earlyWakeUp);
/* Read TX XFER init parameters */
regReadIntegerParameter(pAdapter, &STRTxXferBufferFullTimeToRecovery,
TX_XFER_HW_BUFFER_FULL_DUR_RECOVERY_DEF, TX_XFER_HW_BUFFER_FULL_DUR_RECOVERY_MIN,
TX_XFER_HW_BUFFER_FULL_DUR_RECOVERY_MAX,
sizeof (p->TnetwDrv_InitParams.txXferInitParams.timeToTxStuckMs),
(PUCHAR) &(p->TnetwDrv_InitParams.txXferInitParams.timeToTxStuckMs));
/************************/
/* Read severity table */
/**********************/
regReadStringParameter(pAdapter, &STR_ReportSeverityTable,
(PCHAR)reportSeverityTableDefaults,
(UCHAR)WLAN_MAX_SEVERITIES,
(PUCHAR)p->TnetwDrv_InitParams.reportParams.SeverityTable,
(PUCHAR)&reportSeverityTableLen);
/***********************/
/* Read modules table */
/*********************/
regReadStringParameter(pAdapter, &STR_ReportModuleTable,
(PCHAR)reportModuleTableDefaults,
(UCHAR)WLAN_MAX_LOG_MODULES,
(PUCHAR)p->TnetwDrv_InitParams.reportParams.ModuleTable,
(PUCHAR)&reportModuleTableLen);
/*
Default SSID should be non-Valid SSID, hence the STA will not try to connect
*/
for(loopIndex = 0; loopIndex < MAX_SSID_LEN; loopIndex++)
dummySsidString[loopIndex] = (loopIndex+1);
/*
* Read CCK table
*/
regReadRatesConfigArray(pAdapter->ConfigHandle, &STRRateAdaptationTable0,
temp, "\x1\x2\x5\xB",
(PULONG) &RateAdapt.len);
for(i=0; i<RateAdapt.len; i++) RateAdapt.rateAdaptRatesTable[i] =
RateNumberToHost(temp[i]);
NdisZeroMemory(temp, sizeof(temp));
regReadRatesConfigArray(pAdapter->ConfigHandle, &STRRateAdaptationFBThd0,
&RateAdapt.rateAdaptFBTable[0], "\x32\x32\x32\x32",
(PULONG) &RateAdapt.len);
regReadRatesConfigArray(pAdapter->ConfigHandle, &STRRateAdaptationSUThd0,
&RateAdapt.rateAdaptSUTable[0], "\x1E\x1E\x1E\x1E",
(PULONG) &RateAdapt.len);
NdisMoveMemory(&p->ctrlDataInitParams.rateTable.ctrlDataCckRateTable,
&RateAdapt, sizeof(ctrlData_rateAdapt_t));
/*
* Read PBCC table
*/
regReadRatesConfigArray(pAdapter->ConfigHandle, &STRRateAdaptationTable1,
temp, "\x1\x2\x5\xB\x16",
(PULONG) &RateAdapt.len);
for(i=0; i<RateAdapt.len; i++) RateAdapt.rateAdaptRatesTable[i] =
RateNumberToHost(temp[i]);
NdisZeroMemory(temp, sizeof(temp));
regReadRatesConfigArray(pAdapter->ConfigHandle, &STRRateAdaptationFBThd1,
&RateAdapt.rateAdaptFBTable[0], "\x32\x32\x32\x32\x32",
(PULONG) &RateAdapt.len);
regReadRatesConfigArray(pAdapter->ConfigHandle, &STRRateAdaptationSUThd1,
&RateAdapt.rateAdaptSUTable[0], "\x1E\x1E\x1E\x1E\x1E",
(PULONG) &RateAdapt.len);
NdisMoveMemory(&p->ctrlDataInitParams.rateTable.ctrlDataPbccRateTable,
&RateAdapt, sizeof(ctrlData_rateAdapt_t));
/*
* Read OFDM table
*/
regReadRatesConfigArray(pAdapter->ConfigHandle, &STRRateAdaptationTable2,
temp, "\x1\x2\x5\x6\x9\xB\xC\x12\x18\x24\x30\x36",
(PULONG) &RateAdapt.len);
for(i=0; i<RateAdapt.len; i++) RateAdapt.rateAdaptRatesTable[i] =
RateNumberToHost(temp[i]);
NdisZeroMemory(temp, sizeof(temp));
regReadRatesConfigArray(pAdapter->ConfigHandle, &STRRateAdaptationFBThd2,
&RateAdapt.rateAdaptFBTable[0], "\x32\x32\x32\x32\x32\x32\x32\x2D\x2D\x2D\x2D\x14",
(PULONG) &RateAdapt.len);
regReadRatesConfigArray(pAdapter->ConfigHandle, &STRRateAdaptationSUThd2,
&RateAdapt.rateAdaptSUTable[0], "\x1E\x1E\x1E\x1E\x1E\x1E\x1E\x1E\x1E\xA\x5\x0",
(PULONG) &RateAdapt.len);
NdisMoveMemory(&p->ctrlDataInitParams.rateTable.ctrlDataOfdmRateTable,
&RateAdapt, sizeof(ctrlData_rateAdapt_t));
/*
* Read OFDMA table
*/
regReadRatesConfigArray(pAdapter->ConfigHandle, &STRRateAdaptationTable3,
temp, "\x6\x9\xC\x12\x18\x24\x30\x36",
(PULONG) &RateAdapt.len);
for(i=0; i<RateAdapt.len; i++) RateAdapt.rateAdaptRatesTable[i] =
RateNumberToHost(temp[i]);
NdisZeroMemory(temp, sizeof(temp));
regReadRatesConfigArray(pAdapter->ConfigHandle, &STRRateAdaptationFBThd3,
&RateAdapt.rateAdaptFBTable[0], "\x32\x32\x32\x32\x2D\x2D\x2D\x14",
(PULONG) &RateAdapt.len);
regReadRatesConfigArray(pAdapter->ConfigHandle, &STRRateAdaptationSUThd3,
&RateAdapt.rateAdaptSUTable[0], "\x1E\x1E\x1E\x1E\x1E\xA\x5\x0",
(PULONG) &RateAdapt.len);
NdisMoveMemory(&p->ctrlDataInitParams.rateTable.ctrlDataOfdmARateTable,
&RateAdapt, sizeof(ctrlData_rateAdapt_t));
regReadIntegerParameter(pAdapter, &STRRateAdaptationLowTrshAcBK,
RATE_ADAPT_LOW_TRSH_AC_BK_DEF, RATE_ADAPT_LOW_TRSH_AC_BK_MIN,
RATE_ADAPT_LOW_TRSH_AC_BK_MAX,
sizeof p->ctrlDataInitParams.rateAdaptationInitParam.tspecsRateParameters[QOS_AC_BK].lowRateThreshold,
(PUCHAR)&p->ctrlDataInitParams.rateAdaptationInitParam.tspecsRateParameters[QOS_AC_BK].lowRateThreshold);
regReadIntegerParameter(pAdapter, &STRRateAdaptationLowTrshAcBE,
RATE_ADAPT_LOW_TRSH_AC_BE_DEF, RATE_ADAPT_LOW_TRSH_AC_BE_MIN,
RATE_ADAPT_LOW_TRSH_AC_BE_MAX,
sizeof p->ctrlDataInitParams.rateAdaptationInitParam.tspecsRateParameters[QOS_AC_BE].lowRateThreshold,
(PUCHAR)&p->ctrlDataInitParams.rateAdaptationInitParam.tspecsRateParameters[QOS_AC_BE].lowRateThreshold);
regReadIntegerParameter(pAdapter, &STRRateAdaptationLowTrshAcVI,
RATE_ADAPT_LOW_TRSH_AC_VI_DEF, RATE_ADAPT_LOW_TRSH_AC_VI_MIN,
RATE_ADAPT_LOW_TRSH_AC_VI_MAX,
sizeof p->ctrlDataInitParams.rateAdaptationInitParam.tspecsRateParameters[QOS_AC_VI].lowRateThreshold,
(PUCHAR)&p->ctrlDataInitParams.rateAdaptationInitParam.tspecsRateParameters[QOS_AC_VI].lowRateThreshold);
regReadIntegerParameter(pAdapter, &STRRateAdaptationLowTrshAcVO,
RATE_ADAPT_HIGH_TRSH_AC_VO_DEF, RATE_ADAPT_HIGH_TRSH_AC_VO_MIN,
RATE_ADAPT_HIGH_TRSH_AC_VO_MAX,
sizeof p->ctrlDataInitParams.rateAdaptationInitParam.tspecsRateParameters[QOS_AC_VO].lowRateThreshold,
(PUCHAR)&p->ctrlDataInitParams.rateAdaptationInitParam.tspecsRateParameters[QOS_AC_VO].lowRateThreshold);
regReadIntegerParameter(pAdapter, &STRRateAdaptationHighTrshAcBK,
RATE_ADAPT_HIGH_TRSH_AC_BK_DEF, RATE_ADAPT_HIGH_TRSH_AC_BK_MIN,
RATE_ADAPT_HIGH_TRSH_AC_BK_MAX,
sizeof p->ctrlDataInitParams.rateAdaptationInitParam.tspecsRateParameters[QOS_AC_BK].highRateThreshold,
(PUCHAR)&p->ctrlDataInitParams.rateAdaptationInitParam.tspecsRateParameters[QOS_AC_BK].highRateThreshold);
regReadIntegerParameter(pAdapter, &STRRateAdaptationHighTrshAcBE,
RATE_ADAPT_HIGH_TRSH_AC_BE_DEF, RATE_ADAPT_HIGH_TRSH_AC_BE_MIN,
RATE_ADAPT_HIGH_TRSH_AC_BE_MAX,
sizeof p->ctrlDataInitParams.rateAdaptationInitParam.tspecsRateParameters[QOS_AC_BE].highRateThreshold,
(PUCHAR)&p->ctrlDataInitParams.rateAdaptationInitParam.tspecsRateParameters[QOS_AC_BE].highRateThreshold);
regReadIntegerParameter(pAdapter, &STRRateAdaptationHighTrshAcVI,
RATE_ADAPT_HIGH_TRSH_AC_VI_DEF, RATE_ADAPT_HIGH_TRSH_AC_VI_MIN,
RATE_ADAPT_HIGH_TRSH_AC_VI_MAX,
sizeof p->ctrlDataInitParams.rateAdaptationInitParam.tspecsRateParameters[QOS_AC_VI].highRateThreshold,
(PUCHAR)&p->ctrlDataInitParams.rateAdaptationInitParam.tspecsRateParameters[QOS_AC_VI].highRateThreshold);
regReadIntegerParameter(pAdapter, &STRRateAdaptationHighTrshAcVO,
RATE_ADAPT_HIGH_TRSH_AC_VO_DEF, RATE_ADAPT_HIGH_TRSH_AC_VO_MIN,
RATE_ADAPT_HIGH_TRSH_AC_VO_MAX,
sizeof p->ctrlDataInitParams.rateAdaptationInitParam.tspecsRateParameters[QOS_AC_VO].highRateThreshold,
(PUCHAR)&p->ctrlDataInitParams.rateAdaptationInitParam.tspecsRateParameters[QOS_AC_VO].highRateThreshold);
/* rate Policy Params */
regReadIntegerParameter(pAdapter, &STRRatePolicyUserShortRetryLimit,
CTRL_DATA_RATE_POLICY_USER_SHORT_RETRY_LIMIT_DEF,
CTRL_DATA_RATE_POLICY_USER_SHORT_RETRY_LIMIT_MIN,
CTRL_DATA_RATE_POLICY_USER_SHORT_RETRY_LIMIT_MAX,
sizeof p->ctrlDataInitParams.ctrlDataTxRatePolicy[USER_RATE_CLASS].shortRetryLimit,
(PUCHAR)&p->ctrlDataInitParams.ctrlDataTxRatePolicy[USER_RATE_CLASS].shortRetryLimit);
regReadIntegerParameter(pAdapter, &STRRatePolicyUserLongRetryLimit,
CTRL_DATA_RATE_POLICY_USER_LONG_RETRY_LIMIT_DEF,
CTRL_DATA_RATE_POLICY_USER_LONG_RETRY_LIMIT_MIN,
CTRL_DATA_RATE_POLICY_USER_LONG_RETRY_LIMIT_MAX,
sizeof p->ctrlDataInitParams.ctrlDataTxRatePolicy[USER_RATE_CLASS].longRetryLimit,
(PUCHAR)&p->ctrlDataInitParams.ctrlDataTxRatePolicy[USER_RATE_CLASS].longRetryLimit);
regReadIntegerTable(pAdapter, &STRRatePolicyUserRetriesPerRateCck, CTRL_DATA_RATE_POLICY_USER_RETRIES_PER_RATE_CCK_DEF,
CTRL_DATA_RATE_POLICY_RETRIES_PER_RATE_MAX_LEN,
(PUCHAR)&p->ctrlDataInitParams.policyClassRatesArrayCck[USER_RATE_CLASS]);
regReadIntegerTable(pAdapter, &STRRatePolicyUserRetriesPerRatePbcc, CTRL_DATA_RATE_POLICY_USER_RETRIES_PER_RATE_PBCC_DEF,
CTRL_DATA_RATE_POLICY_RETRIES_PER_RATE_MAX_LEN,
(PUCHAR)&p->ctrlDataInitParams.policyClassRatesArrayPbcc[USER_RATE_CLASS]);
regReadIntegerTable(pAdapter, &STRRatePolicyUserRetriesPerRateOfdm, CTRL_DATA_RATE_POLICY_USER_RETRIES_PER_RATE_OFDM_DEF,
CTRL_DATA_RATE_POLICY_RETRIES_PER_RATE_MAX_LEN,
(PUCHAR)&p->ctrlDataInitParams.policyClassRatesArrayOfdm[USER_RATE_CLASS]);
regReadIntegerTable(pAdapter, &STRRatePolicyUserRetriesPerRateOfdmA, CTRL_DATA_RATE_POLICY_USER_RETRIES_PER_RATE_OFDMA_DEF,
CTRL_DATA_RATE_POLICY_RETRIES_PER_RATE_MAX_LEN,
(PUCHAR)&p->ctrlDataInitParams.policyClassRatesArrayOfdmA[USER_RATE_CLASS]);
regReadIntegerParameter(pAdapter, &STRRatePolicySGShortRetryLimit,
CTRL_DATA_RATE_POLICY_SG_SHORT_RETRY_LIMIT_DEF,
CTRL_DATA_RATE_POLICY_SG_SHORT_RETRY_LIMIT_MIN,
CTRL_DATA_RATE_POLICY_SG_SHORT_RETRY_LIMIT_MAX,
sizeof p->ctrlDataInitParams.ctrlDataTxRatePolicy[SG_RATE_CLASS].shortRetryLimit,
(PUCHAR)&p->ctrlDataInitParams.ctrlDataTxRatePolicy[SG_RATE_CLASS].shortRetryLimit);
regReadIntegerParameter(pAdapter, &STRRatePolicySGLongRetryLimit,
CTRL_DATA_RATE_POLICY_SG_LONG_RETRY_LIMIT_DEF,
CTRL_DATA_RATE_POLICY_SG_LONG_RETRY_LIMIT_MIN,
CTRL_DATA_RATE_POLICY_SG_LONG_RETRY_LIMIT_MAX,
sizeof p->ctrlDataInitParams.ctrlDataTxRatePolicy[SG_RATE_CLASS].longRetryLimit,
(PUCHAR)&p->ctrlDataInitParams.ctrlDataTxRatePolicy[SG_RATE_CLASS].longRetryLimit);
regReadIntegerTable(pAdapter, &STRRatePolicySGRetriesPerRateCck, CTRL_DATA_RATE_POLICY_SG_RETRIES_PER_RATE_CCK_DEF,
CTRL_DATA_RATE_POLICY_RETRIES_PER_RATE_MAX_LEN,
(PUCHAR)&p->ctrlDataInitParams.policyClassRatesArrayCck[SG_RATE_CLASS]);
regReadIntegerTable(pAdapter, &STRRatePolicySGRetriesPerRatePbcc, CTRL_DATA_RATE_POLICY_SG_RETRIES_PER_RATE_PBCC_DEF,
CTRL_DATA_RATE_POLICY_RETRIES_PER_RATE_MAX_LEN,
(PUCHAR)&p->ctrlDataInitParams.policyClassRatesArrayPbcc[SG_RATE_CLASS]);
regReadIntegerTable(pAdapter, &STRRatePolicySGRetriesPerRateOfdm, CTRL_DATA_RATE_POLICY_SG_RETRIES_PER_RATE_OFDM_DEF,
CTRL_DATA_RATE_POLICY_RETRIES_PER_RATE_MAX_LEN,
(PUCHAR)&p->ctrlDataInitParams.policyClassRatesArrayOfdm[SG_RATE_CLASS]);
regReadIntegerTable(pAdapter, &STRRatePolicySGRetriesPerRateOfdmA, CTRL_DATA_RATE_POLICY_SG_RETRIES_PER_RATE_OFDMA_DEF,
CTRL_DATA_RATE_POLICY_RETRIES_PER_RATE_MAX_LEN,
(PUCHAR)&p->ctrlDataInitParams.policyClassRatesArrayOfdmA[SG_RATE_CLASS]);
regReadIntegerParameter(pAdapter, &STRRxEnergyDetection,
FALSE, FALSE, TRUE,
sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlRxEnergyDetection,
(PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlRxEnergyDetection);
regReadIntegerParameter(pAdapter, &STRTxEnergyDetection,
FALSE, FALSE, TRUE,
sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlTxEnergyDetection,
(PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlTxEnergyDetection);
regReadIntegerParameter(pAdapter, &STRTddCalibrationInterval,
300, 1, 0xFFFFFFFF,
sizeof p->TnetwDrv_InitParams.whalCtrl_init.tddRadioCalTimout,
(PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.tddRadioCalTimout);
regReadIntegerParameter(pAdapter, &STRCrtCalibrationInterval,
2, 1, 0xFFFFFFFF,
sizeof p->TnetwDrv_InitParams.whalCtrl_init.CrtRadioCalTimout,
(PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.CrtRadioCalTimout);
regReadIntegerParameter(pAdapter, &STRMacClockRate,
80, 0, 255,
sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlMacClock,
(PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlMacClock);
regReadIntegerParameter(pAdapter, &STRArmClockRate,
80, 0, 255,
sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlArmClock,
(PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlArmClock);
regReadIntegerParameter(pAdapter, &STRg80211DraftNumber,
DRAFT_6_AND_LATER, DRAFT_5_AND_EARLIER, DRAFT_6_AND_LATER,
sizeof p->siteMgrInitParams.siteMgrUseDraftNum,
(PUCHAR)&p->siteMgrInitParams.siteMgrUseDraftNum);
regReadIntegerParameter(pAdapter, &STRTraceBufferSize,
/*1024, 0, 1024, sizeof(ULONG), */
16, 16, 16,
sizeof p->TnetwDrv_InitParams.whalCtrl_init.TraceBufferSize,
(PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.TraceBufferSize);
regReadIntegerParameter(pAdapter, &STRPrintTrace,
FALSE, FALSE, TRUE,
sizeof p->TnetwDrv_InitParams.whalCtrl_init.bDoPrint,
(PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.bDoPrint);
regReadIntegerParameter(pAdapter, &STRFirmwareDebug,
FALSE, FALSE, TRUE,
sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlFirmwareDebug,
(PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlFirmwareDebug);
#ifndef TIWLN_WINCE30
regReadIntegerParameter(pAdapter, &STRHwACXAccessMethod,
HAL_CTRL_HW_ACCESS_METHOD_DEF, HAL_CTRL_HW_ACCESS_METHOD_MIN,
HAL_CTRL_HW_ACCESS_METHOD_MAX,
sizeof p->TnetwDrv_InitParams.whalCtrl_init.hwAccessMethod,
(PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.hwAccessMethod);
#else
/* Slave indirect*/
p->TnetwDrv_InitParams.whalCtrl_init.hwAccessMethod = 0;
#endif
regReadIntegerParameter(pAdapter, &STRMaxSitesFragCollect,
HAL_CTRL_SITE_FRAG_COLLECT_DEF, HAL_CTRL_SITE_FRAG_COLLECT_MIN,
HAL_CTRL_SITE_FRAG_COLLECT_MAX,
sizeof p->TnetwDrv_InitParams.whalCtrl_init.maxSitesFragCollect,
(PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.maxSitesFragCollect);
regReadIntegerParameter(pAdapter, &STRBetEnable,
HAL_CTRL_BET_ENABLE_DEF, HAL_CTRL_BET_ENABLE_MIN,
HAL_CTRL_BET_ENABLE_MAX,
sizeof p->PowerMgrInitParams.BetEnable,
(PUCHAR)&p->PowerMgrInitParams.BetEnable);
regReadIntegerParameter(pAdapter, &STRBetMaxConsecutive,
HAL_CTRL_BET_MAX_CONSC_DEF, HAL_CTRL_BET_MAX_CONSC_MIN,
HAL_CTRL_BET_MAX_CONSC_MAX,
sizeof p->PowerMgrInitParams.MaximumConsecutiveET,
(PUCHAR)&p->PowerMgrInitParams.MaximumConsecutiveET);
/*--------------- Maximal time between full beacon reception ------------------*/
regReadIntegerParameter(pAdapter, &STRMaxFullBeaconInterval,
HAL_CTRL_MAX_FULL_BEACON_DEF, HAL_CTRL_MAX_FULL_BEACON_MIN,
HAL_CTRL_MAX_FULL_BEACON_MAX,
sizeof p->PowerMgrInitParams.MaximalFullBeaconReceptionInterval,
(PUCHAR)&p->PowerMgrInitParams.MaximalFullBeaconReceptionInterval);
regReadIntegerParameter(pAdapter, &STRBetEnableThreshold,
HAL_CTRL_BET_ENABLE_THRESHOLD_DEF, HAL_CTRL_BET_ENABLE_THRESHOLD_MIN,
HAL_CTRL_BET_ENABLE_THRESHOLD_MAX,
sizeof p->PowerMgrInitParams.BetEnableThreshold,
(PUCHAR)&p->PowerMgrInitParams.BetEnableThreshold);
regReadIntegerParameter(pAdapter, &STRBetDisableThreshold,
HAL_CTRL_BET_DISABLE_THRESHOLD_DEF, HAL_CTRL_BET_DISABLE_THRESHOLD_MIN,
HAL_CTRL_BET_DISABLE_THRESHOLD_MAX,
sizeof p->PowerMgrInitParams.BetDisableThreshold,
(PUCHAR)&p->PowerMgrInitParams.BetDisableThreshold);
p->TnetwDrv_InitParams.whalCtrl_init.rxMemBlkNumber = 60;
p->TnetwDrv_InitParams.whalCtrl_init.txMinMemBlkNumber = 60;
p->TnetwDrv_InitParams.whalCtrl_init.txCompleteTimeout = 500;
p->TnetwDrv_InitParams.whalCtrl_init.txCompleteThreshold = 1;
p->TnetwDrv_InitParams.whalCtrl_init.blockSize = HAL_CTRL_ACX_BLOCK_SIZE_DEF;
p->TnetwDrv_InitParams.whalCtrl_init.UseTxDataInterrupt = HAL_CTRL_USE_TX_DATA_INTR_DEF;
p->TnetwDrv_InitParams.whalCtrl_init.UsePlcpHeader = HAL_CTRL_USE_PLCP_HDR_DEF;
regReadIntegerParameter(pAdapter, &STRNumACXRxDescriptors,
HAL_CTRL_ACX_RX_DESC_DEF, HAL_CTRL_ACX_RX_DESC_MIN,
HAL_CTRL_ACX_RX_DESC_MAX,
sizeof p->TnetwDrv_InitParams.whalCtrl_init.rxDescNum,
(PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.rxDescNum);
regReadIntegerParameter(pAdapter, &STRNumACXTxDescriptors,
HAL_CTRL_ACX_TX_DESC_DEF, HAL_CTRL_ACX_TX_DESC_MIN,
HAL_CTRL_ACX_TX_DESC_MAX,
sizeof localNumTxDesc,
(PUCHAR)&localNumTxDesc);
regReadIntegerParameter(pAdapter, &STRTxFlashEnable,
HAL_CTRL_TX_FLASH_ENABLE_DEF, HAL_CTRL_TX_FLASH_ENABLE_MIN,
HAL_CTRL_TX_FLASH_ENABLE_MAX,
sizeof p->TnetwDrv_InitParams.whalCtrl_init.TxFlashEnable,
(PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.TxFlashEnable);
p->TnetwDrv_InitParams.whalCtrl_init.numTxQueues = MAX_NUM_OF_TX_QUEUES;
for (i=0;i<p->TnetwDrv_InitParams.whalCtrl_init.numTxQueues;i++){
p->TnetwDrv_InitParams.whalCtrl_init.tx_attrib_queue[i].numDesc = localNumTxDesc;/*needed for validation phase only*/
/* (!!!) must use different priority for each queue */
p->TnetwDrv_InitParams.whalCtrl_init.tx_attrib_queue[i].priority = i;
}
p->TnetwDrv_InitParams.whalCtrl_init.beaconTemplateSize = sizeof(probeRspTemplate_t);
p->TnetwDrv_InitParams.whalCtrl_init.probeRequestTemplateSize = sizeof(probeReqTemplate_t);
p->TnetwDrv_InitParams.whalCtrl_init.probeResponseTemplateSize = sizeof(probeRspTemplate_t);
p->TnetwDrv_InitParams.whalCtrl_init.nullTemplateSize = sizeof(nullDataTemplate_t);
p->TnetwDrv_InitParams.whalCtrl_init.PsPollTemplateSize = sizeof(psPollTemplate_t);
p->TnetwDrv_InitParams.whalCtrl_init.qosNullDataTemplateSize = sizeof(QosNullDataTemplate_t);
regReadIntegerParameter(pAdapter,
&STRBeaconRxTimeout,
BCN_RX_TIMEOUT_DEF_VALUE,
BCN_RX_TIMEOUT_MIN_VALUE,
BCN_RX_TIMEOUT_MAX_VALUE,
sizeof p->TnetwDrv_InitParams.whalCtrl_init.BeaconRxTimeout,
(PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.BeaconRxTimeout);
regReadIntegerParameter(pAdapter,
&STRBroadcastRxTimeout,
BROADCAST_RX_TIMEOUT_DEF_VALUE,
BROADCAST_RX_TIMEOUT_MIN_VALUE,
BROADCAST_RX_TIMEOUT_MAX_VALUE,
sizeof p->TnetwDrv_InitParams.whalCtrl_init.BroadcastRxTimeout,
(PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.BroadcastRxTimeout);
regReadIntegerParameter(pAdapter,
&STRRxBroadcastInPs,
RX_BROADCAST_IN_PS_DEF_VALUE,
RX_BROADCAST_IN_PS_MIN_VALUE,
RX_BROADCAST_IN_PS_MAX_VALUE,
sizeof p->TnetwDrv_InitParams.whalCtrl_init.RxBroadcastInPs,
(PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.RxBroadcastInPs);
regReadIntegerParameter(pAdapter, &STRCalibrationChannel2_4,
HAL_CTRL_CALIBRATION_CHANNEL_2_4_DEF, HAL_CTRL_CALIBRATION_CHANNEL_2_4_MIN,
HAL_CTRL_CALIBRATION_CHANNEL_2_4_MAX,
sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlCalibrationChannel2_4,
(PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlCalibrationChannel2_4);
regReadIntegerParameter(pAdapter, &STRCalibrationChannel5_0,
HAL_CTRL_CALIBRATION_CHANNEL_5_0_DEF, HAL_CTRL_CALIBRATION_CHANNEL_5_0_MIN,
HAL_CTRL_CALIBRATION_CHANNEL_5_0_MAX,
sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlCalibrationChannel5_0,
(PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlCalibrationChannel5_0);
regReadIntegerParameter(pAdapter,
&STRConsecutivePsPollDeliveryFailureThreshold,
CONSECUTIVE_PS_POLL_FAILURE_DEF,
CONSECUTIVE_PS_POLL_FAILURE_MIN,
CONSECUTIVE_PS_POLL_FAILURE_MAX,
sizeof p->TnetwDrv_InitParams.whalCtrl_init.ConsecutivePsPollDeliveryFailureThreshold,
(PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.ConsecutivePsPollDeliveryFailureThreshold);
regReadIntegerParameter(pAdapter, &STRdot11RTSThreshold,
HAL_CTRL_RTS_THRESHOLD_DEF, HAL_CTRL_RTS_THRESHOLD_MIN,
HAL_CTRL_RTS_THRESHOLD_MAX,
sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlRtsThreshold,
(PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlRtsThreshold);
regReadIntegerParameter(pAdapter, &STRRxDisableBroadcast,
HAL_CTRL_RX_DISABLE_BROADCAST_DEF, HAL_CTRL_RX_DISABLE_BROADCAST_MIN,
HAL_CTRL_RX_DISABLE_BROADCAST_MAX,
sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlRxDisableBroadcast,
(PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlRxDisableBroadcast);
regReadIntegerParameter(pAdapter, &STRRecoveryEnable,
HAL_CTRL_RECOVERY_ENABLE_DEF, HAL_CTRL_RECOVERY_ENABLE_MIN,
HAL_CTRL_RECOVERY_ENABLE_MAX,
sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlRecoveryEnable,
(PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlRecoveryEnable);
p->healthMonitorInitParams.FullRecoveryEnable = (BOOL)p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlRecoveryEnable;
regReadIntegerParameter(pAdapter, &STRdot11FragThreshold,
HAL_CTRL_FRAG_THRESHOLD_DEF, HAL_CTRL_FRAG_THRESHOLD_MIN,
HAL_CTRL_FRAG_THRESHOLD_MAX,
sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlFragThreshold,
(PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlFragThreshold);
regReadIntegerParameter(pAdapter, &STRdot11MaxTxMSDULifetime,
HAL_CTRL_MAX_TX_MSDU_LIFETIME_DEF, HAL_CTRL_MAX_TX_MSDU_LIFETIME_MIN,
HAL_CTRL_MAX_TX_MSDU_LIFETIME_MAX,
sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlMaxTxMsduLifetime,
(PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlMaxTxMsduLifetime);
regReadIntegerParameter(pAdapter, &STRdot11MaxReceiveLifetime,
HAL_CTRL_MAX_RX_MSDU_LIFETIME_DEF, HAL_CTRL_MAX_RX_MSDU_LIFETIME_MIN,
HAL_CTRL_MAX_RX_MSDU_LIFETIME_MAX,
sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlMaxRxMsduLifetime,
(PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlMaxRxMsduLifetime);
regReadIntegerParameter(pAdapter, &STRdot11RateFallBackRetryLimit,
HAL_CTRL_RATE_FB_RETRY_LIMIT_DEF, HAL_CTRL_RATE_FB_RETRY_LIMIT_MIN,
HAL_CTRL_RATE_FB_RETRY_LIMIT_MAX,
sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlRateFallbackRetry,
(PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlRateFallbackRetry);
regReadIntegerParameter(pAdapter, &STRListenInterval,
HAL_CTRL_LISTEN_INTERVAL_DEF, HAL_CTRL_LISTEN_INTERVAL_MIN,
HAL_CTRL_LISTEN_INTERVAL_MAX,
sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlListenInterval,
(PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlListenInterval);
regReadIntegerParameter(pAdapter, &STRdot11TxAntenna,
HAL_CTRL_TX_ANTENNA_DEF, HAL_CTRL_TX_ANTENNA_MIN,
HAL_CTRL_TX_ANTENNA_MAX,
sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlTxAntenna,
(PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlTxAntenna);
/* reverse tx antenna value - ACX and utility have reversed values */
if (p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlTxAntenna == TX_ANTENNA_2)
p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlTxAntenna = TX_ANTENNA_1;
else
p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlTxAntenna = TX_ANTENNA_2;
regReadIntegerParameter(pAdapter, &STRdot11RxAntenna,
HAL_CTRL_RX_ANTENNA_DEF, HAL_CTRL_RX_ANTENNA_MIN,
HAL_CTRL_RX_ANTENNA_MAX,
sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlRxAntenna,
(PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlRxAntenna);
regReadIntegerParameter(pAdapter, &STRTxCompleteThreshold,
HAL_CTRL_TX_CMPLT_THRESHOLD_DEF, HAL_CTRL_TX_CMPLT_THRESHOLD_MIN,
HAL_CTRL_TX_CMPLT_THRESHOLD_MAX,
sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlTxCompleteThreshold,
(PUCHAR)&(p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlTxCompleteThreshold));
pAdapter->ExtMode = TRUE;
regReadIntegerParameter(pAdapter, &STRdot11DesiredChannel,
SITE_MGR_CHANNEL_DEF, SITE_MGR_CHANNEL_MIN, SITE_MGR_CHANNEL_MAX,
sizeof p->siteMgrInitParams.siteMgrDesiredChannel,
(PUCHAR)&p->siteMgrInitParams.siteMgrDesiredChannel);
memcpy((void *)p->siteMgrInitParams.siteMgrDesiredBSSID.addr, &bssidBroadcast, MAC_ADDR_LEN);
regReadStringParameter(pAdapter, &STRdot11DesiredSSID,
(PCHAR)dummySsidString,
(UCHAR)MAX_SSID_LEN,
(PUCHAR)p->siteMgrInitParams.siteMgrDesiredSSID.ssidString,
(PUCHAR)&p->siteMgrInitParams.siteMgrDesiredSSID.len);
regReadIntegerParameter(pAdapter, &STRdot11DesiredNetworkType,
SITE_MGR_DOT_11_MODE_DEF, SITE_MGR_DOT_11_MODE_MIN, SITE_MGR_DOT_11_MODE_MAX,
sizeof p->siteMgrInitParams.siteMgrDesiredDot11Mode,
(PUCHAR)&p->siteMgrInitParams.siteMgrDesiredDot11Mode);
regReadIntegerParameter(pAdapter, &STRdot11SlotTime,
PHY_SLOT_TIME_SHORT, PHY_SLOT_TIME_LONG, PHY_SLOT_TIME_SHORT,
sizeof p->siteMgrInitParams.siteMgrDesiredSlotTime,
(PUCHAR)&p->siteMgrInitParams.siteMgrDesiredSlotTime);
regReadIntegerParameter(pAdapter, &STRdot11RtsCtsProtection,
0, 0, 1,
sizeof p->ctrlDataInitParams.ctrlDataDesiredCtsRtsStatus,
(PUCHAR)&p->ctrlDataInitParams.ctrlDataDesiredCtsRtsStatus);
regReadIntegerParameter(pAdapter, &STRdot11IbssProtection,
ERP_PROTECTION_STANDARD, ERP_PROTECTION_NONE, ERP_PROTECTION_TI_TRICK,
sizeof p->ctrlDataInitParams.ctrlDataDesiredIbssProtection,
(PUCHAR)&p->ctrlDataInitParams.ctrlDataDesiredIbssProtection);
/* When working in band A, minimum channel is 36 and not 1*/
if (p->siteMgrInitParams.siteMgrDesiredDot11Mode == DOT11_A_MODE)
{
if (p->siteMgrInitParams.siteMgrDesiredChannel < SITE_MGR_CHANNEL_A_MIN)
p->siteMgrInitParams.siteMgrDesiredChannel = SITE_MGR_CHANNEL_A_MIN;
}
/* should be read from the registry */
p->siteMgrInitParams.siteMgrRadioValues.siteMgr_radiaRadioValues.factorRSSI = 88;
if(1)
{
UINT32 Freq2ChannelTable[] = {0,2412000,2417000,2422000,2427000,2432000,2437000,
2442000,2447000,2452000,2457000,
2462000,2467000,2472000,2484000};
memcpy(p->siteMgrInitParams.siteMgrFreq2ChannelTable,
Freq2ChannelTable,
SITE_MGR_CHANNEL_MAX+1);
}
/* read TX rates from registry */
readRates(pAdapter, p);
regReadIntegerParameter(pAdapter, &STRdot11DesiredBSSType,
SITE_MGR_BSS_TYPE_DEF, BSS_INDEPENDENT, BSS_ANY,
sizeof p->siteMgrInitParams.siteMgrDesiredBSSType,
(PUCHAR)&p->siteMgrInitParams.siteMgrDesiredBSSType);
regReadIntegerParameter(pAdapter, &STRdot11BeaconPeriod,
SITE_MGR_BEACON_INTERVAL_DEF, SITE_MGR_BEACON_INTERVAL_MIN,
SITE_MGR_BEACON_INTERVAL_MAX,
sizeof p->siteMgrInitParams.siteMgrDesiredBeaconInterval,
(PUCHAR)&p->siteMgrInitParams.siteMgrDesiredBeaconInterval);
regReadIntegerParameter(pAdapter, &STRdot11ShortPreambleInvoked,
SITE_MGR_PREAMBLE_TYPE_DEF, PREAMBLE_LONG, PREAMBLE_SHORT,
sizeof p->siteMgrInitParams.siteMgrDesiredPreambleType,
(PUCHAR)&p->siteMgrInitParams.siteMgrDesiredPreambleType);
/* RFMD */
regReadStringParameter(pAdapter, &STRRadio11_RxLevel,
(PCHAR)RFMD_RxLevel, (USHORT)SITE_MGR_RX_LEVEL_TABLE_SIZE_DEF,
radioString, (PUCHAR)&p->siteMgrInitParams.siteMgrRadioValues.RxLevelTableSize);
initRadioValusFromRgstryString( (PCHAR)radioString,
(PCHAR)p->siteMgrInitParams.siteMgrRadioValues.siteMgr_rfmdRadioValues.siteMgr_radioRxLevel,
RX_LEVEL_TABLE_SIZE);
regReadStringParameter(pAdapter, &STRRadio11_LNA,
(PCHAR)RFMD_Lna, (USHORT)SITE_MGR_RX_LEVEL_TABLE_SIZE_DEF,
radioString, (PUCHAR)&p->siteMgrInitParams.siteMgrRadioValues.RxLevelTableSize);
initRadioValusFromRgstryString( (PCHAR)radioString,
(PCHAR)p->siteMgrInitParams.siteMgrRadioValues.siteMgr_rfmdRadioValues.siteMgr_radioLNA,
RX_LEVEL_TABLE_SIZE);
regReadStringParameter(pAdapter, &STRRadio11_RSSI,
(PCHAR)RFMD_Rssi, (USHORT)SITE_MGR_RX_LEVEL_TABLE_SIZE_DEF,
radioString, (PUCHAR)&p->siteMgrInitParams.siteMgrRadioValues.RxLevelTableSize);
initRadioValusFromRgstryString( (PCHAR)radioString,
(PCHAR)p->siteMgrInitParams.siteMgrRadioValues.siteMgr_rfmdRadioValues.siteMgr_radioRSSI,
RX_LEVEL_TABLE_SIZE);
/* MAXIM */
regReadStringParameter(pAdapter, &STRRadio0D_RxLevel,
(PCHAR)MAXIM_RxLevel, (USHORT)SITE_MGR_RX_LEVEL_TABLE_SIZE_DEF,
radioString, (PUCHAR)&p->siteMgrInitParams.siteMgrRadioValues.RxLevelTableSize);
initRadioValusFromRgstryString( (PCHAR)radioString,
(PCHAR)p->siteMgrInitParams.siteMgrRadioValues.siteMgr_maximRadioValues.siteMgr_radioRxLevel,
RX_LEVEL_TABLE_SIZE);
regReadStringParameter(pAdapter, &STRRadio0D_LNA,
(PCHAR)MAXIM_Lna, (USHORT)SITE_MGR_RX_LEVEL_TABLE_SIZE_DEF,
radioString, (PUCHAR)&p->siteMgrInitParams.siteMgrRadioValues.RxLevelTableSize);
initRadioValusFromRgstryString((PCHAR)radioString,
(PCHAR)p->siteMgrInitParams.siteMgrRadioValues.siteMgr_maximRadioValues.siteMgr_radioLNA,
RX_LEVEL_TABLE_SIZE);
regReadStringParameter(pAdapter, &STRRadio0D_RSSI,
(PCHAR)MAXIM_Rssi, (USHORT)SITE_MGR_RX_LEVEL_TABLE_SIZE_DEF,
radioString, (PUCHAR)&p->siteMgrInitParams.siteMgrRadioValues.RxLevelTableSize);
initRadioValusFromRgstryString((PCHAR)radioString,
(PCHAR)p->siteMgrInitParams.siteMgrRadioValues.siteMgr_maximRadioValues.siteMgr_radioRSSI,
RX_LEVEL_TABLE_SIZE);
regReadIntegerParameter(pAdapter, &STRExternalMode,
SITE_MGR_EXTERNAL_MODE_DEF, SITE_MGR_EXTERNAL_MODE_MIN,
SITE_MGR_EXTERNAL_MODE_MAX,
sizeof p->siteMgrInitParams.siteMgrExternalConfiguration,
(PUCHAR)&p->siteMgrInitParams.siteMgrExternalConfiguration);
regReadIntegerParameter(pAdapter, &STRWiFiAdHoc,
SITE_MGR_WiFiAdHoc_DEF, SITE_MGR_WiFiAdHoc_MIN, SITE_MGR_WiFiAdHoc_MAX,
sizeof p->siteMgrInitParams.siteMgrWiFiAdhoc,
(PUCHAR)&p->siteMgrInitParams.siteMgrWiFiAdhoc);
regReadIntegerParameter(pAdapter, &STRWiFiWmmPS,
WIFI_WMM_PS_DEF, WIFI_WMM_PS_MIN, WIFI_WMM_PS_MAX,
sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.WiFiWmmPS,
(PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.WiFiWmmPS);
regReadIntegerParameter(pAdapter, &STRKeepAliveEnable,
SITE_MGR_KEEP_ALIVE_DEF, SITE_MGR_KEEP_ALIVE_MIN, SITE_MGR_KEEP_ALIVE_MAX,
sizeof p->siteMgrInitParams.siteMgrDesiredkeepAliveEnable,
(PUCHAR)&p->siteMgrInitParams.siteMgrDesiredkeepAliveEnable);
pAdapter->IntMode = (BOOLEAN) p->siteMgrInitParams.siteMgrExternalConfiguration;
regReadIntegerParameter(pAdapter, &STRConnSelfTimeout,
CONN_SELF_TIMEOUT_DEF, CONN_SELF_TIMEOUT_MIN, CONN_SELF_TIMEOUT_MAX,
sizeof p->connInitParams.connSelfTimeout,
(PUCHAR)&p->connInitParams.connSelfTimeout);
regReadIntegerParameter(pAdapter, &STRdot11AuthRespTimeout,
AUTH_RESPONSE_TIMEOUT_DEF, AUTH_RESPONSE_TIMEOUT_MIN, AUTH_RESPONSE_TIMEOUT_MAX,
sizeof p->authInitParams.authResponseTimeout,
(PUCHAR)&p->authInitParams.authResponseTimeout);
regReadIntegerParameter(pAdapter, &STRdot11MaxAuthRetry,
AUTH_MAX_RETRY_COUNT_DEF, AUTH_MAX_RETRY_COUNT_MIN, AUTH_MAX_RETRY_COUNT_MAX,
sizeof p->authInitParams.authMaxRetryCount,
(PUCHAR)&p->authInitParams.authMaxRetryCount);
regReadIntegerParameter(pAdapter, &STRdot11AssocRespTimeout,
ASSOC_RESPONSE_TIMEOUT_DEF, ASSOC_RESPONSE_TIMEOUT_MIN, ASSOC_RESPONSE_TIMEOUT_MAX,
sizeof p->assocInitParams.assocResponseTimeout,
(PUCHAR)&p->assocInitParams.assocResponseTimeout);
regReadIntegerParameter(pAdapter, &STRdot11MaxAssocRetry,
ASSOC_MAX_RETRY_COUNT_DEF, ASSOC_MAX_RETRY_COUNT_MIN, ASSOC_MAX_RETRY_COUNT_MAX,
sizeof p->assocInitParams.assocMaxRetryCount,
(PUCHAR)&p->assocInitParams.assocMaxRetryCount);
regReadIntegerParameter(pAdapter, &STRRxDataFiltersEnabled,
RX_DATA_FILTERS_ENABLED_DEF, RX_DATA_FILTERS_ENABLED_MIN, RX_DATA_FILTERS_ENABLED_MAX,
sizeof p->rxDataInitParams.rxDataFiltersEnabled,
(PUCHAR)&p->rxDataInitParams.rxDataFiltersEnabled);
regReadIntegerParameter(pAdapter, &STRRxDataFiltersFilter1Offset,
RX_DATA_FILTERS_FILTER_OFFSET_DEF, RX_DATA_FILTERS_FILTER_OFFSET_MIN, RX_DATA_FILTERS_FILTER_OFFSET_MAX,
sizeof filterOffset,
(PUCHAR) &filterOffset);
regReadStringParameter(pAdapter, &STRRxDataFiltersFilter1Mask,
RX_DATA_FILTERS_FILTER_MASK_DEF, RX_DATA_FILTERS_FILTER_MASK_LEN_DEF,
(PUCHAR) filterMask,
(PUCHAR) &filterMaskLength);
regReadStringParameter(pAdapter, &STRRxDataFiltersFilter1Pattern,
RX_DATA_FILTERS_FILTER_PATTERN_DEF, RX_DATA_FILTERS_FILTER_PATTERN_LEN_DEF,
(PUCHAR) filterPattern,
(PUCHAR) &filterPatternLength);
parse_filter_request(&p->rxDataInitParams.rxDataFilterRequests[0], filterOffset, filterMask, filterMaskLength, filterPattern, filterPatternLength);
regReadIntegerParameter(pAdapter, &STRRxDataFiltersFilter2Offset,
RX_DATA_FILTERS_FILTER_OFFSET_DEF, RX_DATA_FILTERS_FILTER_OFFSET_MIN, RX_DATA_FILTERS_FILTER_OFFSET_MAX,
sizeof filterOffset,
(PUCHAR) &filterOffset);
regReadStringParameter(pAdapter, &STRRxDataFiltersFilter2Mask,
RX_DATA_FILTERS_FILTER_MASK_DEF, RX_DATA_FILTERS_FILTER_MASK_LEN_DEF,
(PUCHAR) filterMask,
(PUCHAR) &filterMaskLength);
regReadStringParameter(pAdapter, &STRRxDataFiltersFilter2Pattern,
RX_DATA_FILTERS_FILTER_PATTERN_DEF, RX_DATA_FILTERS_FILTER_PATTERN_LEN_DEF,
(PUCHAR) filterPattern,
(PUCHAR) &filterPatternLength);
parse_filter_request(&p->rxDataInitParams.rxDataFilterRequests[1], filterOffset, filterMask, filterMaskLength, filterPattern, filterPatternLength);
regReadIntegerParameter(pAdapter, &STRRxDataFiltersFilter3Offset,
RX_DATA_FILTERS_FILTER_OFFSET_DEF, RX_DATA_FILTERS_FILTER_OFFSET_MIN, RX_DATA_FILTERS_FILTER_OFFSET_MAX,
sizeof filterOffset,
(PUCHAR) &filterOffset);
regReadStringParameter(pAdapter, &STRRxDataFiltersFilter3Mask,
RX_DATA_FILTERS_FILTER_MASK_DEF, RX_DATA_FILTERS_FILTER_MASK_LEN_DEF,
(PUCHAR) filterMask,
(PUCHAR) &filterMaskLength);
regReadStringParameter(pAdapter, &STRRxDataFiltersFilter3Pattern,
RX_DATA_FILTERS_FILTER_PATTERN_DEF, RX_DATA_FILTERS_FILTER_PATTERN_LEN_DEF,
(PUCHAR) filterPattern,
(PUCHAR) &filterPatternLength);
parse_filter_request(&p->rxDataInitParams.rxDataFilterRequests[2], filterOffset, filterMask, filterMaskLength, filterPattern, filterPatternLength);
regReadIntegerParameter(pAdapter, &STRRxDataFiltersFilter4Offset,
RX_DATA_FILTERS_FILTER_OFFSET_DEF, RX_DATA_FILTERS_FILTER_OFFSET_MIN, RX_DATA_FILTERS_FILTER_OFFSET_MAX,
sizeof filterOffset,
(PUCHAR) &filterOffset);
regReadStringParameter(pAdapter, &STRRxDataFiltersFilter4Mask,
RX_DATA_FILTERS_FILTER_MASK_DEF, RX_DATA_FILTERS_FILTER_MASK_LEN_DEF,
(PUCHAR) filterMask,
(PUCHAR) &filterMaskLength);
regReadStringParameter(pAdapter, &STRRxDataFiltersFilter4Pattern,
RX_DATA_FILTERS_FILTER_PATTERN_DEF, RX_DATA_FILTERS_FILTER_PATTERN_LEN_DEF,
(PUCHAR) filterPattern,
(PUCHAR) &filterPatternLength);
parse_filter_request(&p->rxDataInitParams.rxDataFilterRequests[3], filterOffset, filterMask, filterMaskLength, filterPattern, filterPatternLength);
regReadIntegerParameter(pAdapter, &STRRxDataFiltersDefaultAction,
RX_DATA_FILTERS_DEFAULT_ACTION_DEF, RX_DATA_FILTERS_DEFAULT_ACTION_MIN,
RX_DATA_FILTERS_DEFAULT_ACTION_MAX,
sizeof p->rxDataInitParams.rxDataFiltersDefaultAction,
(PUCHAR)&p->rxDataInitParams.rxDataFiltersDefaultAction);
regReadIntegerParameter(pAdapter, &STRNumTxDataQueues,
TX_DATA_NUMBER_OF_DATA_QUEUES_DEF, TX_DATA_NUMBER_OF_DATA_QUEUES_MIN,
TX_DATA_NUMBER_OF_DATA_QUEUES_MAX,
sizeof p->txDataInitParams.txDataNumOfDataQueues,
(PUCHAR)&p->txDataInitParams.txDataNumOfDataQueues);
regReadIntegerParameter(pAdapter, &STRCreditCalcTimout,
TX_DATA_CREDIT_CALC_TIMOEUT_DEF, TX_DATA_CREDIT_CALC_TIMOEUT_MIN,
TX_DATA_CREDIT_CALC_TIMOEUT_MAX,
sizeof p->txDataInitParams.creditCalculationTimeout,
(PUCHAR)&p->txDataInitParams.creditCalculationTimeout);
regReadIntegerParameter(pAdapter, &STRCreditCalcTimerEnabled,
FALSE, FALSE, TRUE,
sizeof p->txDataInitParams.bCreditCalcTimerEnabled,
(PUCHAR)&p->txDataInitParams.bCreditCalcTimerEnabled);
regReadIntegerParameter(pAdapter, &STRFracOfLifeTimeToDrop,
TX_DATA_FRAC_OF_LIFE_TIME_TO_DROP_DEF, TX_DATA_FRAC_OF_LIFE_TIME_TO_DROP_MIN,
TX_DATA_FRAC_OF_LIFE_TIME_TO_DROP_MAX,
sizeof p->txDataInitParams.uFracOfLifeTimeToDrop,
(PUCHAR)&p->txDataInitParams.uFracOfLifeTimeToDrop);
regReadIntegerParameter(pAdapter, &STRAdmCtrlDelayDueToMediumTimeOverUsage,
TX_DATA_ADM_CTRL_DELAY_DUE_TO_MEDIUM_OVER_USAGE_DEF, TX_DATA_ADM_CTRL_DELAY_DUE_TO_MEDIUM_OVER_USAGE_MIN,
TX_DATA_ADM_CTRL_DELAY_DUE_TO_MEDIUM_OVER_USAGE_MAX,
sizeof p->txDataInitParams.admCtrlDelayDueToMediumTimeOverUsage,
(PUCHAR)&p->txDataInitParams.admCtrlDelayDueToMediumTimeOverUsage);
regReadIntegerParameter(pAdapter, &STRAdmissionDownGradeEnable,
TX_DATA_ADM_CTRL_DOWN_GRADE_DEF, TX_DATA_ADM_CTRL_DOWN_GRADE_MIN,
TX_DATA_ADM_CTRL_DOWN_GRADE_MAX,
sizeof p->txDataInitParams.admissionDownGradeEnable,
(PUCHAR)&p->txDataInitParams.admissionDownGradeEnable);
regReadIntegerParameter(pAdapter, &STRTrafficAdmControlTimeout,
TRAFFIC_ADM_CONTROL_TIMEOUT_DEF, TRAFFIC_ADM_CONTROL_TIMEOUT_MIN,
TRAFFIC_ADM_CONTROL_TIMEOUT_MAX,
sizeof p->qosMngrInitParams.trafficAdmCtrlInitParams.trafficAdmCtrlResponseTimeout,
(PUCHAR)&p->qosMngrInitParams.trafficAdmCtrlInitParams.trafficAdmCtrlResponseTimeout);
regReadIntegerParameter(pAdapter, &STRTrafficAdmControlUseFixedMsduSize,
FALSE, FALSE, TRUE,
sizeof p->qosMngrInitParams.trafficAdmCtrlInitParams.trafficAdmCtrlUseFixedMsduSize,
(PUCHAR)&p->qosMngrInitParams.trafficAdmCtrlInitParams.trafficAdmCtrlUseFixedMsduSize);
regReadIntegerParameter(pAdapter, &STRDesiredMaxSpLen,
QOS_MAX_SP_LEN_DEF, QOS_MAX_SP_LEN_MIN,
QOS_MAX_SP_LEN_MAX,
sizeof p->qosMngrInitParams.desiredMaxSpLen,
(PUCHAR)&p->qosMngrInitParams.desiredMaxSpLen);
regReadIntegerParameter(pAdapter, &STRRateContThreshold,
CTRL_DATA_CONT_TX_THRESHOLD_DEF, CTRL_DATA_CONT_TX_THRESHOLD_MIN,
CTRL_DATA_CONT_TX_THRESHOLD_MAX,
sizeof p->ctrlDataInitParams.rateAdaptationInitParam.contTxPacketsThreshold,
(PUCHAR)&p->ctrlDataInitParams.rateAdaptationInitParam.contTxPacketsThreshold);
regReadIntegerParameter(pAdapter, &STRRateStepUpThreshold,
CTRL_DATA_STEP_UP_TX_THRESHOLD_DEF, CTRL_DATA_STEP_UP_TX_THRESHOLD_MIN,
CTRL_DATA_STEP_UP_TX_THRESHOLD_MAX,
sizeof p->ctrlDataInitParams.rateAdaptationInitParam.stepUpTxPacketsThreshold,
(PUCHAR)&p->ctrlDataInitParams.rateAdaptationInitParam.stepUpTxPacketsThreshold);
regReadIntegerParameter(pAdapter, &STRFBShortInterval,
CTRL_DATA_FB_SHORT_INTERVAL_DEF, CTRL_DATA_FB_SHORT_INTERVAL_MIN,
CTRL_DATA_FB_SHORT_INTERVAL_MAX,
sizeof p->ctrlDataInitParams.rateAdaptationInitParam.ctrlDataFBShortInterval,
(PUCHAR)&p->ctrlDataInitParams.rateAdaptationInitParam.ctrlDataFBShortInterval);
regReadIntegerParameter(pAdapter, &STRFBLongInterval,
CTRL_DATA_FB_LONG_INTERVAL_DEF, CTRL_DATA_FB_LONG_INTERVAL_MIN,
CTRL_DATA_FB_LONG_INTERVAL_MAX,
sizeof p->ctrlDataInitParams.rateAdaptationInitParam.ctrlDataFBLongInterval,
(PUCHAR)&p->ctrlDataInitParams.rateAdaptationInitParam.ctrlDataFBLongInterval);
regReadIntegerParameter(pAdapter, &STRRateAdaptationTimeout,
RATE_ADAPTATION_TIMEOUT_DEF , RATE_ADAPTATION_TIMEOUT_MIN, RATE_ADAPTATION_TIMEOUT_MAX,
sizeof p->ctrlDataInitParams.rateAdaptationInitParam.rateAdapt_timeout,
(PUCHAR)&p->ctrlDataInitParams.rateAdaptationInitParam.rateAdapt_timeout);
regReadIntegerParameter(pAdapter, &STRRateControlEnable,
CTRL_DATA_RATE_CONTROL_ENABLE_DEF, CTRL_DATA_RATE_CONTROL_ENABLE_MIN, CTRL_DATA_RATE_CONTROL_ENABLE_MAX,
sizeof p->ctrlDataInitParams.ctrlDataRateControlEnable,
(PUCHAR)&p->ctrlDataInitParams.ctrlDataRateControlEnable);
/* SME Initialization Parameters */
/* ==================================== */
regReadIntegerParameter(pAdapter, &STRdot11SmeScanEnabled,
ENABLE_SME_SCAN_DEF, ENABLE_SME_SCAN_MIN, ENABLE_SME_SCAN_MAX,
sizeof p->smeInitParams.EnableFirstConnScan,
(PUCHAR)&p->smeInitParams.EnableFirstConnScan);
regReadIntegerParameter(pAdapter, &STRdot11SmeInterScanMin,
SME_INTER_SCAN_MIN_DEF, SME_INTER_SCAN_MIN_MIN, SME_INTER_SCAN_MIN_MAX,
sizeof p->smeInitParams.InterScanIntervalMin,
(PUCHAR)&p->smeInitParams.InterScanIntervalMin);
regReadIntegerParameter(pAdapter, &STRdot11SmeInterScanMax,
SME_INTER_SCAN_MAX_DEF, SME_INTER_SCAN_MAX_MIN, SME_INTER_SCAN_MAX_MAX,
sizeof p->smeInitParams.InterScanIntervalMax,
(PUCHAR)&p->smeInitParams.InterScanIntervalMax);
regReadIntegerParameter(pAdapter, &STRdot11SmeInterScanDelta,
SME_INTER_SCAN_DELTA_DEF, SME_INTER_SCAN_DELTA_MIN, SME_INTER_SCAN_DELTA_MAX,
sizeof p->smeInitParams.InterScanIntervalDelta,
(PUCHAR)&p->smeInitParams.InterScanIntervalDelta);
/* B/G scan first scan params */
/* ---------------------------- */
regReadIntegerTable(pAdapter, &STRdot11SmeScanBGChannelList, SME_SCAN_BG_LIST_BAND_VAL_DEF,
SME_SCAN_BG_LIST_BAND_STRING_MAX_SIZE,
(PUCHAR)&p->smeInitParams.scanParamsBG.channelsList);
regReadIntegerParameter(pAdapter, &STRdot11SmeScanBGMinDwellTime,
SME_SCAN_BG_MIN_DWELL_TIME_DEF, SME_SCAN_BG_MIN_DWELL_TIME_MIN, SME_SCAN_BG_MIN_DWELL_TIME_MAX,
sizeof p->smeInitParams.scanParamsBG.minDwellTime,
(PUCHAR)&p->smeInitParams.scanParamsBG.minDwellTime);
regReadIntegerParameter(pAdapter, &STRdot11SmeScanBGMaxDwellTime,
SME_SCAN_BG_MAX_DWELL_TIME_DEF, SME_SCAN_BG_MAX_DWELL_TIME_MIN, SME_SCAN_BG_MAX_DWELL_TIME_MAX,
sizeof p->smeInitParams.scanParamsBG.maxDwellTime,
(PUCHAR)&p->smeInitParams.scanParamsBG.maxDwellTime);
regReadIntegerParameter(pAdapter, &STRdot11SmeScanBGNumProbReq,
SME_SCAN_BG_NUM_PROB_REQ_DEF, SME_SCAN_BG_NUM_PROB_REQ_MIN, SME_SCAN_BG_NUM_PROB_REQ_MAX,
sizeof p->smeInitParams.scanParamsBG.probeReqNumber,
(PUCHAR)&p->smeInitParams.scanParamsBG.probeReqNumber);
regReadIntegerParameter(pAdapter, &STRdot11SmeScanBGProbReqRate,
SME_SCAN_BG_PROB_REQ_RATE_DEF, SME_SCAN_BG_PROB_REQ_RATE_MIN, SME_SCAN_BG_NUM_PROB_REQ_RATE_MAX,
sizeof p->smeInitParams.scanParamsBG.probeRequestRate,
(PUCHAR)&p->smeInitParams.scanParamsBG.probeRequestRate);
regReadIntegerParameter(pAdapter, &STRdot11SmeScanBGTxPowerLevel,
SME_SCAN_BG_TX_POWER_DEF, SME_SCAN_BG_TX_POWER_MIN, SME_SCAN_BG_TX_POWER_MAX,
sizeof p->smeInitParams.scanParamsBG.txPowerDbm,
(PUCHAR)&p->smeInitParams.scanParamsBG.txPowerDbm);
/* A band first scan params */
/* ---------------------------- */
regReadIntegerTable(pAdapter, &STRdot11SmeScanAChannelList, SME_SCAN_A_LIST_BAND_VAL_DEF,
SME_SCAN_A_LIST_BAND_STRING_MAX_SIZE,
(PUCHAR)&p->smeInitParams.scanParamsA.channelsList);
regReadIntegerParameter(pAdapter, &STRdot11SmeScanAMinDwellTime,
SME_SCAN_A_MIN_DWELL_TIME_DEF, SME_SCAN_A_MIN_DWELL_TIME_MIN, SME_SCAN_A_MIN_DWELL_TIME_MAX,
sizeof p->smeInitParams.scanParamsA.minDwellTime,
(PUCHAR)&p->smeInitParams.scanParamsA.minDwellTime);
regReadIntegerParameter(pAdapter, &STRdot11SmeScanAMaxDwellTime,
SME_SCAN_A_MAX_DWELL_TIME_DEF, SME_SCAN_A_MAX_DWELL_TIME_MIN, SME_SCAN_A_MAX_DWELL_TIME_MAX,
sizeof p->smeInitParams.scanParamsA.maxDwellTime,
(PUCHAR)&p->smeInitParams.scanParamsA.maxDwellTime);
regReadIntegerParameter(pAdapter, &STRdot11SmeScanANumProbReq,
SME_SCAN_A_NUM_PROB_REQ_DEF, SME_SCAN_A_NUM_PROB_REQ_MIN, SME_SCAN_A_NUM_PROB_REQ_MAX,
sizeof p->smeInitParams.scanParamsA.probeReqNumber,
(PUCHAR)&p->smeInitParams.scanParamsA.probeReqNumber);
regReadIntegerParameter(pAdapter, &STRdot11SmeScanAProbReqRate,
SME_SCAN_A_PROB_REQ_RATE_DEF, SME_SCAN_A_PROB_REQ_RATE_MIN, SME_SCAN_A_NUM_PROB_REQ_RATE_MAX,
sizeof p->smeInitParams.scanParamsA.probeRequestRate,
(PUCHAR)&p->smeInitParams.scanParamsA.probeRequestRate);
regReadIntegerParameter(pAdapter, &STRdot11SmeScanATxPowerLevel,
SME_SCAN_A_TX_POWER_DEF, SME_SCAN_A_TX_POWER_MIN, SME_SCAN_A_TX_POWER_MAX,
sizeof p->smeInitParams.scanParamsA.txPowerDbm,
(PUCHAR)&p->smeInitParams.scanParamsA.txPowerDbm);
regReadIntegerParameter(pAdapter, &STRdot11AuthenticationMode,
RSN_AUTH_SUITE_DEF, RSN_AUTH_SUITE_MIN, RSN_AUTH_SUITE_MAX,
sizeof p->rsnInitParams.authSuite,
(PUCHAR)&p->rsnInitParams.authSuite);
regReadIntegerParameter(pAdapter, &STRdot11FourXEnable,
CTRL_DATA_FOUR_X_ENABLE_DEF, CTRL_DATA_FOUR_X_ENABLE_MIN, CTRL_DATA_FOUR_X_ENABLE_MAX,
sizeof p->ctrlDataInitParams.ctrlDataFourXEnable,
(PUCHAR)&p->ctrlDataInitParams.ctrlDataFourXEnable);
/* Soft Gemini Section */
regReadIntegerParameter(pAdapter, &STRBThWlanCoexistEnable,
SOFT_GEMINI_ENABLED_DEF, SOFT_GEMINI_ENABLED_MIN, SOFT_GEMINI_ENABLED_MAX,
sizeof p->SoftGeminiInitParams.SoftGeminiEnable,
(PUCHAR)&p->SoftGeminiInitParams.SoftGeminiEnable);
regReadIntegerTable(pAdapter, &STRBThWlanCoexistRate, SG_RATES_DEF,
SG_RATES_STRING_MAX_DEF,
(PUCHAR)&p->SoftGeminiInitParams.SoftGeminiRate);
regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsbtHpMaxTime,
SOFT_GEMINI_PARAMS_BT_HP_MAXTIME_DEF, SOFT_GEMINI_PARAMS_BT_HP_MAXTIME_MIN, SOFT_GEMINI_PARAMS_BT_HP_MAXTIME_MAX,
sizeof p->SoftGeminiInitParams.SoftGeminiParam.btHpMaxTime,
(PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.btHpMaxTime);
regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamswlanHpMaxTime,
SOFT_GEMINI_PARAMS_WLAN_HP_MAX_TIME_DEF, SOFT_GEMINI_PARAMS_WLAN_HP_MAX_TIME_MIN, SOFT_GEMINI_PARAMS_WLAN_HP_MAX_TIME_MAX,
sizeof p->SoftGeminiInitParams.SoftGeminiParam.wlanHpMaxTime,
(PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.wlanHpMaxTime);
regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamssenseDisableTimer,
SOFT_GEMINI_PARAMS_SENSE_DISABLE_TIMER_DEF, SOFT_GEMINI_PARAMS_SENSE_DISABLE_TIMER_MIN, SOFT_GEMINI_PARAMS_SENSE_DISABLE_TIMER_MAX,
sizeof p->SoftGeminiInitParams.SoftGeminiParam.senseDisableTimer,
(PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.senseDisableTimer);
regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsprotectiveRxTimeBeforeBtHp,
SOFT_GEMINI_PARAMS_PROTECTIVE_RX_TIME_DEF, SOFT_GEMINI_PARAMS_PROTECTIVE_RX_TIME_MIN, SOFT_GEMINI_PARAMS_PROTECTIVE_RX_TIME_MAX,
sizeof p->SoftGeminiInitParams.SoftGeminiParam.protectiveRxTimeBeforeBtHp,
(PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.protectiveRxTimeBeforeBtHp);
regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsprotectiveTxTimeBeforeBtHp,
SOFT_GEMINI_PARAMS_PROTECTIVE_TX_TIME_DEF, SOFT_GEMINI_PARAMS_PROTECTIVE_TX_TIME_MIN, SOFT_GEMINI_PARAMS_PROTECTIVE_TX_TIME_MAX,
sizeof p->SoftGeminiInitParams.SoftGeminiParam.protectiveTxTimeBeforeBtHp,
(PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.protectiveTxTimeBeforeBtHp);
regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsprotectiveRxTimeBeforeBtHpFastAp,
SOFT_GEMINI_PARAMS_PROTECTIVE_RX_TIME_FAST_DEF, SOFT_GEMINI_PARAMS_PROTECTIVE_RX_TIME_FAST_MIN, SOFT_GEMINI_PARAMS_PROTECTIVE_RX_TIME_FAST_MAX,
sizeof p->SoftGeminiInitParams.SoftGeminiParam.protectiveRxTimeBeforeBtHpFastAp,
(PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.protectiveRxTimeBeforeBtHpFastAp);
regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsprotectiveTxTimeBeforeBtHpFastAp,
SOFT_GEMINI_PARAMS_PROTECTIVE_TX_TIME_FAST_DEF, SOFT_GEMINI_PARAMS_PROTECTIVE_TX_TIME_FAST_MIN, SOFT_GEMINI_PARAMS_PROTECTIVE_TX_TIME_FAST_MAX,
sizeof p->SoftGeminiInitParams.SoftGeminiParam.protectiveTxTimeBeforeBtHpFastAp,
(PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.protectiveTxTimeBeforeBtHpFastAp);
regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsprotectiveWlanCycleTimeForFastAp,
SOFT_GEMINI_PARAMS_CYCLE_TIME_FAST_DEF, SOFT_GEMINI_PARAMS_CYCLE_TIME_FAST_MIN, SOFT_GEMINI_PARAMS_CYCLE_TIME_FAST_MAX,
sizeof p->SoftGeminiInitParams.SoftGeminiParam.protectiveWlanCycleTimeForFastAp,
(PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.protectiveWlanCycleTimeForFastAp);
regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamstimeoutNextBtLpPacket,
SOFT_GEMINI_PARAMS_TIMEOUT_NEXT_BT_LP_PACKET_DEF, SOFT_GEMINI_PARAMS_TIMEOUT_NEXT_BT_LP_PACKET_MIN, SOFT_GEMINI_PARAMS_TIMEOUT_NEXT_BT_LP_PACKET_MAX,
sizeof p->SoftGeminiInitParams.SoftGeminiParam.timeoutNextBtLpPacket,
(PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.timeoutNextBtLpPacket);
regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamssgAntennaType,
SOFT_GEMINI_PARAMS_SG_ANTENNA_TYPE_DEF, SOFT_GEMINI_PARAMS_SG_ANTENNA_TYPE_MIN, SOFT_GEMINI_PARAMS_SG_ANTENNA_TYPE_MAX,
sizeof p->SoftGeminiInitParams.SoftGeminiParam.sgAntennaType,
(PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.sgAntennaType);
regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamssignalingType,
SOFT_GEMINI_PARAMS_SIGNALING_TYPE_DEF, SOFT_GEMINI_PARAMS_SIGNALING_TYPE_MIN, SOFT_GEMINI_PARAMS_SIGNALING_TYPE_MAX,
sizeof p->SoftGeminiInitParams.SoftGeminiParam.signalingType,
(PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.signalingType);
regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsafhLeverageOn,
SOFT_GEMINI_PARAMS_AFH_LEVERAGE_ON_DEF, SOFT_GEMINI_PARAMS_AFH_LEVERAGE_ON_MIN, SOFT_GEMINI_PARAMS_AFH_LEVERAGE_ON_MAX,
sizeof p->SoftGeminiInitParams.SoftGeminiParam.afhLeverageOn,
(PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.afhLeverageOn);
regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsnumberQuietCycle,
SOFT_GEMINI_PARAMS_NUMBER_QUIET_CYCLE_DEF, SOFT_GEMINI_PARAMS_NUMBER_QUIET_CYCLE_MIN, SOFT_GEMINI_PARAMS_NUMBER_QUIET_CYCLE_MAX,
sizeof p->SoftGeminiInitParams.SoftGeminiParam.numberQuietCycle,
(PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.numberQuietCycle);
regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsmaxNumCts,
SOFT_GEMINI_PARAMS_MAX_NUM_CTS_DEF, SOFT_GEMINI_PARAMS_MAX_NUM_CTS_MIN, SOFT_GEMINI_PARAMS_MAX_NUM_CTS_MAX,
sizeof p->SoftGeminiInitParams.SoftGeminiParam.maxNumCts,
(PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.maxNumCts);
regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsnumberOfWlanPackets,
SOFT_GEMINI_PARAMS_NUMBER_OF_WLAN_PACKETS_DEF, SOFT_GEMINI_PARAMS_NUMBER_OF_WLAN_PACKETS_MIN, SOFT_GEMINI_PARAMS_NUMBER_OF_WLAN_PACKETS_MAX,
sizeof p->SoftGeminiInitParams.SoftGeminiParam.numberOfWlanPackets,
(PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.numberOfWlanPackets);
regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsnumberOfBtPackets,
SOFT_GEMINI_PARAMS_NUMBER_OF_BT_PACKETS_DEF, SOFT_GEMINI_PARAMS_NUMBER_OF_BT_PACKETS_MIN, SOFT_GEMINI_PARAMS_NUMBER_OF_BT_PACKETS_MAX,
sizeof p->SoftGeminiInitParams.SoftGeminiParam.numberOfBtPackets,
(PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.numberOfBtPackets);
regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsnumberOfMissedRxForAvalancheTrigger,
SOFT_GEMINI_PARAMS_RX_FOR_AVALANCHE_DEF, SOFT_GEMINI_PARAMS_RX_FOR_AVALANCHE_MIN, SOFT_GEMINI_PARAMS_RX_FOR_AVALANCHE_MAX,
sizeof p->SoftGeminiInitParams.SoftGeminiParam.numberOfMissedRxForAvalancheTrigger,
(PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.numberOfMissedRxForAvalancheTrigger);
regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamswlanElpHpSupport,
SOFT_GEMINI_PARAMS_ELP_HP_DEF, SOFT_GEMINI_PARAMS_ELP_HP_MIN, SOFT_GEMINI_PARAMS_ELP_HP_MAX,
sizeof p->SoftGeminiInitParams.SoftGeminiParam.wlanElpHpSupport,
(PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.wlanElpHpSupport);
regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsbtAntiStarvationPeriod,
SOFT_GEMINI_PARAMS_ANTI_STARVE_PERIOD_DEF, SOFT_GEMINI_PARAMS_ANTI_STARVE_PERIOD_MIN, SOFT_GEMINI_PARAMS_ANTI_STARVE_PERIOD_MAX,
sizeof p->SoftGeminiInitParams.SoftGeminiParam.btAntiStarvationPeriod,
(PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.btAntiStarvationPeriod);
regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsbtAntiStarvationNumberOfCyclesWithinThePeriod,
SOFT_GEMINI_PARAMS_ANTI_STARVE_NUM_CYCLE_DEF, SOFT_GEMINI_PARAMS_ANTI_STARVE_NUM_CYCLE_MIN, SOFT_GEMINI_PARAMS_ANTI_STARVE_NUM_CYCLE_MAX,
sizeof p->SoftGeminiInitParams.SoftGeminiParam.btAntiStarvationNumberOfCyclesWithinThePeriod ,
(PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.btAntiStarvationNumberOfCyclesWithinThePeriod);
regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsackModeDuringBtLpInDualAnt,
SOFT_GEMINI_PARAMS_ACK_MODE_DEF, SOFT_GEMINI_PARAMS_ACK_MODE_MIN, SOFT_GEMINI_PARAMS_ACK_MODE_MAX,
sizeof p->SoftGeminiInitParams.SoftGeminiParam.ackModeDuringBtLpInDualAnt ,
(PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.ackModeDuringBtLpInDualAnt);
regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsallowPaSdToggleDuringBtActivityEnable,
SOFT_GEMINI_PARAMS_ALLOW_PA_SD_DEF, SOFT_GEMINI_PARAMS_ALLOW_PA_SD_MIN, SOFT_GEMINI_PARAMS_ALLOW_PA_SD_MAX,
sizeof p->SoftGeminiInitParams.SoftGeminiParam.allowPaSdToggleDuringBtActivityEnable ,
(PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.allowPaSdToggleDuringBtActivityEnable);
regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamswakeUpTimeBeforeBeacon,
SOFT_GEMINI_PARAMS_TIME_BEFORE_BEACON_DEF, SOFT_GEMINI_PARAMS_TIME_BEFORE_BEACON_MIN, SOFT_GEMINI_PARAMS_TIME_BEFORE_BEACON_MAX,
sizeof p->SoftGeminiInitParams.SoftGeminiParam.wakeUpTimeBeforeBeacon ,
(PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.wakeUpTimeBeforeBeacon);
regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamshpdmMaxGuardTime,
SOFT_GEMINI_PARAMS_HPDM_MAX_TIME_DEF, SOFT_GEMINI_PARAMS_HPDM_MAX_TIME_MIN, SOFT_GEMINI_PARAMS_HPDM_MAX_TIME_MAX,
sizeof p->SoftGeminiInitParams.SoftGeminiParam.hpdmMaxGuardTime ,
(PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.hpdmMaxGuardTime);
regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamstimeoutNextWlanPacket,
SOFT_GEMINI_PARAMS_TIME_OUT_NEXT_WLAN_DEF, SOFT_GEMINI_PARAMS_TIME_OUT_NEXT_WLAN_MIN, SOFT_GEMINI_PARAMS_TIME_OUT_NEXT_WLAN_MAX,
sizeof p->SoftGeminiInitParams.SoftGeminiParam.timeoutNextWlanPacket ,
(PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.timeoutNextWlanPacket);
regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamssgAutoModeNoCts,
SOFT_GEMINI_PARAMS_AUTO_MODE_NO_CTS_DEF, SOFT_GEMINI_PARAMS_AUTO_MODE_NO_CTS_MIN, SOFT_GEMINI_PARAMS_AUTO_MODE_NO_CTS_MAX,
sizeof p->SoftGeminiInitParams.SoftGeminiParam.sgAutoModeNoCts ,
(PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.sgAutoModeNoCts);
regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsnumOfBtHpRespectedReq,
SOFT_GEMINI_PARAMS_BT_HP_RESPECTED_DEF, SOFT_GEMINI_PARAMS_BT_HP_RESPECTED_MIN, SOFT_GEMINI_PARAMS_BT_HP_RESPECTED_MAX,
sizeof p->SoftGeminiInitParams.SoftGeminiParam.numOfBtHpRespectedReq ,
(PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.numOfBtHpRespectedReq);
regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamswlanRxMinRateToRespectBtHp,
SOFT_GEMINI_PARAMS_WLAN_RX_MIN_RATE_DEF, SOFT_GEMINI_PARAMS_WLAN_RX_MIN_RATE_MIN, SOFT_GEMINI_PARAMS_WLAN_RX_MIN_RATE_MAX,
sizeof p->SoftGeminiInitParams.SoftGeminiParam.wlanRxMinRateToRespectBtHp ,
(PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.wlanRxMinRateToRespectBtHp);
regReadIntegerParameter(pAdapter, &STRBThWlanCoexistScanNumberOfProbes,
SOFT_GEMINI_SCAN_NUMBER_OF_PROBE_REQUEST_DEF, SOFT_GEMINI_SCAN_NUMBER_OF_PROBE_REQUEST_MIN, SOFT_GEMINI_SCAN_NUMBER_OF_PROBE_REQUEST_MAX,
sizeof p->SoftGeminiInitParams.scanNumOfProbeRequest,
(PUCHAR)&p->SoftGeminiInitParams.scanNumOfProbeRequest);
regReadIntegerParameter(pAdapter, &STRBThWlanCoexistScanCompensationPercent,
SOFT_GEMINI_SCAN_COMPENSATION_PERCENT_DEF, SOFT_GEMINI_SCAN_COMPENSATION_PERCENT_MIN, SOFT_GEMINI_SCAN_COMPENSATION_PERCENT_MAX,
sizeof p->SoftGeminiInitParams.scanCompensationPercent,
(PUCHAR)&p->SoftGeminiInitParams.scanCompensationPercent);
regReadIntegerParameter(pAdapter, &STRBThWlanCoexistScanCompensationMaxTime,
SOFT_GEMINI_SCAN_COMPENSATION_MAX_TIME_DEF, SOFT_GEMINI_SCAN_COMPENSATION_MAX_TIME_MIN, SOFT_GEMINI_SCAN_COMPENSATION_MAX_TIME_MAX,
sizeof p->SoftGeminiInitParams.scanCompensationMaxTime,
(PUCHAR)&p->SoftGeminiInitParams.scanCompensationMaxTime);
regReadIntegerParameter(pAdapter, &STRBThWlanCoexistBSSLossCompensationPercent,
SOFT_GEMINI_BSS_LOSS_COMPENSATION_PERCENT_DEF, SOFT_GEMINI_BSS_LOSS_COMPENSATION_PERCENT_MIN, SOFT_GEMINI_BSS_LOSS_COMPENSATION_PERCENT_MAX,
sizeof p->SoftGeminiInitParams.BSSLossCompensationPercent,
(PUCHAR)&p->SoftGeminiInitParams.BSSLossCompensationPercent);
/* update hal 4x params */
p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlEnable4x = p->ctrlDataInitParams.ctrlDataFourXEnable;
/*
Power Manager
*/
regReadIntegerParameter(pAdapter,
&STRPowerMode,
POWER_MODE_DEF_VALUE,
POWER_MODE_MIN_VALUE,
POWER_MODE_MAX_VALUE,
sizeof p->PowerMgrInitParams.powerMode,
(PUCHAR)&p->PowerMgrInitParams.powerMode);
regReadIntegerParameter(pAdapter,
&STRBeaconReceiveTime,
BEACON_RECEIVE_TIME_DEF_VALUE,
BEACON_RECEIVE_TIME_MIN_VALUE,
BEACON_RECEIVE_TIME_MAX_VALUE,
sizeof p->PowerMgrInitParams.beaconReceiveTime,
(PUCHAR)&p->PowerMgrInitParams.beaconReceiveTime);
regReadIntegerParameter(pAdapter,
&STRBaseBandWakeUpTime,
BASE_BAND_WAKE_UP_TIME_DEF_VALUE,
BASE_BAND_WAKE_UP_TIME_MIN_VALUE,
BASE_BAND_WAKE_UP_TIME_MAX_VALUE,
sizeof p->PowerMgrInitParams.BaseBandWakeUpTime,
(PUCHAR)&p->PowerMgrInitParams.BaseBandWakeUpTime);
regReadIntegerParameter(pAdapter,
&STRHangoverPeriod,
HANGOVER_PERIOD_DEF_VALUE,
HANGOVER_PERIOD_MIN_VALUE,
HANGOVER_PERIOD_MAX_VALUE,
sizeof p->PowerMgrInitParams.hangoverPeriod,
(PUCHAR)&p->PowerMgrInitParams.hangoverPeriod);
regReadIntegerParameter(pAdapter,
&STRBeaconListenInterval,
BEACON_LISTEN_INTERVAL_DEF_VALUE,
BEACON_LISTEN_INTERVAL_MIN_VALUE,
BEACON_LISTEN_INTERVAL_MAX_VALUE,
sizeof p->PowerMgrInitParams.beaconListenInterval,
(PUCHAR)&p->PowerMgrInitParams.beaconListenInterval);
regReadIntegerParameter(pAdapter,
&STRDtimListenInterval,
DTIM_LISTEN_INTERVAL_DEF_VALUE,
DTIM_LISTEN_INTERVAL_MIN_VALUE,
DTIM_LISTEN_INTERVAL_MAX_VALUE,
sizeof p->PowerMgrInitParams.dtimListenInterval,
(PUCHAR)&p->PowerMgrInitParams.dtimListenInterval);
regReadIntegerParameter(pAdapter,
&STRNConsecutiveBeaconsMissed,
N_CONSECUTIVE_BEACONS_MISSED_DEF_VALUE,
N_CONSECUTIVE_BEACONS_MISSED_MIN_VALUE,
N_CONSECUTIVE_BEACONS_MISSED_MAX_VALUE,
sizeof p->PowerMgrInitParams.nConsecutiveBeaconsMissed,
(PUCHAR)&p->PowerMgrInitParams.nConsecutiveBeaconsMissed);
regReadIntegerParameter(pAdapter,
&STREnterTo802_11PsRetries,
ENTER_TO_802_11_POWER_SAVE_RETRIES_DEF_VALUE,
ENTER_TO_802_11_POWER_SAVE_RETRIES_MIN_VALUE,
ENTER_TO_802_11_POWER_SAVE_RETRIES_MAX_VALUE,
sizeof p->PowerMgrInitParams.EnterTo802_11PsRetries,
(PUCHAR)&p->PowerMgrInitParams.EnterTo802_11PsRetries);
regReadIntegerParameter(pAdapter,
&STRAutoPowerModeInterval,
AUTO_POWER_MODE_INTERVAL_DEF_VALUE,
AUTO_POWER_MODE_INTERVAL_MIN_VALUE,
AUTO_POWER_MODE_INTERVAL_MAX_VALUE,
sizeof p->PowerMgrInitParams.autoModeInterval,
(PUCHAR)&p->PowerMgrInitParams.autoModeInterval);
regReadIntegerParameter(pAdapter,
&STRAutoPowerModeActiveTh,
AUTO_POWER_MODE_ACTIVE_TH_DEF_VALUE,
AUTO_POWER_MODE_ACTIVE_TH_MIN_VALUE,
AUTO_POWER_MODE_ACTIVE_TH_MAX_VALUE,
sizeof p->PowerMgrInitParams.autoModeActiveTH,
(PUCHAR)&p->PowerMgrInitParams.autoModeActiveTH);
regReadIntegerParameter(pAdapter,
&STRAutoPowerModeDozeTh,
AUTO_POWER_MODE_DOZE_TH_DEF_VALUE,
AUTO_POWER_MODE_DOZE_TH_MIN_VALUE,
AUTO_POWER_MODE_DOZE_TH_MAX_VALUE,
sizeof p->PowerMgrInitParams.autoModeDozeTH,
(PUCHAR)&p->PowerMgrInitParams.autoModeDozeTH);
regReadIntegerParameter(pAdapter,
&STRAutoPowerModeDozeMode,
AUTO_POWER_MODE_DOZE_MODE_DEF_VALUE,
AUTO_POWER_MODE_DOZE_MODE_MIN_VALUE,
AUTO_POWER_MODE_DOZE_MODE_MAX_VALUE,
sizeof p->PowerMgrInitParams.autoModeDozeMode,
(PUCHAR)&p->PowerMgrInitParams.autoModeDozeMode);
regReadIntegerParameter(pAdapter,
&STRDefaultPowerLevel,
DEFAULT_POWER_LEVEL_DEF_VALUE,
DEFAULT_POWER_LEVEL_MIN_VALUE,
DEFAULT_POWER_LEVEL_MAX_VALUE,
sizeof p->PowerMgrInitParams.defaultPowerLevel,
(PUCHAR)&p->PowerMgrInitParams.defaultPowerLevel);
regReadIntegerParameter(pAdapter,
&STRPowerSavePowerLevel,
PS_POWER_LEVEL_DEF_VALUE,
PS_POWER_LEVEL_MIN_VALUE,
PS_POWER_LEVEL_MAX_VALUE,
sizeof p->PowerMgrInitParams.PowerSavePowerLevel,
(PUCHAR)&p->PowerMgrInitParams.PowerSavePowerLevel);
/*---------------------- Power Management Configuration -----------------------*/
regReadIntegerParameter(pAdapter,
&STRPowerMgmtHangOverPeriod,
HANGOVER_PERIOD_DEF_VALUE,
HANGOVER_PERIOD_MIN_VALUE,
HANGOVER_PERIOD_MAX_VALUE,
sizeof p->PowerMgrInitParams.hangOverPeriod,
(PUCHAR)&p->PowerMgrInitParams.hangOverPeriod);
regReadIntegerParameter(pAdapter,
&STRPowerMgmtNeedToSendNullData,
POWER_MGMNT_NEED_TO_SEND_NULL_PACKET_DEF_VALUE,
POWER_MGMNT_NEED_TO_SEND_NULL_PACKET_MIN_VALUE,
POWER_MGMNT_NEED_TO_SEND_NULL_PACKET_MAX_VALUE,
sizeof p->PowerMgrInitParams.needToSendNullData,
(PUCHAR)&p->PowerMgrInitParams.needToSendNullData);
regReadIntegerParameter(pAdapter,
&STRPowerMgmtNullPktRateModulation,
POWER_MGMNT_NULL_PACKET_RATE_MOD_DEF_VALUE,
POWER_MGMNT_NULL_PACKET_RATE_MOD_MIN_VALUE,
POWER_MGMNT_NULL_PACKET_RATE_MOD_MAX_VALUE,
sizeof p->PowerMgrInitParams.NullPktRateModulation,
(PUCHAR)&p->PowerMgrInitParams.NullPktRateModulation);
regReadIntegerParameter(pAdapter,
&STRPowerMgmtNumNullPktRetries,
POWER_MGMNT_NUM_NULL_PACKET_RETRY_DEF_VALUE,
POWER_MGMNT_NUM_NULL_PACKET_RETRY_MIN_VALUE,
POWER_MGMNT_NUM_NULL_PACKET_RETRY_MAX_VALUE,
sizeof p->PowerMgrInitParams.numNullPktRetries,
(PUCHAR)&p->PowerMgrInitParams.numNullPktRetries);
regReadIntegerParameter(pAdapter,
&STRPowerMgmtPllLockTime,
PLL_LOCK_TIME_DEF_VALUE,
PLL_LOCK_TIME_MIN_VALUE,
PLL_LOCK_TIME_MAX_VALUE,
sizeof p->PowerMgrInitParams.PLLlockTime,
(PUCHAR)&p->PowerMgrInitParams.PLLlockTime);
regReadIntegerParameter(pAdapter,
&STRPsPollDeliveryFailureRecoveryPeriod,
PS_POLL_FAILURE_PERIOD_DEF,
PS_POLL_FAILURE_PERIOD_MIN,
PS_POLL_FAILURE_PERIOD_MAX,
sizeof p->PowerMgrInitParams.PsPollDeliveryFailureRecoveryPeriod,
(PUCHAR)&p->PowerMgrInitParams.PsPollDeliveryFailureRecoveryPeriod);
/*--------------- Power Management Wake up conditions ------------------*/
regReadIntegerParameter(pAdapter, &STRListenInterval,
HAL_CTRL_LISTEN_INTERVAL_DEF, HAL_CTRL_LISTEN_INTERVAL_MIN,
HAL_CTRL_LISTEN_INTERVAL_MAX,
sizeof p->PowerMgrInitParams.listenInterval,
(PUCHAR)&p->PowerMgrInitParams.listenInterval);
/*-----------------------------------------------------------------------*/
/*--------------- Power Server Init Parameters ------------------*/
regReadIntegerParameter(pAdapter,
&STRPowerMgmtNumNullPktRetries,
POWER_MGMNT_NUM_NULL_PACKET_RETRY_DEF_VALUE,
POWER_MGMNT_NUM_NULL_PACKET_RETRY_MIN_VALUE,
POWER_MGMNT_NUM_NULL_PACKET_RETRY_MAX_VALUE,
sizeof p->TnetwDrv_InitParams.PowerSrvInitParams.numNullPktRetries,
(PUCHAR)&p->TnetwDrv_InitParams.PowerSrvInitParams.numNullPktRetries);
regReadIntegerParameter(pAdapter,
&STRPowerMgmtHangOverPeriod,
HANGOVER_PERIOD_DEF_VALUE,
HANGOVER_PERIOD_MIN_VALUE,
HANGOVER_PERIOD_MAX_VALUE,
sizeof p->TnetwDrv_InitParams.PowerSrvInitParams.hangOverPeriod,
(PUCHAR)&p->TnetwDrv_InitParams.PowerSrvInitParams.hangOverPeriod);
/*-----------------------------------------------------------------------*/
/* Scan SRV */
regReadIntegerParameter(pAdapter, &STRNumberOfNoScanCompleteToRecovery,
SCAN_SRV_NUMBER_OF_NO_SCAN_COMPLETE_TO_RECOVERY_DEF,
SCAN_SRV_NUMBER_OF_NO_SCAN_COMPLETE_TO_RECOVERY_MIN,
SCAN_SRV_NUMBER_OF_NO_SCAN_COMPLETE_TO_RECOVERY_MAX,
sizeof (p->TnetwDrv_InitParams.scanSrvInitParams.numberOfNoScanCompleteToRecovery),
(PUCHAR)&(p->TnetwDrv_InitParams.scanSrvInitParams.numberOfNoScanCompleteToRecovery) );
regReadIntegerParameter(pAdapter, &STRTriggeredScanTimeOut,
SCAN_SRV_TRIGGERED_SCAN_TIME_OUT_DEF,
SCAN_SRV_TRIGGERED_SCAN_TIME_OUT_MIN,
SCAN_SRV_TRIGGERED_SCAN_TIME_OUT_MAX,
sizeof (p->TnetwDrv_InitParams.scanSrvInitParams.uTriggeredScanTimeOut),
(PUCHAR)&(p->TnetwDrv_InitParams.scanSrvInitParams.uTriggeredScanTimeOut) );
/* Regulatory Domain */
/* Indicate the time in which the STA didn't receive any country code and was not connected, and therefore
will delete its current country code */
regReadIntegerParameter(pAdapter, &STRTimeToResetCountryMs,
REGULATORY_DOMAIN_COUNTRY_TIME_RESET_DEF, REGULATORY_DOMAIN_COUNTRY_TIME_RESET_MIN,
REGULATORY_DOMAIN_COUNTRY_TIME_RESET_MAX,
sizeof p->regulatoryDomainInitParams.uTimeOutToResetCountryMs,
(PUCHAR)&(p->regulatoryDomainInitParams.uTimeOutToResetCountryMs));
/* 802.11d/h */
regReadIntegerParameter(pAdapter, &STRMultiRegulatoryDomainEnabled,
MULTI_REGULATORY_DOMAIN_ENABLED_DEF, MULTI_REGULATORY_DOMAIN_ENABLED_MIN,
MULTI_REGULATORY_DOMAIN_ENABLED_MAX,
sizeof p->regulatoryDomainInitParams.multiRegulatoryDomainEnabled,
(PUCHAR)&(p->regulatoryDomainInitParams.multiRegulatoryDomainEnabled));
regReadIntegerParameter(pAdapter, &STRSpectrumManagementEnabled,
SPECTRUM_MANAGEMENT_ENABLED_DEF, SPECTRUM_MANAGEMENT_ENABLED_MIN,
SPECTRUM_MANAGEMENT_ENABLED_MAX,
sizeof p->regulatoryDomainInitParams.spectrumManagementEnabled,
(PUCHAR)&(p->regulatoryDomainInitParams.spectrumManagementEnabled));
regReadIntegerParameter(pAdapter, &STRSpectrumManagementEnabled,
SPECTRUM_MANAGEMENT_ENABLED_DEF, SPECTRUM_MANAGEMENT_ENABLED_MIN,
SPECTRUM_MANAGEMENT_ENABLED_MAX,
sizeof p->SwitchChannelInitParams.dot11SpectrumManagementRequired,
(PUCHAR)&(p->SwitchChannelInitParams.dot11SpectrumManagementRequired));
/* Scan Control Tables */
regReadStringParameter(pAdapter, &STRScanControlTable24,
(PCHAR)&ScanControlTable24Def[0],(USHORT)(2 * NUM_OF_CHANNELS_24),
(PUCHAR)&(ScanControlTable24Tmp[0]),
(PUSHORT)&tableLen);
for( loopIndex = tableLen ; loopIndex < 2 * NUM_OF_CHANNELS_24 ; loopIndex++)
ScanControlTable24Tmp[loopIndex] = '0';
decryptScanControlTable(ScanControlTable24Tmp,(PUCHAR)&(p->regulatoryDomainInitParams.desiredScanControlTable.ScanControlTable24.tableString[0]),2 * NUM_OF_CHANNELS_24);
/* Scan Control Tables for 5 Ghz*/
regReadStringParameter(pAdapter, &STRScanControlTable5,
(PCHAR)&ScanControlTable5Def[0],(USHORT)(2 * A_5G_BAND_NUM_CHANNELS),
(PUCHAR)&(ScanControlTable5Tmp[0]),
(PUSHORT)&tableLen);
for( loopIndex = tableLen ; loopIndex < 2 * A_5G_BAND_NUM_CHANNELS ; loopIndex++)
ScanControlTable5Tmp[loopIndex] = '0';
decryptScanControlTable(ScanControlTable5Tmp,(PUCHAR)&(p->regulatoryDomainInitParams.desiredScanControlTable.ScanControlTable5.tableString[0]),2 * A_5G_BAND_NUM_CHANNELS);
/* Tx Power */
regReadIntegerParameter(pAdapter, &STRTxPower,
MAX_TX_POWER, MIN_TX_POWER, MAX_TX_POWER,
sizeof p->regulatoryDomainInitParams.desiredTxPower,
(PUCHAR)&p->regulatoryDomainInitParams.desiredTxPower);
regReadIntegerParameter(pAdapter, &STRdot11WEPStatus,
RSN_WEP_STATUS_DEF, RSN_WEP_STATUS_MIN, RSN_WEP_STATUS_MAX,
sizeof p->rsnInitParams.privacyOn,
(PUCHAR)&p->rsnInitParams.privacyOn);
/* reverse privacy value - windows is setting 1 as off */
/*
p->rsnInitParams.privacyMode = !(p->rsnInitParams.privacyOn);
p->rsnInitParams.privacyOn = !(p->rsnInitParams.privacyOn);
*/
regReadIntegerParameter(pAdapter, &STRdot11WEPDefaultKeyID,
RSN_DEFAULT_KEY_ID_DEF, RSN_DEFAULT_KEY_ID_MIN,
RSN_DEFAULT_KEY_ID_MAX,
sizeof p->rsnInitParams.defaultKeyId,
(PUCHAR)&p->rsnInitParams.defaultKeyId);
regReadIntegerParameter(pAdapter, &STRMixedMode,
RSN_WEPMIXEDMODE_ENABLED_DEF, RSN_WEPMIXEDMODE_ENABLED_MIN,
RSN_WEPMIXEDMODE_ENABLED_MAX,
sizeof p->rsnInitParams.mixedMode,
(PUCHAR)&p->rsnInitParams.mixedMode);
regReadIntegerParameter(pAdapter, &STRWPAMixedMode,
RSN_WPAMIXEDMODE_ENABLE_DEF, RSN_WPAMIXEDMODE_ENABLE_MIN,
RSN_WPAMIXEDMODE_ENABLE_MAX,
sizeof p->rsnInitParams.WPAMixedModeEnable,
(PUCHAR)&p->rsnInitParams.WPAMixedModeEnable);
regReadIntegerParameter(pAdapter, &STRRSNPreAuth,
RSN_PREAUTH_ENABLE_DEF, RSN_PREAUTH_ENABLE_MIN,
RSN_PREAUTH_ENABLE_MAX,
sizeof p->rsnInitParams.preAuthSupport,
(PUCHAR)&p->rsnInitParams.preAuthSupport);
regReadIntegerParameter(pAdapter, &STRRSNPreAuthTimeout,
RSN_PREAUTH_TIMEOUT_DEF, RSN_PREAUTH_TIMEOUT_MIN,
RSN_PREAUTH_TIMEOUT_MAX,
sizeof p->rsnInitParams.preAuthTimeout,
(PUCHAR)&p->rsnInitParams.preAuthTimeout);
regReadWepKeyParameter(pAdapter, (PUCHAR)p->rsnInitParams.keys, p->rsnInitParams.defaultKeyId);
/*---------------------------
QOS parameters
-----------------------------*/
regReadIntegerParameter(pAdapter, &STRClsfr_Type,
CLSFR_TYPE_DEF, CLSFR_TYPE_MIN,
CLSFR_TYPE_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.clsfrType,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.clsfrType);
switch(p->ctrlDataInitParams.ClsfrInitParam.clsfrType)
{
case D_TAG_CLSFR:
/* Trivial mapping D-tag to D-tag - no need to read more keys*/
break;
case DSCP_CLSFR:
regReadIntegerParameter(pAdapter, &STRNumOfCodePoints,
NUM_OF_CODE_POINTS_DEF, NUM_OF_CODE_POINTS_MIN,
NUM_OF_CODE_POINTS_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.NumOfActiveEntries,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.NumOfActiveEntries);
regReadIntegerParameter(pAdapter, &STRDSCPClassifier00_CodePoint,
DSCP_CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN,
CLASSIFIER_CODE_POINT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[0].Dscp.CodePoint,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[0].Dscp.CodePoint);
regReadIntegerParameter(pAdapter, &STRDSCPClassifier01_CodePoint,
DSCP_CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN,
CLASSIFIER_CODE_POINT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[1].Dscp.CodePoint,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[1].Dscp.CodePoint);
regReadIntegerParameter(pAdapter, &STRDSCPClassifier02_CodePoint,
DSCP_CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN,
CLASSIFIER_CODE_POINT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[2].Dscp.CodePoint,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[2].Dscp.CodePoint);
regReadIntegerParameter(pAdapter, &STRDSCPClassifier03_CodePoint,
DSCP_CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN,
CLASSIFIER_CODE_POINT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[3].Dscp.CodePoint,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[3].Dscp.CodePoint);
regReadIntegerParameter(pAdapter, &STRDSCPClassifier04_CodePoint,
DSCP_CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN,
CLASSIFIER_CODE_POINT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[4].Dscp.CodePoint,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[4].Dscp.CodePoint);
regReadIntegerParameter(pAdapter, &STRDSCPClassifier05_CodePoint,
DSCP_CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN,
CLASSIFIER_CODE_POINT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[5].Dscp.CodePoint,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[5].Dscp.CodePoint);
regReadIntegerParameter(pAdapter, &STRDSCPClassifier06_CodePoint,
DSCP_CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN,
CLASSIFIER_CODE_POINT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[6].Dscp.CodePoint,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[6].Dscp.CodePoint);
regReadIntegerParameter(pAdapter, &STRDSCPClassifier07_CodePoint,
DSCP_CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN,
CLASSIFIER_CODE_POINT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[7].Dscp.CodePoint,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[7].Dscp.CodePoint);
regReadIntegerParameter(pAdapter, &STRDSCPClassifier08_CodePoint,
CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN,
CLASSIFIER_CODE_POINT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[8].Dscp.CodePoint,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[8].Dscp.CodePoint);
regReadIntegerParameter(pAdapter, &STRDSCPClassifier09_CodePoint,
CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN,
CLASSIFIER_CODE_POINT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[9].Dscp.CodePoint,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[9].Dscp.CodePoint);
regReadIntegerParameter(pAdapter, &STRDSCPClassifier10_CodePoint,
CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN,
CLASSIFIER_CODE_POINT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[10].Dscp.CodePoint,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[10].Dscp.CodePoint);
regReadIntegerParameter(pAdapter, &STRDSCPClassifier11_CodePoint,
CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN,
CLASSIFIER_CODE_POINT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[11].Dscp.CodePoint,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[11].Dscp.CodePoint);
regReadIntegerParameter(pAdapter, &STRDSCPClassifier12_CodePoint,
CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN,
CLASSIFIER_CODE_POINT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[12].Dscp.CodePoint,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[12].Dscp.CodePoint);
regReadIntegerParameter(pAdapter, &STRDSCPClassifier13_CodePoint,
CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN,
CLASSIFIER_CODE_POINT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[13].Dscp.CodePoint,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[13].Dscp.CodePoint);
regReadIntegerParameter(pAdapter, &STRDSCPClassifier14_CodePoint,
CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN,
CLASSIFIER_CODE_POINT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[14].Dscp.CodePoint,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[14].Dscp.CodePoint);
regReadIntegerParameter(pAdapter, &STRDSCPClassifier15_CodePoint,
CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN,
CLASSIFIER_CODE_POINT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[15].Dscp.CodePoint,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[15].Dscp.CodePoint);
regReadIntegerParameter(pAdapter, &STRDSCPClassifier00_DTag,
DSCP_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[0].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[0].DTag);
regReadIntegerParameter(pAdapter, &STRDSCPClassifier01_DTag,
DSCP_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[1].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[1].DTag);
regReadIntegerParameter(pAdapter, &STRDSCPClassifier02_DTag,
DSCP_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[2].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[2].DTag);
regReadIntegerParameter(pAdapter, &STRDSCPClassifier03_DTag,
DSCP_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[3].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[3].DTag);
regReadIntegerParameter(pAdapter, &STRDSCPClassifier04_DTag,
DSCP_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[4].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[4].DTag);
regReadIntegerParameter(pAdapter, &STRDSCPClassifier05_DTag,
DSCP_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[5].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[5].DTag);
regReadIntegerParameter(pAdapter, &STRDSCPClassifier06_DTag,
DSCP_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[6].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[6].DTag);
regReadIntegerParameter(pAdapter, &STRDSCPClassifier07_DTag,
DSCP_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[7].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[7].DTag);
regReadIntegerParameter(pAdapter, &STRDSCPClassifier08_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[8].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[8].DTag);
regReadIntegerParameter(pAdapter, &STRDSCPClassifier09_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[9].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[9].DTag);
regReadIntegerParameter(pAdapter, &STRDSCPClassifier10_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[10].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[10].DTag);
regReadIntegerParameter(pAdapter, &STRDSCPClassifier11_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[11].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[11].DTag);
regReadIntegerParameter(pAdapter, &STRDSCPClassifier12_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[12].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[12].DTag);
regReadIntegerParameter(pAdapter, &STRDSCPClassifier13_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[13].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[13].DTag);
regReadIntegerParameter(pAdapter, &STRDSCPClassifier14_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[14].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[14].DTag);
regReadIntegerParameter(pAdapter, &STRDSCPClassifier15_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[15].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[15].DTag);
break;
case PORT_CLSFR:
regReadIntegerParameter(pAdapter, &STRNumOfDstPortClassifiers,
NUM_OF_PORT_CLASSIFIERS_DEF, NUM_OF_PORT_CLASSIFIERS_MIN,
NUM_OF_PORT_CLASSIFIERS_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.NumOfActiveEntries,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.NumOfActiveEntries);
regReadIntegerParameter(pAdapter, &STRPortClassifier00_Port,
PORT_CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
CLASSIFIER_PORT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[0].Dscp.DstPortNum,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[0].Dscp.DstPortNum);
regReadIntegerParameter(pAdapter, &STRPortClassifier01_Port,
PORT_CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
CLASSIFIER_PORT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[1].Dscp.DstPortNum,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[1].Dscp.DstPortNum);
regReadIntegerParameter(pAdapter, &STRPortClassifier02_Port,
PORT_CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
CLASSIFIER_PORT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[2].Dscp.DstPortNum,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[2].Dscp.DstPortNum);
regReadIntegerParameter(pAdapter, &STRPortClassifier03_Port,
CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
CLASSIFIER_PORT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[3].Dscp.DstPortNum,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[3].Dscp.DstPortNum);
regReadIntegerParameter(pAdapter, &STRPortClassifier04_Port,
CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
CLASSIFIER_PORT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[4].Dscp.DstPortNum,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[4].Dscp.DstPortNum);
regReadIntegerParameter(pAdapter, &STRPortClassifier05_Port,
CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
CLASSIFIER_PORT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[5].Dscp.DstPortNum,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[5].Dscp.DstPortNum);
regReadIntegerParameter(pAdapter, &STRPortClassifier06_Port,
CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
CLASSIFIER_PORT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[6].Dscp.DstPortNum,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[6].Dscp.DstPortNum);
regReadIntegerParameter(pAdapter, &STRPortClassifier07_Port,
CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
CLASSIFIER_PORT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[7].Dscp.DstPortNum,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[7].Dscp.DstPortNum);
regReadIntegerParameter(pAdapter, &STRPortClassifier08_Port,
CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
CLASSIFIER_PORT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[8].Dscp.DstPortNum,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[8].Dscp.DstPortNum);
regReadIntegerParameter(pAdapter, &STRPortClassifier09_Port,
CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
CLASSIFIER_PORT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[9].Dscp.DstPortNum,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[9].Dscp.DstPortNum);
regReadIntegerParameter(pAdapter, &STRPortClassifier10_Port,
CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
CLASSIFIER_PORT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[10].Dscp.DstPortNum,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[10].Dscp.DstPortNum);
regReadIntegerParameter(pAdapter, &STRPortClassifier11_Port,
CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
CLASSIFIER_PORT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[11].Dscp.DstPortNum,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[11].Dscp.DstPortNum);
regReadIntegerParameter(pAdapter, &STRPortClassifier12_Port,
CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
CLASSIFIER_PORT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[12].Dscp.DstPortNum,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[12].Dscp.DstPortNum);
regReadIntegerParameter(pAdapter, &STRPortClassifier13_Port,
CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
CLASSIFIER_PORT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[13].Dscp.DstPortNum,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[13].Dscp.DstPortNum);
regReadIntegerParameter(pAdapter, &STRPortClassifier14_Port,
CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
CLASSIFIER_PORT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[14].Dscp.DstPortNum,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[14].Dscp.DstPortNum);
regReadIntegerParameter(pAdapter, &STRPortClassifier15_Port,
CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
CLASSIFIER_PORT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[15].Dscp.DstPortNum,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[15].Dscp.DstPortNum);
regReadIntegerParameter(pAdapter, &STRPortClassifier00_DTag,
PORT_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[0].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[0].DTag);
regReadIntegerParameter(pAdapter, &STRPortClassifier01_DTag,
PORT_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[1].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[1].DTag);
regReadIntegerParameter(pAdapter, &STRPortClassifier02_DTag,
PORT_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[2].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[2].DTag);
regReadIntegerParameter(pAdapter, &STRPortClassifier03_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[3].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[3].DTag);
regReadIntegerParameter(pAdapter, &STRPortClassifier04_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[4].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[4].DTag);
regReadIntegerParameter(pAdapter, &STRPortClassifier05_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[5].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[5].DTag);
regReadIntegerParameter(pAdapter, &STRPortClassifier06_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[6].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[6].DTag);
regReadIntegerParameter(pAdapter, &STRPortClassifier07_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[7].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[7].DTag);
regReadIntegerParameter(pAdapter, &STRPortClassifier08_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[8].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[8].DTag);
regReadIntegerParameter(pAdapter, &STRPortClassifier09_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[9].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[9].DTag);
regReadIntegerParameter(pAdapter, &STRPortClassifier10_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[10].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[10].DTag);
regReadIntegerParameter(pAdapter, &STRPortClassifier11_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[11].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[11].DTag);
regReadIntegerParameter(pAdapter, &STRPortClassifier12_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[12].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[12].DTag);
regReadIntegerParameter(pAdapter, &STRPortClassifier13_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[13].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[13].DTag);
regReadIntegerParameter(pAdapter, &STRPortClassifier14_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[14].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[14].DTag);
regReadIntegerParameter(pAdapter, &STRPortClassifier15_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[15].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[15].DTag);
break;
case IPPORT_CLSFR:
regReadIntegerParameter(pAdapter, &STRNumOfDstIPPortClassifiers,
NUM_OF_IPPORT_CLASSIFIERS_DEF, NUM_OF_IPPORT_CLASSIFIERS_MIN,
NUM_OF_IPPORT_CLASSIFIERS_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.NumOfActiveEntries,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.NumOfActiveEntries);
regReadStringParameter(pAdapter, &STRIPPortClassifier00_IPAddress, (PCHAR)(ClsfrIp), 11, (PUCHAR)ClsfrIpString, &ClsfrIpStringSize);
initRadioValusFromRgstryString( (PCHAR)(ClsfrIpString), (PCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[0].Dscp.DstIPPort.DstIPAddress, 4);
regReadStringParameter(pAdapter, &STRIPPortClassifier01_IPAddress, (PCHAR)(ClsfrIp), 11, (PUCHAR)ClsfrIpString, &ClsfrIpStringSize);
initRadioValusFromRgstryString( (PCHAR)(ClsfrIpString), (PCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[1].Dscp.DstIPPort.DstIPAddress, 4);
regReadStringParameter(pAdapter, &STRIPPortClassifier02_IPAddress, (PCHAR)(ClsfrIp), 11, (PUCHAR)ClsfrIpString, &ClsfrIpStringSize);
initRadioValusFromRgstryString( (PCHAR)(ClsfrIpString), (PCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[2].Dscp.DstIPPort.DstIPAddress, 4);
regReadStringParameter(pAdapter, &STRIPPortClassifier03_IPAddress, (PCHAR)(ClsfrIp), 11, (PUCHAR)ClsfrIpString, &ClsfrIpStringSize);
initRadioValusFromRgstryString( (PCHAR)(ClsfrIpString), (PCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[3].Dscp.DstIPPort.DstIPAddress, 4);
regReadStringParameter(pAdapter, &STRIPPortClassifier04_IPAddress, (PCHAR)(ClsfrIp), 11, (PUCHAR)ClsfrIpString, &ClsfrIpStringSize);
initRadioValusFromRgstryString( (PCHAR)(ClsfrIpString), (PCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[4].Dscp.DstIPPort.DstIPAddress, 4);
regReadStringParameter(pAdapter, &STRIPPortClassifier05_IPAddress, (PCHAR)(ClsfrIp), 11, (PUCHAR)ClsfrIpString, &ClsfrIpStringSize);
initRadioValusFromRgstryString( (PCHAR)(ClsfrIpString), (PCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[5].Dscp.DstIPPort.DstIPAddress, 4);
regReadStringParameter(pAdapter, &STRIPPortClassifier06_IPAddress, (PCHAR)(ClsfrIp), 11, (PUCHAR)ClsfrIpString, &ClsfrIpStringSize);
initRadioValusFromRgstryString( (PCHAR)(ClsfrIpString), (PCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[6].Dscp.DstIPPort.DstIPAddress, 4);
regReadStringParameter(pAdapter, &STRIPPortClassifier07_IPAddress, (PCHAR)(ClsfrIp), 11, (PUCHAR)ClsfrIpString, &ClsfrIpStringSize);
initRadioValusFromRgstryString( (PCHAR)(ClsfrIpString), (PCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[7].Dscp.DstIPPort.DstIPAddress, 4);
regReadStringParameter(pAdapter, &STRIPPortClassifier08_IPAddress, (PCHAR)(ClsfrIp), 11, (PUCHAR)ClsfrIpString, &ClsfrIpStringSize);
initRadioValusFromRgstryString( (PCHAR)(ClsfrIpString), (PCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[8].Dscp.DstIPPort.DstIPAddress, 4);
regReadStringParameter(pAdapter, &STRIPPortClassifier09_IPAddress, (PCHAR)(ClsfrIp), 11, (PUCHAR)ClsfrIpString, &ClsfrIpStringSize);
initRadioValusFromRgstryString( (PCHAR)(ClsfrIpString), (PCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[9].Dscp.DstIPPort.DstIPAddress, 4);
regReadStringParameter(pAdapter, &STRIPPortClassifier10_IPAddress, (PCHAR)(ClsfrIp), 11, (PUCHAR)ClsfrIpString, &ClsfrIpStringSize);
initRadioValusFromRgstryString( (PCHAR)(ClsfrIpString), (PCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[10].Dscp.DstIPPort.DstIPAddress, 4);
regReadStringParameter(pAdapter, &STRIPPortClassifier11_IPAddress, (PCHAR)(ClsfrIp), 11, (PUCHAR)ClsfrIpString, &ClsfrIpStringSize);
initRadioValusFromRgstryString( (PCHAR)(ClsfrIpString), (PCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[11].Dscp.DstIPPort.DstIPAddress, 4);
regReadStringParameter(pAdapter, &STRIPPortClassifier12_IPAddress, (PCHAR)(ClsfrIp), 11, (PUCHAR)ClsfrIpString, &ClsfrIpStringSize);
initRadioValusFromRgstryString( (PCHAR)(ClsfrIpString), (PCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[12].Dscp.DstIPPort.DstIPAddress, 4);
regReadStringParameter(pAdapter, &STRIPPortClassifier13_IPAddress, (PCHAR)(ClsfrIp), 11, (PUCHAR)ClsfrIpString, &ClsfrIpStringSize);
initRadioValusFromRgstryString( (PCHAR)(ClsfrIpString), (PCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[13].Dscp.DstIPPort.DstIPAddress, 4);
regReadStringParameter(pAdapter, &STRIPPortClassifier14_IPAddress, (PCHAR)(ClsfrIp), 11, (PUCHAR)ClsfrIpString, &ClsfrIpStringSize);
initRadioValusFromRgstryString( (PCHAR)(ClsfrIpString), (PCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[14].Dscp.DstIPPort.DstIPAddress, 4);
regReadStringParameter(pAdapter, &STRIPPortClassifier15_IPAddress, (PCHAR)(ClsfrIp), 11, (PUCHAR)ClsfrIpString, &ClsfrIpStringSize);
initRadioValusFromRgstryString( (PCHAR)(ClsfrIpString), (PCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[15].Dscp.DstIPPort.DstIPAddress, 4);
regReadIntegerParameter(pAdapter, &STRIPPortClassifier00_Port,
IPPORT_CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
CLASSIFIER_PORT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[0].Dscp.DstIPPort.DstPortNum,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[0].Dscp.DstIPPort.DstPortNum);
regReadIntegerParameter(pAdapter, &STRIPPortClassifier01_Port,
IPPORT_CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
CLASSIFIER_PORT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[1].Dscp.DstIPPort.DstPortNum,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[1].Dscp.DstIPPort.DstPortNum);
regReadIntegerParameter(pAdapter, &STRIPPortClassifier02_Port,
IPPORT_CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
CLASSIFIER_PORT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[2].Dscp.DstIPPort.DstPortNum,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[2].Dscp.DstIPPort.DstPortNum);
regReadIntegerParameter(pAdapter, &STRIPPortClassifier03_Port,
CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
CLASSIFIER_PORT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[3].Dscp.DstIPPort.DstPortNum,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[3].Dscp.DstIPPort.DstPortNum);
regReadIntegerParameter(pAdapter, &STRIPPortClassifier04_Port,
CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
CLASSIFIER_PORT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[4].Dscp.DstIPPort.DstPortNum,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[4].Dscp.DstIPPort.DstPortNum);
regReadIntegerParameter(pAdapter, &STRIPPortClassifier05_Port,
CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
CLASSIFIER_PORT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[5].Dscp.DstIPPort.DstPortNum,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[5].Dscp.DstIPPort.DstPortNum);
regReadIntegerParameter(pAdapter, &STRIPPortClassifier06_Port,
CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
CLASSIFIER_PORT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[6].Dscp.DstIPPort.DstPortNum,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[6].Dscp.DstIPPort.DstPortNum);
regReadIntegerParameter(pAdapter, &STRIPPortClassifier07_Port,
CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
CLASSIFIER_PORT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[7].Dscp.DstIPPort.DstPortNum,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[7].Dscp.DstIPPort.DstPortNum);
regReadIntegerParameter(pAdapter, &STRIPPortClassifier08_Port,
CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
CLASSIFIER_PORT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[8].Dscp.DstIPPort.DstPortNum,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[8].Dscp.DstIPPort.DstPortNum);
regReadIntegerParameter(pAdapter, &STRIPPortClassifier09_Port,
CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
CLASSIFIER_PORT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[9].Dscp.DstIPPort.DstPortNum,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[9].Dscp.DstIPPort.DstPortNum);
regReadIntegerParameter(pAdapter, &STRIPPortClassifier10_Port,
CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
CLASSIFIER_PORT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[10].Dscp.DstIPPort.DstPortNum,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[10].Dscp.DstIPPort.DstPortNum);
regReadIntegerParameter(pAdapter, &STRIPPortClassifier11_Port,
CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
CLASSIFIER_PORT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[11].Dscp.DstIPPort.DstPortNum,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[11].Dscp.DstIPPort.DstPortNum);
regReadIntegerParameter(pAdapter, &STRIPPortClassifier12_Port,
CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
CLASSIFIER_PORT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[12].Dscp.DstIPPort.DstPortNum,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[12].Dscp.DstIPPort.DstPortNum);
regReadIntegerParameter(pAdapter, &STRIPPortClassifier13_Port,
CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
CLASSIFIER_PORT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[13].Dscp.DstIPPort.DstPortNum,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[13].Dscp.DstIPPort.DstPortNum);
regReadIntegerParameter(pAdapter, &STRIPPortClassifier14_Port,
CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
CLASSIFIER_PORT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[14].Dscp.DstIPPort.DstPortNum,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[14].Dscp.DstIPPort.DstPortNum);
regReadIntegerParameter(pAdapter, &STRIPPortClassifier15_Port,
CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
CLASSIFIER_PORT_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[15].Dscp.DstIPPort.DstPortNum,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[15].Dscp.DstIPPort.DstPortNum);
regReadIntegerParameter(pAdapter, &STRIPPortClassifier00_DTag,
IPPORT_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[0].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[0].DTag);
regReadIntegerParameter(pAdapter, &STRIPPortClassifier01_DTag,
IPPORT_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[1].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[1].DTag);
regReadIntegerParameter(pAdapter, &STRIPPortClassifier02_DTag,
IPPORT_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[2].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[2].DTag);
regReadIntegerParameter(pAdapter, &STRIPPortClassifier03_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[3].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[3].DTag);
regReadIntegerParameter(pAdapter, &STRIPPortClassifier04_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[4].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[4].DTag);
regReadIntegerParameter(pAdapter, &STRIPPortClassifier05_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[5].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[5].DTag);
regReadIntegerParameter(pAdapter, &STRIPPortClassifier06_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[6].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[6].DTag);
regReadIntegerParameter(pAdapter, &STRIPPortClassifier07_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[7].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[7].DTag);
regReadIntegerParameter(pAdapter, &STRIPPortClassifier08_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[8].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[8].DTag);
regReadIntegerParameter(pAdapter, &STRIPPortClassifier09_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[9].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[9].DTag);
regReadIntegerParameter(pAdapter, &STRIPPortClassifier10_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[10].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[10].DTag);
regReadIntegerParameter(pAdapter, &STRIPPortClassifier11_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[11].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[11].DTag);
regReadIntegerParameter(pAdapter, &STRIPPortClassifier12_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[12].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[12].DTag);
regReadIntegerParameter(pAdapter, &STRIPPortClassifier13_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[13].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[13].DTag);
regReadIntegerParameter(pAdapter, &STRIPPortClassifier14_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[14].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[14].DTag);
regReadIntegerParameter(pAdapter, &STRIPPortClassifier15_DTag,
CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
CLASSIFIER_DTAG_MAX,
sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[15].DTag,
(PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[15].DTag);
break;
}
/* ---------------------------
Traffic Intensity Threshold
---------------------------*/
regReadIntegerParameter(pAdapter, &STRTrafficIntensityThresHigh,
CTRL_DATA_TRAFFIC_THRESHOLD_HIGH_DEF,
CTRL_DATA_TRAFFIC_THRESHOLD_HIGH_MIN,
CTRL_DATA_TRAFFIC_THRESHOLD_HIGH_MAX,
sizeof p->ctrlDataInitParams.ctrlDataTrafficThreshold.uHighThreshold,
(PUCHAR)&p->ctrlDataInitParams.ctrlDataTrafficThreshold.uHighThreshold);
regReadIntegerParameter(pAdapter, &STRTrafficIntensityThresLow,
CTRL_DATA_TRAFFIC_THRESHOLD_LOW_DEF,
CTRL_DATA_TRAFFIC_THRESHOLD_LOW_MIN,
CTRL_DATA_TRAFFIC_THRESHOLD_LOW_MAX,
sizeof p->ctrlDataInitParams.ctrlDataTrafficThreshold.uLowThreshold,
(PUCHAR)&p->ctrlDataInitParams.ctrlDataTrafficThreshold.uLowThreshold);
regReadIntegerParameter(pAdapter, &STRTrafficIntensityTestInterval,
CTRL_DATA_TRAFFIC_THRESHOLD_INTERVAL_DEF,
CTRL_DATA_TRAFFIC_THRESHOLD_INTERVAL_MIN,
CTRL_DATA_TRAFFIC_THRESHOLD_INTERVAL_MAX,
sizeof p->ctrlDataInitParams.ctrlDataTrafficThreshold.TestInterval,
(PUCHAR)&p->ctrlDataInitParams.ctrlDataTrafficThreshold.TestInterval);
regReadIntegerParameter(pAdapter, &STRTrafficIntensityThresholdEnabled,
CTRL_DATA_TRAFFIC_THRESHOLD_ENABLED_DEF,
CTRL_DATA_TRAFFIC_THRESHOLD_ENABLED_MIN,
CTRL_DATA_TRAFFIC_THRESHOLD_ENABLED_MAX,
sizeof p->ctrlDataInitParams.ctrlDataTrafficThresholdEnabled,
(PUCHAR)&p->ctrlDataInitParams.ctrlDataTrafficThresholdEnabled);
regReadIntegerParameter(pAdapter, &STRTrafficMonitorMinIntervalPercentage,
TRAFFIC_MONITOR_MIN_INTERVAL_PERCENT_DEF,
TRAFFIC_MONITOR_MIN_INTERVAL_PERCENT_MIN,
TRAFFIC_MONITOR_MIN_INTERVAL_PERCENT_MAX,
sizeof(BOOL), (PUCHAR)&p->trafficMonitorMinIntervalPercentage);
regReadIntegerParameter(pAdapter, &STRWMEEnable,
WME_ENABLED_DEF, WME_ENABLED_MIN,
WME_ENABLED_MAX,
sizeof p->qosMngrInitParams.wmeEnable,
(PUCHAR)&p->qosMngrInitParams.wmeEnable);
regReadIntegerParameter(pAdapter, &STRTrafficAdmCtrlEnable,
QOS_TRAFFIC_ADM_CTRL_ENABLED_DEF, QOS_TRAFFIC_ADM_CTRL_ENABLED_MIN,
QOS_TRAFFIC_ADM_CTRL_ENABLED_MAX,
sizeof p->qosMngrInitParams.trafficAdmCtrlEnable,
(PUCHAR)&p->qosMngrInitParams.trafficAdmCtrlEnable);
regReadIntegerParameter(pAdapter, &STRdesiredPsMode,
QOS_DESIRED_PS_MODE_DEF, QOS_DESIRED_PS_MODE_MIN,
QOS_DESIRED_PS_MODE_MAX,
sizeof p->qosMngrInitParams.desiredPsMode,
(PUCHAR)&p->qosMngrInitParams.desiredPsMode);
regReadIntegerParameter(pAdapter, &STRQOSmsduLifeTimeBE,
QOS_MSDU_LIFE_TIME_BE_DEF, QOS_MSDU_LIFE_TIME_BE_MIN,
QOS_MSDU_LIFE_TIME_BE_MAX,
sizeof p->qosMngrInitParams.MsduLifeTime[QOS_AC_BE],
(PUCHAR)&p->qosMngrInitParams.MsduLifeTime[QOS_AC_BE]);
regReadIntegerParameter(pAdapter, &STRQOSmsduLifeTimeBK,
QOS_MSDU_LIFE_TIME_BK_DEF, QOS_MSDU_LIFE_TIME_BK_MIN,
QOS_MSDU_LIFE_TIME_BK_MAX,
sizeof p->qosMngrInitParams.MsduLifeTime[QOS_AC_BK],
(PUCHAR)&p->qosMngrInitParams.MsduLifeTime[QOS_AC_BK]);
regReadIntegerParameter(pAdapter, &STRQOSmsduLifeTimeVI,
QOS_MSDU_LIFE_TIME_VI_DEF, QOS_MSDU_LIFE_TIME_VI_MIN,
QOS_MSDU_LIFE_TIME_VI_MAX,
sizeof p->qosMngrInitParams.MsduLifeTime[QOS_AC_VI],
(PUCHAR)&p->qosMngrInitParams.MsduLifeTime[QOS_AC_VI]);
regReadIntegerParameter(pAdapter, &STRQOSmsduLifeTimeVO,
QOS_MSDU_LIFE_TIME_VO_DEF, QOS_MSDU_LIFE_TIME_VO_MIN,
QOS_MSDU_LIFE_TIME_VO_MAX,
sizeof p->qosMngrInitParams.MsduLifeTime[QOS_AC_VO],
(PUCHAR)&p->qosMngrInitParams.MsduLifeTime[QOS_AC_VO]);
regReadIntegerParameter(pAdapter, &STRQOSrxTimeOutPsPoll,
QOS_RX_TIMEOUT_PS_POLL_DEF, QOS_RX_TIMEOUT_PS_POLL_MIN,
QOS_RX_TIMEOUT_PS_POLL_MAX,
sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.rxTimeOut.psPoll,
(PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.rxTimeOut.psPoll);
regReadIntegerParameter(pAdapter, &STRQOSrxTimeOutUPSD,
QOS_RX_TIMEOUT_UPSD_DEF, QOS_RX_TIMEOUT_UPSD_MIN,
QOS_RX_TIMEOUT_UPSD_MAX,
sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.rxTimeOut.UPSD,
(PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.rxTimeOut.UPSD);
/* Note: The PsPoll wait timeout should be aligned with the UPSD setting */
/* p->PowerMgrInitParams.HwPsPollResponseTimeout = (UINT8)p->qosMngrInitParams.rxTimeout.UPSD;*/
regReadIntegerParameter(pAdapter, &STRQOStxQueue0Size,
QOS_TX_QUEUE0_SIZE_DEF, QOS_TX_QUEUE0_SIZE_MIN,
QOS_TX_QUEUE0_SIZE_MAX,
sizeof p->qosMngrInitParams.TxQueueSize[0],
(PUCHAR)&p->qosMngrInitParams.TxQueueSize[0]);
regReadIntegerParameter(pAdapter, &STRQOStxQueue1Size,
QOS_TX_QUEUE1_SIZE_DEF, QOS_TX_QUEUE1_SIZE_MIN,
QOS_TX_QUEUE1_SIZE_MAX,
sizeof p->qosMngrInitParams.TxQueueSize[1],
(PUCHAR)&p->qosMngrInitParams.TxQueueSize[1]);
regReadIntegerParameter(pAdapter, &STRQOStxQueue2Size,
QOS_TX_QUEUE2_SIZE_DEF, QOS_TX_QUEUE2_SIZE_MIN,
QOS_TX_QUEUE2_SIZE_MAX,
sizeof p->qosMngrInitParams.TxQueueSize[2],
(PUCHAR)&p->qosMngrInitParams.TxQueueSize[2]);
regReadIntegerParameter(pAdapter, &STRQOStxQueue3Size,
QOS_TX_QUEUE3_SIZE_DEF, QOS_TX_QUEUE3_SIZE_MIN,
QOS_TX_QUEUE3_SIZE_MAX,
sizeof p->qosMngrInitParams.TxQueueSize[3],
(PUCHAR)&p->qosMngrInitParams.TxQueueSize[3]);
regReadIntegerParameter(pAdapter, &STRQOSwmePsModeBE,
QOS_WME_PS_MODE_BE_DEF, QOS_WME_PS_MODE_BE_MIN,
QOS_WME_PS_MODE_BE_MAX,
sizeof p->qosMngrInitParams.desiredWmeAcPsMode[QOS_AC_BE],
(PUCHAR)&p->qosMngrInitParams.desiredWmeAcPsMode[QOS_AC_BE]);
regReadIntegerParameter(pAdapter, &STRQOSwmePsModeBK,
QOS_WME_PS_MODE_BK_DEF, QOS_WME_PS_MODE_BK_MIN,
QOS_WME_PS_MODE_BK_MAX,
sizeof p->qosMngrInitParams.desiredWmeAcPsMode[QOS_AC_BK],
(PUCHAR)&p->qosMngrInitParams.desiredWmeAcPsMode[QOS_AC_BK]);
regReadIntegerParameter(pAdapter, &STRQOSwmePsModeVI,
QOS_WME_PS_MODE_VI_DEF, QOS_WME_PS_MODE_VI_MIN,
QOS_WME_PS_MODE_VI_MAX,
sizeof p->qosMngrInitParams.desiredWmeAcPsMode[QOS_AC_VI],
(PUCHAR)&p->qosMngrInitParams.desiredWmeAcPsMode[QOS_AC_VI]);
regReadIntegerParameter(pAdapter, &STRQOSwmePsModeVO,
QOS_WME_PS_MODE_VO_DEF, QOS_WME_PS_MODE_VO_MIN,
QOS_WME_PS_MODE_VO_MAX,
sizeof p->qosMngrInitParams.desiredWmeAcPsMode[QOS_AC_VO],
(PUCHAR)&p->qosMngrInitParams.desiredWmeAcPsMode[QOS_AC_VO]);
/* HW Tx queues buffers allocation high threshold */
regReadIntegerParameter(pAdapter, &STRQOStxBlksHighPrcntBE,
QOS_TX_BLKS_HIGH_PRCNT_BE_DEF, QOS_TX_BLKS_HIGH_PRCNT_MIN,
QOS_TX_BLKS_HIGH_PRCNT_MAX,
sizeof p->TnetwDrv_InitParams.whalCtrl_init.TxBlocksHighPercentPerAc[QOS_AC_BE],
(PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.TxBlocksHighPercentPerAc[QOS_AC_BE]);
regReadIntegerParameter(pAdapter, &STRQOStxBlksHighPrcntBK,
QOS_TX_BLKS_HIGH_PRCNT_BK_DEF, QOS_TX_BLKS_HIGH_PRCNT_MIN,
QOS_TX_BLKS_HIGH_PRCNT_MAX,
sizeof p->TnetwDrv_InitParams.whalCtrl_init.TxBlocksHighPercentPerAc[QOS_AC_BK],
(PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.TxBlocksHighPercentPerAc[QOS_AC_BK]);
regReadIntegerParameter(pAdapter, &STRQOStxBlksHighPrcntVI,
QOS_TX_BLKS_HIGH_PRCNT_VI_DEF, QOS_TX_BLKS_HIGH_PRCNT_MIN,
QOS_TX_BLKS_HIGH_PRCNT_MAX,
sizeof p->TnetwDrv_InitParams.whalCtrl_init.TxBlocksHighPercentPerAc[QOS_AC_VI],
(PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.TxBlocksHighPercentPerAc[QOS_AC_VI]);
regReadIntegerParameter(pAdapter, &STRQOStxBlksHighPrcntVO,
QOS_TX_BLKS_HIGH_PRCNT_VO_DEF, QOS_TX_BLKS_HIGH_PRCNT_MIN,
QOS_TX_BLKS_HIGH_PRCNT_MAX,
sizeof p->TnetwDrv_InitParams.whalCtrl_init.TxBlocksHighPercentPerAc[QOS_AC_VO],
(PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.TxBlocksHighPercentPerAc[QOS_AC_VO]);
/* HW Tx queues buffers allocation low threshold */
regReadIntegerParameter(pAdapter, &STRQOStxBlksLowPrcntBE,
QOS_TX_BLKS_LOW_PRCNT_BE_DEF, QOS_TX_BLKS_HIGH_PRCNT_MIN,
QOS_TX_BLKS_HIGH_PRCNT_MAX,
sizeof p->TnetwDrv_InitParams.whalCtrl_init.TxBlocksLowPercentPerAc[QOS_AC_BE],
(PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.TxBlocksLowPercentPerAc[QOS_AC_BE]);
regReadIntegerParameter(pAdapter, &STRQOStxBlksLowPrcntBK,
QOS_TX_BLKS_LOW_PRCNT_BK_DEF, QOS_TX_BLKS_HIGH_PRCNT_MIN,
QOS_TX_BLKS_HIGH_PRCNT_MAX,
sizeof p->TnetwDrv_InitParams.whalCtrl_init.TxBlocksLowPercentPerAc[QOS_AC_BK],
(PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.TxBlocksLowPercentPerAc[QOS_AC_BK]);
regReadIntegerParameter(pAdapter, &STRQOStxBlksLowPrcntVI,
QOS_TX_BLKS_LOW_PRCNT_VI_DEF, QOS_TX_BLKS_HIGH_PRCNT_MIN,
QOS_TX_BLKS_HIGH_PRCNT_MAX,
sizeof p->TnetwDrv_InitParams.whalCtrl_init.TxBlocksLowPercentPerAc[QOS_AC_VI],
(PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.TxBlocksLowPercentPerAc[QOS_AC_VI]);
regReadIntegerParameter(pAdapter, &STRQOStxBlksLowPrcntVO,
QOS_TX_BLKS_LOW_PRCNT_VO_DEF, QOS_TX_BLKS_HIGH_PRCNT_MIN,
QOS_TX_BLKS_HIGH_PRCNT_MAX,
sizeof p->TnetwDrv_InitParams.whalCtrl_init.TxBlocksLowPercentPerAc[QOS_AC_VO],
(PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.TxBlocksLowPercentPerAc[QOS_AC_VO]);
regReadIntegerParameter(pAdapter, &STRQOSShortRetryLimitBE,
QOS_SHORT_RETRY_LIMIT_BE_DEF, QOS_SHORT_RETRY_LIMIT_BE_MIN,
QOS_SHORT_RETRY_LIMIT_BE_MAX,
sizeof p->qosMngrInitParams.ShortRetryLimit[QOS_AC_BE],
(PUCHAR)&p->qosMngrInitParams.ShortRetryLimit[QOS_AC_BE]);
regReadIntegerParameter(pAdapter, &STRQOSShortRetryLimitBK,
QOS_SHORT_RETRY_LIMIT_BK_DEF, QOS_SHORT_RETRY_LIMIT_BK_MIN,
QOS_SHORT_RETRY_LIMIT_BK_MAX,
sizeof p->qosMngrInitParams.ShortRetryLimit[QOS_AC_BK],
(PUCHAR)&p->qosMngrInitParams.ShortRetryLimit[QOS_AC_BK]);
regReadIntegerParameter(pAdapter, &STRQOSShortRetryLimitVI,
QOS_SHORT_RETRY_LIMIT_VI_DEF, QOS_SHORT_RETRY_LIMIT_VI_MIN,
QOS_SHORT_RETRY_LIMIT_VI_MAX,
sizeof p->qosMngrInitParams.ShortRetryLimit[QOS_AC_VI],
(PUCHAR)&p->qosMngrInitParams.ShortRetryLimit[QOS_AC_VI]);
regReadIntegerParameter(pAdapter, &STRQOSShortRetryLimitVO,
QOS_SHORT_RETRY_LIMIT_VO_DEF, QOS_SHORT_RETRY_LIMIT_VO_MIN,
QOS_SHORT_RETRY_LIMIT_VO_MAX,
sizeof p->qosMngrInitParams.ShortRetryLimit[QOS_AC_VO],
(PUCHAR)&p->qosMngrInitParams.ShortRetryLimit[QOS_AC_VO]);
regReadIntegerParameter(pAdapter, &STRQOSLongRetryLimitBE,
QOS_LONG_RETRY_LIMIT_BE_DEF, QOS_LONG_RETRY_LIMIT_BE_MIN,
QOS_LONG_RETRY_LIMIT_BE_MAX,
sizeof p->qosMngrInitParams.LongRetryLimit[QOS_AC_BE],
(PUCHAR)&p->qosMngrInitParams.LongRetryLimit[QOS_AC_BE]);
regReadIntegerParameter(pAdapter, &STRQOSLongRetryLimitBK,
QOS_LONG_RETRY_LIMIT_BK_DEF, QOS_LONG_RETRY_LIMIT_BK_MIN,
QOS_LONG_RETRY_LIMIT_BK_MAX,
sizeof p->qosMngrInitParams.LongRetryLimit[QOS_AC_BK],
(PUCHAR)&p->qosMngrInitParams.LongRetryLimit[QOS_AC_BK]);
regReadIntegerParameter(pAdapter, &STRQOSLongRetryLimitVI,
QOS_LONG_RETRY_LIMIT_VI_DEF, QOS_LONG_RETRY_LIMIT_VI_MIN,
QOS_LONG_RETRY_LIMIT_VI_MAX,
sizeof p->qosMngrInitParams.LongRetryLimit[QOS_AC_VI],
(PUCHAR)&p->qosMngrInitParams.LongRetryLimit[QOS_AC_VI]);
regReadIntegerParameter(pAdapter, &STRQOSLongRetryLimitVO,
QOS_LONG_RETRY_LIMIT_VO_DEF, QOS_LONG_RETRY_LIMIT_VO_MIN,
QOS_LONG_RETRY_LIMIT_VO_MAX,
sizeof p->qosMngrInitParams.LongRetryLimit[QOS_AC_VO],
(PUCHAR)&p->qosMngrInitParams.LongRetryLimit[QOS_AC_VO]);
regReadIntegerParameter(pAdapter, &STRQOSAckPolicyBE,
QOS_ACK_POLICY_BE_DEF, QOS_ACK_POLICY_BE_MIN,
QOS_ACK_POLICY_BE_MAX,
sizeof p->qosMngrInitParams.acAckPolicy[QOS_AC_BE],
(PUCHAR)&p->qosMngrInitParams.acAckPolicy[QOS_AC_BE]);
regReadIntegerParameter(pAdapter, &STRQOSAckPolicyBK,
QOS_ACK_POLICY_BK_DEF, QOS_ACK_POLICY_BK_MIN,
QOS_ACK_POLICY_BK_MAX,
sizeof p->qosMngrInitParams.acAckPolicy[QOS_AC_BK],
(PUCHAR)&p->qosMngrInitParams.acAckPolicy[QOS_AC_BK]);
regReadIntegerParameter(pAdapter, &STRQOSAckPolicyVI,
QOS_ACK_POLICY_VI_DEF, QOS_ACK_POLICY_VI_MIN,
QOS_ACK_POLICY_VI_MAX,
sizeof p->qosMngrInitParams.acAckPolicy[QOS_AC_VI],
(PUCHAR)&p->qosMngrInitParams.acAckPolicy[QOS_AC_VI]);
regReadIntegerParameter(pAdapter, &STRQOSAckPolicyVO,
QOS_ACK_POLICY_VO_DEF, QOS_ACK_POLICY_VO_MIN,
QOS_ACK_POLICY_VO_MAX,
sizeof p->qosMngrInitParams.acAckPolicy[QOS_AC_VO],
(PUCHAR)&p->qosMngrInitParams.acAckPolicy[QOS_AC_VO]);
regReadIntegerParameter(pAdapter, &STRQoSqueue0OverFlowPolicy,
QOS_QUEUE_0_OVFLOW_POLICY_DEF, QOS_QUEUE_0_OVFLOW_POLICY_MIN,
QOS_QUEUE_0_OVFLOW_POLICY_MAX,
sizeof p->qosMngrInitParams.QueueOvFlowPolicy[0],
(PUCHAR)&p->qosMngrInitParams.QueueOvFlowPolicy[0]);
regReadIntegerParameter(pAdapter, &STRQoSqueue1OverFlowPolicy,
QOS_QUEUE_1_OVFLOW_POLICY_DEF, QOS_QUEUE_1_OVFLOW_POLICY_MIN,
QOS_QUEUE_1_OVFLOW_POLICY_MAX,
sizeof p->qosMngrInitParams.QueueOvFlowPolicy[1],
(PUCHAR)&p->qosMngrInitParams.QueueOvFlowPolicy[1]);
regReadIntegerParameter(pAdapter, &STRQoSqueue2OverFlowPolicy,
QOS_QUEUE_2_OVFLOW_POLICY_DEF, QOS_QUEUE_2_OVFLOW_POLICY_MIN,
QOS_QUEUE_2_OVFLOW_POLICY_MAX,
sizeof p->qosMngrInitParams.QueueOvFlowPolicy[2],
(PUCHAR)&p->qosMngrInitParams.QueueOvFlowPolicy[2]);
regReadIntegerParameter(pAdapter, &STRQoSqueue3OverFlowPolicy,
QOS_QUEUE_3_OVFLOW_POLICY_DEF, QOS_QUEUE_3_OVFLOW_POLICY_MIN,
QOS_QUEUE_3_OVFLOW_POLICY_MAX,
sizeof p->qosMngrInitParams.QueueOvFlowPolicy[3],
(PUCHAR)&p->qosMngrInitParams.QueueOvFlowPolicy[3]);
/* Packet Burst parameters */
regReadIntegerParameter(pAdapter, &STRQOSPacketBurstEnable,
QOS_PACKET_BURST_ENABLE_DEF, QOS_PACKET_BURST_ENABLE_MIN,
QOS_PACKET_BURST_ENABLE_MAX,
sizeof p->qosMngrInitParams.PacketBurstEnable,
(PUCHAR)&p->qosMngrInitParams.PacketBurstEnable);
PRINTF(DBG_REGISTRY,( "STRQOSPacketBurstEnable = %d\n", p->qosMngrInitParams.PacketBurstEnable));
regReadIntegerParameter(pAdapter, &STRQOSPacketBurstTxOpLimit,
QOS_PACKET_BURST_TXOP_LIMIT_DEF, QOS_PACKET_BURST_TXOP_LIMIT_MIN,
QOS_PACKET_BURST_TXOP_LIMIT_MAX,
sizeof p->qosMngrInitParams.PacketBurstTxOpLimit,
(PUCHAR)&p->qosMngrInitParams.PacketBurstTxOpLimit);
/*---------------------------
Measurement parameters
-----------------------------*/
regReadIntegerParameter(pAdapter, &STRMeasurTrafficThreshold,
MEASUREMENT_TRAFFIC_THRSHLD_DEF, MEASUREMENT_TRAFFIC_THRSHLD_MIN, MEASUREMENT_TRAFFIC_THRSHLD_MAX,
sizeof p->measurementInitParams.trafficIntensityThreshold,
(PUCHAR)&p->measurementInitParams.trafficIntensityThreshold);
regReadIntegerParameter(pAdapter, &STRMeasurMaxDurationOnNonServingChannel,
MEASUREMENT_MAX_DUR_NON_SRV_CHANNEL_DEF, MEASUREMENT_MAX_DUR_NON_SRV_CHANNEL_MIN, MEASUREMENT_MAX_DUR_NON_SRV_CHANNEL_MAX,
sizeof p->measurementInitParams.maxDurationOnNonServingChannel,
(PUCHAR)&p->measurementInitParams.maxDurationOnNonServingChannel);
/*---------------------------
EXC Manager parameters
-----------------------------*/
#ifdef EXC_MODULE_INCLUDED
regReadIntegerParameter(pAdapter, &STRExcModeEnabled,
EXC_MNGR_ENABLE_DEF, EXC_MNGR_ENABLE_MIN, EXC_MNGR_ENABLE_MAX,
sizeof p->excMngrParams.excEnabled,
(PUCHAR)&p->excMngrParams.excEnabled);
p->measurementInitParams.excEnabled = p->excMngrParams.excEnabled;
#endif
regReadIntegerParameter(pAdapter, &STRExcTestIgnoreDeAuth0,
EXC_TEST_IGNORE_DEAUTH_0_DEF, EXC_TEST_IGNORE_DEAUTH_0_MIN, EXC_TEST_IGNORE_DEAUTH_0_MAX,
sizeof p->apConnParams.ignoreDeauthReason0,
(PUCHAR)&p->apConnParams.ignoreDeauthReason0);
/*---------------------------
EEPROM less support
-----------------------------*/
regReadIntegerParameter(pAdapter, &STREEPROMlessModeSupported,
HAL_CTRL_EEPROMLESS_ENABLE_DEF, HAL_CTRL_EEPROMLESS_ENABLE_MIN,
HAL_CTRL_EEPROMLESS_ENABLE_MAX,
sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlEepromLessEnable,
(PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlEepromLessEnable);
pAdapter->EepromSupported = p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlEepromLessEnable;
regReadStringParameter(pAdapter, &STRstationMacAddress,
(PCHAR)(defStaMacAddress), 11,
(PUCHAR)staMACAddress, &regMACstrLen);
/*reads the arp ip from table*/
regReadStringParameter(pAdapter ,&STRArp_Ip_Addr,
(PCHAR)(defArpIpAddress),REG_ARP_IP_ADDR_STR_LEN,
(PUCHAR)staArpIpAddress,&regArpIpStrLen ) ;
regReadIntegerParameter(pAdapter, &STRArp_Ip_Filter_Ena,
DEF_FILTER_ENABLE_VALUE, MIN_FILTER_ENABLE_VALUE, MAX_FILTER_ENABLE_VALUE,
sizeof p->TnetwDrv_InitParams.arpIpFilterParams.isFilterEnabled,
(PUCHAR)&p->TnetwDrv_InitParams.arpIpFilterParams.isFilterEnabled);
regConvertStringtoIpAddress(staArpIpAddress, (PUCHAR)&(p->TnetwDrv_InitParams.arpIpFilterParams.arpIpInitParams.addr[0]) );
initRadioValusFromRgstryString( (PCHAR)(staMACAddress),
(PCHAR)&(p->TnetwDrv_InitParams.whalCtrl_init.StaMacAddress[0]),
6);
/*fource FragThreshold to be even value (round it down)MR WLAN00003501*/
p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlFragThreshold &= 0xFFFE;
/*----------------------------------
Health Monitor registry init
------------------------------------*/
/* this time out is common to HealthCheck and TX power adjust */
regReadIntegerParameter(pAdapter, &STRHealthMonitorCheckPeriod,
DEF_TX_POWER_ADJUST_TIME_OUT, 0, 65000, /* in msec */
sizeof p->healthMonitorInitParams.healthCheckPeriod,
(PUCHAR)&p->healthMonitorInitParams.healthCheckPeriod);
/* No scan complete recovery enabled */
regReadIntegerParameter(pAdapter, &STRRecoveryEnabledNoScanComplete,
1, 0, 1, /* default is enabled */
sizeof (p->healthMonitorInitParams.recoveryTriggerEnabled[ NO_SCAN_COMPLETE_FAILURE ]),
(PUCHAR)&(p->healthMonitorInitParams.recoveryTriggerEnabled[ NO_SCAN_COMPLETE_FAILURE ]) );
/* Mailbox failure recovery enabled */
regReadIntegerParameter(pAdapter, &STRRecoveryEnabledMboxFailure,
1, 0, 1, /* default is enabled */
sizeof (p->healthMonitorInitParams.recoveryTriggerEnabled[ MBOX_FAILURE ]),
(PUCHAR)&(p->healthMonitorInitParams.recoveryTriggerEnabled[ MBOX_FAILURE ]) );
/* HW awake failure recovery enabled */
regReadIntegerParameter(pAdapter, &STRRecoveryEnabledHwAwakeFailure,
1, 0, 1, /* default is enabled */
sizeof (p->healthMonitorInitParams.recoveryTriggerEnabled[ HW_AWAKE_FAILURE ]),
(PUCHAR)&(p->healthMonitorInitParams.recoveryTriggerEnabled[ HW_AWAKE_FAILURE ]) );
/* Bus error recovery enabled */
regReadIntegerParameter(pAdapter, &STRRecoveryEnabledBusError,
1, 0, 1, /* default is enabled */
sizeof (p->healthMonitorInitParams.recoveryTriggerEnabled[ BUS_ERROR ]),
(PUCHAR)&(p->healthMonitorInitParams.recoveryTriggerEnabled[ BUS_ERROR ]) );
/* Device error recovery enabled */
regReadIntegerParameter(pAdapter, &STRRecoveryEnabledDeviceError,
1, 0, 1, /* default is enabled */
sizeof (p->healthMonitorInitParams.recoveryTriggerEnabled[ DEVICE_ERROR ]),
(PUCHAR)&(p->healthMonitorInitParams.recoveryTriggerEnabled[ DEVICE_ERROR ]) );
/* TX stuck recovery enabled */
regReadIntegerParameter(pAdapter, &STRRecoveryEnabledTxStuck,
1, 0, 1, /* default is enabled */
sizeof (p->healthMonitorInitParams.recoveryTriggerEnabled[ TX_STUCK ]),
(PUCHAR)&(p->healthMonitorInitParams.recoveryTriggerEnabled[ TX_STUCK ]) );
/* disconnect timeout recovery enabled */
regReadIntegerParameter(pAdapter, &STRRecoveryEnabledDisconnectTimeout,
0, 0, 1, /* default is enabled */
sizeof (p->healthMonitorInitParams.recoveryTriggerEnabled[ DISCONNECT_TIMEOUT ]),
(PUCHAR)&(p->healthMonitorInitParams.recoveryTriggerEnabled[ DISCONNECT_TIMEOUT ]) );
/* Power save failure recovery enabled */
regReadIntegerParameter(pAdapter, &STRRecoveryEnabledPowerSaveFailure,
1, 0, 1, /* default is enabled */
sizeof (p->healthMonitorInitParams.recoveryTriggerEnabled[ POWER_SAVE_FAILURE ]),
(PUCHAR)&(p->healthMonitorInitParams.recoveryTriggerEnabled[ POWER_SAVE_FAILURE ]) );
/* Measurement failure recovery enabled */
regReadIntegerParameter(pAdapter, &STRRecoveryEnabledMeasurementFailure,
1, 0, 1, /* default is enabled */
sizeof (p->healthMonitorInitParams.recoveryTriggerEnabled[ MEASUREMENT_FAILURE ]),
(PUCHAR)&(p->healthMonitorInitParams.recoveryTriggerEnabled[ MEASUREMENT_FAILURE ]) );
/*-----------------------------------*/
/* Hardware ACI recovery */
/*-----------------------------------*/
regReadIntegerParameter(pAdapter, &STRHardwareACIMode,
HAL_CTRL_ACI_MODE_DEF, HAL_CTRL_ACI_MODE_MIN,
HAL_CTRL_ACI_MODE_MAX,
sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlACIMode,
(PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlACIMode);
regReadIntegerParameter(pAdapter, &STRHardwareACIInputCCA,
HAL_CTRL_ACI_INPUT_CCA_DEF, HAL_CTRL_ACI_INPUT_CCA_MIN,
HAL_CTRL_ACI_INPUT_CCA_MAX,
sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlInputCCA,
(PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlInputCCA);
regReadIntegerParameter(pAdapter, &STRHardwareACIQualifiedCCA,
HAL_CTRL_ACI_QUALIFIED_CCA_DEF, HAL_CTRL_ACI_QUALIFIED_CCA_MIN,
HAL_CTRL_ACI_QUALIFIED_CCA_MAX,
sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlQualifiedCCA,
(PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlQualifiedCCA);
regReadIntegerParameter(pAdapter, &STRHardwareACIStompForRx,
HAL_CTRL_ACI_STOMP_FOR_RX_DEF, HAL_CTRL_ACI_STOMP_FOR_RX_MIN,
HAL_CTRL_ACI_STOMP_FOR_RX_MAX,
sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlStompForRx,
(PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlStompForRx);
regReadIntegerParameter(pAdapter, &STRHardwareACIStompForTx,
HAL_CTRL_ACI_STOMP_FOR_TX_DEF, HAL_CTRL_ACI_STOMP_FOR_TX_MIN,
HAL_CTRL_ACI_STOMP_FOR_TX_MAX,
sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlStompForTx,
(PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlStompForTx);
regReadIntegerParameter(pAdapter, &STRHardwareACITxCCA,
HAL_CTRL_ACI_TX_CCA_DEF, HAL_CTRL_ACI_TX_CCA_MIN,
HAL_CTRL_ACI_TX_CCA_MAX,
sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlTxCCA,
(PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlTxCCA);
/*----------------------------------
TX power adjust
------------------------------------*/
regReadIntegerParameter(pAdapter, &STRTxPowerCheckTime,
1, 1, 1200, /* in units of 5000 ms */
sizeof p->siteMgrInitParams.TxPowerCheckTime,
(PUCHAR)&p->siteMgrInitParams.TxPowerCheckTime);
regReadIntegerParameter(pAdapter, &STRTxPowerControlOn,
1, 0, 1, /* on/off (1/0) default is on */
sizeof p->siteMgrInitParams.TxPowerControlOn,
(PUCHAR)&p->siteMgrInitParams.TxPowerControlOn);
regReadIntegerParameter(pAdapter, &STRTxPowerRssiThresh,
38, 0, 200, /* the value is positive and will be translated by driver */
sizeof p->siteMgrInitParams.TxPowerRssiThresh,
(PUCHAR)&p->siteMgrInitParams.TxPowerRssiThresh);
regReadIntegerParameter(pAdapter, &STRTxPowerRssiRestoreThresh,
45, 0, 200, /* the value is positive and will be translated by driver */
sizeof p->siteMgrInitParams.TxPowerRssiRestoreThresh,
(PUCHAR)&p->siteMgrInitParams.TxPowerRssiRestoreThresh);
regReadIntegerParameter(pAdapter, &STRTxPowerTempRecover,
MIN_TX_POWER, MIN_TX_POWER, MAX_TX_POWER, /* Set Min value for Atheros fix */
sizeof p->regulatoryDomainInitParams.uTemporaryTxPower,
(PUCHAR)&p->regulatoryDomainInitParams.uTemporaryTxPower);
/*----------------------------------
end of TX power adjust
------------------------------------*/
/*----------------------------------
Scan Concentrator
------------------------------------*/
regReadIntegerParameter( pAdapter, &STRPassiveScanDwellTime,
SCAN_CNCN_DRIVER_DEFAULT_DWELL_TIME_DEF, SCAN_CNCN_DRIVER_DEFAULT_DWELL_TIME_MIN, SCAN_CNCN_DRIVER_DEFAULT_DWELL_TIME_MAX,
sizeof p->scanConcentratorInitParams.passiveScanDwellTime,
(PUCHAR)&p->scanConcentratorInitParams.passiveScanDwellTime );
//TRS: Scan changes from TI
regReadIntegerParameter( pAdapter, &STRMinimumDurationBetweenOidScans,
SCAN_CNCN_MIN_DURATION_FOR_OID_SCANS_DEF, SCAN_CNCN_MIN_DURATION_FOR_OID_SCANS_MIN, SCAN_CNCN_MIN_DURATION_FOR_OID_SCANS_MAX,
sizeof p->scanConcentratorInitParams.minimumDurationBetweenOidScans,
(PUCHAR)&p->scanConcentratorInitParams.minimumDurationBetweenOidScans );
//TRS: end ofScan changes from TI
/*
* set etherMaxPayloadSize parameter for MTU size setting
*/
if(p->ctrlDataInitParams.ctrlDataFourXEnable == TRUE)
{
if(p->siteMgrInitParams.siteMgrDesiredBSSType == BSS_ANY)
{
/*disable 4x if we are in any mode*/
p->ctrlDataInitParams.ctrlDataFourXEnable = FALSE;
pAdapter->etherMaxPayloadSize = NOT_FOUR_X_MODE_PAYLOAD_SIZE;
}
else
if(p->siteMgrInitParams.siteMgrDesiredBSSType == BSS_INDEPENDENT)
{
pAdapter->etherMaxPayloadSize = IBSS_FOUR_X_MODE_PAYLOAD_SIZE;
p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlRtsThreshold = HAL_CTRL_RTS_THRESHOLD_MAX;
p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlFragThreshold = HAL_CTRL_FRAG_THRESHOLD_MAX;
p->ctrlDataInitParams.ctrlDataFourXEnable = FALSE;
}
else
if(p->siteMgrInitParams.siteMgrDesiredBSSType == BSS_INFRASTRUCTURE)
{
pAdapter->etherMaxPayloadSize = NOT_FOUR_X_MODE_PAYLOAD_SIZE;
}
}
else
{
pAdapter->etherMaxPayloadSize = NOT_FOUR_X_MODE_PAYLOAD_SIZE;
}
}
/*-----------------------------------------------------------------------------
Routine Name:
regReadParameters
Routine Description:
Arguments:
Return Value:
None
-----------------------------------------------------------------------------*/
VOID
regReadIntegerParameter(
PTIWLN_ADAPTER_T pAdapter,
PNDIS_STRING pParameterName,
ULONG defaultValue,
ULONG minValue,
ULONG maxValue,
UCHAR parameterSize,
PUCHAR pParameter
)
{
PNDIS_CONFIGURATION_PARAMETER RetValue;
NDIS_STATUS Status;
ULONG value;
NdisReadConfiguration(&Status, &RetValue,
pAdapter->ConfigHandle, pParameterName,
NdisParameterInteger);
if(Status != NDIS_STATUS_SUCCESS) {
NdisReadConfiguration(&Status, &RetValue,
pAdapter->ConfigHandle, pParameterName,
NdisParameterString
);
if(Status == NDIS_STATUS_SUCCESS) {
assignRegValue(&value, RetValue);
RetValue->ParameterData.IntegerData = value;
}
}
if (Status != NDIS_STATUS_SUCCESS ||
RetValue->ParameterData.IntegerData < minValue ||
RetValue->ParameterData.IntegerData > maxValue)
{
PRINTF(DBG_REGISTRY,( "NdisReadConfiguration fail\n"));
value = defaultValue;
} else
{
value = RetValue->ParameterData.IntegerData;
}
switch (parameterSize)
{
case 1:
*((PUCHAR) pParameter) = (UCHAR) value;
break;
case 2:
*((PUSHORT) pParameter) = (USHORT) value;
break;
case 4:
*((PULONG) pParameter) = (ULONG) value;
break;
default:
PRINT(DBG_REGISTRY_ERROR, "TIWL: Illegal Registry parameter size\n");
break;
}
}
/*-----------------------------------------------------------------------------
Routine Name:
regReadParameters
Routine Description:
Arguments:
Return Value:
None
-----------------------------------------------------------------------------*/
VOID
regReadStringParameter(
PTIWLN_ADAPTER_T pAdapter,
PNDIS_STRING pParameterName,
PCHAR pDefaultValue,
USHORT defaultLen,
PUCHAR pParameter,
void* pParameterSize
)
{
PNDIS_CONFIGURATION_PARAMETER RetValue;
NDIS_STATUS Status;
ANSI_STRING ansiString;
PUCHAR pSizeChar = 0;
PUSHORT pSizeShort = 0;
if(defaultLen <= 256)
{
pSizeChar = (PUCHAR)pParameterSize;
ansiString.MaximumLength = 256;
}
else
{
pSizeShort = (PUSHORT)pParameterSize;
ansiString.MaximumLength = 32576;
}
NdisReadConfiguration(&Status, &RetValue,
pAdapter->ConfigHandle, pParameterName,
NdisParameterString);
if (Status == NDIS_STATUS_SUCCESS)
{
ansiString.Buffer = (PCHAR)pParameter;
NdisUnicodeStringToAnsiString(&ansiString, &RetValue->ParameterData.StringData);
if(defaultLen <= 256)
*pSizeChar = (UCHAR)ansiString.Length;
else
*pSizeShort = (USHORT)ansiString.Length;
} else
{
if(defaultLen <= 256)
*pSizeChar = (UCHAR)defaultLen;
else
*pSizeShort = (USHORT)defaultLen;
memcpy(pParameter, pDefaultValue, defaultLen);
}
PRINTF(DBG_REGISTRY_LOUD, ("Read String Registry: %c%c%c%c%c%c%c%c%c%c%c%c = %s\n",
pParameterName->Buffer[0],
pParameterName->Buffer[1],
pParameterName->Buffer[2],
pParameterName->Buffer[3],
pParameterName->Buffer[4],
pParameterName->Buffer[5],
pParameterName->Buffer[6],
pParameterName->Buffer[7],
pParameterName->Buffer[8],
pParameterName->Buffer[9],
pParameterName->Buffer[10],
pParameterName->Buffer[11],
pParameter));
}
/*-----------------------------------------------------------------------------
Routine Name:
regReadParameters
Routine Description:
Arguments:
Return Value:
None
-----------------------------------------------------------------------------*/
VOID
regReadUnicodeStringParameter(
PTIWLN_ADAPTER_T pAdapter,
PNDIS_STRING pParameterName,
PCHAR pDefaultValue,
UCHAR defaultLen,
PUCHAR pParameter,
PUCHAR pParameterSize
)
{
PNDIS_CONFIGURATION_PARAMETER RetValue;
NDIS_STATUS Status;
NdisReadConfiguration(&Status, &RetValue,
pAdapter->ConfigHandle, pParameterName,
NdisParameterString);
if (Status == NDIS_STATUS_SUCCESS)
{
*pParameterSize = (UCHAR)RetValue->ParameterData.StringData.Length;
memcpy(pParameter, (PUCHAR)RetValue->ParameterData.StringData.Buffer, *pParameterSize);
} else
{
*pParameterSize = defaultLen;
memcpy(pParameter, pDefaultValue, defaultLen);
}
}
/*-----------------------------------------------------------------------------
Routine Name:
regReadParameters
Routine Description:
Arguments:
Return Value:
None
-----------------------------------------------------------------------------*/
VOID
regReadWepKeyParameter(
PTIWLN_ADAPTER_T pAdapter,
PUCHAR pKeysStructure,
UINT8 defaultKeyId
)
{
NDIS_STATUS status;
securityKeys_t *pSecKeys;
int i;
int len;
UCHAR Buf[MAX_KEY_BUFFER_LEN];
PNDIS_CONFIGURATION_PARAMETER RetValue;
ANSI_STRING ansiString;
NDIS_STRING STRdot11DefaultWEPKey[4] =
{ NDIS_STRING_CONST( "dot11WEPDefaultKey1" ),
NDIS_STRING_CONST( "dot11WEPDefaultKey2" ),
NDIS_STRING_CONST( "dot11WEPDefaultKey3" ),
NDIS_STRING_CONST( "dot11WEPDefaultKey4" )
};
PRINTF(DBG_REGISTRY_LOUD, ("Reading WEP keys\n"));
pSecKeys = (securityKeys_t*)pKeysStructure;
/**/
/* Read WEP from registry*/
/**/
for ( i = 0; i < DOT11_MAX_DEFAULT_WEP_KEYS; i++ )
{
NdisReadConfiguration(&status, &RetValue,
pAdapter->ConfigHandle, &STRdot11DefaultWEPKey[i],
NdisParameterString);
if(status == NDIS_STATUS_SUCCESS)
{
ansiString.Buffer = (PCHAR)Buf;
ansiString.MaximumLength = MAX_KEY_BUFFER_LEN;
pSecKeys->keyIndex = i;
pSecKeys->keyType = WEP_KEY;
NdisZeroMemory((void *)pSecKeys->macAddress.addr, 6);
if(((char *)(RetValue->ParameterData.StringData.Buffer))[1] == 0)
{
NdisUnicodeStringToAnsiString(&ansiString, &RetValue->ParameterData.StringData);
len = decryptWEP((PCHAR)Buf, (PCHAR)pSecKeys->encKey, ansiString.Length);
} else {
len = decryptWEP((PCHAR)RetValue->ParameterData.StringData.Buffer,
(PCHAR)pSecKeys->encKey,
RetValue->ParameterData.StringData.Length);
}
if(len < ACX_64BITS_WEP_KEY_LENGTH_BYTES)
{
PRINTF(DBG_REGISTRY_ERROR, ("Error: minimum WEP key size is 5 bytes(%d)\n", len));
pSecKeys->keyType = NULL_KEY;
len = 0;
}
else if(len < ACX_128BITS_WEP_KEY_LENGTH_BYTES)
{
len = ACX_64BITS_WEP_KEY_LENGTH_BYTES;
}
else if(len < ACX_256BITS_WEP_KEY_LENGTH_BYTES)
{
len = ACX_128BITS_WEP_KEY_LENGTH_BYTES;
}
else
len = ACX_256BITS_WEP_KEY_LENGTH_BYTES;
pSecKeys->encLen = (UINT8)len;
} else
{
pSecKeys->keyType = NULL_KEY;
pSecKeys->encLen = 0;
}
/*create local keys cache*/
pAdapter->DefaultWepKeys[i].KeyIndex = i;
if(i==defaultKeyId)
pAdapter->DefaultWepKeys[i].KeyIndex |= 0x80000000;
pAdapter->DefaultWepKeys[i].KeyLength = pSecKeys->encLen;
NdisMoveMemory((void *)pAdapter->DefaultWepKeys[i].KeyMaterial,
(void *)pSecKeys->encKey, pSecKeys->encLen);
pAdapter->DefaultWepKeys[i].Length = sizeof(OS_802_11_WEP);
pSecKeys++;
}
}
#define iswhite(c) ( (c==' ') || (c=='\t') || (c=='\n') )
/*
*
* Fun: isnumber
*
* Desc: check if the ascii character is a number in the given base
*
* Ret: 1 if number is a digit, 0 if not.
*
* Notes: none
*
* File: btoi.c
*
*/
BOOLEAN
isnumber ( short *pi, char c, short base )
{
/* return 1 if c is a digit in the give base, else return 0 */
/* place value of digit at pi */
if ( base == 16 )
{
if ( '0' <= c && c <= '9' )
{
*pi = c - '0';
return (1);
}
else if ( 'a' <= c && c <= 'f' )
{
*pi = c - 'a' + 10 ;
return (1);
}
else if ( 'A' <= c && c <= 'F' )
{
*pi = c - 'A' + 10 ;
return (1);
}
else
{
return (0);
}
}
c -= '0';
if ( 0 <= (signed char)c && c < base )
{
*pi = c ;
return (1);
}
else
{
return (0);
}
} /* end of isnumber */
short
_btoi ( char *sptr, short slen, int *pi, short base )
{
char *s, c ;
short d, sign ;
int result ;
char saved ;
s = sptr ;
result = 0 ;
saved = sptr [slen];
sptr [slen] = '\0';
/* skip initial white space */
/* while ( (c = *s++) && iswhite(c) ); */
do
{
c = *s++;
if (!(c && iswhite(c)))
break;
}while(1);
--s ;
/* recognize optional sign */
if ( *s == '-' )
{
sign = - 1 ;
s++ ;
}
else if ( *s == '+' )
{
sign = 1 ;
s++ ;
}
else
{
sign = 1 ;
}
/* recognize optional hex# prefix */
if ((base == 16) && ((*s == '0') && ((*(s + 1) == 'x') || (*(s + 1) == 'X'))
))
s += 2 ;
/* recognize digits */
/* for (; (c = *s++) && isnumber(&d, c, base) ; )
{
result = base * result + d ;
}
*/
while(1)
{
c = *s++;
if (!(c && isnumber(&d, c, base)))
break;
result = base * result + d ;
};
*pi = sign * result ;
sptr [slen] = saved ; /* restore character which we changed to null */
return (s - sptr - 1);
} /* end of _btoi */
static int decryptWEP
(
PCHAR pSrc,
PCHAR pDst,
ULONG len
)
{
/**/
/* key to use for encryption*/
/**/
static LPCSTR lpEncryptKey = "jkljz98c&2>a+t)cl5[d=n3;\"f_um6\\d~v%$HO1";
int cnEncryptLen = strlen(lpEncryptKey);
char cIn, cCrypt, cHex[3];
int i, j, nLen;
int nPos;
nLen = len / 2;
nPos = len;
/* start reading from end*/
nPos = len - 2;
for(i = 0; (i < nLen) && (nPos >= 0); i++, nPos -= 2)
{
/* get hex character*/
cHex[0] = pSrc[nPos];
cHex[1] = pSrc[nPos + 1];
cHex[2] = 0;
_btoi ( cHex, 2, &j, 16);
cIn = (char) j;
cCrypt = lpEncryptKey[i % cnEncryptLen];
cIn = cIn ^ cCrypt;
pDst[i] = cIn;
}
PRINTF(DBG_REGISTRY_LOUD, ("First 5 bytes of WEP: %x-%x-%x-%x-%x\n",
pDst[0],
pDst[1],
pDst[2],
pDst[3],
pDst[4]));
return nLen;
}
static VOID initRadioValusFromRgstryString
(
PCHAR pSrc,
PCHAR pDst,
ULONG len
)
{
int j;
ULONG count;
for (count = 0 ; count < len ; count++)
{
_btoi((char *) (pSrc+(count*3)), 2, &j, 16 );
pDst[count] = (UINT8) j;
}
}
/*-----------------------------------------------------------------------------
Routine Name:
regReadParameters
Routine Description:
Arguments:
Return Value:
None
-----------------------------------------------------------------------------*/
VOID
regReadParameters(
PTIWLN_ADAPTER_T pAdapter
)
{
NDIS_STRING SlotNumberStr = NDIS_STRING_CONST("SlotNumber");
PNDIS_CONFIGURATION_PARAMETER RetValue;
NDIS_STATUS Status;
NdisReadConfiguration(&Status, &RetValue,
pAdapter->ConfigHandle, &SlotNumberStr,
NdisParameterInteger);
if (Status != NDIS_STATUS_SUCCESS)
pAdapter->SlotNumber = 0;
else
pAdapter->SlotNumber = RetValue->ParameterData.IntegerData;
PRINTF(DBG_REGISTRY_VERY_LOUD, ("TIWL: SlotNumber-%ld\n", pAdapter->SlotNumber));
}
/*-----------------------------------------------------------------------------
Routine Name:
regWriteInstanceNumber
Routine Description:
Arguments:
Return Value:
None
-----------------------------------------------------------------------------*/
VOID
regWriteInstanceNumber(
PTIWLN_ADAPTER_T pAdapter
)
{
#ifdef _WINDOWS
#endif /* _WINDOWS */
}
#ifdef TI_DBG
VOID
regReadLastDbgState(
PTIWLN_ADAPTER_T pAdapter
)
{
NDIS_STRING OsDbgStr = NDIS_STRING_CONST("OsDbgState");
PNDIS_CONFIGURATION_PARAMETER Value;
NDIS_STATUS Status;
NdisReadConfiguration(&Status, &Value,
pAdapter->ConfigHandle, &OsDbgStr,
NdisParameterInteger
);
if (Status != NDIS_STATUS_SUCCESS)
{
TiDebugFlag = ((DBG_NDIS_OIDS | DBG_INIT | DBG_RECV | DBG_SEND | DBG_IOCTL | DBG_INTERRUPT) << 16) |
DBG_SEV_VERY_LOUD | DBG_SEV_INFO | DBG_SEV_LOUD | DBG_SEV_ERROR | DBG_SEV_FATAL_ERROR;
} else
{
PRINTF(DBG_REGISTRY_VERY_LOUD, ("TIWL: New Flag - 0x%lX\n", Value->ParameterData.IntegerData));
TiDebugFlag = Value->ParameterData.IntegerData;
}
}
VOID
regWriteLastDbgState(
PTIWLN_ADAPTER_T pAdapter
)
{
NDIS_STRING OsDbgStr = NDIS_STRING_CONST("OsDbgState");
NDIS_CONFIGURATION_PARAMETER Value;
NDIS_STATUS Status;
Value.ParameterType = NdisParameterInteger;
Value.ParameterData.IntegerData = TiDebugFlag;
NdisWriteConfiguration(&Status, pAdapter->ConfigHandle,
&OsDbgStr, &Value);
}
#endif
static void readRates(PTIWLN_ADAPTER_T pAdapter, initTable_t *pInitTable)
{
/*
** B band
*/
regReadIntegerParameter(pAdapter, &STRdot11BasicRateMask_B,
BASIC_RATE_SET_1_2_5_5_11, BASIC_RATE_SET_1_2, BASIC_RATE_SET_1_2_5_5_11,
sizeof pInitTable->siteMgrInitParams.siteMgrRegstryBasicRate[DOT11_B_MODE],
(PUCHAR)&pInitTable->siteMgrInitParams.siteMgrRegstryBasicRate[DOT11_B_MODE]);
regReadIntegerParameter(pAdapter, &STRdot11SupportedRateMask_B,
SUPPORTED_RATE_SET_1_2_5_5_11_22, SUPPORTED_RATE_SET_1_2, SUPPORTED_RATE_SET_1_2_5_5_11_22,
sizeof pInitTable->siteMgrInitParams.siteMgrRegstrySuppRate[DOT11_B_MODE],
(PUCHAR)&pInitTable->siteMgrInitParams.siteMgrRegstrySuppRate[DOT11_B_MODE]);
/*
** G band (B&G rates)
*/
regReadIntegerParameter(pAdapter, &STRdot11BasicRateMask_G,
BASIC_RATE_SET_1_2_5_5_11, BASIC_RATE_SET_1_2, BASIC_RATE_SET_1_2_5_5_11,
sizeof pInitTable->siteMgrInitParams.siteMgrRegstryBasicRate[DOT11_G_MODE],
(PUCHAR)&pInitTable->siteMgrInitParams.siteMgrRegstryBasicRate[DOT11_G_MODE]);
regReadIntegerParameter(pAdapter, &STRdot11SupportedRateMask_G,
SUPPORTED_RATE_SET_ALL, SUPPORTED_RATE_SET_1_2, SUPPORTED_RATE_SET_ALL,
sizeof pInitTable->siteMgrInitParams.siteMgrRegstrySuppRate[DOT11_G_MODE],
(PUCHAR)&pInitTable->siteMgrInitParams.siteMgrRegstrySuppRate[DOT11_G_MODE]);
/*
** A band
*/
regReadIntegerParameter(pAdapter, &STRdot11BasicRateMask_A,
BASIC_RATE_SET_6_12_24, BASIC_RATE_SET_6_12_24, BASIC_RATE_SET_6_12_24,
sizeof pInitTable->siteMgrInitParams.siteMgrRegstryBasicRate[DOT11_A_MODE],
(PUCHAR)&pInitTable->siteMgrInitParams.siteMgrRegstryBasicRate[DOT11_A_MODE]);
regReadIntegerParameter(pAdapter, &STRdot11SupportedRateMask_A,
SUPPORTED_RATE_SET_UP_TO_54, SUPPORTED_RATE_SET_1_2, SUPPORTED_RATE_SET_UP_TO_54,
sizeof pInitTable->siteMgrInitParams.siteMgrRegstrySuppRate[DOT11_A_MODE],
(PUCHAR)&pInitTable->siteMgrInitParams.siteMgrRegstrySuppRate[DOT11_A_MODE]);
/*
** Dual band (A&G)
*/
regReadIntegerParameter(pAdapter, &STRdot11BasicRateMask_AG,
BASIC_RATE_SET_1_2, BASIC_RATE_SET_1_2, BASIC_RATE_SET_1_2,
sizeof pInitTable->siteMgrInitParams.siteMgrRegstryBasicRate[DOT11_DUAL_MODE],
(PUCHAR)&pInitTable->siteMgrInitParams.siteMgrRegstryBasicRate[DOT11_DUAL_MODE]);
regReadIntegerParameter(pAdapter, &STRdot11SupportedRateMask_AG,
SUPPORTED_RATE_SET_ALL_OFDM, SUPPORTED_RATE_SET_1_2, SUPPORTED_RATE_SET_ALL_OFDM,
sizeof pInitTable->siteMgrInitParams.siteMgrRegstrySuppRate[DOT11_DUAL_MODE],
(PUCHAR)&pInitTable->siteMgrInitParams.siteMgrRegstrySuppRate[DOT11_DUAL_MODE]);
/* Tx Rate */
regReadIntegerParameter(pAdapter, &STRdot11DesiredTxRate,
REG_RATE_AUTO_BIT, REG_RATE_AUTO_BIT, REG_RATE_54M_OFDM_BIT,
sizeof pInitTable->siteMgrInitParams.siteMgrRegstryDesiredTxRate,
(PUCHAR)&pInitTable->siteMgrInitParams.siteMgrRegstryDesiredTxRate);
/* Management & Ctrl Tx rate Selection (Fix rate/MinBasic/Max basic) */
regReadIntegerParameter(pAdapter, &STRdot11MgmtCtrlTxRateSelection,
MAX_BASIC_TX_RATE, MIN_BASIC_TX_RATE, SPECIFIC_TX_RATE,
sizeof pInitTable->siteMgrInitParams.siteMgrRegstryDesiredMgmtCtrlTxRateOption,
(PUCHAR)&pInitTable->siteMgrInitParams.siteMgrRegstryDesiredMgmtCtrlTxRateOption);
/* Management & Ctrl Tx rate (HW generated packets) */
regReadIntegerParameter(pAdapter, &STRdot11MgmtCtrlTxRate,
REG_RATE_2M_BIT, REG_RATE_1M_BIT, REG_RATE_54M_OFDM_BIT,
sizeof pInitTable->siteMgrInitParams.siteMgrRegstryDesiredMgmtCtrlTxRate,
(PUCHAR)&pInitTable->siteMgrInitParams.siteMgrRegstryDesiredMgmtCtrlTxRate);
}
static void decryptScanControlTable(PUCHAR src, PUCHAR dst, USHORT len)
{
USHORT i;
int parityFlag = 0;
char tmp = 0;
char finalChar = 0;
for(i=0; i < len; i++)
{
switch(src[i])
{
case 'A':
case 'a':
tmp = 10;
break;
case 'B':
case 'b':
tmp = 11;
break;
case 'C':
case 'c':
tmp = 12;
break;
case 'D':
case 'd':
tmp = 13;
break;
case 'E':
case 'e':
tmp = 14;
break;
case 'F':
case 'f':
tmp = 15;
break;
default:
if( (src[i] >='0') && (src[i] <= '9') )
tmp = (src[i] - '0');
else
return; /* ERROR input char */
}
if(parityFlag == 0)
finalChar = tmp << 4;
else
{
finalChar |= (tmp & 0x0f);
dst[i/2] = finalChar;
}
parityFlag = 1-parityFlag;
}
}
VOID regReadNetworkAddress(PTIWLN_ADAPTER_T pAdapter)
{
NDIS_STATUS Status;
PVOID pvNetworkAddress;
UINT cbNetworkAddress;
NdisReadNetworkAddress( &Status, &pvNetworkAddress, &cbNetworkAddress, pAdapter->ConfigHandle );
if ( ( NDIS_STATUS_SUCCESS == Status ) && ( ETH_ADDR_SIZE == cbNetworkAddress ) ) {
NdisMoveMemory( pAdapter->CurrentAddr, pvNetworkAddress, ETH_ADDR_SIZE);
pAdapter->bCurrentAddrFromRegistry = TRUE;
}
}
/*-----------------------------------------------------------------------------
Routine Name:
regReadIntegerTable
Routine Description:
reads any table format and insert it to another string.
the delimiters of the tables can be:
- space (" ")
- comma (",")
the table reads only integers thus its reads the following chars:
- "0" till "9"
- minus sign ("-")
Arguments:
Return Value:
zero on success else - error number.
-----------------------------------------------------------------------------*/
UINT32
regReadIntegerTable(
PTIWLN_ADAPTER_T pAdapter,
PNDIS_STRING pParameterName,
PCHAR pDefaultValue,
USHORT defaultLen,
PUCHAR pParameter
)
{
UINT32 parameterIndex = 0;
int myNumber;
UINT32 index;
UINT32 bufferSize = 0;
char tempBuffer[15];
char *pTempBuffer = tempBuffer;
UINT32 tempBufferIndex = 0;
BOOL isDigit;
BOOL numberReady;
BOOL isSign;
BOOL endOfLine;
UINT32 debugInfo = 0;
CHAR Buffer[MAX_KEY_BUFFER_LEN];
PCHAR pBuffer = (PCHAR)&Buffer;
regReadStringParameter(pAdapter,
pParameterName,
pDefaultValue,
defaultLen,
(PUCHAR)pBuffer,
&bufferSize);
index=0;
do { /* Parsing one line */
isSign = FALSE;
isDigit = FALSE;
numberReady = FALSE;
tempBufferIndex = 0;
endOfLine = FALSE;
while ((numberReady==FALSE) && (index<bufferSize))
{
/* Parsing one number */
switch (pBuffer[index])
{
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
pTempBuffer[tempBufferIndex] = pBuffer[index];
++tempBufferIndex;
isDigit = TRUE;
break;
case '-':
pTempBuffer[tempBufferIndex] = pBuffer[index];
++tempBufferIndex;
if (isDigit==TRUE)
{
PRINTF(DBG_REGISTRY_INFO, ("Error in read parameter %c in line index %d\n\
The sign '-' isn't in place!\n",pBuffer[index],index));
debugInfo = 1;
}
isSign = TRUE;
break;
case ' ':
case '\t': /* tab char */
/* for space discard*/
if ((isDigit==FALSE) && (isSign==FALSE))
{
break;
}
/*
else we are continue to the code of the case ','
*/
case '\0':
endOfLine = TRUE;
case ',':
/* end of number reading */
pTempBuffer[tempBufferIndex] = '\0';
if (isDigit == FALSE)
{
PRINTF(DBG_REGISTRY_INFO, ("Error in end of number delimiter. number isn't ready.\
check index %d",index));
debugInfo = 2;
}
numberReady = TRUE;
break;
default:
PRINTF(DBG_REGISTRY_INFO, ("%s(%d) Error - unexpected parameter %c.\n",
__FILE__,__LINE__,pBuffer[index]));
debugInfo = 3;
break;
}/* switch( pBuffer[index] ) */
if (debugInfo != 0)
{
return debugInfo;
}
++index;
}/* while (numberReady==FALSE)*/
if (pTempBuffer[0] == '-')
{
++pTempBuffer;
myNumber = tiwlnstrtoi(pTempBuffer,tempBufferIndex-1);
myNumber = -(myNumber);
}
else
{
myNumber = tiwlnstrtoi(pTempBuffer,tempBufferIndex);
}
pParameter[parameterIndex] = myNumber;
++parameterIndex;
}while ((index<bufferSize)&&(endOfLine==FALSE));
return debugInfo;
}
void assignRegValue(PULONG lValue, PNDIS_CONFIGURATION_PARAMETER ndisParameter)
{
char b[8];
ANSI_STRING a = {0, 0, 0};
a.MaximumLength = sizeof(b);
a.Buffer=(PCHAR)b;
if(ndisParameter->ParameterData.StringData.Length <= sizeof (b) * 2)
{
if ( ((char *)(ndisParameter->ParameterData.StringData.Buffer))[1] == 0 )
{
NdisUnicodeStringToAnsiString ( &a, &(ndisParameter)->ParameterData.StringData );
*lValue = tiwlnstrtoi ( (char *)a.Buffer, a.Length );
} else {
*lValue = tiwlnstrtoi ( (char *)(ndisParameter->ParameterData.StringData.Buffer), ndisParameter->ParameterData.StringData.Length);
}
} else {
*lValue = 0;
}
}
/*-----------------------------------------------------------------------------
Routine Name:
regConvertStringtoIpAddress
Routine Description: Converts the Ip Adrress in a form of string readen from the Registry
to the Ip Address Array to be stored in the init_table struct
Arguments:
Return Value:
None
-----------------------------------------------------------------------------*/
void regConvertStringtoIpAddress(UINT8 *staIpAddressString,UINT8 *IpAddressArray)
{
char *ptr;
UINT8 *tmpIpAddr;
UINT8 value=0,value_l,value_h,add_value;
int i;
/* Take the pointer to the string MAC Address to convert it to the Array MAC Address */
ptr=(char *)staIpAddressString;
tmpIpAddr = IpAddressArray;
#if 0
for(i=0 ; i<4 ; ptr++)
{
value_l = (*ptr-'0');
/* PRINTF(DBG_REGISTRY,("value_l [%d] *ptr %c value %d\n",value_l,*ptr,value));*/
if( value_l < 9)
{
value = value*10 + value_l;
/* PRINTF(DBG_REGISTRY,("value %d value_l %d \n",value,value_l));*/
}
else
{
tmpIpAddr[i] = value;
/* PRINTF(DBG_REGISTRY,("tmpMacAddr[%d] is %d\n",i,tmpMacAddr[i]));*/
value = 0;
i++;
}
}
#else
for(i=0 ; i<4 ; ptr++)
{
/* The value can be or "0-9" or from "a-f" */
value_l = (*ptr-'0');
value_h = (*ptr - 'a');
/*PRINTF(DBG_REGISTRY,("value_l [%d] value_h [%d] *ptr %c value %d\n",value_l,value_h,*ptr,value));*/
if( (value_l <= 9) || (value_h <= 15 ) )
{
/* We are in an expected range */
/* nCheck if 0-9 */
if(value_l <= 9 )
{
add_value = value_l;
}
/* Check if a-f */
else
{
/* 'a' is in fact 10 decimal in hexa */
add_value = value_h + 10;
}
value = value*16 + add_value;
/* PRINTF(DBG_REGISTRY,("value %d add_value %d \n",value,add_value));*/
}
else
{
tmpIpAddr[i] = value;
/* PRINTF(DBG_REGISTRY,("tmpMacAddr[%d] is %x\n",i,tmpMacAddr[i]));*/
value = 0;
i++;
}
}
#endif
}
/*-----------------------------------------------------------------------------
Routine Name:
regConvertStringtoIpAddress
Routine Description: Converts the Ip Adrress in a form of string readen from the Registry
to the Ip Address Array to be stored in the init_table struct
Arguments:
Return Value:
None
-----------------------------------------------------------------------------*/
void regConvertStringtoBeaconIETable(UINT8 *staIpAddressString,UINT8 *IpAddressArray, UINT8 size)
{
char *ptr;
UINT8 *tmpIpAddr;
UINT8 value = 0, value_l, value_h, add_value;
int i, str_len;
/* Take the pointer to the string MAC Address to convert it to the Array MAC Address */
ptr = (char *)staIpAddressString;
tmpIpAddr = IpAddressArray;
str_len = 3 * size - 1;
#if 0
for(i=0 ; i<size ; ptr++)
{
value_l = (*ptr-'0');
/* PRINTF(DBG_REGISTRY,("value_l [%d] *ptr %c value %d\n",value_l,*ptr,value));*/
if( value_l < 9)
{
value = value*10 + value_l;
/* PRINTF(DBG_REGISTRY,("value %d value_l %d \n",value,value_l));*/
}
else
{
tmpIpAddr[i] = value;
/* PRINTF(DBG_REGISTRY,("tmpMacAddr[%d] is %d\n",i,tmpMacAddr[i]));*/
value = 0;
i++;
}
}
#else
for(i=0;(i < size);ptr++,str_len--)
{
if (str_len > 0) {
/* The value can be or "0-9" or from "a-f" */
value_l = (*ptr - '0');
value_h = (*ptr - 'a');
}
else { /* last element */
value_l = value_h = 16;
}
/*PRINTF(DBG_REGISTRY,("value_l [%d] value_h [%d] *ptr %c value %d\n",value_l,value_h,*ptr,value));*/
if( (value_l <= 9) || (value_h <= 15 ) )
{
/* We are in an expected range */
/* nCheck if 0-9 */
if(value_l <= 9 )
{
add_value = value_l;
}
/* Check if a-f */
else
{
/* 'a' is in fact 10 decimal in hexa */
add_value = value_h + 10;
}
value = value * 16 + add_value;
/*PRINTF(DBG_REGISTRY,("value %d add_value %d \n",value,add_value));*/
}
else
{
tmpIpAddr[i] = value;
/*PRINTF(DBG_REGISTRY,("tmpMacAddr[%d] is %x\n",i,tmpMacAddr[i]));*/
value = 0;
i++;
}
}
#endif
}
//TRS:WDK provide callback functions
#if defined(_WINDOWS)
#endif
//TRS end
static void parse_hex_string(char * pString, tiUINT8 StrLength, tiUINT8 * pBuffer, tiUINT8 * Length)
{
char ch;
int iter = 0;
while ((iter < StrLength) && ((ch = pString[iter]) != '\0'))
{
UINT8 val = ((ch >= '0' && ch <= '9') ? (ch - '0') :
(ch >= 'A' && ch <= 'F') ? (0xA + ch - 'A') :
(ch >= 'a' && ch <= 'f') ? (0xA + ch - 'a') : 0);
/* even indexes go to the lower nibble, odd indexes push them to the */
/* higher nibble and then go themselves to the lower nibble. */
if (iter % 2)
pBuffer[iter / 2] = ((pBuffer[iter / 2] << (BIT_TO_BYTE_FACTOR / 2)) | val);
else
pBuffer[iter / 2] = val;
++iter;
}
/* iter = 0 len = 0, iter = 1 len = 1, iter = 2 len = 1, and so on... */
*Length = (iter + 1) / 2;
}
static void parse_binary_string(char * pString, tiUINT8 StrLength, tiUINT8 * pBuffer, tiUINT8 * Length)
{
char ch;
int iter = 0;
while ((iter < StrLength) && ((ch = pString[iter]) != '\0'))
{
UINT8 val = (ch == '1' ? 1 : 0);
if (iter % BIT_TO_BYTE_FACTOR)
pBuffer[iter / BIT_TO_BYTE_FACTOR] |= (val << (iter % BIT_TO_BYTE_FACTOR));
else
pBuffer[iter / BIT_TO_BYTE_FACTOR] = val;
++iter;
}
/* iter = 0 len = 0, iter = 1 len = 1, iter = 8 len = 1, and so on... */
*Length = (iter + BIT_TO_BYTE_FACTOR - 1) / BIT_TO_BYTE_FACTOR;
}
static void parse_filter_request(rxDataFilterRequest_t * request, UINT8 offset, char * mask, UINT8 maskLength, char * pattern, UINT8 patternLength)
{
request->offset = offset;
request->maskLength = request->patternLength = 0;
if (maskLength > 0)
{
parse_binary_string(mask, maskLength, request->mask, &request->maskLength);
parse_hex_string(pattern, patternLength, request->pattern, &request->patternLength);
}
}