Kconfig 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. config MAC80211
  3. tristate "Generic IEEE 802.11 Networking Stack (mac80211)"
  4. depends on CFG80211
  5. select CRYPTO
  6. select CRYPTO_LIB_ARC4
  7. select CRYPTO_AES
  8. select CRYPTO_CCM
  9. select CRYPTO_GCM
  10. select CRYPTO_CMAC
  11. select CRC32
  12. help
  13. This option enables the hardware independent IEEE 802.11
  14. networking stack.
  15. comment "CFG80211 needs to be enabled for MAC80211"
  16. depends on CFG80211=n
  17. if MAC80211 != n
  18. config MAC80211_HAS_RC
  19. bool
  20. config MAC80211_RC_MINSTREL
  21. bool "Minstrel" if EXPERT
  22. select MAC80211_HAS_RC
  23. default y
  24. help
  25. This option enables the 'minstrel' TX rate control algorithm
  26. choice
  27. prompt "Default rate control algorithm"
  28. depends on MAC80211_HAS_RC
  29. default MAC80211_RC_DEFAULT_MINSTREL
  30. help
  31. This option selects the default rate control algorithm
  32. mac80211 will use. Note that this default can still be
  33. overridden through the ieee80211_default_rc_algo module
  34. parameter if different algorithms are available.
  35. config MAC80211_RC_DEFAULT_MINSTREL
  36. bool "Minstrel"
  37. depends on MAC80211_RC_MINSTREL
  38. help
  39. Select Minstrel as the default rate control algorithm.
  40. endchoice
  41. config MAC80211_RC_DEFAULT
  42. string
  43. default "minstrel_ht" if MAC80211_RC_DEFAULT_MINSTREL
  44. default ""
  45. endif
  46. comment "Some wireless drivers require a rate control algorithm"
  47. depends on MAC80211 && MAC80211_HAS_RC=n
  48. config MAC80211_KUNIT_TEST
  49. tristate "KUnit tests for mac80211" if !KUNIT_ALL_TESTS
  50. depends on KUNIT
  51. depends on MAC80211
  52. default KUNIT_ALL_TESTS
  53. help
  54. Enable this option to test mac80211 internals with kunit.
  55. If unsure, say N.
  56. config MAC80211_MESH
  57. bool "Enable mac80211 mesh networking support"
  58. depends on MAC80211
  59. help
  60. Select this option to enable 802.11 mesh operation in mac80211
  61. drivers that support it. 802.11 mesh connects multiple stations
  62. over (possibly multi-hop) wireless links to form a single logical
  63. LAN.
  64. config MAC80211_LEDS
  65. bool "Enable LED triggers"
  66. depends on MAC80211
  67. depends on LEDS_CLASS=y || LEDS_CLASS=MAC80211
  68. select LEDS_TRIGGERS
  69. help
  70. This option enables a few LED triggers for different
  71. packet receive/transmit events.
  72. config MAC80211_DEBUGFS
  73. bool "Export mac80211 internals in DebugFS"
  74. depends on MAC80211 && CFG80211_DEBUGFS
  75. help
  76. Select this to see extensive information about
  77. the internal state of mac80211 in debugfs.
  78. Say N unless you know you need this.
  79. config MAC80211_MESSAGE_TRACING
  80. bool "Trace all mac80211 debug messages"
  81. depends on MAC80211 && TRACING
  82. help
  83. Select this option to have mac80211 register the
  84. mac80211_msg trace subsystem with tracepoints to
  85. collect all debugging messages, independent of
  86. printing them into the kernel log.
  87. The overhead in this option is that all the messages
  88. need to be present in the binary and formatted at
  89. runtime for tracing.
  90. menuconfig MAC80211_DEBUG_MENU
  91. bool "Select mac80211 debugging features"
  92. depends on MAC80211
  93. help
  94. This option collects various mac80211 debug settings.
  95. config MAC80211_NOINLINE
  96. bool "Do not inline TX/RX handlers"
  97. depends on MAC80211_DEBUG_MENU
  98. help
  99. This option affects code generation in mac80211, when
  100. selected some functions are marked "noinline" to allow
  101. easier debugging of problems in the transmit and receive
  102. paths.
  103. This option increases code size a bit and inserts a lot
  104. of function calls in the code, but is otherwise safe to
  105. enable.
  106. If unsure, say N unless you expect to be finding problems
  107. in mac80211.
  108. config MAC80211_VERBOSE_DEBUG
  109. bool "Verbose debugging output"
  110. depends on MAC80211_DEBUG_MENU
  111. help
  112. Selecting this option causes mac80211 to print out
  113. many debugging messages. It should not be selected
  114. on production systems as some of the messages are
  115. remotely triggerable.
  116. Do not select this option.
  117. config MAC80211_MLME_DEBUG
  118. bool "Verbose managed MLME output"
  119. depends on MAC80211_DEBUG_MENU
  120. help
  121. Selecting this option causes mac80211 to print out
  122. debugging messages for the managed-mode MLME. It
  123. should not be selected on production systems as some
  124. of the messages are remotely triggerable.
  125. Do not select this option.
  126. config MAC80211_STA_DEBUG
  127. bool "Verbose station debugging"
  128. depends on MAC80211_DEBUG_MENU
  129. help
  130. Selecting this option causes mac80211 to print out
  131. debugging messages for station addition/removal.
  132. Do not select this option.
  133. config MAC80211_HT_DEBUG
  134. bool "Verbose HT debugging"
  135. depends on MAC80211_DEBUG_MENU
  136. help
  137. This option enables 802.11n High Throughput features
  138. debug tracing output.
  139. It should not be selected on production systems as some
  140. of the messages are remotely triggerable.
  141. Do not select this option.
  142. config MAC80211_OCB_DEBUG
  143. bool "Verbose OCB debugging"
  144. depends on MAC80211_DEBUG_MENU
  145. help
  146. Selecting this option causes mac80211 to print out
  147. very verbose OCB debugging messages. It should not
  148. be selected on production systems as those messages
  149. are remotely triggerable.
  150. Do not select this option.
  151. config MAC80211_IBSS_DEBUG
  152. bool "Verbose IBSS debugging"
  153. depends on MAC80211_DEBUG_MENU
  154. help
  155. Selecting this option causes mac80211 to print out
  156. very verbose IBSS debugging messages. It should not
  157. be selected on production systems as those messages
  158. are remotely triggerable.
  159. Do not select this option.
  160. config MAC80211_PS_DEBUG
  161. bool "Verbose powersave mode debugging"
  162. depends on MAC80211_DEBUG_MENU
  163. help
  164. Selecting this option causes mac80211 to print out very
  165. verbose power save mode debugging messages (when mac80211
  166. is an AP and has power saving stations.)
  167. It should not be selected on production systems as those
  168. messages are remotely triggerable.
  169. Do not select this option.
  170. config MAC80211_MPL_DEBUG
  171. bool "Verbose mesh peer link debugging"
  172. depends on MAC80211_DEBUG_MENU
  173. depends on MAC80211_MESH
  174. help
  175. Selecting this option causes mac80211 to print out very
  176. verbose mesh peer link debugging messages (when mac80211
  177. is taking part in a mesh network).
  178. It should not be selected on production systems as those
  179. messages are remotely triggerable.
  180. Do not select this option.
  181. config MAC80211_MPATH_DEBUG
  182. bool "Verbose mesh path debugging"
  183. depends on MAC80211_DEBUG_MENU
  184. depends on MAC80211_MESH
  185. help
  186. Selecting this option causes mac80211 to print out very
  187. verbose mesh path selection debugging messages (when mac80211
  188. is taking part in a mesh network).
  189. It should not be selected on production systems as those
  190. messages are remotely triggerable.
  191. Do not select this option.
  192. config MAC80211_MHWMP_DEBUG
  193. bool "Verbose mesh HWMP routing debugging"
  194. depends on MAC80211_DEBUG_MENU
  195. depends on MAC80211_MESH
  196. help
  197. Selecting this option causes mac80211 to print out very
  198. verbose mesh routing (HWMP) debugging messages (when mac80211
  199. is taking part in a mesh network).
  200. It should not be selected on production systems as those
  201. messages are remotely triggerable.
  202. Do not select this option.
  203. config MAC80211_MESH_SYNC_DEBUG
  204. bool "Verbose mesh synchronization debugging"
  205. depends on MAC80211_DEBUG_MENU
  206. depends on MAC80211_MESH
  207. help
  208. Selecting this option causes mac80211 to print out very verbose mesh
  209. synchronization debugging messages (when mac80211 is taking part in a
  210. mesh network).
  211. Do not select this option.
  212. config MAC80211_MESH_CSA_DEBUG
  213. bool "Verbose mesh channel switch debugging"
  214. depends on MAC80211_DEBUG_MENU
  215. depends on MAC80211_MESH
  216. help
  217. Selecting this option causes mac80211 to print out very verbose mesh
  218. channel switch debugging messages (when mac80211 is taking part in a
  219. mesh network).
  220. Do not select this option.
  221. config MAC80211_MESH_PS_DEBUG
  222. bool "Verbose mesh powersave debugging"
  223. depends on MAC80211_DEBUG_MENU
  224. depends on MAC80211_MESH
  225. help
  226. Selecting this option causes mac80211 to print out very verbose mesh
  227. powersave debugging messages (when mac80211 is taking part in a
  228. mesh network).
  229. Do not select this option.
  230. config MAC80211_TDLS_DEBUG
  231. bool "Verbose TDLS debugging"
  232. depends on MAC80211_DEBUG_MENU
  233. help
  234. Selecting this option causes mac80211 to print out very
  235. verbose TDLS selection debugging messages (when mac80211
  236. is a TDLS STA).
  237. It should not be selected on production systems as those
  238. messages are remotely triggerable.
  239. Do not select this option.
  240. config MAC80211_DEBUG_COUNTERS
  241. bool "Extra statistics for TX/RX debugging"
  242. depends on MAC80211_DEBUG_MENU
  243. depends on MAC80211_DEBUGFS
  244. help
  245. Selecting this option causes mac80211 to keep additional
  246. and very verbose statistics about TX and RX handler use
  247. as well as a few selected dot11 counters. These will be
  248. exposed in debugfs.
  249. Note that some of the counters are not concurrency safe
  250. and may thus not always be accurate.
  251. If unsure, say N.
  252. config MAC80211_STA_HASH_MAX_SIZE
  253. int "Station hash table maximum size" if MAC80211_DEBUG_MENU
  254. default 0
  255. help
  256. Setting this option to a low value (e.g. 4) allows testing the
  257. hash table with collisions relatively deterministically (just
  258. connect more stations than the number selected here.)
  259. If unsure, leave the default of 0.