# This file allows user to override the factory
# defaults for the WLAN Driver

#############################################
# STA related general configurations
#############################################
# 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

#Channel Bonding
gChannelBondingMode5GHz=1
gChannelBondingMode24GHz=0

#Enable Keep alive with non-zero period value
gStaKeepAlivePeriod=60

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

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

ImplicitQosIsEnabled=0

# 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/Disable SU Tx beamformer support.
gEnableTxSUBeamformer=1

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

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

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

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

# RTS threshold
RTSThreshold=1048576

# 802.11d support
g11dSupportEnabled=0


# 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

# Enable Rx handling options
# Rx_thread=1 RPS=2(default for ROME) NAPI=4(default for ihelium)
# Rx_thread + NAPI = 5
rx_mode=5

#Enable VHT on 2.4Ghz
gEnableVhtFor24GHzBand=1

# Regulatory Setting; 0=STRICT; 1=CUSTOM
gRegulatoryChangeCountry=1

# userspace country code setting shld take priority
gCountryCodePriority=1

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

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

# Tx Chain Mask for CCK
gCckChainMaskEnable=1

# Tx Chain Mask for 1SS
gTxChainMask1ss=0

# TPC power
gSelfGenFrmPwr=3

gReportMaxLinkSpeed=0

# Use OEM provisioned MAC address
enable_mac_provision=1

################ NAN feature set start ###################
# Enable or Disable NAN
# 1=Enable (default), 0=Disable
gEnableNanSupport=1
genable_nan_datapath=1
gnan_datapath_ndi_channel=6
################ NAN feature set end #####################

gIgnorePeerHTopMode=1
gIgnorePeerErpInfo=1

# 802.11n Protection flag
gEnableApProt=1

# Fixed Rate
gFixedRate=0

# Intra-BSS forward
gDisableIntraBssFwd=0

# WMM Enable/Disable
WmmIsEnabled=0

# 802.11h support
g11hSupportEnabled=1

#Short Guard Interval Enable/disable
gShortGI20Mhz=1
gShortGI40Mhz=1

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

#Preferred band (both or 2.4 only or 5 only)
BandCapability=0

gVhtChannelWidth=2

# Enable Tx beamforming
gTxBFEnable=1

# Set txchainmask and rxchainmask
# These parameters are used only if gEnable2x2 is 0
# Valid values are 1,2
# Set gSetTxChainmask1x1=1 or gSetRxChainmask1x1=1 to select chain0.
# Set gSetTxChainmask1x1=2 or gSetRxChainmask1x1=2 to select chain1.
gSetTxChainmask1x1=1
gSetRxChainmask1x1=1

# 2.4GHz Antenna Sharing is not supported
gForce1x1Exception=0

#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

# Maximum Receive AMPDU size (VHT only. Valid values: 0->8k 1->16k 2->32k 3->64k 4->128k)
gVhtAmpduLenExponent=7

# Maximum number of concurrent connections
gMaxConcurrentActiveSessions=3

# Radar PRI multiplier
gDFSradarMappingPriMultiplier=4

# Enable or Disable Multi-user MIMO
# 1=Enable (default), 0=Disable
gEnableMuBformee=1

# 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 or Disable MCC Adaptive Scheduler at the FW
# 1=Enable (default), 0=Disable
gEnableMCCAdaptiveScheduler=1

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

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

# Bus bandwidth compute timeout value in ms
gBusBandwidthComputeInterval=100

# 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
gEnable2x2=1
gVhtRxMCS2x2=2
gVhtTxMCS2x2=2

#IPA config is a bit mask and following are the configurations.
#bit0 IPA Enable
#bit1 IPA PRE Filter enable
#bit2 IPv6 enable
#bit3 IPA Resource Manager (RM) enable
#bit4 IPA Clock scaling enable
#bit5 IPA uC ENABLE
#bit6 IPA uC STA ENABLE
#bit8 IPA Real Time Debugging
gIPAConfig=0x3d
gIPADescSize=800

# Enable/Disable RX full reorder offload
gReorderOffloadSupported=1

# Enable CE classification
# 1 - enable(default)  0 - disable
gCEClassifyEnable=1

# Enable(Tx) fastpath for data traffic.
# 1 - enable(default)  0 - disable
gEnableFastPath=1

# This flag enables IP, TCP and UDP checksum offload
# 1 - enable(default)  0 - disable
gEnableIpTcpUdpChecksumOffload=1

# Enable TCP Segmentation Offload
# 1 - enable  0 - disable
TSOEnable=1

# Enable HT MPDU Density
# 4 for 2 micro sec
ght_mpdu_density=4

# Enable flow steering to enable multiple CEs for Rx flows.
# Multiple Rx CEs<==>Multiple Rx IRQs<==>probably different CPUs.
# Parallel Rx paths.
# 1 - enable 0 - disable(default)
gEnableFlowSteering=1

ce_service_max_yield_time=500
ce_service_max_rx_ind_flush=1
maxMSDUsPerRxInd=8

# Data Stall Debugging feature
gEnableDataStallDetection=0

# Dynamic configuration of TCP limit output bytes
gTcpLimitOutputEnable=0

################ Datapath feature set End ################

#############################################
# SCAN related configurations
#############################################
# Enable/Disable Idle Scan
gEnableIdleScan=0

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

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

#Enable thermal mitigation
gThermalMitigationEnable=0

#Maximum Channel time in msec
gMaxMediumTime=6000

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

gPNOScanSupport=1

# Enable or Disable Extended Scan (GScan)
# 1=Enable (default), 0=Disable
gExtScanEnable=1

#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

#Maxium Channel time in msec
gMaxMediumTime = 6000

adaptive_dwell_mode_enabled=1

hostscan_adaptive_dwell_mode=1

adapt_dwell_lpf_weight=80

adapt_dwell_wifi_act_threshold=10

# Enable or disable Probe Req Information Element whitelist. When enabled, IEs corresponding to bits
# set in bitmaps are allowed in probe request, all others removed while device is unassociated
# with an AP
# 1=Enable, 0=Disable (default)
g_enable_probereq_whitelist_ies=1

# ie bitmap examples: <bitmap_name>=<value> [<Allowed Information elements>]
#    g_probe_req_ie_bitmap_0=0x80000009 #[0, 3, 31]
#    g_probe_req_ie_bitmap_0=0x00000000 #[] (default)
#    g_probe_req_ie_bitmap_1=0x80000009 #[32, 35, 63]
g_probe_req_ie_bitmap_0=0x0000000B
g_probe_req_ie_bitmap_1=0x00040000
# g_probe_req_ie_bitmap_2=0x00000000
# g_probe_req_ie_bitmap_3=0x00000000
# g_probe_req_ie_bitmap_4=0x00000000
# g_probe_req_ie_bitmap_5=0x00000000
g_probe_req_ie_bitmap_6=0x20000000
# g_probe_req_ie_bitmap_7=0x00000000

gProbeReqOUIs=0050F208

#############################################
# Power related configurations
#############################################
# Enable IMPS or not
gEnableImps=1

# Enable BMPS or not
gEnableBmps=1

# 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

# UAPSD service interval for VO,VI, BE, BK traffic
InfraUapsdVoSrvIntv=0
InfraUapsdViSrvIntv=0
InfraUapsdBeSrvIntv=0
InfraUapsdBkSrvIntv=0

# Enable suspend or not
# 1: Enable standby, 2: Enable Deep sleep, 3: Enable Mcast/Bcast Filter
gEnableSuspend=3

#Enable Power Save offload
gEnablePowerSaveOffload=2

#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

beaconEarlyTerminationWakeInterval=3

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

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

gEnableModulatedDTIM=2
gMaxLIModulatedDTIM=6

#############################################
# Roaming related configurations
#############################################
# CSR Roaming Enable(1) Disable(0)
gRoamingTime=0

# ESE Support and fast transition
EseEnabled=1

gNeighborLookupThreshold=76
gNeighborReassocThreshold=81
gNeighborScanChannelMinTime=20
gNeighborScanChannelMaxTime=30
gMaxNeighborReqTries=3

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

# 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

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

gEnableFastRoamInConcurrency=1

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

gAllowDFSChannelRoam=1

# LFR Subnet Detection
gLFRSubnetDetectionEnable=0

#############################################
# Offload related configurations
#############################################
# 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 HostNSOffload feature or not
hostNSOffload=1

# 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 MC address filtering offload
gMCAddrListEnable=1

#Enable Active mode offload
gActiveModeOffload=1

#Enable Active mode offload
gEnableActiveModeOffload=1

#Enable APF in Active mode
gActiveUcBpfMode=2
gActiveMcBcBpfMode=1

#HW CCE Filter mode
gHwFilterMode=0

# 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

# 11k feature offload
11k_offload_enable_bitmask=0

#############################################
# Logging related configurations
#############################################
gEnableLogp=1

gEnableSelfRecovery=1

#Enable firmware log
gEnablefwlog=1
# Additional firmware log levels
gFwDebugLogLevel=3
gFwDebugModuleLoglevel=2,1,3,1,5,1,9,1,13,1,14,1,18,1,19,1,26,1,28,1,29,1,31,1,36,1,38,1,46,1,47,1,50,1,52,1,53,1,56,1,60,1,61,1,4,1

#Enable firmware uart print
gEnablefwprint=0

#############################################
# TDLS related configurations
#############################################
# 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

gEnableTDLSScan=1
gTDLSTxPacketThreshold=10
gTDLSIdlePacketThreshold=1

#############################################
# P2P related configurations
#############################################
#P2P Listen offload
gEnableP2pListenOffload=1

#Enable or Disable p2p device address administered
isP2pDeviceAddrAdministrated=0

#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 = 10
#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 = 20
gApKeepAlivePeriod = 20

#############################################
# SAP related configurations
#############################################
#Enable OBSS protection
gEnableApOBSSProt=1

#Enable/Disable UAPSD for SoftAP
gEnableApUapsd=1

# SAP auto channel selection configuration
# 0 = disable auto channel selection
# 1 = enable auto channel selection, channel provided by supplicant will be ignored
gApAutoChannelSelection=0

#SOFTAP Channel Range selection
gAPChannelSelectStartChannel=1
gAPChannelSelectEndChannel=11

# 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

# DFS Master Capability
gEnableDFSMasterCap=1

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

# Remove Overlap channel restriction
gEnableOverLapCh=0

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

#Enable/Disable Tx beamformee in SAP mode
gEnableTxBFeeSAP=1

#Enable/Disable dual MAC feature
# 0 - enable DBS
# 1 - disable DBS
# 2 - disable DBS for connection but keep DBS for scan
# 3 - disable DBS for connection but keep DBS scan with async
#     scan policy disabled
# 4 - enable DBS for connection as well as for scan with async
#     scan policy disabled
gDualMacFeatureDisable=1

#Set priority for connection with bssid_hint
g_is_bssid_hint_priority=0

gdbs_scan_selection=5,4,1,16,4,1

enable_11d_in_world_mode=1

gEnableLPRx=0

gDptraceConfig=1,4,1,126

gAP11ACOverride=0

#Enable/Disable chain selection optimization for one chain dtim
#Min: 0
#MAX: 30
gEnableDTIMSelectionDiversity=3

#############################################
# MAWC related configurations
#############################################

# MAWCEnabled - Enable/Disable Motion Aided Wireless Connectivity Global
MAWCEnabled=0

# mawc_roam_enabled - Enable/Disable MAWC during roaming
mawc_roam_enabled=0

# Enable/Disable the Motion Aided Wireless Connectivity
# based NLO using this parameter
mawc_nlo_enabled=0

# Enable/Disable rtt sta mac randomization
enable_rtt_mac_randomization=1

# Channel selection logic DBS (1) vs MCC (0)
channel_select_logic_conc=0

gConfigVCmode=0

# WLM (Wireless Latency Manager)
wlm_latency_flags_moderate=0
wlm_latency_flags_low=0
wlm_latency_flags_ultralow=0

# OCE Feature
oce_sta_enable=0
oce_sap_enable=0
num_oce_wan_slots=0
oce_wan_score_idx7_to_4=0
oce_wan_score_idx11_to_8=0
oce_enable_rssi_assoc_reject=0

END

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