cfg_mlme_lfr.h 76 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301
  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 10
  81. # define RoamRSSI_Trigger_max 120
  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. * bg_rssi_threshold - To set RSSI Threshold for BG scan roaming
  1312. * @Min: 0
  1313. * @Max: 100
  1314. * @Default: 5
  1315. *
  1316. * This INI is used to set the value of rssi threshold to trigger roaming
  1317. * after background scan. To trigger roam after bg scan, value of rssi of
  1318. * candidate AP should be higher by this threshold than the rssi of the
  1319. * currrently associated AP.
  1320. *
  1321. * Related: RoamRssiDiff
  1322. *
  1323. * Supported Feature: Roaming
  1324. *
  1325. * Usage: External
  1326. *
  1327. * </ini>
  1328. */
  1329. #define CFG_LFR_ROAM_BG_RSSI_TH CFG_INI_UINT( \
  1330. "bg_rssi_threshold", \
  1331. 0, \
  1332. 100, \
  1333. 5, \
  1334. CFG_VALUE_OR_DEFAULT, \
  1335. "Enable roam based on rssi after BG scan")
  1336. /*
  1337. * <ini>
  1338. * gWESModeEnabled - Enable WES mode
  1339. * @Min: 0
  1340. * @Max: 1
  1341. * @Default: 0
  1342. *
  1343. * This ini is used to enable/disable Wireless Extended Security mode.
  1344. *
  1345. * Related: None
  1346. *
  1347. * Supported Feature: Roaming
  1348. *
  1349. * Usage: External
  1350. *
  1351. * </ini>
  1352. */
  1353. #define CFG_LFR_ENABLE_WES_MODE CFG_INI_BOOL( \
  1354. "gWESModeEnabled", \
  1355. 0, \
  1356. "Enable WES mode")
  1357. /*
  1358. * <ini>
  1359. * gRoamScanOffloadEnabled - Enable Roam Scan Offload
  1360. * @Min: 0
  1361. * @Max: 1
  1362. * @Default: 1
  1363. *
  1364. * This INI is used to enable Roam Scan Offload in firmware
  1365. *
  1366. * Related: None
  1367. *
  1368. * Supported Feature: Roaming
  1369. *
  1370. * Usage: External
  1371. *
  1372. * </ini>
  1373. */
  1374. #define CFG_LFR_ROAM_SCAN_OFFLOAD_ENABLED CFG_INI_BOOL( \
  1375. "gRoamScanOffloadEnabled", \
  1376. 1, \
  1377. "Enable Roam Scan Offload")
  1378. /*
  1379. * <ini>
  1380. * gNeighborScanChannelList - Set channels to be scanned
  1381. * by firmware for LFR scan
  1382. * @Default: ""
  1383. *
  1384. * This ini is used to set the channels to be scanned
  1385. * by firmware for LFR scan.
  1386. *
  1387. * Related: None
  1388. *
  1389. * Supported Feature: LFR Scan
  1390. *
  1391. * Usage: External
  1392. *
  1393. * </ini>
  1394. */
  1395. #define CFG_LFR_NEIGHBOR_SCAN_CHANNEL_LIST CFG_INI_STRING( \
  1396. "gNeighborScanChanList", \
  1397. 0, \
  1398. CFG_VALID_CHANNEL_LIST_STRING_LEN, \
  1399. "", \
  1400. "Set channels to be scanned")
  1401. /*
  1402. * <ini>
  1403. * gNeighborScanTimerPeriod - Set neighbor scan timer period
  1404. * @Min: 3
  1405. * @Max: 300
  1406. * @Default: 100
  1407. *
  1408. * This ini is used to set the timer period in secs after
  1409. * which neighbor scan is trigerred.
  1410. *
  1411. * Related: None
  1412. *
  1413. * Supported Feature: LFR Scan
  1414. *
  1415. * Usage: External
  1416. *
  1417. * </ini>
  1418. */
  1419. #define CFG_LFR_NEIGHBOR_SCAN_TIMER_PERIOD CFG_INI_UINT( \
  1420. "gNeighborScanTimerPeriod", \
  1421. 3, \
  1422. 300, \
  1423. 100, \
  1424. CFG_VALUE_OR_DEFAULT, \
  1425. "Neighbor scan timer period")
  1426. /*
  1427. * <ini>
  1428. * gRoamRestTimeMin/RoamScan_HomeTime - Set min neighbor scan timer period
  1429. * @Min: 3
  1430. * @Max: 300
  1431. * @Default: 50
  1432. *
  1433. * This is the min rest time after which firmware will check for traffic
  1434. * and if there no traffic it will move to a new channel to scan
  1435. * else it will stay on the home channel till gNeighborScanTimerPeriod time
  1436. * and then will move to a new channel to scan.
  1437. *
  1438. * Related: None
  1439. *
  1440. * Supported Feature: LFR Scan
  1441. *
  1442. * Usage: External
  1443. *
  1444. * </ini>
  1445. */
  1446. #define CFG_LFR_NEIGHBOR_SCAN_MIN_TIMER_PERIOD CFG_INI_UINT( \
  1447. "gRoamRestTimeMin RoamScan_HomeTime", \
  1448. RoamScan_HomeTime_min, \
  1449. RoamScan_HomeTime_max, \
  1450. RoamScan_HomeTime_default, \
  1451. CFG_VALUE_OR_DEFAULT, \
  1452. "Min neighbor scan timer period")
  1453. /*
  1454. * <ini>
  1455. * gNeighborLookupThreshold/RoamRSSI_Trigger - Set neighbor lookup rssi
  1456. * threshold
  1457. * @Min: 50
  1458. * @Max: 100
  1459. * @Default: 78
  1460. *
  1461. * This is used to control the RSSI threshold for neighbor lookup.
  1462. *
  1463. * Related: None
  1464. *
  1465. * Supported Feature: LFR Scan
  1466. *
  1467. * Usage: External
  1468. *
  1469. * </ini>
  1470. */
  1471. #define CFG_LFR_NEIGHBOR_LOOKUP_RSSI_THRESHOLD CFG_INI_INT( \
  1472. "gNeighborLookupThreshold RoamRSSI_Trigger", \
  1473. RoamRSSI_Trigger_min, \
  1474. RoamRSSI_Trigger_max, \
  1475. RoamRSSI_Trigger_default, \
  1476. CFG_VALUE_OR_DEFAULT, \
  1477. "Neighbor lookup rssi threshold")
  1478. /*
  1479. * <ini>
  1480. * gOpportunisticThresholdDiff - Set oppurtunistic threshold diff
  1481. * @Min: 0
  1482. * @Max: 127
  1483. * @Default: 0
  1484. *
  1485. * This ini is used to set opportunistic threshold diff.
  1486. * This parameter is the RSSI diff above neighbor lookup
  1487. * threshold, when opportunistic scan should be triggered.
  1488. * MAX value is chosen so that this type of scan can be
  1489. * always enabled by user.
  1490. * MIN value will cause opportunistic scan to be triggered
  1491. * in neighbor lookup RSSI range.
  1492. *
  1493. * Related: None
  1494. *
  1495. * Supported Feature: LFR Scan
  1496. *
  1497. * Usage: External
  1498. *
  1499. * </ini>
  1500. */
  1501. #define CFG_LFR_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF CFG_INI_UINT( \
  1502. "gOpportunisticThresholdDiff", \
  1503. 0, \
  1504. 127, \
  1505. 0, \
  1506. CFG_VALUE_OR_DEFAULT, \
  1507. "Set oppurtunistic threshold diff")
  1508. /*
  1509. * <ini>
  1510. * gRoamRescanRssiDiff/RoamScan_StepRSSI - Sets RSSI for Scan trigger in
  1511. * firmware
  1512. * @Min: 0
  1513. * @Max: 100
  1514. * @Default: 5
  1515. *
  1516. * This INI is the drop in RSSI value that will trigger a precautionary
  1517. * scan by firmware. Max value is chosen in such a way that this type
  1518. * of scan can be disabled by user.
  1519. *
  1520. * Related: None
  1521. *
  1522. * Supported Feature: Roaming
  1523. *
  1524. * Usage: External
  1525. *
  1526. * </ini>
  1527. */
  1528. #define CFG_LFR_ROAM_RESCAN_RSSI_DIFF CFG_INI_UINT( \
  1529. "gRoamRescanRssiDiff RoamScan_StepRSSI", \
  1530. RoamScan_StepRSSI_min, \
  1531. RoamScan_StepRSSI_max, \
  1532. RoamScan_StepRSSI_default, \
  1533. CFG_VALUE_OR_DEFAULT, \
  1534. "Sets RSSI for Scan trigger in firmware")
  1535. /*
  1536. * <ini>
  1537. * gNeighborScanChannelMinTime - Set neighbor scan channel min time
  1538. * @Min: 10
  1539. * @Max: 40
  1540. * @Default: 20
  1541. *
  1542. * This ini is used to set the minimum time in secs spent on each
  1543. * channel in LFR scan inside firmware.
  1544. *
  1545. * Related: None
  1546. *
  1547. * Supported Feature: LFR Scan
  1548. *
  1549. * Usage: External
  1550. *
  1551. * </ini>
  1552. */
  1553. #define CFG_LFR_NEIGHBOR_SCAN_MIN_CHAN_TIME CFG_INI_UINT( \
  1554. "gNeighborScanChannelMinTime", \
  1555. 10, \
  1556. 40, \
  1557. 20, \
  1558. CFG_VALUE_OR_DEFAULT, \
  1559. "Neighbor scan channel min time")
  1560. /*
  1561. * <ini>
  1562. * gNeighborScanChannelMaxTime/RoamScan_ActiveCH_DwellTime - Set neighbor scan
  1563. * channel max time
  1564. * @Min: 3
  1565. * @Max: 300
  1566. * @Default: 40
  1567. *
  1568. * This ini is used to set the maximum time in secs spent on each
  1569. * channel in LFR scan inside firmware.
  1570. *
  1571. * Related: None
  1572. *
  1573. * Supported Feature: LFR Scan
  1574. *
  1575. * Usage: External
  1576. *
  1577. * </ini>
  1578. */
  1579. #define CFG_LFR_NEIGHBOR_SCAN_MAX_CHAN_TIME CFG_INI_UINT( \
  1580. "gNeighborScanChannelMaxTime RoamScan_ActiveCH_DwellTime", \
  1581. RoamScan_ActiveCH_DwellTime_min, \
  1582. RoamScan_ActiveCH_DwellTime_max, \
  1583. RoamScan_ActiveCH_DwellTime_default, \
  1584. CFG_VALUE_OR_DEFAULT, \
  1585. "Neighbor scan channel max time")
  1586. /*
  1587. * <ini>
  1588. * gNeighborScanRefreshPeriod - Set neighbor scan refresh period
  1589. * @Min: 1000
  1590. * @Max: 60000
  1591. * @Default: 20000
  1592. *
  1593. * This ini is used by firmware to set scan refresh period
  1594. * in msecs for lfr scan.
  1595. *
  1596. * Related: None
  1597. *
  1598. * Supported Feature: LFR Scan
  1599. *
  1600. * Usage: External
  1601. *
  1602. * </ini>
  1603. */
  1604. #define CFG_LFR_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD CFG_INI_UINT( \
  1605. "gNeighborScanRefreshPeriod", \
  1606. 1000, \
  1607. 60000, \
  1608. 20000, \
  1609. CFG_VALUE_OR_DEFAULT, \
  1610. "Neighbor scan refresh period")
  1611. /*
  1612. * <ini>
  1613. * gFullRoamScanPeriod - Set full roam scan refresh period
  1614. * @Min: 0
  1615. * @Max: 600
  1616. * @Default: 0
  1617. *
  1618. * This ini is used by firmware to set full roam scan period in secs.
  1619. * Full roam scan period is the minimum idle period in seconds between two
  1620. * successive full channel roam scans. If this is configured as a non-zero,
  1621. * full roam scan will be triggered for every configured interval.
  1622. * If this configured as 0, full roam scan will not be triggered at all.
  1623. *
  1624. * Related: None
  1625. *
  1626. * Supported Feature: LFR Scan
  1627. *
  1628. * Usage: External
  1629. *
  1630. * </ini>
  1631. */
  1632. #define CFG_LFR_FULL_ROAM_SCAN_REFRESH_PERIOD CFG_INI_UINT( \
  1633. "gFullRoamScanPeriod", \
  1634. 0, \
  1635. 600, \
  1636. 0, \
  1637. CFG_VALUE_OR_DEFAULT, \
  1638. "Full roam scan refresh period")
  1639. /*
  1640. * <ini>
  1641. * gEmptyScanRefreshPeriod - Set empty scan refresh period
  1642. * @Min: 0
  1643. * @Max: 60000
  1644. * @Default: 0
  1645. *
  1646. * This ini is used by firmware to set scan period in msecs
  1647. * following empty scan results.
  1648. *
  1649. * Related: None
  1650. *
  1651. * Supported Feature: LFR Scan
  1652. *
  1653. * Usage: External
  1654. *
  1655. * </ini>
  1656. */
  1657. #define CFG_LFR_EMPTY_SCAN_REFRESH_PERIOD CFG_INI_UINT( \
  1658. "gEmptyScanRefreshPeriod", \
  1659. 0, \
  1660. 60000, \
  1661. 0, \
  1662. CFG_VALUE_OR_DEFAULT, \
  1663. "Empty scan refresh period")
  1664. /*
  1665. * <ini>
  1666. * RoamScan_FirstTimer - Set empty scan refresh period
  1667. * @Min: 0
  1668. * @Max: 20
  1669. * @Default: 10
  1670. *
  1671. * This ini is used by firmware to set scan period in secs
  1672. * following empty scan results.
  1673. *
  1674. * Related: None
  1675. *
  1676. * Supported Feature: LFR Scan
  1677. *
  1678. * Usage: External
  1679. *
  1680. * </ini>
  1681. */
  1682. #define CFG_ROAM_SCAN_FIRST_TIMER CFG_INI_UINT( \
  1683. "RoamScan_FirstTimer", \
  1684. 0, \
  1685. 20, \
  1686. 10, \
  1687. CFG_VALUE_OR_DEFAULT, \
  1688. "Empty scan refresh period")
  1689. /*
  1690. * <ini>
  1691. * gRoamBmissFirstBcnt - Beacon miss count to trigger 1st bmiss event
  1692. * @Min: 5
  1693. * @Max: 100
  1694. * @Default: 10
  1695. *
  1696. * This ini used to control how many beacon miss will trigger first bmiss
  1697. * event. First bmiss event will result in roaming scan.
  1698. *
  1699. * Related: None
  1700. *
  1701. * Usage: External
  1702. *
  1703. * </ini>
  1704. */
  1705. #define CFG_LFR_ROAM_BMISS_FIRST_BCNT CFG_INI_UINT( \
  1706. "gRoamBmissFirstBcnt", \
  1707. 5, \
  1708. 100, \
  1709. 10, \
  1710. CFG_VALUE_OR_DEFAULT, \
  1711. "First beacon miss count")
  1712. /*
  1713. * <ini>
  1714. * gRoamBmissFinalBcnt - Beacon miss count to trigger final bmiss event
  1715. * @Min: 5
  1716. * @Max: 100
  1717. * @Default: 20
  1718. *
  1719. * This ini used to control how many beacon miss will trigger final bmiss
  1720. * event. Final bmiss event will make roaming take place or cause the
  1721. * indication of final bmiss event.
  1722. *
  1723. * Related: None
  1724. *
  1725. * Usage: External
  1726. *
  1727. * </ini>
  1728. */
  1729. #define CFG_LFR_ROAM_BMISS_FINAL_BCNT CFG_INI_UINT( \
  1730. "gRoamBmissFinalBcnt", \
  1731. 5, \
  1732. 100, \
  1733. 20, \
  1734. CFG_VALUE_OR_DEFAULT, \
  1735. "Final beacon miss count")
  1736. /*
  1737. * <ini>
  1738. * BeaconLoss_TimeoutOnWakeUp - Consecutive Beaconloss timeout on wakeup to
  1739. * trigger timeout
  1740. * @Min: 0
  1741. * @Max: 20
  1742. * @Default: 6
  1743. *
  1744. * This ini is used to control the beacon miss timeout when the system is awake.
  1745. * On the timeout, BMISS event will be triggered by FW.
  1746. * The units of this timeout is in seconds.
  1747. *
  1748. * Related: None
  1749. *
  1750. * Usage: External
  1751. *
  1752. * </ini>
  1753. */
  1754. #define CFG_LFR_BEACONLOSS_TIMEOUT_ON_WAKEUP CFG_INI_UINT( \
  1755. "ConBeaconLoss_TimeoutOnWakeUp", \
  1756. 0, \
  1757. 20, \
  1758. 6, \
  1759. CFG_VALUE_OR_DEFAULT, \
  1760. "ConBeaconloss timeout on wakeup")
  1761. /*
  1762. * <ini>
  1763. * BeaconLoss_TimeoutOnSleep - Consecutive Beaconloss timeout on sleep to
  1764. * trigger timeout
  1765. * @Min: 0
  1766. * @Max: 20
  1767. * @Default: 10
  1768. *
  1769. * This ini is used to control the beacon miss timeout
  1770. * when the system is in sleep.
  1771. * On the timeout, BMISS event will be triggered by FW.
  1772. * The units of this timeout is in seconds.
  1773. *
  1774. * Related: None
  1775. *
  1776. * Usage: External
  1777. *
  1778. * </ini>
  1779. */
  1780. #define CFG_LFR_BEACONLOSS_TIMEOUT_ON_SLEEP CFG_INI_UINT( \
  1781. "ConBeaconLoss_TimeoutOnSleep", \
  1782. 0, \
  1783. 20, \
  1784. 10, \
  1785. CFG_VALUE_OR_DEFAULT, \
  1786. "ConBeaconloss timeout on sleep")
  1787. /*
  1788. * <ini>
  1789. * gAllowDFSChannelRoam - Allow dfs channel in roam
  1790. * @Min: 0
  1791. * @Max: 2
  1792. * @Default: 1
  1793. *
  1794. * This ini is used to set default dfs channel
  1795. *
  1796. * Related: None
  1797. *
  1798. * Supported Feature: STA
  1799. *
  1800. * Usage: Internal/External
  1801. *
  1802. * </ini>
  1803. */
  1804. #define CFG_LFR_ROAMING_DFS_CHANNEL CFG_INI_UINT( \
  1805. "gAllowDFSChannelRoam", \
  1806. 0, \
  1807. 2, \
  1808. 1, \
  1809. CFG_VALUE_OR_DEFAULT, \
  1810. "Allow dfs channel in roam")
  1811. /*
  1812. * <ini>
  1813. * gRoamScanHiRssiMaxCount - Sets 5GHz maximum scan count
  1814. * @Min: 0
  1815. * @Max: 10
  1816. * @Default: 3
  1817. *
  1818. * This INI is used to set maximum scan count in 5GHz
  1819. *
  1820. * Related: None
  1821. *
  1822. * Supported Feature: Roaming
  1823. *
  1824. * Usage: External
  1825. *
  1826. * </ini>
  1827. */
  1828. #define CFG_LFR_ROAM_SCAN_HI_RSSI_MAXCOUNT CFG_INI_UINT( \
  1829. "gRoamScanHiRssiMaxCount", \
  1830. 0, \
  1831. 10, \
  1832. 3, \
  1833. CFG_VALUE_OR_DEFAULT, \
  1834. "5GHz maximum scan count")
  1835. /*
  1836. * <ini>
  1837. * gRoamScanHiRssiDelta - Sets RSSI Delta for scan trigger
  1838. * @Min: 0
  1839. * @Max: 16
  1840. * @Default: 10
  1841. *
  1842. * This INI is used to set change in RSSI at which scan is triggered
  1843. * in 5GHz.
  1844. *
  1845. * Related: None
  1846. *
  1847. * Supported Feature: Roaming
  1848. *
  1849. * Usage: External
  1850. *
  1851. * </ini>
  1852. */
  1853. #define CFG_LFR_ROAM_SCAN_HI_RSSI_DELTA CFG_INI_UINT( \
  1854. "gRoamScanHiRssiDelta", \
  1855. 0, \
  1856. 16, \
  1857. 10, \
  1858. CFG_VALUE_OR_DEFAULT, \
  1859. "RSSI Delta for scan trigger")
  1860. /*
  1861. * <ini>
  1862. * gRoamScanHiRssiDelay - Sets minimum delay between 5GHz scans
  1863. * @Min: 5000
  1864. * @Max: 0x7fffffff
  1865. * @Default: 15000
  1866. *
  1867. * This INI is used to set the minimum delay between 5GHz scans.
  1868. *
  1869. * Related: None
  1870. *
  1871. * Supported Feature: Roaming
  1872. *
  1873. * Usage: External
  1874. *
  1875. * </ini>
  1876. */
  1877. #define CFG_LFR_ROAM_SCAN_HI_RSSI_DELAY CFG_INI_UINT( \
  1878. "gRoamScanHiRssiDelay", \
  1879. 5000, \
  1880. 0x7fffffff, \
  1881. 15000, \
  1882. CFG_VALUE_OR_DEFAULT, \
  1883. "Minimum delay between 5GHz scans")
  1884. /*
  1885. * <ini>
  1886. * gRoamScanHiRssiUpperBound - Sets upper bound after which 5GHz scan
  1887. * @Min: -66
  1888. * @Max: 0
  1889. * @Default: -30
  1890. *
  1891. * This INI is used to set the RSSI upper bound above which the 5GHz scan
  1892. * will not be performed.
  1893. *
  1894. * Related: None
  1895. *
  1896. * Supported Feature: Roaming
  1897. *
  1898. * Usage: External
  1899. *
  1900. * </ini>
  1901. */
  1902. #define CFG_LFR_ROAM_SCAN_HI_RSSI_UB CFG_INI_INT( \
  1903. "gRoamScanHiRssiUpperBound", \
  1904. -66, \
  1905. 0, \
  1906. -30, \
  1907. CFG_VALUE_OR_DEFAULT, \
  1908. "Upper bound after which 5GHz scan")
  1909. /*
  1910. * <ini>
  1911. * gRoamPrefer5GHz - Prefer roaming to 5GHz Bss
  1912. * @Min: 0
  1913. * @Max: 1
  1914. * @Default: 1
  1915. *
  1916. * This ini is used to inform FW to prefer roaming to 5GHz BSS
  1917. *
  1918. * Related: None
  1919. *
  1920. * Supported Feature: Roaming
  1921. *
  1922. * Usage: External
  1923. *
  1924. * </ini>
  1925. */
  1926. #define CFG_LFR_ROAM_PREFER_5GHZ CFG_INI_BOOL( \
  1927. "gRoamPrefer5GHz", \
  1928. 1, \
  1929. "Prefer roaming to 5GHz Bss")
  1930. /*
  1931. * <ini>
  1932. * gRoamIntraBand - Prefer roaming within Band
  1933. * @Min: 0
  1934. * @Max: 1
  1935. * @Default: 0
  1936. *
  1937. * This ini is used to inform FW to prefer roaming within band
  1938. *
  1939. * Related: None
  1940. *
  1941. * Supported Feature: Roaming
  1942. *
  1943. * Usage: External
  1944. *
  1945. * </ini>
  1946. */
  1947. #define CFG_LFR_ROAM_INTRA_BAND CFG_INI_BOOL( \
  1948. "gRoamIntraBand", \
  1949. 0, \
  1950. "Prefer roaming within Band")
  1951. /*
  1952. * <ini>
  1953. * gRoamScanNProbes - Sets the number of probes to be sent for firmware roaming
  1954. * @Min: 1
  1955. * @Max: 10
  1956. * @Default: 2
  1957. *
  1958. * This INI is used to set the maximum number of probes the firmware can send
  1959. * for firmware internal roaming cases.
  1960. *
  1961. * Related: None
  1962. *
  1963. * Supported Feature: Roaming
  1964. *
  1965. * Usage: External
  1966. *
  1967. * </ini>
  1968. */
  1969. #define CFG_LFR_ROAM_SCAN_N_PROBES CFG_INI_UINT( \
  1970. "gRoamScanNProbes", \
  1971. 1, \
  1972. 10, \
  1973. 2, \
  1974. CFG_VALUE_OR_DEFAULT, \
  1975. "The number of probes to be sent for firmware roaming")
  1976. /*
  1977. * <ini>
  1978. * gRoamScanHomeAwayTime/RoamScan_AwayTime - Sets the Home Away Time to firmware
  1979. * @Min: 0
  1980. * @Max: 300
  1981. * @Default: 0
  1982. *
  1983. * Home Away Time should be at least equal to (gNeighborScanChannelMaxTime
  1984. * + (2*RFS)), where RFS is the RF Switching time(3). It is twice RFS
  1985. * to consider the time to go off channel and return to the home channel.
  1986. *
  1987. * Related: gNeighborScanChannelMaxTime
  1988. *
  1989. * Supported Feature: Roaming
  1990. *
  1991. * Usage: External
  1992. *
  1993. * </ini>
  1994. */
  1995. #define CFG_LFR_ROAM_SCAN_HOME_AWAY_TIME CFG_INI_UINT( \
  1996. "gRoamScanHomeAwayTime RoamScan_AwayTime", \
  1997. RoamScan_AwayTime_min, \
  1998. RoamScan_AwayTime_max, \
  1999. RoamScan_AwayTime_default, \
  2000. CFG_VALUE_OR_DEFAULT, \
  2001. "the home away time to firmware")
  2002. /*
  2003. * <ini>
  2004. * gDelayBeforeVdevStop - wait time for tx complete before vdev stop
  2005. * @Min: 2
  2006. * @Max: 200
  2007. * @Default: 20
  2008. *
  2009. * This INI is used to set wait time for tx complete before vdev stop.
  2010. *
  2011. * Related: None
  2012. *
  2013. * Usage: External
  2014. *
  2015. * </ini>
  2016. */
  2017. #define CFG_LFR_DELAY_BEFORE_VDEV_STOP CFG_INI_UINT( \
  2018. "gDelayBeforeVdevStop", \
  2019. 2, \
  2020. 200, \
  2021. 20, \
  2022. CFG_VALUE_OR_DEFAULT, \
  2023. "wait time for tx complete before vdev stop")
  2024. /*
  2025. * <ini>
  2026. * enable_bss_load_roam_trigger - enable/disable bss load based roam trigger
  2027. * @Min: 0
  2028. * @Max: 1
  2029. * @Default: 0
  2030. *
  2031. * This ini when enabled, allows the firmware to roam when bss load outpaces
  2032. * the configured bss load threshold. When this ini is disabled, firmware
  2033. * doesn't consider bss load values to trigger roam.
  2034. *
  2035. * Related: None
  2036. *
  2037. * Supported Feature: Roaming
  2038. *
  2039. * Usage: External
  2040. *
  2041. * </ini>
  2042. */
  2043. #define CFG_ENABLE_BSS_LOAD_TRIGGERED_ROAM CFG_INI_BOOL( \
  2044. "enable_bss_load_roam_trigger", \
  2045. 0, \
  2046. "enable bss load triggered roaming")
  2047. /*
  2048. * <ini>
  2049. * bss_load_threshold/RoamCU_Trigger - bss load above which the STA should
  2050. * trigger roaming
  2051. * @Min: 0
  2052. * @Max: 100
  2053. * @Default: 70
  2054. *
  2055. * When the bss laod value that is sampled exceeds this threshold, firmware
  2056. * will trigger roaming if bss load trigger is enabled.
  2057. *
  2058. * Related: None
  2059. *
  2060. * Supported Feature: Roaming
  2061. *
  2062. * Usage: External
  2063. *
  2064. * </ini>
  2065. */
  2066. #define CFG_BSS_LOAD_THRESHOLD CFG_INI_UINT( \
  2067. "bss_load_threshold RoamCU_Trigger", \
  2068. RoamCU_Trigger_min, \
  2069. RoamCU_Trigger_max, \
  2070. RoamCU_Trigger_default, \
  2071. CFG_VALUE_OR_DEFAULT, \
  2072. "bss load threshold")
  2073. /*
  2074. * <ini>
  2075. * bss_load_sample_time - Time in milliseconds for which the bss load values
  2076. * obtained from the beacons is sampled.
  2077. * @Min: 0
  2078. * @Max: 0xffffffff
  2079. * @Default: 10000
  2080. *
  2081. * Related: None
  2082. *
  2083. * Supported Feature: Roaming
  2084. *
  2085. * Usage: External
  2086. *
  2087. * </ini>
  2088. */
  2089. #define CFG_BSS_LOAD_SAMPLE_TIME CFG_INI_UINT( \
  2090. "bss_load_sample_time", \
  2091. 0, \
  2092. 0xffffffff, \
  2093. 10000, \
  2094. CFG_VALUE_OR_DEFAULT, \
  2095. "bss load sampling time")
  2096. /*
  2097. * <ini>
  2098. * RoamCU_MonitorTime - Time in seconds for which the bss load values
  2099. * obtained from the beacons is sampled.
  2100. * @Min: 0
  2101. * @Max: 20
  2102. * @Default: 10
  2103. *
  2104. * Related: None
  2105. *
  2106. * Supported Feature: Roaming
  2107. *
  2108. * Usage: External
  2109. *
  2110. * </ini>
  2111. */
  2112. #define CFG_ROAM_CU_MONITOR_TIME CFG_INI_UINT( \
  2113. "RoamCU_MonitorTime", \
  2114. 0, \
  2115. 20, \
  2116. 10, \
  2117. CFG_VALUE_OR_DEFAULT, \
  2118. "bss load sampling time")
  2119. /*
  2120. * <ini>
  2121. * bss_load_trigger_6g_rssi_threshold/RoamCU_6GRSSIRange -
  2122. * Current AP minimum RSSI in dBm below
  2123. * which roaming can be triggered if BSS load exceeds bss_load_threshold.
  2124. * @Min: -120
  2125. * @Max: 0
  2126. * @Default: -70
  2127. *
  2128. * If connected AP is in 6Ghz, then consider bss load roam triggered only if
  2129. * load % > bss_load_threshold && connected AP rssi is worse than
  2130. * bss_load_trigger_6g_rssi_threshold
  2131. *
  2132. * Related: "bss_load_threshold"
  2133. *
  2134. * Supported Feature: Roaming
  2135. *
  2136. * Usage: Internal/External
  2137. *
  2138. * </ini>
  2139. */
  2140. #define CFG_BSS_LOAD_TRIG_6G_RSSI_THRES CFG_INI_INT( \
  2141. "bss_load_trigger_6g_rssi_threshold RoamCU_6GRSSIRange", \
  2142. -120, \
  2143. 0, \
  2144. -70, \
  2145. CFG_VALUE_OR_DEFAULT, \
  2146. "Minimum RSSI of current AP in 6GHz band for BSS load roam trigger")
  2147. /*
  2148. * <ini>
  2149. * bss_load_trigger_5g_rssi_threshold/RoamCU_5GRSSIRange -
  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 5Ghz, then consider bss load roam triggered only if
  2157. * load % > bss_load_threshold && connected AP rssi is worse than
  2158. * bss_load_trigger_5g_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_5G_RSSI_THRES CFG_INI_INT( \
  2169. "bss_load_trigger_5g_rssi_threshold RoamCU_5GRSSIRange", \
  2170. RoamCU_5GRSSIRange_min, \
  2171. RoamCU_5GRSSIRange_max, \
  2172. RoamCU_5GRSSIRange_default, \
  2173. CFG_VALUE_OR_DEFAULT, \
  2174. "Minimum RSSI of current AP in 5GHz band for BSS load roam trigger")
  2175. /*
  2176. * <ini>
  2177. * bss_load_trigger_2g_rssi_threshold/RoamCU_24GRSSIRange -
  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: -60
  2183. *
  2184. * If connected AP is in 2Ghz, then consider bss load roam triggered only if
  2185. * load % > bss_load_threshold && connected AP rssi is worse than
  2186. * bss_load_trigger_2g_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_2G_RSSI_THRES CFG_INI_INT( \
  2197. "bss_load_trigger_2g_rssi_threshold RoamCU_24GRSSIRange", \
  2198. RoamCU_24GRSSIRange_min, \
  2199. RoamCU_24GRSSIRange_max, \
  2200. RoamCU_24GRSSIRange_default, \
  2201. CFG_VALUE_OR_DEFAULT, \
  2202. "Minimum RSSI of current AP in 2.4GHz band for BSS load roam trigger")
  2203. /*
  2204. * <ini>
  2205. * ho_delay_for_rx - Delay hand-off (in msec) by this duration to receive
  2206. * pending rx frames from current BSS
  2207. * @Min: 0
  2208. * @Max: 200
  2209. * @Default: 0
  2210. *
  2211. * For LFR 3.0 roaming scenario, once roam candidate is found, firmware
  2212. * waits for minimum this much duration to receive pending rx frames from
  2213. * current BSS before switching to new channel for handoff to new AP.
  2214. *
  2215. * Related: None
  2216. *
  2217. * Supported Feature: Roaming
  2218. *
  2219. * Usage: External
  2220. *
  2221. * </ini>
  2222. */
  2223. #define CFG_LFR3_ROAM_HO_DELAY_FOR_RX CFG_INI_UINT( \
  2224. "ho_delay_for_rx", \
  2225. 0, \
  2226. 200, \
  2227. 0, \
  2228. CFG_VALUE_OR_DEFAULT, \
  2229. "Delay Hand-off by this duration to receive")
  2230. /*
  2231. * <ini>
  2232. * min_delay_btw_roam_scans - Min duration (in sec) allowed btw two
  2233. * consecutive roam scans
  2234. * @Min: 0
  2235. * @Max: 60
  2236. * @Default: 10
  2237. *
  2238. * Roam scan is not allowed if duration between two consecutive
  2239. * roam scans is less than this time.
  2240. *
  2241. * Related: None
  2242. *
  2243. * Supported Feature: Roaming
  2244. *
  2245. * Usage: External
  2246. *
  2247. * </ini>
  2248. */
  2249. #define CFG_LFR_MIN_DELAY_BTW_ROAM_SCAN CFG_INI_UINT( \
  2250. "min_delay_btw_roam_scans", \
  2251. 0, \
  2252. 60, \
  2253. 10, \
  2254. CFG_VALUE_OR_DEFAULT, \
  2255. "Min duration")
  2256. /*
  2257. * <ini>
  2258. * roam_trigger_reason_bitmask - Contains roam_trigger_reasons
  2259. * @Min: 0
  2260. * @Max: 0xFFFFFFFF
  2261. * @Default: 0x10DA
  2262. *
  2263. * Bitmask containing roam_trigger_reasons for which
  2264. * min_delay_btw_roam_scans constraint should be applied.
  2265. * Currently supported bit positions are as follows:
  2266. * Bit 0 is reserved in the firmware.
  2267. * WMI_ROAM_TRIGGER_REASON_PER - 1
  2268. * WMI_ROAM_TRIGGER_REASON_BMISS - 2
  2269. * WMI_ROAM_TRIGGER_REASON_LOW_RSSI - 3
  2270. * WMI_ROAM_TRIGGER_REASON_HIGH_RSSI - 4
  2271. * WMI_ROAM_TRIGGER_REASON_PERIODIC - 5
  2272. * WMI_ROAM_TRIGGER_REASON_MAWC - 6
  2273. * WMI_ROAM_TRIGGER_REASON_DENSE - 7
  2274. * WMI_ROAM_TRIGGER_REASON_BACKGROUND - 8
  2275. * WMI_ROAM_TRIGGER_REASON_FORCED - 9
  2276. * WMI_ROAM_TRIGGER_REASON_BTM - 10
  2277. * WMI_ROAM_TRIGGER_REASON_UNIT_TEST - 11
  2278. * WMI_ROAM_TRIGGER_REASON_BSS_LOAD - 12
  2279. * WMI_ROAM_TRIGGER_REASON_DEAUTH - 13
  2280. * WMI_ROAM_TRIGGER_REASON_IDLE - 14
  2281. * WMI_ROAM_TRIGGER_REASON_MAX - 15
  2282. *
  2283. * For Ex: 0xDA (PER, LOW_RSSI, HIGH_RSSI, MAWC, DENSE)
  2284. *
  2285. * Related: None
  2286. *
  2287. * Supported Feature: Roaming
  2288. *
  2289. * Usage: External
  2290. *
  2291. * </ini>
  2292. */
  2293. #define CFG_LFR_ROAM_SCAN_TRIGGER_REASON_BITMASK CFG_INI_UINT( \
  2294. "roam_trigger_reason_bitmask", \
  2295. 0, \
  2296. 0xFFFFFFFF, \
  2297. 0x10DA, \
  2298. CFG_VALUE_OR_DEFAULT, \
  2299. "Contains roam_trigger_reasons")
  2300. /*
  2301. * <ini>
  2302. * enable_ftopen - enable/disable FT open feature
  2303. * @Min: 0
  2304. * @Max: 1
  2305. * @Default: 1
  2306. *
  2307. * This INI is used to enable/disable FT open feature
  2308. *
  2309. * Related: None
  2310. *
  2311. * Supported Feature: Roaming
  2312. *
  2313. * Usage: External
  2314. *
  2315. * </ini>
  2316. */
  2317. #define CFG_LFR_ROAM_FT_OPEN_ENABLE CFG_INI_BOOL( \
  2318. "enable_ftopen", \
  2319. 1, \
  2320. "enable/disable FT open feature")
  2321. /*
  2322. * <ini>
  2323. * roam_force_rssi_trigger - To force RSSI trigger
  2324. * irrespective of channel list type
  2325. * @Min: 0
  2326. * @Max: 1
  2327. * @Default: 1
  2328. *
  2329. * This ini is used to set roam scan mode
  2330. * WMI_ROAM_SCAN_MODE_RSSI_CHANGE, irrespective of whether
  2331. * channel list type is CHANNEL_LIST_STATIC or not
  2332. *
  2333. * Related: None
  2334. *
  2335. * Supported Feature: Roaming
  2336. *
  2337. * Usage: External
  2338. *
  2339. * </ini>
  2340. */
  2341. #define CFG_LFR_ROAM_FORCE_RSSI_TRIGGER CFG_INI_BOOL( \
  2342. "roam_force_rssi_trigger", \
  2343. 1, \
  2344. "To force RSSI trigger")
  2345. #ifdef WLAN_FEATURE_ROAM_OFFLOAD
  2346. /*
  2347. * <ini>
  2348. * gRoamOffloadEnabled - enable/disable roam offload feature
  2349. * @Min: 0
  2350. * @Max: 1
  2351. * @Default: 1
  2352. *
  2353. * This INI is used to enable/disable roam offload feature
  2354. *
  2355. * Related: None
  2356. *
  2357. * Supported Feature: Roaming
  2358. *
  2359. * Usage: External
  2360. *
  2361. * </ini>
  2362. */
  2363. #define CFG_LFR3_ROAMING_OFFLOAD CFG_INI_BOOL( \
  2364. "gRoamOffloadEnabled", \
  2365. 1, \
  2366. "enable roam offload")
  2367. /*
  2368. * <ini>
  2369. * enable_self_bss_roam - enable/disable roaming to self bss
  2370. * @Min: 0
  2371. * @Max: 1
  2372. * @Default: 1
  2373. *
  2374. * This INI is used to enable/disable roaming to already connected BSSID
  2375. *
  2376. * Related: None
  2377. *
  2378. * Supported Feature: Roaming
  2379. *
  2380. * Usage: Internal
  2381. *
  2382. * </ini>
  2383. */
  2384. #define CFG_LFR3_ENABLE_SELF_BSS_ROAM CFG_INI_BOOL( \
  2385. "enable_self_bss_roam", \
  2386. 1, \
  2387. "enable self bss roam")
  2388. /*
  2389. * <ini>
  2390. * enable_disconnect_roam_offload - Enable/Disable emergency roaming during
  2391. * deauth/disassoc
  2392. * @Min: 0 - Disabled
  2393. * @Max: 1 - Enabled
  2394. * @Default: 1
  2395. *
  2396. * When this ini is enabled firmware will trigger roam scan and roam to a new ap
  2397. * if candidate is found and it will not send the deauth/disassoc frame to
  2398. * the host driver.
  2399. * If roaming fails after this deauth, then firmware will send
  2400. * WMI_ROAM_REASON_DEAUTH event to the host. If roaming is successful, driver
  2401. * follows the normal roam synch event path.
  2402. *
  2403. * Supported Feature: Roaming
  2404. *
  2405. * Usage: Internal/External
  2406. *
  2407. * </ini>
  2408. */
  2409. #define CFG_LFR_ENABLE_DISCONNECT_ROAM CFG_INI_BOOL( \
  2410. "enable_disconnect_roam_offload", \
  2411. true, \
  2412. "Enable/Disable roaming on deauth/disassoc from AP")
  2413. /*
  2414. * <ini>
  2415. * enable_idle_roam - Enable/Disable idle roaming
  2416. * @Min: 0 - Disabled
  2417. * @Max: 1 - Enabled
  2418. * @Default: 0
  2419. *
  2420. * When this ini is enabled firmware will trigger roam scan and roam to a new
  2421. * ap if current connected AP rssi falls below the threshold. To consider the
  2422. * connection as idle, the following conditions should be met if this ini
  2423. * "enable_idle_roam" is enabled:
  2424. * 1. User space sends "SET SUSPENDMODE" command with value 0.
  2425. * 2. No TX/RX data for idle time configured via ini "idle_roam_inactive_time".
  2426. * 3. Connected AP rssi change doesn't exceed a specific delta value.
  2427. * (configured via ini idle_roam_rssi_delta)
  2428. * 4. Connected AP rssi falls below minimum rssi (configured via ini
  2429. * "idle_roam_min_rssi").
  2430. *
  2431. * Supported Feature: Roaming
  2432. *
  2433. * Usage: Internal/External
  2434. *
  2435. * </ini>
  2436. */
  2437. #define CFG_LFR_ENABLE_IDLE_ROAM CFG_INI_BOOL( \
  2438. "enable_idle_roam", \
  2439. false, \
  2440. "Enable/Disable idle roam")
  2441. /*
  2442. * <ini>
  2443. * idle_roam_rssi_delta/RoamIdle_RSSIVariation - This threshold is the criteria
  2444. * to decide whether DUT is idle or moving. If rssi delta is more than
  2445. * configured threshold then its considered as not idle. RSSI delta is entered
  2446. *in dBm. Idle roaming can be triggered if the connected AP rssi change exceeds
  2447. * or falls below the rssi delta and if other criteria of ini "enable_idle_roam"
  2448. * is met
  2449. * @Min: 0
  2450. * @Max: 50
  2451. * @Default: 3
  2452. *
  2453. * Related: enable_idle_roam
  2454. *
  2455. * Supported Feature: Roaming
  2456. *
  2457. * Usage: Internal/External
  2458. *
  2459. * </ini>
  2460. */
  2461. #define CFG_LFR_IDLE_ROAM_RSSI_DELTA CFG_INI_UINT( \
  2462. "idle_roam_rssi_delta RoamIdle_RSSIVariation", \
  2463. RoamIdle_RSSIVariation_min, \
  2464. RoamIdle_RSSIVariation_max, \
  2465. RoamIdle_RSSIVariation_default, \
  2466. CFG_VALUE_OR_DEFAULT, \
  2467. "Configure RSSI delta to start idle roam")
  2468. /*
  2469. * <ini>
  2470. * idle_roam_inactive_time - Time duration in millseconds for which the
  2471. * connection is idle.
  2472. * @Min: 0
  2473. * @Max: 0xFFFFFFFF
  2474. * @Default: 10000
  2475. *
  2476. * This ini is used to configure the time in seconds for which the connection
  2477. * candidate is idle and after which idle roam scan can be triggered if
  2478. * other criteria of ini "enable_idle_roam" is met.
  2479. *
  2480. * Related: enable_idle_roam
  2481. *
  2482. * Supported Feature: Roaming
  2483. *
  2484. * Usage: Internal/External
  2485. *
  2486. * </ini>
  2487. */
  2488. #define CFG_LFR_IDLE_ROAM_INACTIVE_TIME CFG_INI_UINT( \
  2489. "idle_roam_inactive_time", \
  2490. 0, \
  2491. 0xFFFFFFFF, \
  2492. 10000, \
  2493. CFG_VALUE_OR_DEFAULT, \
  2494. "Configure RSSI delta to start idle roam")
  2495. /*
  2496. * <ini>
  2497. * RoamIdle_InactiveTime - Time duration in seconds for which the
  2498. * connection is idle.
  2499. * @Min: 0
  2500. * @Max: 20
  2501. * @Default: 10
  2502. *
  2503. * This ini is used to configure the time in seconds for which the connection
  2504. * candidate is idle and after which idle roam scan can be triggered if
  2505. * other criteria of ini "enable_idle_roam" is met.
  2506. *
  2507. * Related: enable_idle_roam
  2508. *
  2509. * Supported Feature: Roaming
  2510. *
  2511. * Usage: Internal/External
  2512. *
  2513. * </ini>
  2514. */
  2515. #define CFG_ROAM_IDLE_INACTIVE_TIME CFG_INI_UINT( \
  2516. "RoamIdle_InactiveTime", \
  2517. 0, \
  2518. 20, \
  2519. 10, \
  2520. CFG_VALUE_OR_DEFAULT, \
  2521. "Configure RSSI delta to start idle roam")
  2522. /*
  2523. * <ini>
  2524. * idle_data_packet_count/RoamIdle_InactivePacketCount - No of tx/rx packets
  2525. * above which the connection is not idle.
  2526. * @Min: 0
  2527. * @Max: 0xFFFFFFFF
  2528. * @Default: 10
  2529. *
  2530. * This ini is used to configure the acceptable number of tx/rx packets below
  2531. * which the connection is idle. Ex: If idle_data_packet_count is 10
  2532. * and if the tx/rx packet count is less than 10, the connection is
  2533. * idle. If there are more than 10 packets, the connection is active one.
  2534. *
  2535. * Related: enable_idle_roam
  2536. *
  2537. * Supported Feature: Roaming
  2538. *
  2539. * Usage: Internal/External
  2540. *
  2541. * </ini>
  2542. */
  2543. #define CFG_LFR_IDLE_ROAM_PACKET_COUNT CFG_INI_UINT( \
  2544. "idle_data_packet_count RoamIdle_InactivePacketCount", \
  2545. RoamIdle_InactivePacketCount_min, \
  2546. RoamIdle_InactivePacketCount_max, \
  2547. RoamIdle_InactivePacketCount_default, \
  2548. CFG_VALUE_OR_DEFAULT, \
  2549. "Configure idle packet count")
  2550. /*
  2551. * <ini>
  2552. * idle_roam_min_rssi/RoamIdle_MinRSSI - Minimum RSSI of connected AP, below
  2553. * which idle roam scan can be triggered if other criteria of ini
  2554. * "enable_idle_roam" is met.
  2555. * @Min: -96
  2556. * @Max: 0
  2557. * @Default: -65
  2558. *
  2559. * Related: enable_idle_roam
  2560. *
  2561. * Supported Feature: Roaming
  2562. *
  2563. * Usage: Internal/External
  2564. *
  2565. * </ini>
  2566. */
  2567. #define CFG_LFR_IDLE_ROAM_MIN_RSSI CFG_INI_INT( \
  2568. "idle_roam_min_rssi RoamIdle_MinRSSI", \
  2569. RoamIdle_MinRSSI_min, \
  2570. RoamIdle_MinRSSI_max, \
  2571. RoamIdle_MinRSSI_default, \
  2572. CFG_VALUE_OR_DEFAULT, \
  2573. "Configure idle roam minimum RSSI")
  2574. /*
  2575. * <ini>
  2576. * idle_roam_band/RoamIdle_TriggerBand - Band on which idle roam scan will be
  2577. * enabled
  2578. * @Min: 0
  2579. * @Max: 2
  2580. * @Default: 0
  2581. *
  2582. * Value 0 - Allow idle roam on both bands
  2583. * Value 1 - Allow idle roam only on 2G band
  2584. * Value 2 - Allow idle roam only on 5G band
  2585. *
  2586. * Related: enable_idle_roam
  2587. *
  2588. * Supported Feature: Roaming
  2589. *
  2590. * Usage: Internal/External
  2591. *
  2592. * </ini>
  2593. */
  2594. #define CFG_LFR_IDLE_ROAM_BAND CFG_INI_UINT( \
  2595. "idle_roam_band RoamIdle_TriggerBand", \
  2596. RoamIdle_TriggerBand_min, \
  2597. RoamIdle_TriggerBand_max, \
  2598. RoamIdle_TriggerBand_default, \
  2599. CFG_VALUE_OR_DEFAULT, \
  2600. "Band on which idle roam needs to be enabled")
  2601. /*
  2602. * <ini>
  2603. * roam_triggers - Bitmap of roaming triggers. Setting this to
  2604. * zero will disable roaming altogether for the STA interface.
  2605. * ESS report element of beacon explores BSS information, for roaming station
  2606. * uses it to consider next AP to roam. ROAM_TRIGGER_REASON_ESS_RSSI bit is
  2607. * to enable/disable roam trigger for ESS RSSI reason. This bit of ini is also
  2608. * used for WFA certification.
  2609. * @Min: 0
  2610. * @Max: 0xFFFFFFFF
  2611. * @Default: 0x3FFFF
  2612. *
  2613. * ROAM_TRIGGER_REASON_PER BIT 1
  2614. * ROAM_TRIGGER_REASON_BMISS BIT 2
  2615. * ROAM_TRIGGER_REASON_LOW_RSSI BIT 3
  2616. * ROAM_TRIGGER_REASON_HIGH_RSSI BIT 4
  2617. * ROAM_TRIGGER_REASON_PERIODIC BIT 5
  2618. * ROAM_TRIGGER_REASON_MAWC BIT 6
  2619. * ROAM_TRIGGER_REASON_DENSE BIT 7
  2620. * ROAM_TRIGGER_REASON_BACKGROUND BIT 8
  2621. * ROAM_TRIGGER_REASON_FORCED BIT 9
  2622. * ROAM_TRIGGER_REASON_BTM BIT 10
  2623. * ROAM_TRIGGER_REASON_UNIT_TEST BIT 11
  2624. * ROAM_TRIGGER_REASON_BSS_LOAD BIT 12
  2625. * ROAM_TRIGGER_REASON_DEAUTH BIT 13
  2626. * ROAM_TRIGGER_REASON_IDLE BIT 14
  2627. * ROAM_TRIGGER_REASON_STA_KICKOUT BIT 15
  2628. * ROAM_TRIGGER_REASON_ESS_RSSI BIT 16
  2629. * ROAM_TRIGGER_REASON_WTC_BTM BIT 17
  2630. * ROAM_TRIGGER_REASON_PMK_TIMEOUT BIT 18
  2631. * ROAM_TRIGGER_REASON_BTC BIT 19
  2632. * ROAM_TRIGGER_REASON_MAX BIT 20
  2633. *
  2634. * Related: none
  2635. *
  2636. * Supported Feature: Roaming
  2637. *
  2638. * Usage: External
  2639. *
  2640. * </ini>
  2641. */
  2642. #define CFG_ROAM_TRIGGER_BITMAP CFG_INI_UINT( \
  2643. "roam_triggers", \
  2644. 0, \
  2645. 0xFFFFFFFF, \
  2646. 0x7FFFF, \
  2647. CFG_VALUE_OR_DEFAULT, \
  2648. "Bitmap of roaming triggers")
  2649. /*
  2650. * <ini>
  2651. * sta_disable_roam - Disable Roam on sta interface
  2652. * @Min: 0 - Roam Enabled on sta interface
  2653. * @Max: 0xffffffff - Roam Disabled on sta interface irrespective
  2654. * of other interface connections
  2655. * @Default: 0x00
  2656. *
  2657. * Disable roaming on STA iface to avoid audio glitches on p2p and ndp if
  2658. * those are in connected state. Each bit for "sta_disable_roam" INI represents
  2659. * an interface for which sta roaming can be disabled.
  2660. *
  2661. * LFR3_STA_ROAM_DISABLE_BY_P2P BIT(0)
  2662. * LFR3_STA_ROAM_DISABLE_BY_NAN BIT(1)
  2663. *
  2664. * Related: None.
  2665. *
  2666. * Supported Feature: ROAM
  2667. *
  2668. * Usage: Internal
  2669. *
  2670. * </ini>
  2671. */
  2672. #define CFG_STA_DISABLE_ROAM CFG_INI_UINT( \
  2673. "sta_disable_roam", \
  2674. 0, \
  2675. 0xffffffff, \
  2676. 0x00, \
  2677. CFG_VALUE_OR_DEFAULT, \
  2678. "disable roam on STA iface if one of the iface mentioned in default is in connected state")
  2679. /*
  2680. * <ini>
  2681. * enable_dual_sta_roam_offload - Enable roaming offload on both interfaces
  2682. * for STA + STA
  2683. * @Min: 0 - Dual STA Roam offload Disabled
  2684. * @Max: 1 - Dual STA Roam offload Enabled
  2685. * @Default: 1
  2686. *
  2687. * Enabling this ini will:
  2688. * a) Enforce the STA + STA connection be DBS if the hw is capable.
  2689. * b) Enable Roam Scan Offload on both the STA vdev.
  2690. * c) Enable firmware to support sequential roaming on both STA vdev
  2691. * if the firmware is capable of dual sta roaming.
  2692. *
  2693. * Related: None.
  2694. *
  2695. * Supported Feature: ROAM
  2696. *
  2697. * Usage: External
  2698. *
  2699. * </ini>
  2700. */
  2701. #define CFG_ENABLE_DUAL_STA_ROAM_OFFLOAD CFG_INI_UINT( \
  2702. "enable_dual_sta_roam_offload", \
  2703. false, \
  2704. true, \
  2705. true, \
  2706. CFG_VALUE_OR_DEFAULT, \
  2707. "Enable roam on both STA vdev")
  2708. #define ROAM_OFFLOAD_ALL \
  2709. CFG(CFG_LFR3_ROAMING_OFFLOAD) \
  2710. CFG(CFG_LFR3_ENABLE_SELF_BSS_ROAM) \
  2711. CFG(CFG_LFR_ENABLE_DISCONNECT_ROAM) \
  2712. CFG(CFG_LFR_ENABLE_IDLE_ROAM) \
  2713. CFG(CFG_LFR_IDLE_ROAM_RSSI_DELTA) \
  2714. CFG(CFG_LFR_IDLE_ROAM_INACTIVE_TIME) \
  2715. CFG(CFG_ROAM_IDLE_INACTIVE_TIME) \
  2716. CFG(CFG_LFR_IDLE_ROAM_PACKET_COUNT) \
  2717. CFG(CFG_LFR_IDLE_ROAM_MIN_RSSI) \
  2718. CFG(CFG_LFR_IDLE_ROAM_BAND) \
  2719. CFG(CFG_ROAM_TRIGGER_BITMAP) \
  2720. CFG(CFG_STA_DISABLE_ROAM) \
  2721. CFG(CFG_ENABLE_DUAL_STA_ROAM_OFFLOAD) \
  2722. #else
  2723. #define ROAM_OFFLOAD_ALL
  2724. #endif
  2725. #ifdef FEATURE_WLAN_ESE
  2726. /*
  2727. * <ini>
  2728. * EseEnabled - Enable ESE feature
  2729. * @Min: 0
  2730. * @Max: 1
  2731. * @Default: 0
  2732. *
  2733. * This ini is used to enable/disable ESE feature
  2734. *
  2735. * Related: None
  2736. *
  2737. * Supported Feature: Roaming
  2738. *
  2739. * Usage: External
  2740. *
  2741. * </ini>
  2742. */
  2743. #define CFG_LFR_ESE_FEATURE_ENABLED CFG_INI_BOOL( \
  2744. "EseEnabled", \
  2745. 0, \
  2746. "Enable ESE")
  2747. #define LFR_ESE_ALL CFG(CFG_LFR_ESE_FEATURE_ENABLED)
  2748. #else
  2749. #define LFR_ESE_ALL
  2750. #endif
  2751. #ifdef FEATURE_LFR_SUBNET_DETECTION
  2752. /*
  2753. * <ini>
  2754. * gLFRSubnetDetectionEnable - Enable LFR3 subnet detection
  2755. * @Min: 0
  2756. * @Max: 1
  2757. * @Default: 1
  2758. *
  2759. * Enable IP subnet detection during legacy fast roming version 3. Legacy fast
  2760. * roaming could roam across IP subnets without host processors' knowledge.
  2761. * This feature enables firmware to wake up the host processor if it
  2762. * successfully determines change in the IP subnet. Change in IP subnet could
  2763. * potentially cause disruption in IP connnectivity if IP address is not
  2764. * refreshed.
  2765. *
  2766. * Related: None
  2767. *
  2768. * Supported Feature: Roaming
  2769. *
  2770. * Usage: External
  2771. *
  2772. * </ini>
  2773. */
  2774. #define CFG_LFR3_ENABLE_SUBNET_DETECTION CFG_INI_BOOL( \
  2775. "gLFRSubnetDetectionEnable", \
  2776. 1, \
  2777. "Enable LFR3 subnet detection")
  2778. #define LFR_SUBNET_DETECTION_ALL CFG(CFG_LFR3_ENABLE_SUBNET_DETECTION)
  2779. #else
  2780. #define LFR_SUBNET_DETECTION_ALL
  2781. #endif
  2782. #if defined(WLAN_SAE_SINGLE_PMK) && defined(WLAN_FEATURE_ROAM_OFFLOAD)
  2783. /*
  2784. * <ini>
  2785. * sae_single_pmk_feature_enabled - Enable/disable sae single pmk feature.
  2786. * @Min: 0
  2787. * @Max: 1
  2788. * @Default: 1
  2789. *
  2790. * This INI is to enable/disable SAE Roaming with same PMK/PMKID feature support
  2791. *
  2792. * Related: None.
  2793. *
  2794. * Supported Feature: Roaming
  2795. *
  2796. * Usage: Internal
  2797. *
  2798. * </ini>
  2799. */
  2800. #define CFG_SAE_SINGLE_PMK CFG_INI_BOOL( \
  2801. "sae_single_pmk_feature_enabled", \
  2802. true, \
  2803. "Enable/disable SAE Roaming with single PMK/PMKID")
  2804. #define SAE_SINGLE_PMK_ALL CFG(CFG_SAE_SINGLE_PMK)
  2805. #else
  2806. #define SAE_SINGLE_PMK_ALL
  2807. #endif
  2808. #ifdef WLAN_ADAPTIVE_11R
  2809. /*
  2810. * <ini>
  2811. * adaptive_11r - Enable/disable adaptive 11r feature.
  2812. * @Min: 0
  2813. * @Max: 1
  2814. * @Default: 0
  2815. *
  2816. * Adaptive 11r feature enables the AP to support FT-AKM without
  2817. * configuring the FT-AKM in the network. The AP will advertise non-FT akm
  2818. * with a vendor specific IE having Adaptive 11r bit set to 1 in the IE data.
  2819. * The AP also advertises the MDE in beacon/probe response.
  2820. *
  2821. * STA should check the adaptive 11r capability if the AP advertises MDE in
  2822. * beacon/probe and adaptive 11r capability in vendor specific IE. If adaptive
  2823. * 11r capability is found, STA can advertise the FT equivalent of the non-FT
  2824. * AKM and connect with 11r protocol.
  2825. *
  2826. * Related: None.
  2827. *
  2828. * Supported Feature: Fast BSS Transition
  2829. *
  2830. * Usage: External
  2831. *
  2832. * </ini>
  2833. */
  2834. #define CFG_ADAPTIVE_11R CFG_INI_BOOL( \
  2835. "enable_adaptive_11r", \
  2836. false, \
  2837. "Enable/disable adaptive 11r support")
  2838. #define ADAPTIVE_11R_ALL CFG(CFG_ADAPTIVE_11R)
  2839. #else
  2840. #define ADAPTIVE_11R_ALL
  2841. #endif
  2842. /*
  2843. * <ini>
  2844. * roaming_scan_policy - To config roaming scan policy
  2845. * @Min: 0
  2846. * @Max: 1
  2847. * @Default: 0
  2848. *
  2849. * This ini is used to configure roaming scan behavior from HOST
  2850. * 0 : DBS scan
  2851. * 1 : Non-DBS scan
  2852. *
  2853. * Related: None
  2854. *
  2855. * Supported Feature: Roaming
  2856. *
  2857. * Usage: External
  2858. *
  2859. * </ini>
  2860. */
  2861. #define CFG_ROAM_SCAN_SCAN_POLICY CFG_INI_BOOL( \
  2862. "roaming_scan_policy", \
  2863. 0, \
  2864. "Config roam scan policy")
  2865. /*
  2866. * <ini>
  2867. * enable_ft_im_roaming - FW needs to perform FT initial moiblity association
  2868. * instead of FT roaming for deauth roam trigger
  2869. * @Min: 0
  2870. * @Max: 1
  2871. * @Default: 1
  2872. *
  2873. * This ini is used to FT roaming for deauth roam trigger behavior from HOST
  2874. * 0 - To disable FT-IM
  2875. * 1 - To enable FT-IM
  2876. *
  2877. * Related: None
  2878. *
  2879. * Supported Feature: Roaming
  2880. *
  2881. * Usage: Internal
  2882. *
  2883. * </ini>
  2884. */
  2885. #define CFG_FT_IM_ROAMING CFG_INI_BOOL( \
  2886. "enable_ft_im_roaming", \
  2887. 1, \
  2888. "FT roaming for deauth roam trigger")
  2889. /*
  2890. * <ini>
  2891. * roam_scan_inactivity_time - Device inactivity monitoring time in
  2892. * milliseconds for which the device is considered to be inactive with data
  2893. * packets count is less than configured roam_inactive_data_count.
  2894. *
  2895. * @Min: 0
  2896. * @Max: 0xFFFFFFFF
  2897. * @Default: 0
  2898. *
  2899. * The below three ini values are used to control the roam scan after the
  2900. * firmware gets empty roam scan results during periodic roam scans.
  2901. * 1. roam_scan_inactivity_time
  2902. * 2. roam_inactive_data_count
  2903. * 3. roam_scan_period_after_inactivity
  2904. * The first two ini "roam_scan_inactivity_time" and "roam_inactive_data_count"
  2905. * is frames the criteria to detect if the DUT is inactive. If the device is
  2906. * identified to be inactive based on the above two ini, then the value,
  2907. * "roam_scan_period_after_inactivity" will be used as periodic roam scan
  2908. * duration.
  2909. *
  2910. * Related: roam_inactive_data_count
  2911. *
  2912. * Supported Feature: Roaming
  2913. *
  2914. * Usage: External
  2915. *
  2916. * </ini>
  2917. */
  2918. #define CFG_ROAM_SCAN_INACTIVITY_TIME CFG_INI_UINT( \
  2919. "roam_scan_inactivity_time", \
  2920. 0, \
  2921. 0xFFFFFFFF, \
  2922. 0, \
  2923. CFG_VALUE_OR_DEFAULT, \
  2924. "Device inactivity monitoring time")
  2925. /*
  2926. * <ini>
  2927. * RoamScan_SecondTimer - Device inactivity monitoring time in
  2928. * seconds for which the device is considered to be inactive with data
  2929. * packets count is less than configured RoamScan_InactiveCount.
  2930. *
  2931. * @Min: 60
  2932. * @Max: 300
  2933. * @Default: 120
  2934. *
  2935. * The below three ini values are used to control the roam scan after the
  2936. * firmware gets empty roam scan results during periodic roam scans.
  2937. * 1. RoamScan_SecondTimer
  2938. * 2. RoamScan_InactiveCount
  2939. * 3. RoamScan_InactiveTimer
  2940. * The first two ini "RoamScan_SecondTimer" and "RoamScan_InactiveCount"
  2941. * is frames the criteria to detect if the DUT is inactive. If the device is
  2942. * identified to be inactive based on the above two ini, then the value,
  2943. * "RoamScan_InactiveTimer" will be used as periodic roam scan
  2944. * duration.
  2945. *
  2946. * Related: RoamScan_InactiveCount
  2947. *
  2948. * Supported Feature: Roaming
  2949. *
  2950. * Usage: External
  2951. *
  2952. * </ini>
  2953. */
  2954. #define CFG_ROAM_SCAN_SECOND_TIMER CFG_INI_UINT( \
  2955. "RoamScan_SecondTimer", \
  2956. 60, \
  2957. 300, \
  2958. 120, \
  2959. CFG_VALUE_OR_DEFAULT, \
  2960. "Device inactivity monitoring time")
  2961. /*
  2962. * <ini>
  2963. * roam_inactive_data_count/RoamScan_InactiveCount - Maximum allowed data
  2964. * packets count during roam_scan_inactivity_time.
  2965. *
  2966. * @Min: 0
  2967. * @Max: 0xFFFFFFFF
  2968. * @Default: 10
  2969. *
  2970. * The DUT is said to be inactive only if the data packets count
  2971. * during this roam_scan_inactivity_time is less than the configured
  2972. * roam_inactive_data_count.
  2973. *
  2974. * Related: roam_scan_inactivity_time
  2975. *
  2976. * Supported Feature: Roaming
  2977. *
  2978. * Usage: External
  2979. *
  2980. * </ini>
  2981. */
  2982. #define CFG_ROAM_INACTIVE_COUNT CFG_INI_UINT( \
  2983. "roam_inactive_data_count RoamScan_InactiveCount", \
  2984. RoamScan_InactiveCount_min, \
  2985. RoamScan_InactiveCount_max, \
  2986. RoamScan_InactiveCount_default, \
  2987. CFG_VALUE_OR_DEFAULT, \
  2988. "Roam scan inactivity period data pkt count")
  2989. /*
  2990. * <ini>
  2991. * roam_scan_period_after_inactivity - Roam scan duration in ms after device is
  2992. * out of inactivity state.
  2993. *
  2994. * @Min: 0
  2995. * @Max: 0xFFFFFFFF
  2996. * @Default: 120000
  2997. *
  2998. * If there is empty scan results during roam scan, firmware will move to
  2999. * roam scan inactive state if roam_scan_inactivity and
  3000. * roam_inactive_data_count criteria are met.
  3001. * This ini is used to configure the roam scan duration in ms once the
  3002. * inactivity is finished and roam scan can be started.
  3003. *
  3004. * Related: roam_scan_inactivity_time, roam_inactive_data_count
  3005. *
  3006. * Supported Feature: Roaming
  3007. *
  3008. * Usage: External
  3009. *
  3010. * </ini>
  3011. */
  3012. #define CFG_POST_INACTIVITY_ROAM_SCAN_PERIOD CFG_INI_UINT( \
  3013. "roam_scan_period_after_inactivity", \
  3014. 0, \
  3015. 0xFFFFFFFF, \
  3016. 120000, \
  3017. CFG_VALUE_OR_DEFAULT, \
  3018. "Roam scan period post inactivity")
  3019. /*
  3020. * <ini>
  3021. * RoamScan_InactiveTimer - Roam scan duration in sec after device is
  3022. * out of inactivity state.
  3023. *
  3024. * @Min: 0
  3025. * @Max: 20
  3026. * @Default: 10
  3027. *
  3028. * If there is empty scan results during roam scan, firmware will move to
  3029. * roam scan inactive state if roam_scan_inactivity and
  3030. * roam_inactive_data_count criteria are met.
  3031. * This ini is used to configure the roam scan duration in sec once the
  3032. * inactivity is finished and roam scan can be started.
  3033. *
  3034. * Related: roam_scan_inactivity_time, roam_inactive_data_count
  3035. *
  3036. * Supported Feature: Roaming
  3037. *
  3038. * Usage: External
  3039. *
  3040. * </ini>
  3041. */
  3042. #define CFG_ROAM_SCAN_INACTIVE_TIMER CFG_INI_UINT( \
  3043. "RoamScan_InactiveTimer", \
  3044. 0, \
  3045. 20, \
  3046. 10, \
  3047. CFG_VALUE_OR_DEFAULT, \
  3048. "Roam scan period post inactivity")
  3049. #ifdef WLAN_FEATURE_ROAM_OFFLOAD
  3050. /*
  3051. * <ini>
  3052. * enable_roam_reason_vsie - Enable/Disable inclusion of Roam Reason
  3053. * in Re(association) frame
  3054. *
  3055. * @Min: 0
  3056. * @Max: 1
  3057. * @Default: 0
  3058. *
  3059. * This ini is used to enable fw to include/exclude roam reason vsie in
  3060. * Re(association)
  3061. *
  3062. * Related: None
  3063. *
  3064. * Supported Feature: Roaming
  3065. *
  3066. * Usage: internal
  3067. *
  3068. * </ini>
  3069. */
  3070. #define CFG_ENABLE_ROAM_REASON_VSIE CFG_INI_BOOL( \
  3071. "enable_roam_reason_vsie", \
  3072. 0, \
  3073. "To Enable enable_roam_reason_vsie")
  3074. #define ROAM_REASON_VSIE_ALL CFG(CFG_ENABLE_ROAM_REASON_VSIE)
  3075. #else
  3076. #define ROAM_REASON_VSIE_ALL
  3077. #endif
  3078. #define CFG_LFR_ALL \
  3079. CFG(CFG_LFR_MAWC_ROAM_ENABLED) \
  3080. CFG(CFG_LFR_MAWC_ROAM_TRAFFIC_THRESHOLD) \
  3081. CFG(CFG_LFR_MAWC_ROAM_AP_RSSI_THRESHOLD) \
  3082. CFG(CFG_LFR_MAWC_ROAM_RSSI_HIGH_ADJUST) \
  3083. CFG(CFG_LFR_MAWC_ROAM_RSSI_LOW_ADJUST) \
  3084. CFG(CFG_LFR_ROAM_RSSI_ABS_THRESHOLD) \
  3085. CFG(CFG_LFR_5G_RSSI_THRESHOLD_OFFSET) \
  3086. CFG(CFG_LFR_ENABLE_FAST_ROAM_IN_CONCURRENCY) \
  3087. CFG(CFG_LFR_EARLY_STOP_SCAN_ENABLE) \
  3088. CFG(CFG_LFR_EARLY_STOP_SCAN_MIN_THRESHOLD) \
  3089. CFG(CFG_LFR_EARLY_STOP_SCAN_MAX_THRESHOLD) \
  3090. CFG(CFG_LFR_ROAM_DENSE_TRAFFIC_THRESHOLD) \
  3091. CFG(CFG_LFR_ROAM_DENSE_RSSI_THRE_OFFSET) \
  3092. CFG(CFG_LFR_ROAM_DENSE_MIN_APS) \
  3093. CFG(CFG_LFR_ROAM_BG_SCAN_BAD_RSSI_THRESHOLD) \
  3094. CFG(CFG_LFR_ROAM_BG_SCAN_CLIENT_BITMAP) \
  3095. CFG(CFG_LFR_ROAM_BG_SCAN_BAD_RSSI_OFFSET_2G) \
  3096. CFG(CFG_ROAM_DATA_RSSI_THRESHOLD_TRIGGERS) \
  3097. CFG(CFG_ROAM_DATA_RSSI_THRESHOLD) \
  3098. CFG(CFG_RX_DATA_INACTIVITY_TIME) \
  3099. CFG(CFG_LFR_ADAPTIVE_ROAMSCAN_DWELL_MODE) \
  3100. CFG(CFG_LFR_PER_ROAM_ENABLE) \
  3101. CFG(CFG_LFR_PER_ROAM_CONFIG_HIGH_RATE_TH) \
  3102. CFG(CFG_LFR_PER_ROAM_CONFIG_LOW_RATE_TH) \
  3103. CFG(CFG_LFR_PER_ROAM_CONFIG_RATE_TH_PERCENT) \
  3104. CFG(CFG_LFR_PER_ROAM_REST_TIME) \
  3105. CFG(CFG_LFR_PER_ROAM_MONITOR_TIME) \
  3106. CFG(CFG_LFR_PER_ROAM_MIN_CANDIDATE_RSSI) \
  3107. CFG(CFG_LFR3_ROAM_DISALLOW_DURATION) \
  3108. CFG(CFG_LFR3_ROAM_RSSI_CHANNEL_PENALIZATION) \
  3109. CFG(CFG_LFR3_ROAM_NUM_DISALLOWED_APS) \
  3110. CFG(CFG_LFR_ENABLE_5G_BAND_PREF) \
  3111. CFG(CFG_LFR_5G_RSSI_BOOST_THRESHOLD) \
  3112. CFG(CFG_LFR_5G_RSSI_BOOST_FACTOR) \
  3113. CFG(CFG_LFR_5G_MAX_RSSI_BOOST) \
  3114. CFG(CFG_LFR_5G_RSSI_PENALIZE_THRESHOLD) \
  3115. CFG(CFG_LFR_5G_RSSI_PENALIZE_FACTOR) \
  3116. CFG(CFG_LFR_5G_MAX_RSSI_PENALIZE) \
  3117. CFG(CFG_LFR_MAX_NUM_PRE_AUTH) \
  3118. CFG(CFG_LFR3_ROAM_PREAUTH_RETRY_COUNT) \
  3119. CFG(CFG_LFR3_ROAM_PREAUTH_NO_ACK_TIMEOUT) \
  3120. CFG(CFG_LFR_FEATURE_ENABLED) \
  3121. CFG(CFG_LFR_MAWC_FEATURE_ENABLED) \
  3122. CFG(CFG_LFR_FAST_TRANSITION_ENABLED) \
  3123. CFG(CFG_LFR_ROAM_RSSI_DIFF) \
  3124. CFG(CFG_LFR_ROAM_BG_RSSI_TH) \
  3125. CFG(CFG_LFR_ENABLE_WES_MODE) \
  3126. CFG(CFG_LFR_ROAM_SCAN_OFFLOAD_ENABLED) \
  3127. CFG(CFG_LFR_NEIGHBOR_SCAN_CHANNEL_LIST) \
  3128. CFG(CFG_LFR_NEIGHBOR_SCAN_TIMER_PERIOD) \
  3129. CFG(CFG_LFR_NEIGHBOR_SCAN_MIN_TIMER_PERIOD) \
  3130. CFG(CFG_LFR_NEIGHBOR_LOOKUP_RSSI_THRESHOLD) \
  3131. CFG(CFG_LFR_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF) \
  3132. CFG(CFG_LFR_ROAM_RESCAN_RSSI_DIFF) \
  3133. CFG(CFG_LFR_NEIGHBOR_SCAN_MIN_CHAN_TIME) \
  3134. CFG(CFG_LFR_NEIGHBOR_SCAN_MAX_CHAN_TIME) \
  3135. CFG(CFG_LFR_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD) \
  3136. CFG(CFG_LFR_EMPTY_SCAN_REFRESH_PERIOD) \
  3137. CFG(CFG_ROAM_SCAN_FIRST_TIMER) \
  3138. CFG(CFG_LFR_ROAM_BMISS_FIRST_BCNT) \
  3139. CFG(CFG_LFR_ROAM_BMISS_FINAL_BCNT) \
  3140. CFG(CFG_LFR_ROAMING_DFS_CHANNEL) \
  3141. CFG(CFG_LFR_ROAM_SCAN_HI_RSSI_MAXCOUNT) \
  3142. CFG(CFG_LFR_ROAM_SCAN_HI_RSSI_DELTA) \
  3143. CFG(CFG_LFR_ROAM_SCAN_HI_RSSI_DELAY) \
  3144. CFG(CFG_LFR_ROAM_SCAN_HI_RSSI_UB) \
  3145. CFG(CFG_LFR_ROAM_PREFER_5GHZ) \
  3146. CFG(CFG_LFR_ROAM_INTRA_BAND) \
  3147. CFG(CFG_LFR_ROAM_SCAN_N_PROBES) \
  3148. CFG(CFG_LFR_ROAM_SCAN_HOME_AWAY_TIME) \
  3149. CFG(CFG_LFR_DELAY_BEFORE_VDEV_STOP) \
  3150. CFG(CFG_ENABLE_BSS_LOAD_TRIGGERED_ROAM) \
  3151. CFG(CFG_BSS_LOAD_THRESHOLD) \
  3152. CFG(CFG_BSS_LOAD_SAMPLE_TIME) \
  3153. CFG(CFG_ROAM_CU_MONITOR_TIME) \
  3154. CFG(CFG_LFR3_ROAM_HO_DELAY_FOR_RX) \
  3155. CFG(CFG_LFR_MIN_DELAY_BTW_ROAM_SCAN) \
  3156. CFG(CFG_LFR_ROAM_SCAN_TRIGGER_REASON_BITMASK) \
  3157. CFG(CFG_LFR_ROAM_FT_OPEN_ENABLE) \
  3158. CFG(CFG_LFR_ROAM_FORCE_RSSI_TRIGGER) \
  3159. CFG(CFG_ROAM_SCAN_SCAN_POLICY) \
  3160. CFG(CFG_ROAM_SCAN_INACTIVITY_TIME) \
  3161. CFG(CFG_ROAM_SCAN_SECOND_TIMER) \
  3162. CFG(CFG_FT_IM_ROAMING) \
  3163. CFG(CFG_ROAM_INACTIVE_COUNT) \
  3164. CFG(CFG_ROAM_PASSIVE_MAX_CHANNEL_TIME) \
  3165. CFG(CFG_POST_INACTIVITY_ROAM_SCAN_PERIOD) \
  3166. CFG(CFG_ROAM_SCAN_INACTIVE_TIMER) \
  3167. CFG(CFG_BSS_LOAD_TRIG_6G_RSSI_THRES) \
  3168. CFG(CFG_BSS_LOAD_TRIG_5G_RSSI_THRES) \
  3169. CFG(CFG_BSS_LOAD_TRIG_2G_RSSI_THRES) \
  3170. CFG(CFG_LFR_FULL_ROAM_SCAN_REFRESH_PERIOD) \
  3171. ADAPTIVE_11R_ALL \
  3172. ROAM_OFFLOAD_ALL \
  3173. LFR_ESE_ALL \
  3174. LFR_SUBNET_DETECTION_ALL \
  3175. SAE_SINGLE_PMK_ALL \
  3176. ROAM_REASON_VSIE_ALL \
  3177. CFG(CFG_LFR_BEACONLOSS_TIMEOUT_ON_WAKEUP) \
  3178. CFG(CFG_LFR_BEACONLOSS_TIMEOUT_ON_SLEEP)
  3179. #endif /* CFG_MLME_LFR_H__ */