cfg_mlme_lfr.h 77 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331
  1. /*
  2. * Copyright (c) 2012-2021 The Linux Foundation. All rights reserved.
  3. * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
  4. *
  5. * Permission to use, copy, modify, and/or distribute this software for
  6. * any purpose with or without fee is hereby granted, provided that the
  7. * above copyright notice and this permission notice appear in all
  8. * copies.
  9. *
  10. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
  11. * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
  12. * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
  13. * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
  14. * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
  15. * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  16. * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  17. * PERFORMANCE OF THIS SOFTWARE.
  18. */
  19. /**
  20. * DOC: This file contains configuration definitions for MLME LFR.
  21. */
  22. #ifndef CFG_MLME_LFR_H__
  23. #define CFG_MLME_LFR_H__
  24. #ifdef CONNECTION_ROAMING_CFG
  25. # define RoamScan_ActiveCH_DwellTime_min 0
  26. # define RoamScan_ActiveCH_DwellTime_max 200
  27. # define RoamScan_ActiveCH_DwellTime_default 40
  28. # define RoamScan_InactiveCount_min 0
  29. # define RoamScan_InactiveCount_max 20
  30. # define RoamScan_InactiveCount_default 5
  31. # define RoamScan_StepRSSI_min 0
  32. # define RoamScan_StepRSSI_max 20
  33. # define RoamScan_StepRSSI_default 5
  34. # define RoamScan_HomeTime_min 0
  35. # define RoamScan_HomeTime_max 200
  36. # define RoamScan_HomeTime_default 45
  37. # define RoamScan_AwayTime_min 0
  38. # define RoamScan_AwayTime_max 200
  39. # define RoamScan_AwayTime_default 100
  40. # define RoamRSSI_Trigger_min -100
  41. # define RoamRSSI_Trigger_max -50
  42. # define RoamRSSI_Trigger_default -75
  43. # define RoamCU_Trigger_min 60
  44. # define RoamCU_Trigger_max 90
  45. # define RoamCU_Trigger_default 70
  46. # define RoamCU_24GRSSIRange_min -70
  47. # define RoamCU_24GRSSIRange_max -50
  48. # define RoamCU_24GRSSIRange_default -60
  49. # define RoamCU_5GRSSIRange_min -70
  50. # define RoamCU_5GRSSIRange_max -50
  51. # define RoamCU_5GRSSIRange_default -70
  52. # define RoamIdle_TriggerBand_min 0
  53. # define RoamIdle_TriggerBand_max 4
  54. # define RoamIdle_TriggerBand_default 3
  55. # define RoamIdle_MinRSSI_min -70
  56. # define RoamIdle_MinRSSI_max -50
  57. # define RoamIdle_MinRSSI_default -60
  58. # define RoamIdle_RSSIVariation_min 0
  59. # define RoamIdle_RSSIVariation_max 10
  60. # define RoamIdle_RSSIVariation_default 5
  61. # define RoamIdle_InactivePacketCount_min 0
  62. # define RoamIdle_InactivePacketCount_max 20
  63. # define RoamIdle_InactivePacketCount_default 5
  64. #else
  65. # define RoamScan_ActiveCH_DwellTime_min 3
  66. # define RoamScan_ActiveCH_DwellTime_max 300
  67. # define RoamScan_ActiveCH_DwellTime_default 40
  68. # define RoamScan_InactiveCount_min 0
  69. # define RoamScan_InactiveCount_max 0xFFFFFFFF
  70. # define RoamScan_InactiveCount_default 10
  71. # define RoamScan_StepRSSI_min 0
  72. # define RoamScan_StepRSSI_max 100
  73. # define RoamScan_StepRSSI_default 5
  74. # define RoamScan_HomeTime_min 3
  75. # define RoamScan_HomeTime_max 300
  76. # define RoamScan_HomeTime_default 50
  77. # define RoamScan_AwayTime_min 0
  78. # define RoamScan_AwayTime_max 300
  79. # define RoamScan_AwayTime_default 0
  80. # define RoamRSSI_Trigger_min -100
  81. # define RoamRSSI_Trigger_max -50
  82. # define RoamRSSI_Trigger_default -78
  83. # define RoamCU_Trigger_min 0
  84. # define RoamCU_Trigger_max 100
  85. # define RoamCU_Trigger_default 70
  86. # define RoamCU_24GRSSIRange_min -120
  87. # define RoamCU_24GRSSIRange_max 0
  88. # define RoamCU_24GRSSIRange_default -60
  89. # define RoamCU_5GRSSIRange_min -120
  90. # define RoamCU_5GRSSIRange_max 0
  91. # define RoamCU_5GRSSIRange_default -70
  92. # define RoamIdle_TriggerBand_min 0
  93. # define RoamIdle_TriggerBand_max 2
  94. # define RoamIdle_TriggerBand_default 0
  95. # define RoamIdle_MinRSSI_min -96
  96. # define RoamIdle_MinRSSI_max 0
  97. # define RoamIdle_MinRSSI_default -65
  98. # define RoamIdle_RSSIVariation_min 0
  99. # define RoamIdle_RSSIVariation_max 50
  100. # define RoamIdle_RSSIVariation_default 3
  101. # define RoamIdle_InactivePacketCount_min 0
  102. # define RoamIdle_InactivePacketCount_max 0xFFFFFFFF
  103. # define RoamIdle_InactivePacketCount_default 10
  104. #endif
  105. /*
  106. * <ini>
  107. * RoamScan_PassiveCH_DwellTime - Set max channel time for roam passive scan
  108. * @Min: 0
  109. * @Max: 200
  110. * @Default: 130
  111. *
  112. * This ini is used to set maximum channel time in msecs spent in
  113. * passive scan for roaming
  114. *
  115. * Related: None
  116. *
  117. * Usage: External
  118. *
  119. * </ini>
  120. */
  121. #define CFG_ROAM_PASSIVE_MAX_CHANNEL_TIME CFG_INI_UINT(\
  122. "RoamScan_PassiveCH_DwellTime",\
  123. 0, \
  124. 200, \
  125. 130, \
  126. CFG_VALUE_OR_DEFAULT, "roam scan passive dwell time")
  127. /*
  128. * <ini>
  129. * mawc_roam_enabled - Enable/Disable MAWC during roaming
  130. * @Min: 0 - Disabled
  131. * @Max: 1 - Enabled
  132. * @Default: 0
  133. *
  134. * This ini is used to control MAWC during roaming.
  135. *
  136. * Related: MAWCEnabled.
  137. *
  138. * Supported Feature: MAWC Roaming
  139. *
  140. * Usage: Internal/External
  141. *
  142. * </ini>
  143. */
  144. #define CFG_LFR_MAWC_ROAM_ENABLED CFG_INI_BOOL( \
  145. "mawc_roam_enabled", \
  146. 0, \
  147. "Enable/Disable MAWC during roaming")
  148. /*
  149. * <ini>
  150. * mawc_roam_traffic_threshold - Configure traffic threshold
  151. * @Min: 0
  152. * @Max: 0xFFFFFFFF
  153. * @Default: 300
  154. *
  155. * This ini is used to configure the data traffic load in kbps to
  156. * register CMC.
  157. *
  158. * Related: mawc_roam_enabled.
  159. *
  160. * Supported Feature: MAWC Roaming
  161. *
  162. * Usage: Internal/External
  163. *
  164. * </ini>
  165. */
  166. #define CFG_LFR_MAWC_ROAM_TRAFFIC_THRESHOLD CFG_INI_UINT( \
  167. "mawc_roam_traffic_threshold", \
  168. 0, \
  169. 0xFFFFFFFF, \
  170. 300, \
  171. CFG_VALUE_OR_DEFAULT, \
  172. "Configure traffic threshold")
  173. /*
  174. * <ini>
  175. * mawc_roam_ap_rssi_threshold - Best AP RSSI threshold
  176. * @Min: -120
  177. * @Max: 0
  178. * @Default: -66
  179. *
  180. * This ini is used to specify the RSSI threshold to scan for the AP.
  181. *
  182. * Related: mawc_roam_enabled.
  183. *
  184. * Supported Feature: MAWC Roaming
  185. *
  186. * Usage: Internal/External
  187. *
  188. * </ini>
  189. */
  190. #define CFG_LFR_MAWC_ROAM_AP_RSSI_THRESHOLD CFG_INI_INT( \
  191. "mawc_roam_ap_rssi_threshold", \
  192. -120, \
  193. 0, \
  194. -66, \
  195. CFG_VALUE_OR_DEFAULT, \
  196. "Best AP RSSI threshold")
  197. /*
  198. * <ini>
  199. * mawc_roam_rssi_high_adjust - Adjust MAWC roam high RSSI
  200. * @Min: 3
  201. * @Max: 5
  202. * @Default: 5
  203. *
  204. * This ini is used for high RSSI threshold adjustment in stationary state
  205. * to suppress the scan.
  206. *
  207. * Related: mawc_roam_enabled.
  208. *
  209. * Supported Feature: MAWC Roaming
  210. *
  211. * Usage: Internal/External
  212. *
  213. * </ini>
  214. */
  215. #define CFG_LFR_MAWC_ROAM_RSSI_HIGH_ADJUST CFG_INI_UINT( \
  216. "mawc_roam_rssi_high_adjust", \
  217. 3, \
  218. 5, \
  219. 5, \
  220. CFG_VALUE_OR_DEFAULT, \
  221. "Adjust MAWC roam high RSSI")
  222. /*
  223. * <ini>
  224. * mawc_roam_rssi_low_adjust - Adjust MAWC roam low RSSI
  225. * @Min: 3
  226. * @Max: 5
  227. * @Default: 5
  228. *
  229. * This ini is used for low RSSI threshold adjustment in stationary state
  230. * to suppress the scan.
  231. *
  232. * Related: mawc_roam_enabled.
  233. *
  234. * Supported Feature: MAWC Roaming
  235. *
  236. * Usage: Internal/External
  237. *
  238. * </ini>
  239. */
  240. #define CFG_LFR_MAWC_ROAM_RSSI_LOW_ADJUST CFG_INI_UINT( \
  241. "mawc_roam_rssi_low_adjust", \
  242. 3, \
  243. 5, \
  244. 5, \
  245. CFG_VALUE_OR_DEFAULT, \
  246. "Adjust MAWC roam low RSSI")
  247. /*
  248. * <ini>
  249. * rssi_abs_thresh - The min RSSI of the candidate AP to consider roam
  250. * @Min: -96
  251. * @Max: 0
  252. * @Default: 0
  253. *
  254. * The RSSI value of the candidate AP should be higher than rssi_abs_thresh
  255. * to roam to the AP. 0 means no absolute minimum RSSI is required.
  256. *
  257. * Related: None
  258. *
  259. * Supported Feature: Roaming
  260. *
  261. * Usage: External
  262. *
  263. * </ini>
  264. */
  265. #define CFG_LFR_ROAM_RSSI_ABS_THRESHOLD CFG_INI_INT( \
  266. "rssi_abs_thresh", \
  267. -96, \
  268. 0, \
  269. 0, \
  270. CFG_VALUE_OR_DEFAULT, \
  271. "The min RSSI of the candidate AP to consider roam")
  272. /*
  273. * <ini>
  274. * lookup_threshold_5g_offset - Lookup threshold offset for 5G band
  275. * @Min: -120
  276. * @Max: 120
  277. * @Default: 0
  278. *
  279. * This ini is used to set the 5G band lookup threshold for roaming.
  280. * It depends on another INI which is gNeighborLookupThreshold.
  281. * gNeighborLookupThreshold is a legacy INI item which will be used to
  282. * set the RSSI lookup threshold for both 2G and 5G bands. If the
  283. * user wants to setup a different threshold for a 5G band, then user
  284. * can use this offset value which will be summed up to the value of
  285. * gNeighborLookupThreshold and used for 5G
  286. * e.g: gNeighborLookupThreshold = -76dBm
  287. * lookup_threshold_5g_offset = 6dBm
  288. * Then the 5G band will be configured to -76+6 = -70dBm
  289. * A default value of Zero to lookup_threshold_5g_offset will keep the
  290. * thresholds same for both 2G and 5G bands
  291. *
  292. * Related: gNeighborLookupThreshold
  293. *
  294. * Supported Feature: Roaming
  295. *
  296. * Usage: Internal/External
  297. *
  298. * </ini>
  299. */
  300. #define CFG_LFR_5G_RSSI_THRESHOLD_OFFSET CFG_INI_INT( \
  301. "lookup_threshold_5g_offset", \
  302. -120, \
  303. 120, \
  304. 0, \
  305. CFG_VALUE_OR_DEFAULT, \
  306. "Lookup threshold offset for 5G band")
  307. /*
  308. * <ini>
  309. * gEnableFastRoamInConcurrency - Enable LFR roaming on STA during concurrency
  310. * @Min: 0
  311. * @Max: 1
  312. * @Default: 1
  313. *
  314. * This INI is used to enable Legacy fast roaming(LFR) on STA link during
  315. * concurrent sessions.
  316. *
  317. * Related: None
  318. *
  319. * Supported Feature: Roaming
  320. *
  321. * Usage: External
  322. *
  323. * </ini>
  324. */
  325. #define CFG_LFR_ENABLE_FAST_ROAM_IN_CONCURRENCY CFG_INI_BOOL( \
  326. "gEnableFastRoamInConcurrency", \
  327. 1, \
  328. "Enable LFR roaming on STA during concurrency")
  329. /*
  330. * <ini>
  331. * gEnableEarlyStopScan - Set early stop scan
  332. * @Min: 0
  333. * @Max: 1
  334. * @Default: 0
  335. *
  336. * This ini is used to set early stop scan. Early stop
  337. * scan is a feature for roaming to stop the scans at
  338. * an early stage as soon as we find a better AP to roam.
  339. * This would make the roaming happen quickly.
  340. *
  341. * Related: None
  342. *
  343. * Supported Feature: LFR Scan
  344. *
  345. * Usage: External
  346. *
  347. * </ini>
  348. */
  349. #define CFG_LFR_EARLY_STOP_SCAN_ENABLE CFG_INI_BOOL( \
  350. "gEnableEarlyStopScan", \
  351. 0, \
  352. "Set early stop scan")
  353. /*
  354. * <ini>
  355. * gEarlyStopScanMinThreshold - Set early stop scan min
  356. * threshold
  357. * @Min: -80
  358. * @Max: -70
  359. * @Default: -73
  360. *
  361. * This ini is used to set the early stop scan minimum
  362. * threshold. Early stop scan minimum threshold is the
  363. * minimum threshold to be considered for stopping the
  364. * scan. The algorithm starts with a scan on the greedy
  365. * channel list with the maximum threshold and steps down
  366. * the threshold by 20% for each further channel. It can
  367. * step down on each channel but cannot go lower than the
  368. * minimum threshold.
  369. *
  370. * Related: None
  371. *
  372. * Supported Feature: Scan
  373. *
  374. * Usage: External
  375. *
  376. * </ini>
  377. */
  378. #define CFG_LFR_EARLY_STOP_SCAN_MIN_THRESHOLD CFG_INI_INT( \
  379. "gEarlyStopScanMinThreshold", \
  380. -80, \
  381. -70, \
  382. -73, \
  383. CFG_VALUE_OR_DEFAULT, \
  384. "Set early stop scan min")
  385. /*
  386. * <ini>
  387. * gEarlyStopScanMaxThreshold - Set early stop scan max
  388. * threshold
  389. * @Min: -60
  390. * @Max: -40
  391. * @Default: -43
  392. *
  393. * This ini is used to set the the early stop scan maximum
  394. * threshold at which the candidate AP should be to be
  395. * qualified as a potential roam candidate and good enough
  396. * to stop the roaming scan.
  397. *
  398. * Related: None
  399. *
  400. * Supported Feature: Scan
  401. *
  402. * Usage: External
  403. *
  404. * </ini>
  405. */
  406. #define CFG_LFR_EARLY_STOP_SCAN_MAX_THRESHOLD CFG_INI_INT( \
  407. "gEarlyStopScanMaxThreshold", \
  408. -60, \
  409. -40, \
  410. -43, \
  411. CFG_VALUE_OR_DEFAULT, \
  412. "Set early stop scan max")
  413. /*
  414. * <ini>
  415. * gtraffic_threshold - Dense traffic threshold
  416. * @Min: 0
  417. * @Max: 0xffffffff
  418. * @Default: 400
  419. *
  420. * Dense traffic threshold
  421. * traffic threshold required for dense roam scan
  422. * Measured in kbps
  423. *
  424. * Related: None
  425. *
  426. * Supported Feature: Roaming
  427. *
  428. * Usage: External
  429. *
  430. * </ini>
  431. */
  432. #define CFG_LFR_ROAM_DENSE_TRAFFIC_THRESHOLD CFG_INI_UINT( \
  433. "gtraffic_threshold", \
  434. 0, \
  435. 0xffffffff, \
  436. 400, \
  437. CFG_VALUE_OR_DEFAULT, \
  438. "Dense traffic threshold")
  439. /*
  440. * <ini>
  441. * groam_dense_rssi_thresh_offset - Sets dense roam RSSI threshold diff
  442. * @Min: 0
  443. * @Max: 20
  444. * @Default: 10
  445. *
  446. * This INI is used to set offset value from normal RSSI threshold to dense
  447. * RSSI threshold FW will optimize roaming based on new RSSI threshold once
  448. * it detects dense environment.
  449. *
  450. * Related: None
  451. *
  452. * Supported Feature: Roaming
  453. *
  454. * Usage: External
  455. *
  456. * </ini>
  457. */
  458. #define CFG_LFR_ROAM_DENSE_RSSI_THRE_OFFSET CFG_INI_UINT( \
  459. "groam_dense_rssi_thresh_offset", \
  460. 0, \
  461. 20, \
  462. 10, \
  463. CFG_VALUE_OR_DEFAULT, \
  464. "Dense traffic threshold")
  465. /*
  466. * <ini>
  467. * groam_dense_min_aps - Sets minimum number of AP for dense roam
  468. * @Min: 1
  469. * @Max: 5
  470. * @Default: 3
  471. *
  472. * Minimum number of APs required for dense roam. FW will consider
  473. * environment as dense once it detects #APs operating is more than
  474. * groam_dense_min_aps.
  475. *
  476. * Related: None
  477. *
  478. * Supported Feature: Roaming
  479. *
  480. * Usage: External
  481. *
  482. * </ini>
  483. */
  484. #define CFG_LFR_ROAM_DENSE_MIN_APS CFG_INI_UINT( \
  485. "groam_dense_min_aps", \
  486. 1, \
  487. 5, \
  488. 3, \
  489. CFG_VALUE_OR_DEFAULT, \
  490. "Sets minimum number of AP for dense roam")
  491. /*
  492. * <ini>
  493. * roam_bg_scan_bad_rssi_thresh - RSSI threshold for background roam
  494. * @Min: -96
  495. * @Max: 0
  496. * @Default: -76
  497. *
  498. * If the DUT is connected to an AP with weak signal, then the bad RSSI
  499. * threshold will be used as an opportunity to use the scan results
  500. * from other scan clients and try to roam if there is a better AP
  501. * available in the environment.
  502. *
  503. * Related: None
  504. *
  505. * Supported Feature: Roaming
  506. *
  507. * Usage: External
  508. *
  509. * </ini>
  510. */
  511. #define CFG_LFR_ROAM_BG_SCAN_BAD_RSSI_THRESHOLD CFG_INI_INT( \
  512. "roam_bg_scan_bad_rssi_thresh", \
  513. -96, \
  514. 0, \
  515. -76, \
  516. CFG_VALUE_OR_DEFAULT, \
  517. "RSSI threshold for background roam")
  518. /*
  519. * <ini>
  520. * roam_bg_scan_client_bitmap - Bitmap used to identify the scan clients
  521. * @Min: 0
  522. * @Max: 0x7FF
  523. * @Default: 0x424
  524. *
  525. * This bitmap is used to define the client scans that need to be used
  526. * by the roaming module to perform a background roaming.
  527. * Currently supported bit positions are as follows:
  528. * Bit 0 is reserved in the firmware.
  529. * WMI_SCAN_CLIENT_NLO - 1
  530. * WMI_SCAN_CLIENT_EXTSCAN - 2
  531. * WMI_SCAN_CLIENT_ROAM - 3
  532. * WMI_SCAN_CLIENT_P2P - 4
  533. * WMI_SCAN_CLIENT_LPI - 5
  534. * WMI_SCAN_CLIENT_NAN - 6
  535. * WMI_SCAN_CLIENT_ANQP - 7
  536. * WMI_SCAN_CLIENT_OBSS - 8
  537. * WMI_SCAN_CLIENT_PLM - 9
  538. * WMI_SCAN_CLIENT_HOST - 10
  539. *
  540. * Related: None
  541. *
  542. * Supported Feature: Roaming
  543. *
  544. * Usage: External
  545. *
  546. * </ini>
  547. */
  548. #define CFG_LFR_ROAM_BG_SCAN_CLIENT_BITMAP CFG_INI_UINT( \
  549. "roam_bg_scan_client_bitmap", \
  550. 0, \
  551. 0x7FF, \
  552. 0x424, \
  553. CFG_VALUE_OR_DEFAULT, \
  554. "Bitmap used to identify the scan clients")
  555. /*
  556. * <ini>
  557. * roam_bad_rssi_thresh_offset_2g - RSSI threshold offset for 2G to 5G roam
  558. * @Min: 0
  559. * @Max: 86
  560. * @Default: 40
  561. *
  562. * If the DUT is connected to an AP with weak signal in 2G band, then the
  563. * bad RSSI offset for 2g would be used as offset from the bad RSSI
  564. * threshold configured and then use the resulting rssi for an opportunity
  565. * to use the scan results from other scan clients and try to roam to
  566. * 5G Band ONLY if there is a better AP available in the environment.
  567. *
  568. * For example if the roam_bg_scan_bad_rssi_thresh is -76 and
  569. * roam_bad_rssi_thresh_offset_2g is 40 then the difference of -36 would be
  570. * used as a trigger to roam to a 5G AP if DUT initially connected to a 2G AP
  571. *
  572. * Related: roam_bg_scan_bad_rssi_thresh
  573. *
  574. * Supported Feature: Roaming
  575. *
  576. * Usage: External
  577. *
  578. * </ini>
  579. */
  580. #define CFG_LFR_ROAM_BG_SCAN_BAD_RSSI_OFFSET_2G CFG_INI_UINT( \
  581. "roam_bad_rssi_thresh_offset_2g", \
  582. 0, \
  583. 86, \
  584. 40, \
  585. CFG_VALUE_OR_DEFAULT, \
  586. "RSSI threshold offset for 2G to 5G roam")
  587. /*
  588. * <ini>
  589. * roam_data_rssi_threshold_triggers - triggers of data rssi threshold for roam
  590. * @Min: 0
  591. * @Max: 0xffff
  592. * @Default: 0x3
  593. *
  594. * If the DUT is connected to an AP with weak signal, during latest
  595. * rx_data_inactivity_time, if there is no activity or avg of data_rssi is
  596. * better than roam_data_rssi_threshold(-70dbM), then suppress roaming
  597. * triggered by roam_data_rssi_threshold_triggers: low RSSI or bg scan.
  598. * Triggers bitmap definition:
  599. * ROAM_DATA_RSSI_FLAG_LOW_RSSI 1<<0
  600. * ROAM_DATA_RSSI_FLAG_BACKGROUND 1<<1
  601. *
  602. * Related: None
  603. *
  604. * Supported Feature: Roaming
  605. *
  606. * Usage: External
  607. *
  608. * </ini>
  609. */
  610. #define CFG_ROAM_DATA_RSSI_THRESHOLD_TRIGGERS CFG_INI_UINT( \
  611. "roam_data_rssi_threshold_triggers", \
  612. 0, \
  613. 0xffff, \
  614. 0x3, \
  615. CFG_VALUE_OR_DEFAULT, \
  616. "Triggers of DATA RSSI threshold for roam")
  617. /*
  618. * <ini>
  619. * roam_data_rssi_threshold - Data RSSI threshold for background roam
  620. * @Min: -96
  621. * @Max: 0
  622. * @Default: -70
  623. *
  624. * If the DUT is connected to an AP with weak signal, during latest
  625. * rx_data_inactivity_time, if there is no activity or avg of data_rssi is
  626. * better than roam_data_rssi_threshold(-70dbM), then suppress roaming
  627. * triggered by roam_data_rssi_threshold_triggers: low RSSI or bg scan.
  628. *
  629. * Related: None
  630. *
  631. * Supported Feature: Roaming
  632. *
  633. * Usage: External
  634. *
  635. * </ini>
  636. */
  637. #define CFG_ROAM_DATA_RSSI_THRESHOLD CFG_INI_INT( \
  638. "roam_data_rssi_threshold", \
  639. -96, \
  640. 0, \
  641. -70, \
  642. CFG_VALUE_OR_DEFAULT, \
  643. "DATA RSSI threshold for roam")
  644. /*
  645. * <ini>
  646. * rx_data_inactivity_time - Duration to check data rssi
  647. * @Min: 0
  648. * @Max: 100000 ms
  649. * @Default: 2000
  650. *
  651. * If the DUT is connected to an AP with weak signal, during latest
  652. * rx_data_inactivity_time, if there is no activity or avg of data_rssi is
  653. * better than roam_data_rssi_threshold(-70dbM), then suppress roaming
  654. * triggered by roam_data_rssi_threshold_triggers: low RSSI or bg scan.
  655. *
  656. * Related: None
  657. *
  658. * Supported Feature: Roaming
  659. *
  660. * Usage: External
  661. *
  662. * </ini>
  663. */
  664. #define CFG_RX_DATA_INACTIVITY_TIME CFG_INI_UINT( \
  665. "rx_data_inactivity_time", \
  666. 0, \
  667. 100000, \
  668. 2000, \
  669. CFG_VALUE_OR_DEFAULT, \
  670. "Rx inactivity time to check data rssi")
  671. /*
  672. * <ini>
  673. * roamscan_adaptive_dwell_mode - Sets dwell time adaptive mode
  674. * @Min: 0
  675. * @Max: 4
  676. * @Default: 4
  677. *
  678. * This parameter will set the algo used in dwell time optimization during
  679. * roam scan. see enum scan_dwelltime_adaptive_mode.
  680. * Acceptable values for this:
  681. * 0: Default (Use firmware default mode)
  682. * 1: Conservative optimization
  683. * 2: Moderate optimization
  684. * 3: Aggressive optimization
  685. * 4: Static
  686. *
  687. * Related: None
  688. *
  689. * Supported Feature: Roaming
  690. *
  691. * Usage: External
  692. *
  693. * </ini>
  694. */
  695. #define CFG_LFR_ADAPTIVE_ROAMSCAN_DWELL_MODE CFG_INI_UINT( \
  696. "roamscan_adaptive_dwell_mode", \
  697. 0, \
  698. 4, \
  699. 4, \
  700. CFG_VALUE_OR_DEFAULT, \
  701. "Sets dwell time adaptive mode")
  702. /*
  703. * <ini>
  704. * gper_roam_enabled - To enabled/disable PER based roaming in FW
  705. * @Min: 0
  706. * @Max: 3
  707. * @Default: 3
  708. *
  709. * This ini is used to enable/disable Packet error based roaming, enabling this
  710. * will cause DUT to monitor Tx and Rx traffic and roam to a better candidate
  711. * if current is not good enough.
  712. *
  713. * Values supported:
  714. * 0: disabled
  715. * 1: enabled for Rx traffic
  716. * 2: enabled for Tx traffic
  717. * 3: enabled for Tx and Rx traffic
  718. *
  719. * Related: gper_roam_high_rate_th, gper_roam_low_rate_th,
  720. * gper_roam_th_percent, gper_roam_rest_time
  721. *
  722. * Supported Feature: LFR-3.0
  723. *
  724. * Usage: Internal
  725. *
  726. * </ini>
  727. */
  728. #define CFG_LFR_PER_ROAM_ENABLE CFG_INI_UINT( \
  729. "gper_roam_enabled", \
  730. 0, \
  731. 3, \
  732. 3, \
  733. CFG_VALUE_OR_DEFAULT, \
  734. "To enabled/disable PER based roaming in FW")
  735. /*
  736. * <ini>
  737. * gper_roam_high_rate_th - Rate at which PER based roam will stop
  738. * @Min: 1 Mbps
  739. * @Max: 0xffffffff
  740. * @Default: 40 Mbps
  741. *
  742. * This ini is used to define the data rate in mbps*10 at which FW will stop
  743. * monitoring the traffic for PER based roam.
  744. *
  745. * Related: gper_roam_enabled, gper_roam_low_rate_th,
  746. * gper_roam_th_percent, gper_roam_rest_time
  747. *
  748. * Supported Feature: LFR-3.0
  749. *
  750. * Usage: Internal
  751. *
  752. * </ini>
  753. */
  754. #define CFG_LFR_PER_ROAM_CONFIG_HIGH_RATE_TH CFG_INI_UINT( \
  755. "gper_roam_high_rate_th", \
  756. 10, \
  757. 0xffffffff, \
  758. 400, \
  759. CFG_VALUE_OR_DEFAULT, \
  760. "Rate at which PER based roam will stop")
  761. /*
  762. * <ini>
  763. * gper_roam_low_rate_th - Rate at which FW starts considering traffic for PER
  764. * based roam.
  765. *
  766. * @Min: 1 Mbps
  767. * @Max: 0xffffffff
  768. * @Default: 20 Mbps
  769. *
  770. * This ini is used to define the rate in mbps*10 at which FW starts considering
  771. * traffic for PER based roam, if gper_roam_th_percent of data is below this
  772. * rate, FW will issue a roam scan.
  773. *
  774. * Related: gper_roam_enabled, gper_roam_high_rate_th,
  775. * gper_roam_th_percent, gper_roam_rest_time
  776. *
  777. * Supported Feature: LFR-3.0
  778. *
  779. * Usage: Internal
  780. *
  781. * </ini>
  782. */
  783. #define CFG_LFR_PER_ROAM_CONFIG_LOW_RATE_TH CFG_INI_UINT( \
  784. "gper_roam_low_rate_th", \
  785. 10, \
  786. 0xffffffff, \
  787. 200, \
  788. CFG_VALUE_OR_DEFAULT, \
  789. "Rate at which FW starts considering traffic for PER")
  790. /*
  791. * <ini>
  792. * gper_roam_th_percent - Percentage at which FW will issue a roam scan if
  793. * traffic is below gper_roam_low_rate_th rate.
  794. *
  795. * @Min: 10%
  796. * @Max: 100%
  797. * @Default: 60%
  798. *
  799. * This ini is used to define the percentage at which FW will issue a roam scan
  800. * if traffic is below gper_roam_low_rate_th rate.
  801. *
  802. * Related: gper_roam_enabled, gper_roam_high_rate_th,
  803. * gper_roam_high_rate_th, gper_roam_rest_time
  804. *
  805. * Supported Feature: LFR-3.0
  806. *
  807. * Usage: Internal
  808. *
  809. * </ini>
  810. */
  811. #define CFG_LFR_PER_ROAM_CONFIG_RATE_TH_PERCENT CFG_INI_UINT( \
  812. "gper_roam_th_percent", \
  813. 10, \
  814. 100, \
  815. 60, \
  816. CFG_VALUE_OR_DEFAULT, \
  817. "Percentage at which FW will issue a roam scan")
  818. /*
  819. * <ini>
  820. * gper_roam_rest_time - Time for which FW will wait once it issues a
  821. * roam scan.
  822. *
  823. * @Min: 10 seconds
  824. * @Max: 3600 seconds
  825. * @Default: 300 seconds
  826. *
  827. * This ini is used to define the time for which FW will wait once it issues a
  828. * PER based roam scan.
  829. *
  830. * Related: gper_roam_enabled, gper_roam_high_rate_th,
  831. * gper_roam_high_rate_th, gper_roam_th_percent
  832. *
  833. * Supported Feature: LFR-3.0
  834. *
  835. * Usage: Internal
  836. *
  837. * </ini>
  838. */
  839. #define CFG_LFR_PER_ROAM_REST_TIME CFG_INI_UINT( \
  840. "gper_roam_rest_time", \
  841. 10, \
  842. 3600, \
  843. 300, \
  844. CFG_VALUE_OR_DEFAULT, \
  845. "Time for which FW will wait once it issues a roam scan")
  846. /*
  847. * <ini>
  848. * gper_roam_mon_time - Minimum time required in seconds to
  849. * be considered as valid scenario for PER based roam
  850. * @Min: 5
  851. * @Max: 25
  852. * @Default: 25
  853. *
  854. * This ini is used to define minimum time in seconds for which DUT has
  855. * collected the PER stats before it can consider the stats hysteresis to be
  856. * valid for PER based scan.
  857. * DUT collects following information during this period:
  858. * 1. % of packets below gper_roam_low_rate_th
  859. * 2. # packets above gper_roam_high_rate_th
  860. * if DUT gets (1) greater than gper_roam_th_percent and (2) is zero during
  861. * this period, it triggers PER based roam scan.
  862. *
  863. * Related: gper_roam_enabled, gper_roam_high_rate_th, gper_roam_low_rate_th,
  864. * gper_roam_th_percent, gper_roam_rest_time
  865. *
  866. * Supported Feature: LFR-3.0
  867. *
  868. * Usage: Internal
  869. *
  870. * </ini>
  871. */
  872. #define CFG_LFR_PER_ROAM_MONITOR_TIME CFG_INI_UINT( \
  873. "gper_roam_mon_time", \
  874. 5, \
  875. 25, \
  876. 25, \
  877. CFG_VALUE_OR_DEFAULT, \
  878. "Minimum time to be considered as valid scenario for PER based roam")
  879. /*
  880. * <ini>
  881. * gper_min_rssi_threshold_for_roam - Minimum roamable AP RSSI for
  882. * candidate selection for PER based roam
  883. * @Min: 0
  884. * @Max: 96
  885. * @Default: 83
  886. *
  887. * Minimum roamable AP RSSI for candidate selection for PER based roam
  888. *
  889. * Related: gper_roam_enabled, gper_roam_high_rate_th, gper_roam_low_rate_th,
  890. * gper_roam_th_percent, gper_roam_rest_time
  891. *
  892. * Supported Feature: LFR-3.0
  893. *
  894. * Usage: Internal
  895. *
  896. * </ini>
  897. */
  898. #define CFG_LFR_PER_ROAM_MIN_CANDIDATE_RSSI CFG_INI_UINT( \
  899. "gper_min_rssi_threshold_for_roam", \
  900. 10, \
  901. 96, \
  902. 83, \
  903. CFG_VALUE_OR_DEFAULT, \
  904. "Minimum roamable AP RSSI for candidate selection for PER based roam")
  905. /*
  906. * <ini>
  907. * groam_disallow_duration - disallow duration before roaming
  908. * @Min: 0
  909. * @Max: 3600
  910. * @Default: 30
  911. *
  912. * This ini is used to configure how long LCA[Last Connected AP] AP will
  913. * be disallowed before it can be a roaming candidate again, in units of
  914. * seconds.
  915. *
  916. * Related: LFR
  917. *
  918. * Usage: Internal
  919. *
  920. * </ini>
  921. */
  922. #define CFG_LFR3_ROAM_DISALLOW_DURATION CFG_INI_UINT( \
  923. "groam_disallow_duration", \
  924. 0, \
  925. 3600, \
  926. 30, \
  927. CFG_VALUE_OR_DEFAULT, \
  928. "disallow duration before roaming")
  929. /*
  930. * <ini>
  931. * grssi_channel_penalization - RSSI penalization
  932. * @Min: 0
  933. * @Max: 15
  934. * @Default: 5
  935. *
  936. * This ini is used to configure RSSI that will be penalized if candidate(s)
  937. * are found to be in the same channel as disallowed AP's, in units of db.
  938. *
  939. * Related: LFR
  940. *
  941. * Usage: Internal
  942. *
  943. * </ini>
  944. */
  945. #define CFG_LFR3_ROAM_RSSI_CHANNEL_PENALIZATION CFG_INI_UINT( \
  946. "grssi_channel_penalization", \
  947. 0, \
  948. 15, \
  949. 5, \
  950. CFG_VALUE_OR_DEFAULT, \
  951. "RSSI penalization")
  952. /*
  953. * <ini>
  954. * groam_num_disallowed_aps - Max number of AP's to maintain in LCA list
  955. * @Min: 0
  956. * @Max: 8
  957. * @Default: 3
  958. *
  959. * This ini is used to set the maximum number of AP's to be maintained
  960. * in LCA [Last Connected AP] list.
  961. *
  962. * Related: LFR
  963. *
  964. * Usage: Internal
  965. *
  966. * </ini>
  967. */
  968. #define CFG_LFR3_ROAM_NUM_DISALLOWED_APS CFG_INI_UINT( \
  969. "groam_num_disallowed_aps", \
  970. 0, \
  971. 8, \
  972. 3, \
  973. CFG_VALUE_OR_DEFAULT, \
  974. "Max number of AP's to maintain in LCA list")
  975. /*
  976. * <ini>
  977. * enable_5g_band_pref - Enable preference for 5G from INI.
  978. * @Min: 0
  979. * @Max: 1
  980. * @Default: 0
  981. * This ini is used to enable 5G preference parameters.
  982. *
  983. * Related: 5g_rssi_boost_threshold, 5g_rssi_boost_factor, 5g_max_rssi_boost
  984. * 5g_rssi_penalize_threshold, 5g_rssi_penalize_factor, 5g_max_rssi_penalize
  985. *
  986. * Supported Feature: 5G band preference
  987. *
  988. * Usage: External
  989. *
  990. * </ini>
  991. */
  992. #define CFG_LFR_ENABLE_5G_BAND_PREF CFG_INI_BOOL( \
  993. "enable_5g_band_pref", \
  994. 0, \
  995. "Enable preference for 5G from INI")
  996. /*
  997. * <ini>
  998. * 5g_rssi_boost_threshold - A_band_boost_threshold above which 5G is favored.
  999. * @Min: -70
  1000. * @Max: -55
  1001. * @Default: -60
  1002. * This ini is used to set threshold for 5GHz band preference.
  1003. *
  1004. * Related: 5g_rssi_boost_factor, 5g_max_rssi_boost
  1005. * 5g_rssi_penalize_threshold, 5g_rssi_penalize_factor, 5g_max_rssi_penalize
  1006. *
  1007. * Supported Feature: 5G band preference
  1008. *
  1009. * Usage: External
  1010. *
  1011. * </ini>
  1012. */
  1013. #define CFG_LFR_5G_RSSI_BOOST_THRESHOLD CFG_INI_INT( \
  1014. "5g_rssi_boost_threshold", \
  1015. -70, \
  1016. -55, \
  1017. -60, \
  1018. CFG_VALUE_OR_DEFAULT, \
  1019. "A_band_boost_threshold above which 5 GHz is favored")
  1020. /*
  1021. * <ini>
  1022. * 5g_rssi_boost_factor - Factor by which 5GHz RSSI is boosted.
  1023. * @Min: 0
  1024. * @Max: 2
  1025. * @Default: 1
  1026. * This ini is used to set the 5Ghz boost factor.
  1027. *
  1028. * Related: 5g_rssi_boost_threshold, 5g_max_rssi_boost
  1029. * 5g_rssi_penalize_threshold, 5g_rssi_penalize_factor, 5g_max_rssi_penalize
  1030. *
  1031. * Supported Feature: 5G band preference
  1032. *
  1033. * Usage: External
  1034. *
  1035. * </ini>
  1036. */
  1037. #define CFG_LFR_5G_RSSI_BOOST_FACTOR CFG_INI_UINT( \
  1038. "5g_rssi_boost_factor", \
  1039. 0, \
  1040. 2, \
  1041. 1, \
  1042. CFG_VALUE_OR_DEFAULT, \
  1043. "Factor by which 5GHz RSSI is boosted")
  1044. /*
  1045. * <ini>
  1046. * 5g_max_rssi_boost - Maximum boost that can be applied to 5GHz RSSI.
  1047. * @Min: 0
  1048. * @Max: 20
  1049. * @Default: 10
  1050. * This ini is used to set maximum boost which can be given to a 5Ghz network.
  1051. *
  1052. * Related: 5g_rssi_boost_threshold, 5g_rssi_boost_factor
  1053. * 5g_rssi_penalize_threshold, 5g_rssi_penalize_factor, 5g_max_rssi_penalize
  1054. *
  1055. * Supported Feature: 5G band preference
  1056. *
  1057. * Usage: External
  1058. *
  1059. * </ini>
  1060. */
  1061. #define CFG_LFR_5G_MAX_RSSI_BOOST CFG_INI_UINT( \
  1062. "5g_max_rssi_boost", \
  1063. 0, \
  1064. 20, \
  1065. 10, \
  1066. CFG_VALUE_OR_DEFAULT, \
  1067. "Maximum boost that can be applied to 5GHz RSSI")
  1068. /*
  1069. * <ini>
  1070. * 5g_rssi_penalize_threshold - A_band_penalize_threshold above which
  1071. * 5 GHz is not favored.
  1072. * @Min: -80
  1073. * @Max: -65
  1074. * @Default: -70
  1075. * This ini is used to set threshold for 5GHz band preference.
  1076. *
  1077. * Related: 5g_rssi_penalize_factor, 5g_max_rssi_penalize
  1078. * 5g_rssi_boost_threshold, 5g_rssi_boost_factor, 5g_max_rssi_boost
  1079. *
  1080. * Supported Feature: 5G band preference
  1081. *
  1082. * Usage: External
  1083. *
  1084. * </ini>
  1085. */
  1086. #define CFG_LFR_5G_RSSI_PENALIZE_THRESHOLD CFG_INI_INT( \
  1087. "5g_rssi_penalize_threshold", \
  1088. -80, \
  1089. -65, \
  1090. -70, \
  1091. CFG_VALUE_OR_DEFAULT, \
  1092. "A_band_penalize_threshold above which 5 GHz is not favored")
  1093. /*
  1094. * <ini>
  1095. * 5g_rssi_penalize_factor - Factor by which 5GHz RSSI is penalizeed.
  1096. * @Min: 0
  1097. * @Max: 2
  1098. * @Default: 1
  1099. * This ini is used to set the 5Ghz penalize factor.
  1100. *
  1101. * Related: 5g_rssi_penalize_threshold, 5g_max_rssi_penalize
  1102. * 5g_rssi_boost_threshold, 5g_rssi_boost_factor, 5g_max_rssi_boost
  1103. *
  1104. * Supported Feature: 5G band preference
  1105. *
  1106. * Usage: External
  1107. *
  1108. * </ini>
  1109. */
  1110. #define CFG_LFR_5G_RSSI_PENALIZE_FACTOR CFG_INI_UINT( \
  1111. "5g_rssi_penalize_factor", \
  1112. 0, \
  1113. 2, \
  1114. 1, \
  1115. CFG_VALUE_OR_DEFAULT, \
  1116. "Factor by which 5GHz RSSI is penalizeed")
  1117. /*
  1118. * <ini>
  1119. * 5g_max_rssi_penalize - Maximum penalty that can be applied to 5GHz RSSI.
  1120. * @Min: 0
  1121. * @Max: 20
  1122. * @Default: 10
  1123. * This ini is used to set maximum penalty which can be given to a 5Ghz network.
  1124. *
  1125. * Related: 5g_rssi_penalize_threshold, 5g_rssi_penalize_factor
  1126. * 5g_rssi_boost_threshold, 5g_rssi_boost_factor, 5g_max_rssi_boost
  1127. *
  1128. * Supported Feature: 5G band preference
  1129. *
  1130. * Usage: External
  1131. *
  1132. * </ini>
  1133. */
  1134. #define CFG_LFR_5G_MAX_RSSI_PENALIZE CFG_INI_UINT( \
  1135. "5g_max_rssi_penalize", \
  1136. 0, \
  1137. 20, \
  1138. 10, \
  1139. CFG_VALUE_OR_DEFAULT, \
  1140. "Maximum penalty that can be applied to 5GHz RSSI")
  1141. /*
  1142. * <ini>
  1143. * max_num_pre_auth - Configure max number of pre-auth
  1144. * @Min: 0
  1145. * @Max: 256
  1146. * @Default: 64
  1147. *
  1148. * This ini is used to configure the data max number of pre-auth
  1149. *
  1150. * Usage: Internal
  1151. *
  1152. * </ini>
  1153. */
  1154. #define CFG_LFR_MAX_NUM_PRE_AUTH CFG_UINT( \
  1155. "max_num_pre_auth", \
  1156. 0, \
  1157. 256, \
  1158. 64, \
  1159. CFG_VALUE_OR_DEFAULT, \
  1160. "")
  1161. /*
  1162. * <ini>
  1163. * roam_preauth_retry_count
  1164. *
  1165. * @Min: 1
  1166. * @Max: 10
  1167. * @Default: 5
  1168. *
  1169. * The maximum number of software retries for preauth or
  1170. * reassoc made before picking up the next candidate for
  1171. * connection during roaming.
  1172. *
  1173. * Related: N/A
  1174. *
  1175. * Supported Features: Roaming
  1176. *
  1177. * Usage: Internal/External
  1178. *
  1179. * </ini>
  1180. */
  1181. #define CFG_LFR3_ROAM_PREAUTH_RETRY_COUNT CFG_INI_INT( \
  1182. "roam_preauth_retry_count", \
  1183. 1, \
  1184. 10, \
  1185. 5, \
  1186. CFG_VALUE_OR_DEFAULT, \
  1187. "The maximum number of software retries for preauth")
  1188. /*
  1189. * <ini>
  1190. * roam_preauth_no_ack_timeout
  1191. *
  1192. * @Min: 5
  1193. * @Max: 50
  1194. * @Default: 5
  1195. *
  1196. * Time to wait (in ms) after sending an preauth or reassoc
  1197. * request which didn't have an ack, before considering
  1198. * it as a failure and making another software retry.
  1199. *
  1200. * Related: N/A
  1201. *
  1202. * Supported Features: Roaming
  1203. *
  1204. * Usage: Internal/External
  1205. *
  1206. * </ini>
  1207. */
  1208. #define CFG_LFR3_ROAM_PREAUTH_NO_ACK_TIMEOUT CFG_INI_INT( \
  1209. "roam_preauth_no_ack_timeout", \
  1210. 5, \
  1211. 50, \
  1212. 5, \
  1213. CFG_VALUE_OR_DEFAULT, \
  1214. "Time to wait after sending an preauth or reassoc")
  1215. /*
  1216. * <ini>
  1217. * FastRoamEnabled - Enable fast roaming
  1218. * @Min: 0
  1219. * @Max: 1
  1220. * @Default: 1
  1221. *
  1222. * This ini is used to inform FW to enable fast roaming
  1223. *
  1224. * Related: None
  1225. *
  1226. * Supported Feature: Roaming
  1227. *
  1228. * Usage: External
  1229. *
  1230. * </ini>
  1231. */
  1232. #define CFG_LFR_FEATURE_ENABLED CFG_INI_BOOL( \
  1233. "FastRoamEnabled", \
  1234. 1, \
  1235. "Enable fast roaming")
  1236. /*
  1237. * <ini>
  1238. * MAWCEnabled - Enable/Disable Motion Aided Wireless Connectivity Global
  1239. * @Min: 0 - Disabled
  1240. * @Max: 1 - Enabled
  1241. * @Default: 0
  1242. *
  1243. * This ini is used to controls the MAWC feature globally.
  1244. * MAWC is Motion Aided Wireless Connectivity.
  1245. *
  1246. * Related: mawc_roam_enabled.
  1247. *
  1248. * Supported Feature: Roaming and PNO/NLO
  1249. *
  1250. * Usage: Internal/External
  1251. *
  1252. * </ini>
  1253. */
  1254. #define CFG_LFR_MAWC_FEATURE_ENABLED CFG_INI_BOOL( \
  1255. "MAWCEnabled", \
  1256. 0, \
  1257. "Enable MAWC")
  1258. /*
  1259. * <ini>
  1260. * FastTransitionEnabled - Enable fast transition in case of 11r and ese.
  1261. * @Min: 0
  1262. * @Max: 1
  1263. * @Default: 1
  1264. *
  1265. * This ini is used to turn ON/OFF the whole neighbor roam, pre-auth, reassoc.
  1266. * With this turned OFF 11r will completely not work. For 11r this flag has to
  1267. * be ON. For ESE fastroam will not work.
  1268. *
  1269. * Related: None
  1270. *
  1271. * Supported Feature: Roaming
  1272. *
  1273. * Usage: External
  1274. *
  1275. * </ini>
  1276. */
  1277. #define CFG_LFR_FAST_TRANSITION_ENABLED CFG_INI_BOOL( \
  1278. "FastTransitionEnabled", \
  1279. 1, \
  1280. "Enable fast transition")
  1281. /*
  1282. * <ini>
  1283. * RoamRssiDiff - Enable roam based on rssi
  1284. * @Min: 0
  1285. * @Max: 100
  1286. * @Default: 5
  1287. *
  1288. * This INI is used to decide whether to Roam or not based on RSSI. AP1 is the
  1289. * currently associated AP and AP2 is chosen for roaming. The Roaming will
  1290. * happen only if AP2 has better Signal Quality and it has a RSSI better than
  1291. * AP2. RoamRssiDiff is the number of units (typically measured in dB) AP2
  1292. * is better than AP1.
  1293. *
  1294. * Related: None
  1295. *
  1296. * Supported Feature: Roaming
  1297. *
  1298. * Usage: External
  1299. *
  1300. * </ini>
  1301. */
  1302. #define CFG_LFR_ROAM_RSSI_DIFF CFG_INI_UINT( \
  1303. "RoamRssiDiff", \
  1304. 0, \
  1305. 100, \
  1306. 5, \
  1307. CFG_VALUE_OR_DEFAULT, \
  1308. "Enable roam based on rssi")
  1309. /*
  1310. * <ini>
  1311. * RoamRssiDiff6GHz - Enable roam to 6 GHz AP based on rssi
  1312. * @Min: 0
  1313. * @Max: 100
  1314. * @Default: 5
  1315. *
  1316. * This INI is used to decide whether to roam to 6 GHz AP or not based on RSSI.
  1317. * AP1 is the currently associated AP(2.4 GHz / 5 GHz) and AP2(6 GHz) is chosen
  1318. * for roaming. The Roaming will happen only if AP2 has better Signal Quality
  1319. * and it has a RSSI better than AP1. RoamRssiDiff6GHz is the number of units
  1320. * (typically measured in dB) AP2 is better than AP1.
  1321. *
  1322. * Related: None
  1323. *
  1324. * Supported Feature: Roaming
  1325. *
  1326. * Usage: External
  1327. *
  1328. * </ini>
  1329. */
  1330. #define CFG_LFR_ROAM_RSSI_DIFF_6GHZ CFG_INI_UINT( \
  1331. "RoamRssiDiff6GHz", \
  1332. 0, \
  1333. 100, \
  1334. 5, \
  1335. CFG_VALUE_OR_DEFAULT, \
  1336. "Enable 6 GHz roam based on rssi")
  1337. /*
  1338. * <ini>
  1339. * bg_rssi_threshold - To set RSSI Threshold for BG scan roaming
  1340. * @Min: 0
  1341. * @Max: 100
  1342. * @Default: 5
  1343. *
  1344. * This INI is used to set the value of rssi threshold to trigger roaming
  1345. * after background scan. To trigger roam after bg scan, value of rssi of
  1346. * candidate AP should be higher by this threshold than the rssi of the
  1347. * currently associated AP.
  1348. *
  1349. * Related: RoamRssiDiff
  1350. *
  1351. * Supported Feature: Roaming
  1352. *
  1353. * Usage: External
  1354. *
  1355. * </ini>
  1356. */
  1357. #define CFG_LFR_ROAM_BG_RSSI_TH CFG_INI_UINT( \
  1358. "bg_rssi_threshold", \
  1359. 0, \
  1360. 100, \
  1361. 5, \
  1362. CFG_VALUE_OR_DEFAULT, \
  1363. "Enable roam based on rssi after BG scan")
  1364. /*
  1365. * <ini>
  1366. * gWESModeEnabled - Enable WES mode
  1367. * @Min: 0
  1368. * @Max: 1
  1369. * @Default: 0
  1370. *
  1371. * This ini is used to enable/disable Wireless Extended Security mode.
  1372. *
  1373. * Related: None
  1374. *
  1375. * Supported Feature: Roaming
  1376. *
  1377. * Usage: External
  1378. *
  1379. * </ini>
  1380. */
  1381. #define CFG_LFR_ENABLE_WES_MODE CFG_INI_BOOL( \
  1382. "gWESModeEnabled", \
  1383. 0, \
  1384. "Enable WES mode")
  1385. /*
  1386. * <ini>
  1387. * gRoamScanOffloadEnabled - Enable Roam Scan Offload
  1388. * @Min: 0
  1389. * @Max: 1
  1390. * @Default: 1
  1391. *
  1392. * This INI is used to enable Roam Scan Offload in firmware
  1393. *
  1394. * Related: None
  1395. *
  1396. * Supported Feature: Roaming
  1397. *
  1398. * Usage: External
  1399. *
  1400. * </ini>
  1401. */
  1402. #define CFG_LFR_ROAM_SCAN_OFFLOAD_ENABLED CFG_INI_BOOL( \
  1403. "gRoamScanOffloadEnabled", \
  1404. 1, \
  1405. "Enable Roam Scan Offload")
  1406. /*
  1407. * <ini>
  1408. * gNeighborScanChannelList - Set channels to be scanned
  1409. * by firmware for LFR scan
  1410. * @Default: ""
  1411. *
  1412. * This ini is used to set the channels to be scanned
  1413. * by firmware for LFR scan.
  1414. *
  1415. * Related: None
  1416. *
  1417. * Supported Feature: LFR Scan
  1418. *
  1419. * Usage: External
  1420. *
  1421. * </ini>
  1422. */
  1423. #define CFG_LFR_NEIGHBOR_SCAN_CHANNEL_LIST CFG_INI_STRING( \
  1424. "gNeighborScanChanList", \
  1425. 0, \
  1426. CFG_VALID_CHANNEL_LIST_STRING_LEN, \
  1427. "", \
  1428. "Set channels to be scanned")
  1429. /*
  1430. * <ini>
  1431. * gNeighborScanTimerPeriod - Set neighbor scan timer period
  1432. * @Min: 3
  1433. * @Max: 300
  1434. * @Default: 100
  1435. *
  1436. * This ini is used to set the timer period in secs after
  1437. * which neighbor scan is triggered.
  1438. *
  1439. * Related: None
  1440. *
  1441. * Supported Feature: LFR Scan
  1442. *
  1443. * Usage: External
  1444. *
  1445. * </ini>
  1446. */
  1447. #define CFG_LFR_NEIGHBOR_SCAN_TIMER_PERIOD CFG_INI_UINT( \
  1448. "gNeighborScanTimerPeriod", \
  1449. 3, \
  1450. 300, \
  1451. 100, \
  1452. CFG_VALUE_OR_DEFAULT, \
  1453. "Neighbor scan timer period")
  1454. /*
  1455. * <ini>
  1456. * gRoamRestTimeMin/RoamScan_HomeTime - Set min neighbor scan timer period
  1457. * @Min: 3
  1458. * @Max: 300
  1459. * @Default: 50
  1460. *
  1461. * This is the min rest time after which firmware will check for traffic
  1462. * and if there no traffic it will move to a new channel to scan
  1463. * else it will stay on the home channel till gNeighborScanTimerPeriod time
  1464. * and then will move to a new channel to scan.
  1465. *
  1466. * Related: None
  1467. *
  1468. * Supported Feature: LFR Scan
  1469. *
  1470. * Usage: External
  1471. *
  1472. * </ini>
  1473. */
  1474. #define CFG_LFR_NEIGHBOR_SCAN_MIN_TIMER_PERIOD CFG_INI_UINT( \
  1475. "gRoamRestTimeMin RoamScan_HomeTime", \
  1476. RoamScan_HomeTime_min, \
  1477. RoamScan_HomeTime_max, \
  1478. RoamScan_HomeTime_default, \
  1479. CFG_VALUE_OR_DEFAULT, \
  1480. "Min neighbor scan timer period")
  1481. /*
  1482. * <ini>
  1483. * gNeighborLookupThreshold/RoamRSSI_Trigger - Set neighbor lookup rssi
  1484. * threshold
  1485. * @Min: 50
  1486. * @Max: 100
  1487. * @Default: 78
  1488. *
  1489. * This is used to control the RSSI threshold for neighbor lookup.
  1490. *
  1491. * Related: None
  1492. *
  1493. * Supported Feature: LFR Scan
  1494. *
  1495. * Usage: External
  1496. *
  1497. * </ini>
  1498. */
  1499. #define CFG_LFR_NEIGHBOR_LOOKUP_RSSI_THRESHOLD CFG_INI_INT( \
  1500. "gNeighborLookupThreshold RoamRSSI_Trigger", \
  1501. RoamRSSI_Trigger_min, \
  1502. RoamRSSI_Trigger_max, \
  1503. RoamRSSI_Trigger_default, \
  1504. CFG_VALUE_OR_DEFAULT, \
  1505. "Neighbor lookup rssi threshold")
  1506. /*
  1507. * <ini>
  1508. * gOpportunisticThresholdDiff - Set oppurtunistic threshold diff
  1509. * @Min: 0
  1510. * @Max: 127
  1511. * @Default: 0
  1512. *
  1513. * This ini is used to set opportunistic threshold diff.
  1514. * This parameter is the RSSI diff above neighbor lookup
  1515. * threshold, when opportunistic scan should be triggered.
  1516. * MAX value is chosen so that this type of scan can be
  1517. * always enabled by user.
  1518. * MIN value will cause opportunistic scan to be triggered
  1519. * in neighbor lookup RSSI range.
  1520. *
  1521. * Related: None
  1522. *
  1523. * Supported Feature: LFR Scan
  1524. *
  1525. * Usage: External
  1526. *
  1527. * </ini>
  1528. */
  1529. #define CFG_LFR_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF CFG_INI_UINT( \
  1530. "gOpportunisticThresholdDiff", \
  1531. 0, \
  1532. 127, \
  1533. 0, \
  1534. CFG_VALUE_OR_DEFAULT, \
  1535. "Set oppurtunistic threshold diff")
  1536. /*
  1537. * <ini>
  1538. * gRoamRescanRssiDiff/RoamScan_StepRSSI - Sets RSSI for Scan trigger in
  1539. * firmware
  1540. * @Min: 0
  1541. * @Max: 100
  1542. * @Default: 5
  1543. *
  1544. * This INI is the drop in RSSI value that will trigger a precautionary
  1545. * scan by firmware. Max value is chosen in such a way that this type
  1546. * of scan can be disabled by user.
  1547. *
  1548. * Related: None
  1549. *
  1550. * Supported Feature: Roaming
  1551. *
  1552. * Usage: External
  1553. *
  1554. * </ini>
  1555. */
  1556. #define CFG_LFR_ROAM_RESCAN_RSSI_DIFF CFG_INI_UINT( \
  1557. "gRoamRescanRssiDiff RoamScan_StepRSSI", \
  1558. RoamScan_StepRSSI_min, \
  1559. RoamScan_StepRSSI_max, \
  1560. RoamScan_StepRSSI_default, \
  1561. CFG_VALUE_OR_DEFAULT, \
  1562. "Sets RSSI for Scan trigger in firmware")
  1563. /*
  1564. * <ini>
  1565. * gNeighborScanChannelMinTime - Set neighbor scan channel min time
  1566. * @Min: 10
  1567. * @Max: 40
  1568. * @Default: 20
  1569. *
  1570. * This ini is used to set the minimum time in secs spent on each
  1571. * channel in LFR scan inside firmware.
  1572. *
  1573. * Related: None
  1574. *
  1575. * Supported Feature: LFR Scan
  1576. *
  1577. * Usage: External
  1578. *
  1579. * </ini>
  1580. */
  1581. #define CFG_LFR_NEIGHBOR_SCAN_MIN_CHAN_TIME CFG_INI_UINT( \
  1582. "gNeighborScanChannelMinTime", \
  1583. 10, \
  1584. 40, \
  1585. 20, \
  1586. CFG_VALUE_OR_DEFAULT, \
  1587. "Neighbor scan channel min time")
  1588. /*
  1589. * <ini>
  1590. * gNeighborScanChannelMaxTime/RoamScan_ActiveCH_DwellTime - Set neighbor scan
  1591. * channel max time
  1592. * @Min: 3
  1593. * @Max: 300
  1594. * @Default: 40
  1595. *
  1596. * This ini is used to set the maximum time in secs spent on each
  1597. * channel in LFR scan inside firmware.
  1598. *
  1599. * Related: None
  1600. *
  1601. * Supported Feature: LFR Scan
  1602. *
  1603. * Usage: External
  1604. *
  1605. * </ini>
  1606. */
  1607. #define CFG_LFR_NEIGHBOR_SCAN_MAX_CHAN_TIME CFG_INI_UINT( \
  1608. "gNeighborScanChannelMaxTime RoamScan_ActiveCH_DwellTime", \
  1609. RoamScan_ActiveCH_DwellTime_min, \
  1610. RoamScan_ActiveCH_DwellTime_max, \
  1611. RoamScan_ActiveCH_DwellTime_default, \
  1612. CFG_VALUE_OR_DEFAULT, \
  1613. "Neighbor scan channel max time")
  1614. /*
  1615. * <ini>
  1616. * gNeighborScanRefreshPeriod - Set neighbor scan refresh period
  1617. * @Min: 1000
  1618. * @Max: 60000
  1619. * @Default: 20000
  1620. *
  1621. * This ini is used by firmware to set scan refresh period
  1622. * in msecs for lfr scan.
  1623. *
  1624. * Related: None
  1625. *
  1626. * Supported Feature: LFR Scan
  1627. *
  1628. * Usage: External
  1629. *
  1630. * </ini>
  1631. */
  1632. #define CFG_LFR_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD CFG_INI_UINT( \
  1633. "gNeighborScanRefreshPeriod", \
  1634. 1000, \
  1635. 60000, \
  1636. 20000, \
  1637. CFG_VALUE_OR_DEFAULT, \
  1638. "Neighbor scan refresh period")
  1639. /*
  1640. * <ini>
  1641. * gFullRoamScanPeriod - Set full roam scan refresh period
  1642. * @Min: 0
  1643. * @Max: 600
  1644. * @Default: 0
  1645. *
  1646. * This ini is used by firmware to set full roam scan period in secs.
  1647. * Full roam scan period is the minimum idle period in seconds between two
  1648. * successive full channel roam scans. If this is configured as a non-zero,
  1649. * full roam scan will be triggered for every configured interval.
  1650. * If this configured as 0, full roam scan will not be triggered at all.
  1651. *
  1652. * Related: None
  1653. *
  1654. * Supported Feature: LFR Scan
  1655. *
  1656. * Usage: External
  1657. *
  1658. * </ini>
  1659. */
  1660. #define CFG_LFR_FULL_ROAM_SCAN_REFRESH_PERIOD CFG_INI_UINT( \
  1661. "gFullRoamScanPeriod", \
  1662. 0, \
  1663. 600, \
  1664. 0, \
  1665. CFG_VALUE_OR_DEFAULT, \
  1666. "Full roam scan refresh period")
  1667. /*
  1668. * <ini>
  1669. * gEmptyScanRefreshPeriod - Set empty scan refresh period
  1670. * @Min: 0
  1671. * @Max: 60000
  1672. * @Default: 0
  1673. *
  1674. * This ini is used by firmware to set scan period in msecs
  1675. * following empty scan results.
  1676. *
  1677. * Related: None
  1678. *
  1679. * Supported Feature: LFR Scan
  1680. *
  1681. * Usage: External
  1682. *
  1683. * </ini>
  1684. */
  1685. #define CFG_LFR_EMPTY_SCAN_REFRESH_PERIOD CFG_INI_UINT( \
  1686. "gEmptyScanRefreshPeriod", \
  1687. 0, \
  1688. 60000, \
  1689. 0, \
  1690. CFG_VALUE_OR_DEFAULT, \
  1691. "Empty scan refresh period")
  1692. /*
  1693. * <ini>
  1694. * RoamScan_FirstTimer - Set empty scan refresh period
  1695. * @Min: 0
  1696. * @Max: 20
  1697. * @Default: 10
  1698. *
  1699. * This ini is used by firmware to set scan period in secs
  1700. * following empty scan results.
  1701. *
  1702. * Related: None
  1703. *
  1704. * Supported Feature: LFR Scan
  1705. *
  1706. * Usage: External
  1707. *
  1708. * </ini>
  1709. */
  1710. #define CFG_ROAM_SCAN_FIRST_TIMER CFG_INI_UINT( \
  1711. "RoamScan_FirstTimer", \
  1712. 0, \
  1713. 20, \
  1714. 10, \
  1715. CFG_VALUE_OR_DEFAULT, \
  1716. "Empty scan refresh period")
  1717. /*
  1718. * <ini>
  1719. * gRoamBmissFirstBcnt - Beacon miss count to trigger 1st bmiss event
  1720. * @Min: 5
  1721. * @Max: 100
  1722. * @Default: 10
  1723. *
  1724. * This ini used to control how many beacon miss will trigger first bmiss
  1725. * event. First bmiss event will result in roaming scan.
  1726. *
  1727. * Related: None
  1728. *
  1729. * Usage: External
  1730. *
  1731. * </ini>
  1732. */
  1733. #define CFG_LFR_ROAM_BMISS_FIRST_BCNT CFG_INI_UINT( \
  1734. "gRoamBmissFirstBcnt", \
  1735. 5, \
  1736. 100, \
  1737. 10, \
  1738. CFG_VALUE_OR_DEFAULT, \
  1739. "First beacon miss count")
  1740. /*
  1741. * <ini>
  1742. * gRoamBmissFinalBcnt - Beacon miss count to trigger final bmiss event
  1743. * @Min: 5
  1744. * @Max: 100
  1745. * @Default: 20
  1746. *
  1747. * This ini used to control how many beacon miss will trigger final bmiss
  1748. * event. Final bmiss event will make roaming take place or cause the
  1749. * indication of final bmiss event.
  1750. *
  1751. * Related: None
  1752. *
  1753. * Usage: External
  1754. *
  1755. * </ini>
  1756. */
  1757. #define CFG_LFR_ROAM_BMISS_FINAL_BCNT CFG_INI_UINT( \
  1758. "gRoamBmissFinalBcnt", \
  1759. 5, \
  1760. 100, \
  1761. 20, \
  1762. CFG_VALUE_OR_DEFAULT, \
  1763. "Final beacon miss count")
  1764. /*
  1765. * <ini>
  1766. * BeaconLoss_TimeoutOnWakeUp - Consecutive Beaconloss timeout on wakeup to
  1767. * trigger timeout
  1768. * @Min: 0
  1769. * @Max: 20
  1770. * @Default: 3
  1771. *
  1772. * This ini is used to control the beacon miss timeout when the system is awake.
  1773. * On the timeout, BMISS event will be triggered by FW.
  1774. * The units of this timeout is in seconds.
  1775. *
  1776. * Related: None
  1777. *
  1778. * Usage: External
  1779. *
  1780. * </ini>
  1781. */
  1782. #define CFG_LFR_BEACONLOSS_TIMEOUT_ON_WAKEUP CFG_INI_UINT( \
  1783. "ConBeaconLoss_TimeoutOnWakeUp", \
  1784. 0, \
  1785. 20, \
  1786. 3, \
  1787. CFG_VALUE_OR_DEFAULT, \
  1788. "ConBeaconloss timeout on wakeup")
  1789. /*
  1790. * <ini>
  1791. * BeaconLoss_TimeoutOnSleep - Consecutive Beaconloss timeout on sleep to
  1792. * trigger timeout
  1793. * @Min: 0
  1794. * @Max: 20
  1795. * @Default: 5
  1796. *
  1797. * This ini is used to control the beacon miss timeout
  1798. * when the system is in sleep.
  1799. * On the timeout, BMISS event will be triggered by FW.
  1800. * The units of this timeout is in seconds.
  1801. *
  1802. * Related: None
  1803. *
  1804. * Usage: External
  1805. *
  1806. * </ini>
  1807. */
  1808. #define CFG_LFR_BEACONLOSS_TIMEOUT_ON_SLEEP CFG_INI_UINT( \
  1809. "ConBeaconLoss_TimeoutOnSleep", \
  1810. 0, \
  1811. 20, \
  1812. 5, \
  1813. CFG_VALUE_OR_DEFAULT, \
  1814. "ConBeaconloss timeout on sleep")
  1815. /*
  1816. * <ini>
  1817. * gAllowDFSChannelRoam - Allow dfs channel in roam
  1818. * @Min: 0
  1819. * @Max: 2
  1820. * @Default: 1
  1821. *
  1822. * This ini is used to set default dfs channel
  1823. *
  1824. * Related: None
  1825. *
  1826. * Supported Feature: STA
  1827. *
  1828. * Usage: Internal/External
  1829. *
  1830. * </ini>
  1831. */
  1832. #define CFG_LFR_ROAMING_DFS_CHANNEL CFG_INI_UINT( \
  1833. "gAllowDFSChannelRoam", \
  1834. 0, \
  1835. 2, \
  1836. 1, \
  1837. CFG_VALUE_OR_DEFAULT, \
  1838. "Allow dfs channel in roam")
  1839. /*
  1840. * <ini>
  1841. * gRoamScanHiRssiMaxCount - Sets 5GHz maximum scan count
  1842. * @Min: 0
  1843. * @Max: 10
  1844. * @Default: 3
  1845. *
  1846. * This INI is used to set maximum scan count in 5GHz
  1847. *
  1848. * Related: None
  1849. *
  1850. * Supported Feature: Roaming
  1851. *
  1852. * Usage: External
  1853. *
  1854. * </ini>
  1855. */
  1856. #define CFG_LFR_ROAM_SCAN_HI_RSSI_MAXCOUNT CFG_INI_UINT( \
  1857. "gRoamScanHiRssiMaxCount", \
  1858. 0, \
  1859. 10, \
  1860. 3, \
  1861. CFG_VALUE_OR_DEFAULT, \
  1862. "5GHz maximum scan count")
  1863. /*
  1864. * <ini>
  1865. * gRoamScanHiRssiDelta - Sets RSSI Delta for scan trigger
  1866. * @Min: 0
  1867. * @Max: 16
  1868. * @Default: 10
  1869. *
  1870. * This INI is used to set change in RSSI at which scan is triggered
  1871. * in 5GHz.
  1872. *
  1873. * Related: None
  1874. *
  1875. * Supported Feature: Roaming
  1876. *
  1877. * Usage: External
  1878. *
  1879. * </ini>
  1880. */
  1881. #define CFG_LFR_ROAM_SCAN_HI_RSSI_DELTA CFG_INI_UINT( \
  1882. "gRoamScanHiRssiDelta", \
  1883. 0, \
  1884. 16, \
  1885. 10, \
  1886. CFG_VALUE_OR_DEFAULT, \
  1887. "RSSI Delta for scan trigger")
  1888. /*
  1889. * <ini>
  1890. * gRoamScanHiRssiDelay - Sets minimum delay between 5GHz scans
  1891. * @Min: 5000
  1892. * @Max: 0x7fffffff
  1893. * @Default: 15000
  1894. *
  1895. * This INI is used to set the minimum delay between 5GHz scans.
  1896. *
  1897. * Related: None
  1898. *
  1899. * Supported Feature: Roaming
  1900. *
  1901. * Usage: External
  1902. *
  1903. * </ini>
  1904. */
  1905. #define CFG_LFR_ROAM_SCAN_HI_RSSI_DELAY CFG_INI_UINT( \
  1906. "gRoamScanHiRssiDelay", \
  1907. 5000, \
  1908. 0x7fffffff, \
  1909. 15000, \
  1910. CFG_VALUE_OR_DEFAULT, \
  1911. "Minimum delay between 5GHz scans")
  1912. /*
  1913. * <ini>
  1914. * gRoamScanHiRssiUpperBound - Sets upper bound after which 5GHz scan
  1915. * @Min: -66
  1916. * @Max: 0
  1917. * @Default: -30
  1918. *
  1919. * This INI is used to set the RSSI upper bound above which the 5GHz scan
  1920. * will not be performed.
  1921. *
  1922. * Related: None
  1923. *
  1924. * Supported Feature: Roaming
  1925. *
  1926. * Usage: External
  1927. *
  1928. * </ini>
  1929. */
  1930. #define CFG_LFR_ROAM_SCAN_HI_RSSI_UB CFG_INI_INT( \
  1931. "gRoamScanHiRssiUpperBound", \
  1932. -66, \
  1933. 0, \
  1934. -30, \
  1935. CFG_VALUE_OR_DEFAULT, \
  1936. "Upper bound after which 5GHz scan")
  1937. /*
  1938. * <ini>
  1939. * gRoamPrefer5GHz - Prefer roaming to 5GHz Bss
  1940. * @Min: 0
  1941. * @Max: 1
  1942. * @Default: 1
  1943. *
  1944. * This ini is used to inform FW to prefer roaming to 5GHz BSS
  1945. *
  1946. * Related: None
  1947. *
  1948. * Supported Feature: Roaming
  1949. *
  1950. * Usage: External
  1951. *
  1952. * </ini>
  1953. */
  1954. #define CFG_LFR_ROAM_PREFER_5GHZ CFG_INI_BOOL( \
  1955. "gRoamPrefer5GHz", \
  1956. 1, \
  1957. "Prefer roaming to 5GHz Bss")
  1958. /*
  1959. * <ini>
  1960. * gRoamIntraBand - Prefer roaming within Band
  1961. * @Min: 0
  1962. * @Max: 1
  1963. * @Default: 0
  1964. *
  1965. * This ini is used to inform FW to prefer roaming within band
  1966. *
  1967. * Related: None
  1968. *
  1969. * Supported Feature: Roaming
  1970. *
  1971. * Usage: External
  1972. *
  1973. * </ini>
  1974. */
  1975. #define CFG_LFR_ROAM_INTRA_BAND CFG_INI_BOOL( \
  1976. "gRoamIntraBand", \
  1977. 0, \
  1978. "Prefer roaming within Band")
  1979. /*
  1980. * <ini>
  1981. * gRoamScanNProbes - Sets the number of probes to be sent for firmware roaming
  1982. * @Min: 1
  1983. * @Max: 10
  1984. * @Default: 2
  1985. *
  1986. * This INI is used to set the maximum number of probes the firmware can send
  1987. * for firmware internal roaming cases.
  1988. *
  1989. * Related: None
  1990. *
  1991. * Supported Feature: Roaming
  1992. *
  1993. * Usage: External
  1994. *
  1995. * </ini>
  1996. */
  1997. #define CFG_LFR_ROAM_SCAN_N_PROBES CFG_INI_UINT( \
  1998. "gRoamScanNProbes", \
  1999. 1, \
  2000. 10, \
  2001. 2, \
  2002. CFG_VALUE_OR_DEFAULT, \
  2003. "The number of probes to be sent for firmware roaming")
  2004. /*
  2005. * <ini>
  2006. * gRoamScanHomeAwayTime/RoamScan_AwayTime - Sets the Home Away Time to firmware
  2007. * @Min: 0
  2008. * @Max: 300
  2009. * @Default: 0
  2010. *
  2011. * Home Away Time should be at least equal to (gNeighborScanChannelMaxTime
  2012. * + (2*RFS)), where RFS is the RF Switching time(3). It is twice RFS
  2013. * to consider the time to go off channel and return to the home channel.
  2014. *
  2015. * Related: gNeighborScanChannelMaxTime
  2016. *
  2017. * Supported Feature: Roaming
  2018. *
  2019. * Usage: External
  2020. *
  2021. * </ini>
  2022. */
  2023. #define CFG_LFR_ROAM_SCAN_HOME_AWAY_TIME CFG_INI_UINT( \
  2024. "gRoamScanHomeAwayTime RoamScan_AwayTime", \
  2025. RoamScan_AwayTime_min, \
  2026. RoamScan_AwayTime_max, \
  2027. RoamScan_AwayTime_default, \
  2028. CFG_VALUE_OR_DEFAULT, \
  2029. "the home away time to firmware")
  2030. /*
  2031. * <ini>
  2032. * gDelayBeforeVdevStop - wait time for tx complete before vdev stop
  2033. * @Min: 2
  2034. * @Max: 200
  2035. * @Default: 20
  2036. *
  2037. * This INI is used to set wait time for tx complete before vdev stop.
  2038. *
  2039. * Related: None
  2040. *
  2041. * Usage: External
  2042. *
  2043. * </ini>
  2044. */
  2045. #define CFG_LFR_DELAY_BEFORE_VDEV_STOP CFG_INI_UINT( \
  2046. "gDelayBeforeVdevStop", \
  2047. 2, \
  2048. 200, \
  2049. 20, \
  2050. CFG_VALUE_OR_DEFAULT, \
  2051. "wait time for tx complete before vdev stop")
  2052. /*
  2053. * <ini>
  2054. * enable_bss_load_roam_trigger - enable/disable bss load based roam trigger
  2055. * @Min: 0
  2056. * @Max: 1
  2057. * @Default: 0
  2058. *
  2059. * This ini when enabled, allows the firmware to roam when bss load outpaces
  2060. * the configured bss load threshold. When this ini is disabled, firmware
  2061. * doesn't consider bss load values to trigger roam.
  2062. *
  2063. * Related: None
  2064. *
  2065. * Supported Feature: Roaming
  2066. *
  2067. * Usage: External
  2068. *
  2069. * </ini>
  2070. */
  2071. #define CFG_ENABLE_BSS_LOAD_TRIGGERED_ROAM CFG_INI_BOOL( \
  2072. "enable_bss_load_roam_trigger", \
  2073. 0, \
  2074. "enable bss load triggered roaming")
  2075. /*
  2076. * <ini>
  2077. * bss_load_threshold/RoamCU_Trigger - bss load above which the STA should
  2078. * trigger roaming
  2079. * @Min: 0
  2080. * @Max: 100
  2081. * @Default: 70
  2082. *
  2083. * When the bss load value that is sampled exceeds this threshold, firmware
  2084. * will trigger roaming if bss load trigger is enabled.
  2085. *
  2086. * Related: None
  2087. *
  2088. * Supported Feature: Roaming
  2089. *
  2090. * Usage: External
  2091. *
  2092. * </ini>
  2093. */
  2094. #define CFG_BSS_LOAD_THRESHOLD CFG_INI_UINT( \
  2095. "bss_load_threshold RoamCU_Trigger", \
  2096. RoamCU_Trigger_min, \
  2097. RoamCU_Trigger_max, \
  2098. RoamCU_Trigger_default, \
  2099. CFG_VALUE_OR_DEFAULT, \
  2100. "bss load threshold")
  2101. /*
  2102. * <ini>
  2103. * bss_load_sample_time - Time in milliseconds for which the bss load values
  2104. * obtained from the beacons is sampled.
  2105. * @Min: 0
  2106. * @Max: 0xffffffff
  2107. * @Default: 10000
  2108. *
  2109. * Related: None
  2110. *
  2111. * Supported Feature: Roaming
  2112. *
  2113. * Usage: External
  2114. *
  2115. * </ini>
  2116. */
  2117. #define CFG_BSS_LOAD_SAMPLE_TIME CFG_INI_UINT( \
  2118. "bss_load_sample_time", \
  2119. 0, \
  2120. 0xffffffff, \
  2121. 10000, \
  2122. CFG_VALUE_OR_DEFAULT, \
  2123. "bss load sampling time")
  2124. /*
  2125. * <ini>
  2126. * RoamCU_MonitorTime - Time in seconds for which the bss load values
  2127. * obtained from the beacons is sampled.
  2128. * @Min: 0
  2129. * @Max: 20
  2130. * @Default: 10
  2131. *
  2132. * Related: None
  2133. *
  2134. * Supported Feature: Roaming
  2135. *
  2136. * Usage: External
  2137. *
  2138. * </ini>
  2139. */
  2140. #define CFG_ROAM_CU_MONITOR_TIME CFG_INI_UINT( \
  2141. "RoamCU_MonitorTime", \
  2142. 0, \
  2143. 20, \
  2144. 10, \
  2145. CFG_VALUE_OR_DEFAULT, \
  2146. "bss load sampling time")
  2147. /*
  2148. * <ini>
  2149. * bss_load_trigger_6g_rssi_threshold/RoamCU_6GRSSIRange -
  2150. * Current AP minimum RSSI in dBm below
  2151. * which roaming can be triggered if BSS load exceeds bss_load_threshold.
  2152. * @Min: -120
  2153. * @Max: 0
  2154. * @Default: -70
  2155. *
  2156. * If connected AP is in 6Ghz, then consider bss load roam triggered only if
  2157. * load % > bss_load_threshold && connected AP rssi is worse than
  2158. * bss_load_trigger_6g_rssi_threshold
  2159. *
  2160. * Related: "bss_load_threshold"
  2161. *
  2162. * Supported Feature: Roaming
  2163. *
  2164. * Usage: Internal/External
  2165. *
  2166. * </ini>
  2167. */
  2168. #define CFG_BSS_LOAD_TRIG_6G_RSSI_THRES CFG_INI_INT( \
  2169. "bss_load_trigger_6g_rssi_threshold RoamCU_6GRSSIRange", \
  2170. -120, \
  2171. 0, \
  2172. -70, \
  2173. CFG_VALUE_OR_DEFAULT, \
  2174. "Minimum RSSI of current AP in 6GHz band for BSS load roam trigger")
  2175. /*
  2176. * <ini>
  2177. * bss_load_trigger_5g_rssi_threshold/RoamCU_5GRSSIRange -
  2178. * Current AP minimum RSSI in dBm below
  2179. * which roaming can be triggered if BSS load exceeds bss_load_threshold.
  2180. * @Min: -120
  2181. * @Max: 0
  2182. * @Default: -70
  2183. *
  2184. * If connected AP is in 5Ghz, then consider bss load roam triggered only if
  2185. * load % > bss_load_threshold && connected AP rssi is worse than
  2186. * bss_load_trigger_5g_rssi_threshold
  2187. *
  2188. * Related: "bss_load_threshold"
  2189. *
  2190. * Supported Feature: Roaming
  2191. *
  2192. * Usage: Internal/External
  2193. *
  2194. * </ini>
  2195. */
  2196. #define CFG_BSS_LOAD_TRIG_5G_RSSI_THRES CFG_INI_INT( \
  2197. "bss_load_trigger_5g_rssi_threshold RoamCU_5GRSSIRange", \
  2198. RoamCU_5GRSSIRange_min, \
  2199. RoamCU_5GRSSIRange_max, \
  2200. RoamCU_5GRSSIRange_default, \
  2201. CFG_VALUE_OR_DEFAULT, \
  2202. "Minimum RSSI of current AP in 5GHz band for BSS load roam trigger")
  2203. /*
  2204. * <ini>
  2205. * bss_load_trigger_2g_rssi_threshold/RoamCU_24GRSSIRange -
  2206. * Current AP minimum RSSI in dBm below
  2207. * which roaming can be triggered if BSS load exceeds bss_load_threshold.
  2208. * @Min: -120
  2209. * @Max: 0
  2210. * @Default: -60
  2211. *
  2212. * If connected AP is in 2Ghz, then consider bss load roam triggered only if
  2213. * load % > bss_load_threshold && connected AP rssi is worse than
  2214. * bss_load_trigger_2g_rssi_threshold.
  2215. *
  2216. * Related: "bss_load_threshold"
  2217. *
  2218. * Supported Feature: Roaming
  2219. *
  2220. * Usage: Internal/External
  2221. *
  2222. * </ini>
  2223. */
  2224. #define CFG_BSS_LOAD_TRIG_2G_RSSI_THRES CFG_INI_INT( \
  2225. "bss_load_trigger_2g_rssi_threshold RoamCU_24GRSSIRange", \
  2226. RoamCU_24GRSSIRange_min, \
  2227. RoamCU_24GRSSIRange_max, \
  2228. RoamCU_24GRSSIRange_default, \
  2229. CFG_VALUE_OR_DEFAULT, \
  2230. "Minimum RSSI of current AP in 2.4GHz band for BSS load roam trigger")
  2231. /*
  2232. * <ini>
  2233. * ho_delay_for_rx - Delay hand-off (in msec) by this duration to receive
  2234. * pending rx frames from current BSS
  2235. * @Min: 0
  2236. * @Max: 200
  2237. * @Default: 0
  2238. *
  2239. * For LFR 3.0 roaming scenario, once roam candidate is found, firmware
  2240. * waits for minimum this much duration to receive pending rx frames from
  2241. * current BSS before switching to new channel for handoff to new AP.
  2242. *
  2243. * Related: None
  2244. *
  2245. * Supported Feature: Roaming
  2246. *
  2247. * Usage: External
  2248. *
  2249. * </ini>
  2250. */
  2251. #define CFG_LFR3_ROAM_HO_DELAY_FOR_RX CFG_INI_UINT( \
  2252. "ho_delay_for_rx", \
  2253. 0, \
  2254. 200, \
  2255. 0, \
  2256. CFG_VALUE_OR_DEFAULT, \
  2257. "Delay Hand-off by this duration to receive")
  2258. /*
  2259. * <ini>
  2260. * min_delay_btw_roam_scans - Min duration (in sec) allowed btw two
  2261. * consecutive roam scans
  2262. * @Min: 0
  2263. * @Max: 60
  2264. * @Default: 10
  2265. *
  2266. * Roam scan is not allowed if duration between two consecutive
  2267. * roam scans is less than this time.
  2268. *
  2269. * Related: None
  2270. *
  2271. * Supported Feature: Roaming
  2272. *
  2273. * Usage: External
  2274. *
  2275. * </ini>
  2276. */
  2277. #define CFG_LFR_MIN_DELAY_BTW_ROAM_SCAN CFG_INI_UINT( \
  2278. "min_delay_btw_roam_scans", \
  2279. 0, \
  2280. 60, \
  2281. 10, \
  2282. CFG_VALUE_OR_DEFAULT, \
  2283. "Min duration")
  2284. /*
  2285. * <ini>
  2286. * roam_trigger_reason_bitmask - Contains roam_trigger_reasons
  2287. * @Min: 0
  2288. * @Max: 0xFFFFFFFF
  2289. * @Default: 0x10DA
  2290. *
  2291. * Bitmask containing roam_trigger_reasons for which
  2292. * min_delay_btw_roam_scans constraint should be applied.
  2293. * Currently supported bit positions are as follows:
  2294. * Bit 0 is reserved in the firmware.
  2295. * WMI_ROAM_TRIGGER_REASON_PER - 1
  2296. * WMI_ROAM_TRIGGER_REASON_BMISS - 2
  2297. * WMI_ROAM_TRIGGER_REASON_LOW_RSSI - 3
  2298. * WMI_ROAM_TRIGGER_REASON_HIGH_RSSI - 4
  2299. * WMI_ROAM_TRIGGER_REASON_PERIODIC - 5
  2300. * WMI_ROAM_TRIGGER_REASON_MAWC - 6
  2301. * WMI_ROAM_TRIGGER_REASON_DENSE - 7
  2302. * WMI_ROAM_TRIGGER_REASON_BACKGROUND - 8
  2303. * WMI_ROAM_TRIGGER_REASON_FORCED - 9
  2304. * WMI_ROAM_TRIGGER_REASON_BTM - 10
  2305. * WMI_ROAM_TRIGGER_REASON_UNIT_TEST - 11
  2306. * WMI_ROAM_TRIGGER_REASON_BSS_LOAD - 12
  2307. * WMI_ROAM_TRIGGER_REASON_DEAUTH - 13
  2308. * WMI_ROAM_TRIGGER_REASON_IDLE - 14
  2309. * WMI_ROAM_TRIGGER_REASON_MAX - 15
  2310. *
  2311. * For Ex: 0xDA (PER, LOW_RSSI, HIGH_RSSI, MAWC, DENSE)
  2312. *
  2313. * Related: None
  2314. *
  2315. * Supported Feature: Roaming
  2316. *
  2317. * Usage: External
  2318. *
  2319. * </ini>
  2320. */
  2321. #define CFG_LFR_ROAM_SCAN_TRIGGER_REASON_BITMASK CFG_INI_UINT( \
  2322. "roam_trigger_reason_bitmask", \
  2323. 0, \
  2324. 0xFFFFFFFF, \
  2325. 0x10DA, \
  2326. CFG_VALUE_OR_DEFAULT, \
  2327. "Contains roam_trigger_reasons")
  2328. /*
  2329. * <ini>
  2330. * enable_ftopen - enable/disable FT open feature
  2331. * @Min: 0
  2332. * @Max: 1
  2333. * @Default: 1
  2334. *
  2335. * This INI is used to enable/disable FT open feature
  2336. *
  2337. * Related: None
  2338. *
  2339. * Supported Feature: Roaming
  2340. *
  2341. * Usage: External
  2342. *
  2343. * </ini>
  2344. */
  2345. #define CFG_LFR_ROAM_FT_OPEN_ENABLE CFG_INI_BOOL( \
  2346. "enable_ftopen", \
  2347. 1, \
  2348. "enable/disable FT open feature")
  2349. /*
  2350. * <ini>
  2351. * roam_force_rssi_trigger - To force RSSI trigger
  2352. * irrespective of channel list type
  2353. * @Min: 0
  2354. * @Max: 1
  2355. * @Default: 1
  2356. *
  2357. * This ini is used to set roam scan mode
  2358. * WMI_ROAM_SCAN_MODE_RSSI_CHANGE, irrespective of whether
  2359. * channel list type is CHANNEL_LIST_STATIC or not
  2360. *
  2361. * Related: None
  2362. *
  2363. * Supported Feature: Roaming
  2364. *
  2365. * Usage: External
  2366. *
  2367. * </ini>
  2368. */
  2369. #define CFG_LFR_ROAM_FORCE_RSSI_TRIGGER CFG_INI_BOOL( \
  2370. "roam_force_rssi_trigger", \
  2371. 1, \
  2372. "To force RSSI trigger")
  2373. #ifdef WLAN_FEATURE_ROAM_OFFLOAD
  2374. /*
  2375. * <ini>
  2376. * gRoamOffloadEnabled - enable/disable roam offload feature
  2377. * @Min: 0
  2378. * @Max: 1
  2379. * @Default: 1
  2380. *
  2381. * This INI is used to enable/disable roam offload feature
  2382. *
  2383. * Related: None
  2384. *
  2385. * Supported Feature: Roaming
  2386. *
  2387. * Usage: External
  2388. *
  2389. * </ini>
  2390. */
  2391. #define CFG_LFR3_ROAMING_OFFLOAD CFG_INI_BOOL( \
  2392. "gRoamOffloadEnabled", \
  2393. 1, \
  2394. "enable roam offload")
  2395. /*
  2396. * <ini>
  2397. * enable_self_bss_roam - enable/disable roaming to self bss
  2398. * @Min: 0
  2399. * @Max: 1
  2400. * @Default: 1
  2401. *
  2402. * This INI is used to enable/disable roaming to already connected BSSID
  2403. *
  2404. * Related: None
  2405. *
  2406. * Supported Feature: Roaming
  2407. *
  2408. * Usage: Internal
  2409. *
  2410. * </ini>
  2411. */
  2412. #define CFG_LFR3_ENABLE_SELF_BSS_ROAM CFG_INI_BOOL( \
  2413. "enable_self_bss_roam", \
  2414. 1, \
  2415. "enable self bss roam")
  2416. /*
  2417. * <ini>
  2418. * enable_disconnect_roam_offload - Enable/Disable emergency roaming during
  2419. * deauth/disassoc
  2420. * @Min: 0 - Disabled
  2421. * @Max: 1 - Enabled
  2422. * @Default: 1
  2423. *
  2424. * When this ini is enabled firmware will trigger roam scan and roam to a new ap
  2425. * if candidate is found and it will not send the deauth/disassoc frame to
  2426. * the host driver.
  2427. * If roaming fails after this deauth, then firmware will send
  2428. * WMI_ROAM_REASON_DEAUTH event to the host. If roaming is successful, driver
  2429. * follows the normal roam synch event path.
  2430. *
  2431. * Supported Feature: Roaming
  2432. *
  2433. * Usage: Internal/External
  2434. *
  2435. * </ini>
  2436. */
  2437. #define CFG_LFR_ENABLE_DISCONNECT_ROAM CFG_INI_BOOL( \
  2438. "enable_disconnect_roam_offload", \
  2439. true, \
  2440. "Enable/Disable roaming on deauth/disassoc from AP")
  2441. /*
  2442. * <ini>
  2443. * enable_idle_roam - Enable/Disable idle roaming
  2444. * @Min: 0 - Disabled
  2445. * @Max: 1 - Enabled
  2446. * @Default: 0
  2447. *
  2448. * When this ini is enabled firmware will trigger roam scan and roam to a new
  2449. * ap if current connected AP rssi falls below the threshold. To consider the
  2450. * connection as idle, the following conditions should be met if this ini
  2451. * "enable_idle_roam" is enabled:
  2452. * 1. User space sends "SET SUSPENDMODE" command with value 0.
  2453. * 2. No TX/RX data for idle time configured via ini "idle_roam_inactive_time".
  2454. * 3. Connected AP rssi change doesn't exceed a specific delta value.
  2455. * (configured via ini idle_roam_rssi_delta)
  2456. * 4. Connected AP rssi falls below minimum rssi (configured via ini
  2457. * "idle_roam_min_rssi").
  2458. *
  2459. * Supported Feature: Roaming
  2460. *
  2461. * Usage: Internal/External
  2462. *
  2463. * </ini>
  2464. */
  2465. #define CFG_LFR_ENABLE_IDLE_ROAM CFG_INI_BOOL( \
  2466. "enable_idle_roam", \
  2467. false, \
  2468. "Enable/Disable idle roam")
  2469. /*
  2470. * <ini>
  2471. * idle_roam_rssi_delta/RoamIdle_RSSIVariation - This threshold is the criteria
  2472. * to decide whether DUT is idle or moving. If rssi delta is more than
  2473. * configured threshold then its considered as not idle. RSSI delta is entered
  2474. *in dBm. Idle roaming can be triggered if the connected AP rssi change exceeds
  2475. * or falls below the rssi delta and if other criteria of ini "enable_idle_roam"
  2476. * is met
  2477. * @Min: 0
  2478. * @Max: 50
  2479. * @Default: 3
  2480. *
  2481. * Related: enable_idle_roam
  2482. *
  2483. * Supported Feature: Roaming
  2484. *
  2485. * Usage: Internal/External
  2486. *
  2487. * </ini>
  2488. */
  2489. #define CFG_LFR_IDLE_ROAM_RSSI_DELTA CFG_INI_UINT( \
  2490. "idle_roam_rssi_delta RoamIdle_RSSIVariation", \
  2491. RoamIdle_RSSIVariation_min, \
  2492. RoamIdle_RSSIVariation_max, \
  2493. RoamIdle_RSSIVariation_default, \
  2494. CFG_VALUE_OR_DEFAULT, \
  2495. "Configure RSSI delta to start idle roam")
  2496. /*
  2497. * <ini>
  2498. * idle_roam_inactive_time - Time duration in milliseconds for which the
  2499. * connection is idle.
  2500. * @Min: 0
  2501. * @Max: 0xFFFFFFFF
  2502. * @Default: 10000
  2503. *
  2504. * This ini is used to configure the time in seconds for which the connection
  2505. * candidate is idle and after which idle roam scan can be triggered if
  2506. * other criteria of ini "enable_idle_roam" is met.
  2507. *
  2508. * Related: enable_idle_roam
  2509. *
  2510. * Supported Feature: Roaming
  2511. *
  2512. * Usage: Internal/External
  2513. *
  2514. * </ini>
  2515. */
  2516. #define CFG_LFR_IDLE_ROAM_INACTIVE_TIME CFG_INI_UINT( \
  2517. "idle_roam_inactive_time", \
  2518. 0, \
  2519. 0xFFFFFFFF, \
  2520. 10000, \
  2521. CFG_VALUE_OR_DEFAULT, \
  2522. "Configure RSSI delta to start idle roam")
  2523. /*
  2524. * <ini>
  2525. * RoamIdle_InactiveTime - Time duration in seconds for which the
  2526. * connection is idle.
  2527. * @Min: 0
  2528. * @Max: 20
  2529. * @Default: 10
  2530. *
  2531. * This ini is used to configure the time in seconds for which the connection
  2532. * candidate is idle and after which idle roam scan can be triggered if
  2533. * other criteria of ini "enable_idle_roam" is met.
  2534. *
  2535. * Related: enable_idle_roam
  2536. *
  2537. * Supported Feature: Roaming
  2538. *
  2539. * Usage: Internal/External
  2540. *
  2541. * </ini>
  2542. */
  2543. #define CFG_ROAM_IDLE_INACTIVE_TIME CFG_INI_UINT( \
  2544. "RoamIdle_InactiveTime", \
  2545. 0, \
  2546. 20, \
  2547. 10, \
  2548. CFG_VALUE_OR_DEFAULT, \
  2549. "Configure RSSI delta to start idle roam")
  2550. /*
  2551. * <ini>
  2552. * idle_data_packet_count/RoamIdle_InactivePacketCount - No of tx/rx packets
  2553. * above which the connection is not idle.
  2554. * @Min: 0
  2555. * @Max: 0xFFFFFFFF
  2556. * @Default: 10
  2557. *
  2558. * This ini is used to configure the acceptable number of tx/rx packets below
  2559. * which the connection is idle. Ex: If idle_data_packet_count is 10
  2560. * and if the tx/rx packet count is less than 10, the connection is
  2561. * idle. If there are more than 10 packets, the connection is active one.
  2562. *
  2563. * Related: enable_idle_roam
  2564. *
  2565. * Supported Feature: Roaming
  2566. *
  2567. * Usage: Internal/External
  2568. *
  2569. * </ini>
  2570. */
  2571. #define CFG_LFR_IDLE_ROAM_PACKET_COUNT CFG_INI_UINT( \
  2572. "idle_data_packet_count RoamIdle_InactivePacketCount", \
  2573. RoamIdle_InactivePacketCount_min, \
  2574. RoamIdle_InactivePacketCount_max, \
  2575. RoamIdle_InactivePacketCount_default, \
  2576. CFG_VALUE_OR_DEFAULT, \
  2577. "Configure idle packet count")
  2578. /*
  2579. * <ini>
  2580. * idle_roam_min_rssi/RoamIdle_MinRSSI - Minimum RSSI of connected AP, below
  2581. * which idle roam scan can be triggered if other criteria of ini
  2582. * "enable_idle_roam" is met.
  2583. * @Min: -96
  2584. * @Max: 0
  2585. * @Default: -65
  2586. *
  2587. * Related: enable_idle_roam
  2588. *
  2589. * Supported Feature: Roaming
  2590. *
  2591. * Usage: Internal/External
  2592. *
  2593. * </ini>
  2594. */
  2595. #define CFG_LFR_IDLE_ROAM_MIN_RSSI CFG_INI_INT( \
  2596. "idle_roam_min_rssi RoamIdle_MinRSSI", \
  2597. RoamIdle_MinRSSI_min, \
  2598. RoamIdle_MinRSSI_max, \
  2599. RoamIdle_MinRSSI_default, \
  2600. CFG_VALUE_OR_DEFAULT, \
  2601. "Configure idle roam minimum RSSI")
  2602. /*
  2603. * <ini>
  2604. * idle_roam_band/RoamIdle_TriggerBand - Band on which idle roam scan will be
  2605. * enabled
  2606. * @Min: 0
  2607. * @Max: 2
  2608. * @Default: 0
  2609. *
  2610. * Value 0 - Allow idle roam on both bands
  2611. * Value 1 - Allow idle roam only on 2G band
  2612. * Value 2 - Allow idle roam only on 5G band
  2613. *
  2614. * Related: enable_idle_roam
  2615. *
  2616. * Supported Feature: Roaming
  2617. *
  2618. * Usage: Internal/External
  2619. *
  2620. * </ini>
  2621. */
  2622. #define CFG_LFR_IDLE_ROAM_BAND CFG_INI_UINT( \
  2623. "idle_roam_band RoamIdle_TriggerBand", \
  2624. RoamIdle_TriggerBand_min, \
  2625. RoamIdle_TriggerBand_max, \
  2626. RoamIdle_TriggerBand_default, \
  2627. CFG_VALUE_OR_DEFAULT, \
  2628. "Band on which idle roam needs to be enabled")
  2629. /*
  2630. * <ini>
  2631. * roam_triggers - Bitmap of roaming triggers. Setting this to
  2632. * zero will disable roaming altogether for the STA interface.
  2633. * ESS report element of beacon explores BSS information, for roaming station
  2634. * uses it to consider next AP to roam. ROAM_TRIGGER_REASON_ESS_RSSI bit is
  2635. * to enable/disable roam trigger for ESS RSSI reason. This bit of ini is also
  2636. * used for WFA certification.
  2637. * @Min: 0
  2638. * @Max: 0xFFFFFFFF
  2639. * @Default: 0x3FFFF
  2640. *
  2641. * ROAM_TRIGGER_REASON_PER BIT 1
  2642. * ROAM_TRIGGER_REASON_BMISS BIT 2
  2643. * ROAM_TRIGGER_REASON_LOW_RSSI BIT 3
  2644. * ROAM_TRIGGER_REASON_HIGH_RSSI BIT 4
  2645. * ROAM_TRIGGER_REASON_PERIODIC BIT 5
  2646. * ROAM_TRIGGER_REASON_MAWC BIT 6
  2647. * ROAM_TRIGGER_REASON_DENSE BIT 7
  2648. * ROAM_TRIGGER_REASON_BACKGROUND BIT 8
  2649. * ROAM_TRIGGER_REASON_FORCED BIT 9
  2650. * ROAM_TRIGGER_REASON_BTM BIT 10
  2651. * ROAM_TRIGGER_REASON_UNIT_TEST BIT 11
  2652. * ROAM_TRIGGER_REASON_BSS_LOAD BIT 12
  2653. * ROAM_TRIGGER_REASON_DEAUTH BIT 13
  2654. * ROAM_TRIGGER_REASON_IDLE BIT 14
  2655. * ROAM_TRIGGER_REASON_STA_KICKOUT BIT 15
  2656. * ROAM_TRIGGER_REASON_ESS_RSSI BIT 16
  2657. * ROAM_TRIGGER_REASON_WTC_BTM BIT 17
  2658. * ROAM_TRIGGER_REASON_PMK_TIMEOUT BIT 18
  2659. * ROAM_TRIGGER_REASON_BTC BIT 19
  2660. * ROAM_TRIGGER_REASON_MAX BIT 20
  2661. *
  2662. * Related: none
  2663. *
  2664. * Supported Feature: Roaming
  2665. *
  2666. * Usage: External
  2667. *
  2668. * </ini>
  2669. */
  2670. #define CFG_ROAM_TRIGGER_BITMAP CFG_INI_UINT( \
  2671. "roam_triggers", \
  2672. 0, \
  2673. 0xFFFFFFFF, \
  2674. 0x7FFFF, \
  2675. CFG_VALUE_OR_DEFAULT, \
  2676. "Bitmap of roaming triggers")
  2677. /*
  2678. * <ini>
  2679. * sta_disable_roam - Disable Roam on sta interface
  2680. * @Min: 0 - Roam Enabled on sta interface
  2681. * @Max: 0xffffffff - Roam Disabled on sta interface irrespective
  2682. * of other interface connections
  2683. * @Default: 0x00
  2684. *
  2685. * Disable roaming on STA iface to avoid audio glitches on p2p and ndp if
  2686. * those are in connected state. Each bit for "sta_disable_roam" INI represents
  2687. * an interface for which sta roaming can be disabled.
  2688. *
  2689. * LFR3_STA_ROAM_DISABLE_BY_P2P BIT(0)
  2690. * LFR3_STA_ROAM_DISABLE_BY_NAN BIT(1)
  2691. *
  2692. * Related: None.
  2693. *
  2694. * Supported Feature: ROAM
  2695. *
  2696. * Usage: Internal
  2697. *
  2698. * </ini>
  2699. */
  2700. #define CFG_STA_DISABLE_ROAM CFG_INI_UINT( \
  2701. "sta_disable_roam", \
  2702. 0, \
  2703. 0xffffffff, \
  2704. 0x00, \
  2705. CFG_VALUE_OR_DEFAULT, \
  2706. "disable roam on STA iface if one of the iface mentioned in default is in connected state")
  2707. /*
  2708. * <ini>
  2709. * enable_dual_sta_roam_offload - Enable roaming offload on both interfaces
  2710. * for STA + STA
  2711. * @Min: 0 - Dual STA Roam offload Disabled
  2712. * @Max: 1 - Dual STA Roam offload Enabled
  2713. * @Default: 1
  2714. *
  2715. * Enabling this ini will:
  2716. * a) Enforce the STA + STA connection be DBS if the hw is capable.
  2717. * b) Enable Roam Scan Offload on both the STA vdev.
  2718. * c) Enable firmware to support sequential roaming on both STA vdev
  2719. * if the firmware is capable of dual sta roaming.
  2720. *
  2721. * Related: None.
  2722. *
  2723. * Supported Feature: ROAM
  2724. *
  2725. * Usage: External
  2726. *
  2727. * </ini>
  2728. */
  2729. #define CFG_ENABLE_DUAL_STA_ROAM_OFFLOAD CFG_INI_UINT( \
  2730. "enable_dual_sta_roam_offload", \
  2731. false, \
  2732. true, \
  2733. true, \
  2734. CFG_VALUE_OR_DEFAULT, \
  2735. "Enable roam on both STA vdev")
  2736. #define ROAM_OFFLOAD_ALL \
  2737. CFG(CFG_LFR3_ROAMING_OFFLOAD) \
  2738. CFG(CFG_LFR3_ENABLE_SELF_BSS_ROAM) \
  2739. CFG(CFG_LFR_ENABLE_DISCONNECT_ROAM) \
  2740. CFG(CFG_LFR_ENABLE_IDLE_ROAM) \
  2741. CFG(CFG_LFR_IDLE_ROAM_RSSI_DELTA) \
  2742. CFG(CFG_LFR_IDLE_ROAM_INACTIVE_TIME) \
  2743. CFG(CFG_ROAM_IDLE_INACTIVE_TIME) \
  2744. CFG(CFG_LFR_IDLE_ROAM_PACKET_COUNT) \
  2745. CFG(CFG_LFR_IDLE_ROAM_MIN_RSSI) \
  2746. CFG(CFG_LFR_IDLE_ROAM_BAND) \
  2747. CFG(CFG_ROAM_TRIGGER_BITMAP) \
  2748. CFG(CFG_STA_DISABLE_ROAM) \
  2749. CFG(CFG_ENABLE_DUAL_STA_ROAM_OFFLOAD) \
  2750. #else
  2751. #define ROAM_OFFLOAD_ALL
  2752. #endif
  2753. #ifdef FEATURE_WLAN_ESE
  2754. /*
  2755. * <ini>
  2756. * EseEnabled - Enable ESE feature
  2757. * @Min: 0
  2758. * @Max: 1
  2759. * @Default: 0
  2760. *
  2761. * This ini is used to enable/disable ESE feature
  2762. *
  2763. * Related: None
  2764. *
  2765. * Supported Feature: Roaming
  2766. *
  2767. * Usage: External
  2768. *
  2769. * </ini>
  2770. */
  2771. #define CFG_LFR_ESE_FEATURE_ENABLED CFG_INI_BOOL( \
  2772. "EseEnabled", \
  2773. 0, \
  2774. "Enable ESE")
  2775. #define LFR_ESE_ALL CFG(CFG_LFR_ESE_FEATURE_ENABLED)
  2776. #else
  2777. #define LFR_ESE_ALL
  2778. #endif
  2779. #ifdef FEATURE_LFR_SUBNET_DETECTION
  2780. /*
  2781. * <ini>
  2782. * gLFRSubnetDetectionEnable - Enable LFR3 subnet detection
  2783. * @Min: 0
  2784. * @Max: 1
  2785. * @Default: 1
  2786. *
  2787. * Enable IP subnet detection during legacy fast roming version 3. Legacy fast
  2788. * roaming could roam across IP subnets without host processors' knowledge.
  2789. * This feature enables firmware to wake up the host processor if it
  2790. * successfully determines change in the IP subnet. Change in IP subnet could
  2791. * potentially cause disruption in IP connnectivity if IP address is not
  2792. * refreshed.
  2793. *
  2794. * Related: None
  2795. *
  2796. * Supported Feature: Roaming
  2797. *
  2798. * Usage: External
  2799. *
  2800. * </ini>
  2801. */
  2802. #define CFG_LFR3_ENABLE_SUBNET_DETECTION CFG_INI_BOOL( \
  2803. "gLFRSubnetDetectionEnable", \
  2804. 1, \
  2805. "Enable LFR3 subnet detection")
  2806. #define LFR_SUBNET_DETECTION_ALL CFG(CFG_LFR3_ENABLE_SUBNET_DETECTION)
  2807. #else
  2808. #define LFR_SUBNET_DETECTION_ALL
  2809. #endif
  2810. #if defined(WLAN_SAE_SINGLE_PMK) && defined(WLAN_FEATURE_ROAM_OFFLOAD)
  2811. /*
  2812. * <ini>
  2813. * sae_single_pmk_feature_enabled - Enable/disable sae single pmk feature.
  2814. * @Min: 0
  2815. * @Max: 1
  2816. * @Default: 1
  2817. *
  2818. * This INI is to enable/disable SAE Roaming with same PMK/PMKID feature support
  2819. *
  2820. * Related: None.
  2821. *
  2822. * Supported Feature: Roaming
  2823. *
  2824. * Usage: Internal
  2825. *
  2826. * </ini>
  2827. */
  2828. #define CFG_SAE_SINGLE_PMK CFG_INI_BOOL( \
  2829. "sae_single_pmk_feature_enabled", \
  2830. true, \
  2831. "Enable/disable SAE Roaming with single PMK/PMKID")
  2832. #define SAE_SINGLE_PMK_ALL CFG(CFG_SAE_SINGLE_PMK)
  2833. #else
  2834. #define SAE_SINGLE_PMK_ALL
  2835. #endif
  2836. #ifdef WLAN_ADAPTIVE_11R
  2837. /*
  2838. * <ini>
  2839. * adaptive_11r - Enable/disable adaptive 11r feature.
  2840. * @Min: 0
  2841. * @Max: 1
  2842. * @Default: 0
  2843. *
  2844. * Adaptive 11r feature enables the AP to support FT-AKM without
  2845. * configuring the FT-AKM in the network. The AP will advertise non-FT akm
  2846. * with a vendor specific IE having Adaptive 11r bit set to 1 in the IE data.
  2847. * The AP also advertises the MDE in beacon/probe response.
  2848. *
  2849. * STA should check the adaptive 11r capability if the AP advertises MDE in
  2850. * beacon/probe and adaptive 11r capability in vendor specific IE. If adaptive
  2851. * 11r capability is found, STA can advertise the FT equivalent of the non-FT
  2852. * AKM and connect with 11r protocol.
  2853. *
  2854. * Related: None.
  2855. *
  2856. * Supported Feature: Fast BSS Transition
  2857. *
  2858. * Usage: External
  2859. *
  2860. * </ini>
  2861. */
  2862. #define CFG_ADAPTIVE_11R CFG_INI_BOOL( \
  2863. "enable_adaptive_11r", \
  2864. false, \
  2865. "Enable/disable adaptive 11r support")
  2866. #define ADAPTIVE_11R_ALL CFG(CFG_ADAPTIVE_11R)
  2867. #else
  2868. #define ADAPTIVE_11R_ALL
  2869. #endif
  2870. /*
  2871. * <ini>
  2872. * roaming_scan_policy - To config roaming scan policy
  2873. * @Min: 0
  2874. * @Max: 1
  2875. * @Default: 0
  2876. *
  2877. * This ini is used to configure roaming scan behavior from HOST
  2878. * 0 : DBS scan
  2879. * 1 : Non-DBS scan
  2880. *
  2881. * Related: None
  2882. *
  2883. * Supported Feature: Roaming
  2884. *
  2885. * Usage: External
  2886. *
  2887. * </ini>
  2888. */
  2889. #define CFG_ROAM_SCAN_SCAN_POLICY CFG_INI_BOOL( \
  2890. "roaming_scan_policy", \
  2891. 0, \
  2892. "Config roam scan policy")
  2893. /*
  2894. * <ini>
  2895. * enable_ft_im_roaming - FW needs to perform FT initial moiblity association
  2896. * instead of FT roaming for deauth roam trigger
  2897. * @Min: 0
  2898. * @Max: 1
  2899. * @Default: 1
  2900. *
  2901. * This ini is used to FT roaming for deauth roam trigger behavior from HOST
  2902. * 0 - To disable FT-IM
  2903. * 1 - To enable FT-IM
  2904. *
  2905. * Related: None
  2906. *
  2907. * Supported Feature: Roaming
  2908. *
  2909. * Usage: Internal
  2910. *
  2911. * </ini>
  2912. */
  2913. #define CFG_FT_IM_ROAMING CFG_INI_BOOL( \
  2914. "enable_ft_im_roaming", \
  2915. 1, \
  2916. "FT roaming for deauth roam trigger")
  2917. /*
  2918. * <ini>
  2919. * roam_scan_inactivity_time - Device inactivity monitoring time in
  2920. * milliseconds for which the device is considered to be inactive with data
  2921. * packets count is less than configured roam_inactive_data_count.
  2922. *
  2923. * @Min: 0
  2924. * @Max: 0xFFFFFFFF
  2925. * @Default: 0
  2926. *
  2927. * The below three ini values are used to control the roam scan after the
  2928. * firmware gets empty roam scan results during periodic roam scans.
  2929. * 1. roam_scan_inactivity_time
  2930. * 2. roam_inactive_data_count
  2931. * 3. roam_scan_period_after_inactivity
  2932. * The first two ini "roam_scan_inactivity_time" and "roam_inactive_data_count"
  2933. * is frames the criteria to detect if the DUT is inactive. If the device is
  2934. * identified to be inactive based on the above two ini, then the value,
  2935. * "roam_scan_period_after_inactivity" will be used as periodic roam scan
  2936. * duration.
  2937. *
  2938. * Related: roam_inactive_data_count
  2939. *
  2940. * Supported Feature: Roaming
  2941. *
  2942. * Usage: External
  2943. *
  2944. * </ini>
  2945. */
  2946. #define CFG_ROAM_SCAN_INACTIVITY_TIME CFG_INI_UINT( \
  2947. "roam_scan_inactivity_time", \
  2948. 0, \
  2949. 0xFFFFFFFF, \
  2950. 0, \
  2951. CFG_VALUE_OR_DEFAULT, \
  2952. "Device inactivity monitoring time")
  2953. /*
  2954. * <ini>
  2955. * RoamScan_SecondTimer - Device inactivity monitoring time in
  2956. * seconds for which the device is considered to be inactive with data
  2957. * packets count is less than configured RoamScan_InactiveCount.
  2958. *
  2959. * @Min: 60
  2960. * @Max: 300
  2961. * @Default: 120
  2962. *
  2963. * The below three ini values are used to control the roam scan after the
  2964. * firmware gets empty roam scan results during periodic roam scans.
  2965. * 1. RoamScan_SecondTimer
  2966. * 2. RoamScan_InactiveCount
  2967. * 3. RoamScan_InactiveTimer
  2968. * The first two ini "RoamScan_SecondTimer" and "RoamScan_InactiveCount"
  2969. * is frames the criteria to detect if the DUT is inactive. If the device is
  2970. * identified to be inactive based on the above two ini, then the value,
  2971. * "RoamScan_InactiveTimer" will be used as periodic roam scan
  2972. * duration.
  2973. *
  2974. * Related: RoamScan_InactiveCount
  2975. *
  2976. * Supported Feature: Roaming
  2977. *
  2978. * Usage: External
  2979. *
  2980. * </ini>
  2981. */
  2982. #define CFG_ROAM_SCAN_SECOND_TIMER CFG_INI_UINT( \
  2983. "RoamScan_SecondTimer", \
  2984. 60, \
  2985. 300, \
  2986. 120, \
  2987. CFG_VALUE_OR_DEFAULT, \
  2988. "Device inactivity monitoring time")
  2989. /*
  2990. * <ini>
  2991. * roam_inactive_data_count/RoamScan_InactiveCount - Maximum allowed data
  2992. * packets count during roam_scan_inactivity_time.
  2993. *
  2994. * @Min: 0
  2995. * @Max: 0xFFFFFFFF
  2996. * @Default: 10
  2997. *
  2998. * The DUT is said to be inactive only if the data packets count
  2999. * during this roam_scan_inactivity_time is less than the configured
  3000. * roam_inactive_data_count.
  3001. *
  3002. * Related: roam_scan_inactivity_time
  3003. *
  3004. * Supported Feature: Roaming
  3005. *
  3006. * Usage: External
  3007. *
  3008. * </ini>
  3009. */
  3010. #define CFG_ROAM_INACTIVE_COUNT CFG_INI_UINT( \
  3011. "roam_inactive_data_count RoamScan_InactiveCount", \
  3012. RoamScan_InactiveCount_min, \
  3013. RoamScan_InactiveCount_max, \
  3014. RoamScan_InactiveCount_default, \
  3015. CFG_VALUE_OR_DEFAULT, \
  3016. "Roam scan inactivity period data pkt count")
  3017. /*
  3018. * <ini>
  3019. * roam_scan_period_after_inactivity - Roam scan duration in ms after device is
  3020. * out of inactivity state.
  3021. *
  3022. * @Min: 0
  3023. * @Max: 0xFFFFFFFF
  3024. * @Default: 120000
  3025. *
  3026. * If there is empty scan results during roam scan, firmware will move to
  3027. * roam scan inactive state if roam_scan_inactivity and
  3028. * roam_inactive_data_count criteria are met.
  3029. * This ini is used to configure the roam scan duration in ms once the
  3030. * inactivity is finished and roam scan can be started.
  3031. *
  3032. * Related: roam_scan_inactivity_time, roam_inactive_data_count
  3033. *
  3034. * Supported Feature: Roaming
  3035. *
  3036. * Usage: External
  3037. *
  3038. * </ini>
  3039. */
  3040. #define CFG_POST_INACTIVITY_ROAM_SCAN_PERIOD CFG_INI_UINT( \
  3041. "roam_scan_period_after_inactivity", \
  3042. 0, \
  3043. 0xFFFFFFFF, \
  3044. 120000, \
  3045. CFG_VALUE_OR_DEFAULT, \
  3046. "Roam scan period post inactivity")
  3047. /*
  3048. * <ini>
  3049. * RoamScan_InactiveTimer - Roam scan duration in sec after device is
  3050. * out of inactivity state.
  3051. *
  3052. * @Min: 0
  3053. * @Max: 20
  3054. * @Default: 10
  3055. *
  3056. * If there is empty scan results during roam scan, firmware will move to
  3057. * roam scan inactive state if roam_scan_inactivity and
  3058. * roam_inactive_data_count criteria are met.
  3059. * This ini is used to configure the roam scan duration in sec once the
  3060. * inactivity is finished and roam scan can be started.
  3061. *
  3062. * Related: roam_scan_inactivity_time, roam_inactive_data_count
  3063. *
  3064. * Supported Feature: Roaming
  3065. *
  3066. * Usage: External
  3067. *
  3068. * </ini>
  3069. */
  3070. #define CFG_ROAM_SCAN_INACTIVE_TIMER CFG_INI_UINT( \
  3071. "RoamScan_InactiveTimer", \
  3072. 0, \
  3073. 20, \
  3074. 10, \
  3075. CFG_VALUE_OR_DEFAULT, \
  3076. "Roam scan period post inactivity")
  3077. #ifdef WLAN_FEATURE_ROAM_OFFLOAD
  3078. /*
  3079. * <ini>
  3080. * enable_roam_reason_vsie - Enable/Disable inclusion of Roam Reason
  3081. * in Re(association) frame
  3082. *
  3083. * @Min: 0
  3084. * @Max: 1
  3085. * @Default: 0
  3086. *
  3087. * This ini is used to enable fw to include/exclude roam reason vsie in
  3088. * Re(association)
  3089. *
  3090. * Related: None
  3091. *
  3092. * Supported Feature: Roaming
  3093. *
  3094. * Usage: internal
  3095. *
  3096. * </ini>
  3097. */
  3098. #define CFG_ENABLE_ROAM_REASON_VSIE CFG_INI_BOOL( \
  3099. "enable_roam_reason_vsie", \
  3100. 0, \
  3101. "To Enable enable_roam_reason_vsie")
  3102. #define ROAM_REASON_VSIE_ALL CFG(CFG_ENABLE_ROAM_REASON_VSIE)
  3103. #else
  3104. #define ROAM_REASON_VSIE_ALL
  3105. #endif
  3106. #define CFG_LFR_ALL \
  3107. CFG(CFG_LFR_MAWC_ROAM_ENABLED) \
  3108. CFG(CFG_LFR_MAWC_ROAM_TRAFFIC_THRESHOLD) \
  3109. CFG(CFG_LFR_MAWC_ROAM_AP_RSSI_THRESHOLD) \
  3110. CFG(CFG_LFR_MAWC_ROAM_RSSI_HIGH_ADJUST) \
  3111. CFG(CFG_LFR_MAWC_ROAM_RSSI_LOW_ADJUST) \
  3112. CFG(CFG_LFR_ROAM_RSSI_ABS_THRESHOLD) \
  3113. CFG(CFG_LFR_5G_RSSI_THRESHOLD_OFFSET) \
  3114. CFG(CFG_LFR_ENABLE_FAST_ROAM_IN_CONCURRENCY) \
  3115. CFG(CFG_LFR_EARLY_STOP_SCAN_ENABLE) \
  3116. CFG(CFG_LFR_EARLY_STOP_SCAN_MIN_THRESHOLD) \
  3117. CFG(CFG_LFR_EARLY_STOP_SCAN_MAX_THRESHOLD) \
  3118. CFG(CFG_LFR_ROAM_DENSE_TRAFFIC_THRESHOLD) \
  3119. CFG(CFG_LFR_ROAM_DENSE_RSSI_THRE_OFFSET) \
  3120. CFG(CFG_LFR_ROAM_DENSE_MIN_APS) \
  3121. CFG(CFG_LFR_ROAM_BG_SCAN_BAD_RSSI_THRESHOLD) \
  3122. CFG(CFG_LFR_ROAM_BG_SCAN_CLIENT_BITMAP) \
  3123. CFG(CFG_LFR_ROAM_BG_SCAN_BAD_RSSI_OFFSET_2G) \
  3124. CFG(CFG_ROAM_DATA_RSSI_THRESHOLD_TRIGGERS) \
  3125. CFG(CFG_ROAM_DATA_RSSI_THRESHOLD) \
  3126. CFG(CFG_RX_DATA_INACTIVITY_TIME) \
  3127. CFG(CFG_LFR_ADAPTIVE_ROAMSCAN_DWELL_MODE) \
  3128. CFG(CFG_LFR_PER_ROAM_ENABLE) \
  3129. CFG(CFG_LFR_PER_ROAM_CONFIG_HIGH_RATE_TH) \
  3130. CFG(CFG_LFR_PER_ROAM_CONFIG_LOW_RATE_TH) \
  3131. CFG(CFG_LFR_PER_ROAM_CONFIG_RATE_TH_PERCENT) \
  3132. CFG(CFG_LFR_PER_ROAM_REST_TIME) \
  3133. CFG(CFG_LFR_PER_ROAM_MONITOR_TIME) \
  3134. CFG(CFG_LFR_PER_ROAM_MIN_CANDIDATE_RSSI) \
  3135. CFG(CFG_LFR3_ROAM_DISALLOW_DURATION) \
  3136. CFG(CFG_LFR3_ROAM_RSSI_CHANNEL_PENALIZATION) \
  3137. CFG(CFG_LFR3_ROAM_NUM_DISALLOWED_APS) \
  3138. CFG(CFG_LFR_ENABLE_5G_BAND_PREF) \
  3139. CFG(CFG_LFR_5G_RSSI_BOOST_THRESHOLD) \
  3140. CFG(CFG_LFR_5G_RSSI_BOOST_FACTOR) \
  3141. CFG(CFG_LFR_5G_MAX_RSSI_BOOST) \
  3142. CFG(CFG_LFR_5G_RSSI_PENALIZE_THRESHOLD) \
  3143. CFG(CFG_LFR_5G_RSSI_PENALIZE_FACTOR) \
  3144. CFG(CFG_LFR_5G_MAX_RSSI_PENALIZE) \
  3145. CFG(CFG_LFR_MAX_NUM_PRE_AUTH) \
  3146. CFG(CFG_LFR3_ROAM_PREAUTH_RETRY_COUNT) \
  3147. CFG(CFG_LFR3_ROAM_PREAUTH_NO_ACK_TIMEOUT) \
  3148. CFG(CFG_LFR_FEATURE_ENABLED) \
  3149. CFG(CFG_LFR_MAWC_FEATURE_ENABLED) \
  3150. CFG(CFG_LFR_FAST_TRANSITION_ENABLED) \
  3151. CFG(CFG_LFR_ROAM_RSSI_DIFF) \
  3152. CFG(CFG_LFR_ROAM_RSSI_DIFF_6GHZ) \
  3153. CFG(CFG_LFR_ROAM_BG_RSSI_TH) \
  3154. CFG(CFG_LFR_ENABLE_WES_MODE) \
  3155. CFG(CFG_LFR_ROAM_SCAN_OFFLOAD_ENABLED) \
  3156. CFG(CFG_LFR_NEIGHBOR_SCAN_CHANNEL_LIST) \
  3157. CFG(CFG_LFR_NEIGHBOR_SCAN_TIMER_PERIOD) \
  3158. CFG(CFG_LFR_NEIGHBOR_SCAN_MIN_TIMER_PERIOD) \
  3159. CFG(CFG_LFR_NEIGHBOR_LOOKUP_RSSI_THRESHOLD) \
  3160. CFG(CFG_LFR_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF) \
  3161. CFG(CFG_LFR_ROAM_RESCAN_RSSI_DIFF) \
  3162. CFG(CFG_LFR_NEIGHBOR_SCAN_MIN_CHAN_TIME) \
  3163. CFG(CFG_LFR_NEIGHBOR_SCAN_MAX_CHAN_TIME) \
  3164. CFG(CFG_LFR_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD) \
  3165. CFG(CFG_LFR_EMPTY_SCAN_REFRESH_PERIOD) \
  3166. CFG(CFG_ROAM_SCAN_FIRST_TIMER) \
  3167. CFG(CFG_LFR_ROAM_BMISS_FIRST_BCNT) \
  3168. CFG(CFG_LFR_ROAM_BMISS_FINAL_BCNT) \
  3169. CFG(CFG_LFR_ROAMING_DFS_CHANNEL) \
  3170. CFG(CFG_LFR_ROAM_SCAN_HI_RSSI_MAXCOUNT) \
  3171. CFG(CFG_LFR_ROAM_SCAN_HI_RSSI_DELTA) \
  3172. CFG(CFG_LFR_ROAM_SCAN_HI_RSSI_DELAY) \
  3173. CFG(CFG_LFR_ROAM_SCAN_HI_RSSI_UB) \
  3174. CFG(CFG_LFR_ROAM_PREFER_5GHZ) \
  3175. CFG(CFG_LFR_ROAM_INTRA_BAND) \
  3176. CFG(CFG_LFR_ROAM_SCAN_N_PROBES) \
  3177. CFG(CFG_LFR_ROAM_SCAN_HOME_AWAY_TIME) \
  3178. CFG(CFG_LFR_DELAY_BEFORE_VDEV_STOP) \
  3179. CFG(CFG_ENABLE_BSS_LOAD_TRIGGERED_ROAM) \
  3180. CFG(CFG_BSS_LOAD_THRESHOLD) \
  3181. CFG(CFG_BSS_LOAD_SAMPLE_TIME) \
  3182. CFG(CFG_ROAM_CU_MONITOR_TIME) \
  3183. CFG(CFG_LFR3_ROAM_HO_DELAY_FOR_RX) \
  3184. CFG(CFG_LFR_MIN_DELAY_BTW_ROAM_SCAN) \
  3185. CFG(CFG_LFR_ROAM_SCAN_TRIGGER_REASON_BITMASK) \
  3186. CFG(CFG_LFR_ROAM_FT_OPEN_ENABLE) \
  3187. CFG(CFG_LFR_ROAM_FORCE_RSSI_TRIGGER) \
  3188. CFG(CFG_ROAM_SCAN_SCAN_POLICY) \
  3189. CFG(CFG_ROAM_SCAN_INACTIVITY_TIME) \
  3190. CFG(CFG_ROAM_SCAN_SECOND_TIMER) \
  3191. CFG(CFG_FT_IM_ROAMING) \
  3192. CFG(CFG_ROAM_INACTIVE_COUNT) \
  3193. CFG(CFG_ROAM_PASSIVE_MAX_CHANNEL_TIME) \
  3194. CFG(CFG_POST_INACTIVITY_ROAM_SCAN_PERIOD) \
  3195. CFG(CFG_ROAM_SCAN_INACTIVE_TIMER) \
  3196. CFG(CFG_BSS_LOAD_TRIG_6G_RSSI_THRES) \
  3197. CFG(CFG_BSS_LOAD_TRIG_5G_RSSI_THRES) \
  3198. CFG(CFG_BSS_LOAD_TRIG_2G_RSSI_THRES) \
  3199. CFG(CFG_LFR_FULL_ROAM_SCAN_REFRESH_PERIOD) \
  3200. ADAPTIVE_11R_ALL \
  3201. ROAM_OFFLOAD_ALL \
  3202. LFR_ESE_ALL \
  3203. LFR_SUBNET_DETECTION_ALL \
  3204. SAE_SINGLE_PMK_ALL \
  3205. ROAM_REASON_VSIE_ALL \
  3206. CFG(CFG_LFR_BEACONLOSS_TIMEOUT_ON_WAKEUP) \
  3207. CFG(CFG_LFR_BEACONLOSS_TIMEOUT_ON_SLEEP)
  3208. #endif /* CFG_MLME_LFR_H__ */