# 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=0x00000000
# 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
