# This file allows user to override the factory

# defaults for the WLAN Driver


# Enable IMPS or not
gEnableImps=1

# Enable/Disable Idle Scan
gEnableIdleScan=0


# Increase sleep duration (seconds) during IMPS
# 0 implies no periodic wake up from IMPS. Periodic wakeup is 
# unnecessary if Idle Scan is disabled.
gImpsModSleepTime=0


# Enable BMPS or not
gEnableBmps=1

# Enable suspend or not

# 1: Enable standby, 2: Enable Deep sleep, 3: Enable Mcast/Bcast Filter

gEnableSuspend=3

# Phy Mode (auto, b, g, n, etc)
# Valid values are 0-9, with 0 = Auto, 4 = 11n, 9 = 11ac
# 1 = 11abg, 2 = 11b, 3 = 11g, 5 = 11g only, 6 = 11n only
# 7 = 11b only 8 = 11ac only.
gDot11Mode=0


# CSR Roaming Enable(1) Disable(0)

gRoamingTime=0


# Assigned MAC Addresses - This will be used until NV items are in place

# Each byte of MAC address is represented in Hex format as XX

Intf0MacAddress=000AF58989FF
Intf1MacAddress=000AF58989FE
Intf2MacAddress=000AF58989FD

Intf3MacAddress=000AF58989FC


# UAPSD service interval for VO,VI, BE, BK traffic

InfraUapsdVoSrvIntv=0

InfraUapsdViSrvIntv=0

InfraUapsdBeSrvIntv=0

InfraUapsdBkSrvIntv=0

# Flag to allow STA send AddTspec even when ACM is Off
gAddTSWhenACMIsOff=1

# Make 1x1 the default antenna configuration

gNumRxAnt=1


# Beacon filtering frequency (unit in beacon intervals)

gNthBeaconFilter=50


# Enable WAPI or not

# WAPIIsEnabled=0


# Flags to filter Mcast abd Bcast RX packets.

# Value 0: No filtering, 1: Filter all Multicast.

# 2: Filter all Broadcast. 3: Filter all Mcast abd Bcast

McastBcastFilter=3


#Flag to enable HostARPOffload feature or not

hostArpOffload=1

#Flag to enable TCPChkSumOffld feature or not

gEnableTCPChkSumOffld=1

#Flag to enable HostNSOffload feature or not

hostNSOffload=1

#Flag to enable IPChkSumOffld feature or not

gEnableIPChecksumOffload=1

#SoftAP Related Parameters

# AP MAc addr

gAPMacAddr=000AF589dcab


# 802.11n Protection flag

gEnableApProt=1


#Enable OBSS protection

gEnableApOBSSProt=1


#Enable/Disable UAPSD for SoftAP

gEnableApUapsd=1


# Fixed Rate

gFixedRate=0


# Maximum Tx power

# gTxPowerCap=30


# Fragmentation Threshold

# gFragmentationThreshold=2346


# RTS threshold

RTSThreshold=1048576


# Intra-BSS forward

gDisableIntraBssFwd=0


# WMM Enable/Disable

WmmIsEnabled=0


# 802.11d support

g11dSupportEnabled=0

# 802.11h support

g11hSupportEnabled=1

# DFS Master Capability
gEnableDFSMasterCap=1

# ESE Support and fast transition
EseEnabled=1
ImplicitQosIsEnabled=0
gNeighborScanTimerPeriod=200

gNeighborLookupThreshold=76
gNeighborReassocThreshold=81

gNeighborScanChannelMinTime=20
gNeighborScanChannelMaxTime=30
gMaxNeighborReqTries=3

# Legacy (non-ESE, non-802.11r) Fast Roaming Support
# To enable, set FastRoamEnabled=1
# To disable, set FastRoamEnabled=0
FastRoamEnabled=1

#Check if the AP to which we are roaming is better than current AP in terms of RSSI.
#Checking is disabled if set to Zero.Otherwise it will use this value as to how better 
#the RSSI of the new/roamable AP should be for roaming
RoamRssiDiff=3

# If the RSSI of any available candidate is better than currently associated
# AP by at least gImmediateRoamRssiDiff, then being to roam immediately (without
# registering for reassoc threshold).
# NOTE: Value of 0 means that we would register for reassoc threshold.
gImmediateRoamRssiDiff=10

# To enable, set gRoamIntraBand=1 (Roaming within band)
# To disable, set gRoamIntraBand=0 (Roaming across band)
gRoamIntraBand=0

# SAP Country code

# Default Country Code is 2 bytes, 3rd byte is optional indoor or out door.

# Example

#   US Indoor, USI

#   Korea Outdoor, KRO

#   Japan without optional byte, JP

#   France without optional byte, FR

#gAPCntryCode=USI


#Short Guard Interval Enable/disable

gShortGI20Mhz=1

gShortGI40Mhz=1


#Auto Shutdown  Value in seconds. A value of 0 means Auto shutoff is disabled

gAPAutoShutOff=0

#Auto Shutdown wlan : Value in Seconds. 0 means disabled. Max 1 day = 86400 sec
gWlanAutoShutdown = 0


# Listen Energy Detect Mode Configuration

# Valid values 0-128

# 128 means disable Energy Detect feature

# 0-9 are threshold code and 7 is recommended value from system if feature is to be enabled.

# 10-128 are reserved.

# The EDET threshold mapping is as follows in 3dB step:

# 0 = -60 dBm

# 1 = -63 dBm

# 2 = -66 dBm

# ...

# 7 = -81 dBm

# 8 = -84 dBm

# 9 = -87 dBm

# Note: Any of these settings are valid. Setting 0 would yield the highest power saving (in a noisy environment) at the cost of more range. The range impact is approximately #calculated as:

#

#  Range Loss  (dB)  =  EDET threshold level (dBm) + 97 dBm.

#

gEnablePhyAgcListenMode=128


#Preferred band (both or 2.4 only or 5 only)

BandCapability=0


#Beacon Early Termination (1 = enable the BET feature, 0 = disable)

enableBeaconEarlyTermination=0

beaconEarlyTerminationWakeInterval=3


#Channel Bonding
gChannelBondingMode5GHz=1


#Enable Keep alive with non-zero period value

gStaKeepAlivePeriod = 30

#Say gGoKeepAlivePeriod(5 seconds) and gGoLinkMonitorPeriod(10 seconds).
#For every 10 seconds DUT send Qos Null frame(i.e., Keep Alive frame if link is idle for last 10 seconds.)
#For both active and power save clients.

#Power save clients: DUT set TIM bit from 10th second onwards and till client honors TIM bit.
#If doesn't honor for 5 seconds then DUT remove client.

#Active clients: DUT send Qos Null frame for 10th seconds onwards if it is not success still we try on
#11th second if not tries on 12th and so on till 15th second. Hence before disconnection DUT will send 5 NULL frames.
#Hence in any case DUT will detect client got removed in (10+5) seconds. i.e., (gGoKeepAlivePeriod + gGoLinkMonitorPeriod)..

#gGoLinkMonitorPeriod/ gApLinkMonitorPeriod is period where link is idle and it is period
#where we send NULL frame.

gApLinkMonitorPeriod = 30

gGoLinkMonitorPeriod = 10

#gGoKeepAlivePeriod/gApKeepAlivePeriod is time to spend to check whether frame are succeed to send or not.
#Hence total effective detection time is gGoLinkMonitorPeriod+ gGoKeepAlivePeriod/gApLinkMonitorPeriod+ gApKeepAlivePeriod.


gGoKeepAlivePeriod = 3

gApKeepAlivePeriod = 10


#If set will start with active scan after driver load, otherwise will start with

#passive scan to find out the domain

gEnableBypass11d=1


#If set to 0, will not scan DFS channels

gEnableDFSChnlScan=1

# Enable DFS channel roam
# 0: DISABLE, 1: ENABLED_NORMAL, 2: ENABLED_ACTIVE
gAllowDFSChannelRoam=1

gVhtChannelWidth=2


# Enable Automatic Tx Power control

gEnableAutomaticTxPowerControl=1

# 0 for OLPC 1 for CLPC and SCPC
gEnableCloseLoop=1

#Data Inactivity Timeout when in powersave (in ms)
gDataInactivityTimeout=200

# VHT Tx/Rx MCS values
# Valid values are 0,1,2. If commented out, the default value is 0.
# 0=MCS0-7, 1=MCS0-8, 2=MCS0-9
gVhtRxMCS=2
gVhtTxMCS=2

# VHT Tx/Rx MCS values for 2x2
# Valid values are 0,1,2. If commented out, the default value is 0.
# 0=MCS0-7, 1=MCS0-8, 2=MCS0-9
gVhtRxMCS2x2=2
gVhtTxMCS2x2=2


# Valid chain mask values
# 01 - enables chain0
# 02 - enables chain1
# 03 - enables both chain 0 and chain 1
# if set to 0 or 1 then all vdevs comes up in 1x1 mode in that band.
gChainMask_2g=3
gChainMask_5g=3

# NSS cfg bit definition.
# STA          BIT[0:1]
# SAP          BIT[2:3]
# P2P_GO       BIT[4:5]
# P2P_CLIENT   BIT[6:7]
# IBSS         BIT[8:9]
# TDLS         BIT[10:11]
# P2P_DEVICE   BIT[12:13]
# OCB          BIT[14:15]
# Valid values are 1 or 2 for each two bit configuration.
# if 2-bit value is set to 1 then the corresponidng vdev comes up in 1x1 mode
# in the band, if set to 2 then that vdev comes up in 2x2 mode in that band.
gVdevTypeNss_2g=43690
gVdevTypeNss_5g=43690

gTxChainMask1ss=0

# Scan Timing Parameters
# gPassiveMaxChannelTime=110
# gPassiveMinChannelTime=60
gActiveMaxChannelTime=80
gActiveMinChannelTime=40

#If set to 0, MCC is not allowed.
gEnableMCCMode=1

# MCC to SCC Switch mode: 0-Disable 1-Enable 2-Force SCC if same band
gWlanMccToSccSwitchMode = 0

# Band Switch Enable/Disable for MCC to SCC
gWlanBandSwitchEnable = 0

# 1=enable STBC; 0=disable STBC 
gEnableRXSTBC=1

# 1=enable tx STBC; 0=disable
gEnableTXSTBC=1

# 1=enable rx LDPC; 0=disable
gEnableRXLDPC=1

# Enable Tx beamforming in VHT20MHz
# Valid values are 0,1. If commented out, the default value is 0.
# 0=disable, 1=enable
gEnableTxBFin20MHz=1

# Enable Active mode offload
gEnableActiveModeOffload=1

#Enable Scan Results Aging based on timer 
#Timer value is in seconds
#If Set to 0 it will not enable the feature
gScanAgingTime=0

#Enable Scan Results Aging based on number of scans
gScanResultAgeCount=1

#Enable Power saving mechanism Based on Android Framework
#If set to 0 Driver internally control the Power saving mechanism
#If set to 1 Android Framwrok control the Power saving mechanism
isAndroidPsEn=0

#Enable thermal mitigation
gThermalMitigationEnable=0

gEnableFastRoamInConcurrency=1

#List of Country codes for which 11ac needs to be disabled
#Each country code must be delimited by comma(,)
gListOfNon11acCountryCode=RU,UA,ZA

#Maxium Channel time in msec
gMaxMediumTime = 6000

# 802.11K support
gRrmEnable=1
gRrmOperChanMax=8
gRrmNonOperChanMax=8
gRrmRandIntvl=100

#Scan offload
gEnableDirectedScanOffload=1

#FlexConnect Power Factor
#Default is set to 0 (disable)
gFlexConnectPowerFactor=0

#Disable split scan, the FW will take care of it
gNumChanCombinedConc=60

#Enable Power Save offload
gEnablePowerSaveOffload=2

#Enable firmware uart print
gEnablefwprint=0

#Enable firmware log
gEnablefwlog=1
# Additional firmware log levels
gFwDebugLogLevel=4
gFwDebugModuleLoglevel=1,0,2,0,4,0,5,0,6,0,7,4,8,0,9,0,11,0,13,0,17,0,18,0,19,0,27,0,29,0,31,0,35,0,36,0,38,0

#IPA config
gIPAConfig=0
gIPADescSize=800
gIPAPreFilterEnable=1
gIPARMEnable=1
gIPAIPv6Enable=1

#P2P Listen offload
gEnableP2pListenOffload=1

# Maximum MPDU length (VHT only. Valid values: 0->3895 octets, 1->7991 octets, 2->11454 octets)
gVhtMpduLen=2

# Maximum number of wow filters required
#gMaxWoWFilters=22

# WOW Enable/Disable.
# 0 - Disable both magic pattern match and pattern byte match.
# 1 - Enable magic pattern match on all interfaces.
# 2 - Enable pattern byte match on all interfaces.
# 3 - Enable both magic patter and pattern byte match on all interfaces.
# Default value of gEnableWoW is 3.
# gEnableWoW=0

# Enable or Disable MCC Adaptive Scheduler at the FW
# 1=Enable (default), 0=Disable
gEnableMCCAdaptiveScheduler=1

#Enable or Disable p2p device address administered
isP2pDeviceAddrAdministrated=1

# RX packet handling options
# 0: no rx thread, no RPS, for MDM
# 1: RX thread
# 2: RPS
rxhandle=2

# Set RPS CPU MAP as 0xe for the 4 RX queues
# This allows use of CPU1-CPU3 but not CPU0 for 4 RX queues
rpsRxQueueCpuMapList=c

# Remove Overlap channel restriction
gEnableOverLapCh=0

#Enable VHT on 2.4Ghz
gEnableVhtFor24GHzBand=1

#Enable or Disable 5G early beacon termination
gEnable5gEBT=1

#Maximum number of offload peers supported
# gMaxOffloadPeers=2

# controlling the following offload patterns
# through ini parameter. Default value is 1
# to disable set it to zero. ssdp = 0
# Setup multicast pattern for mDNS 224.0.0.251,
# SSDP 239.255.255.250 and LLMNR 224.0.0.252


ssdp = 0

#Enable Memory Deep Sleep
gEnableMemDeepSleep=1

# Bus bandwidth threshold values in terms of number of packets
gBusBandwidthHighThreshold=2000
gBusBandwidthMediumThreshold=500
gBusBandwidthLowThreshold=150

# IPA bandwidth voting
gIPAHighBandwidthMbps=800
gIPAMediumBandwidthMbps=400
gIPALowBandwidthMbps=200

# Bus bandwidth compute timeout value in ms
gBusBandwidthComputeInterval=100

# Regulatory Setting; 0=STRICT; 1=CUSTOM
gRegulatoryChangeCountry=1
# RA filtering rate limit param, the current value would not
# help if the lifetime in RA is less than 3*60=3min. Then
# we need to change it, though it is uncommon.
# gRAFilterEnable=0
gRArateLimitInterval=600

# Maximum number of concurrent connections
gMaxConcurrentActiveSessions=2

# Disable/Enable GreenAP
# 0 to disable, 1 to enable, default: 1
gEnableGreenAp=1

# Radar PRI multiplier
gDFSradarMappingPriMultiplier=4

gPNOScanSupport=0

# Enable/Disable RX full reorder offload
gReorderOffloadSupported=1

# Enable/Disable LPASS support
# 0 to disable, 1 to enable
gEnableLpassSupport=1

# Whether userspace country code setting shld have priority
gCountryCodePriority=1

# Enable(1)/Disable(0) SIFS burst
gEnableSifsBurst=1

# Enable/Disable channel avoidance for SAP in SCC scenario
# 0 - disable
# 1 - enable
gSapSccChanAvoidance=0

# Inactivity time (in ms) to end TX Service Period while in IBSS power save mode
gIbssTxSpEndInactivityTime=10

# Enable/Disable Roaming Offload Support (a.k.a Key Management Offload)
# 0 to disable, 1 to enable
gRoamOffloadEnabled=0

# Enable support for TDLS
#  0 - disable
#  1 - enable
gEnableTDLSSupport=1

# Enable support for Implicit Trigger of TDLS. That is, wlan driver shall
# initiate TDLS Discovery towards a peer whenever setup criteria (throughput
# and RSSI) is met and then will initiate teardown when teardown criteria
# (idle packet count and RSSI) is met.
#  0 - disable
#  1 - enable
gEnableTDLSImplicitTrigger=1

# Enable TDLS External Control. That is, user space application has to
# first configure a peer MAC in wlan driver towards which TDLS is desired.
# Device will establish TDLS only towards those configured peers whenever
# TDLS criteria (throughput and RSSI threshold) is met and teardown TDLS
# when teardown criteria (idle packet count and RSSI) is met. However,
# device will accept TDLS connection if it is initiated from any other peer,
# even if that peer is not configured.
#  0 - disable
#  1 - enable
# For TDLS External Control, Implicit Trigger must also be enabled.
gTDLSExternalControl=1

# Enable support for TDLS off-channel operation
#  0 - disable
#  1 - enable
# TDLS off-channel operation will be invoked when there is only one
# TDLS connection.
gEnableTDLSOffChannel=1

IpaUcOffloadEnabled=1
gIpaUcStaOffload=1

gEnableSelfRecovery=1

# Enable or Disable Random MAC (Spoofing)
# 1=Enable, 0=Disable (default)
gEnableMacAddrSpoof=0

# Enable Auto suspend feature
# When this feature is enabled, it will shutdown the PCIe link
# when inactivity is detected in STA disconnected mode.
#  0 - disable
#  1 - enable
gEnableBusAutoSuspend=0

# Enable Runtime PM Feature.
# Enabling this feature will put target wow and shutdown pcie link
# when inactivity is detected in WLAN Driver.
# This feature is inactive when beaconing interfaces are active with
# clients associated.
# 0 - disable
# 1 - enable

gRuntimePM=1
# When gRuntimePM is disabled gRuntimeAutoTime won't take effect.
# The Time is in msec.
# 100 is min, 10000 is max, 500 is default.

gRuntimePMDelay=500

# Enable to check FW hash if secure FW feature is enabled. It's for defconfig
# builds only since it will be ignored in performance/release builds.
gEnableFWHashCheck=1

# Enable FW to filter out broadcast packets and wakeup host during runtime PM.
# As APPS is awake during runtime PM, if any application needs the broadcast
# packets OEM's can enable this flag.
# FW will filters the broadcast packets and wakeup host to deliver them during
# runtime suspend.
# This flag will take affect when Runtime PM is enabled
gRuntimePmEnableBcastPattern=0

# intervals length (in ms) during WLAN P2P (single vdev) + BT Paging
# min 20ms, max 200ms
gBTIntervalPageP2P=30
gWLIntervalPageP2P=30

# intervals length (in ms) during WLAN STA (single vdev) + BT Paging
# min 20ms, max 200ms
gBTIntervalPageSTA=30
gWLIntervalPageSTA=30

# intervals length (in ms) during WLAN SAP (single vdev) + BT Paging
# min 20ms, max 200ms
gBTIntervalPageSAP=30
gWLIntervalPageSAP=30

# Enable OCB/DSRC tx per packet stats, disable it as default because
# it would degrade throughput
gOcbTxPerPktStatsEnable=0

END

# Note: Configuration parser would not read anything past the END marker

