Kconfig 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306
  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_MESH
  49. bool "Enable mac80211 mesh networking support"
  50. depends on MAC80211
  51. help
  52. Select this option to enable 802.11 mesh operation in mac80211
  53. drivers that support it. 802.11 mesh connects multiple stations
  54. over (possibly multi-hop) wireless links to form a single logical
  55. LAN.
  56. config MAC80211_LEDS
  57. bool "Enable LED triggers"
  58. depends on MAC80211
  59. depends on LEDS_CLASS=y || LEDS_CLASS=MAC80211
  60. select LEDS_TRIGGERS
  61. help
  62. This option enables a few LED triggers for different
  63. packet receive/transmit events.
  64. config MAC80211_DEBUGFS
  65. bool "Export mac80211 internals in DebugFS"
  66. depends on MAC80211 && DEBUG_FS
  67. help
  68. Select this to see extensive information about
  69. the internal state of mac80211 in debugfs.
  70. Say N unless you know you need this.
  71. config MAC80211_MESSAGE_TRACING
  72. bool "Trace all mac80211 debug messages"
  73. depends on MAC80211
  74. help
  75. Select this option to have mac80211 register the
  76. mac80211_msg trace subsystem with tracepoints to
  77. collect all debugging messages, independent of
  78. printing them into the kernel log.
  79. The overhead in this option is that all the messages
  80. need to be present in the binary and formatted at
  81. runtime for tracing.
  82. menuconfig MAC80211_DEBUG_MENU
  83. bool "Select mac80211 debugging features"
  84. depends on MAC80211
  85. help
  86. This option collects various mac80211 debug settings.
  87. config MAC80211_NOINLINE
  88. bool "Do not inline TX/RX handlers"
  89. depends on MAC80211_DEBUG_MENU
  90. help
  91. This option affects code generation in mac80211, when
  92. selected some functions are marked "noinline" to allow
  93. easier debugging of problems in the transmit and receive
  94. paths.
  95. This option increases code size a bit and inserts a lot
  96. of function calls in the code, but is otherwise safe to
  97. enable.
  98. If unsure, say N unless you expect to be finding problems
  99. in mac80211.
  100. config MAC80211_VERBOSE_DEBUG
  101. bool "Verbose debugging output"
  102. depends on MAC80211_DEBUG_MENU
  103. help
  104. Selecting this option causes mac80211 to print out
  105. many debugging messages. It should not be selected
  106. on production systems as some of the messages are
  107. remotely triggerable.
  108. Do not select this option.
  109. config MAC80211_MLME_DEBUG
  110. bool "Verbose managed MLME output"
  111. depends on MAC80211_DEBUG_MENU
  112. help
  113. Selecting this option causes mac80211 to print out
  114. debugging messages for the managed-mode MLME. It
  115. should not be selected on production systems as some
  116. of the messages are remotely triggerable.
  117. Do not select this option.
  118. config MAC80211_STA_DEBUG
  119. bool "Verbose station debugging"
  120. depends on MAC80211_DEBUG_MENU
  121. help
  122. Selecting this option causes mac80211 to print out
  123. debugging messages for station addition/removal.
  124. Do not select this option.
  125. config MAC80211_HT_DEBUG
  126. bool "Verbose HT debugging"
  127. depends on MAC80211_DEBUG_MENU
  128. help
  129. This option enables 802.11n High Throughput features
  130. debug tracing output.
  131. It should not be selected on production systems as some
  132. of the messages are remotely triggerable.
  133. Do not select this option.
  134. config MAC80211_OCB_DEBUG
  135. bool "Verbose OCB debugging"
  136. depends on MAC80211_DEBUG_MENU
  137. help
  138. Selecting this option causes mac80211 to print out
  139. very verbose OCB debugging messages. It should not
  140. be selected on production systems as those messages
  141. are remotely triggerable.
  142. Do not select this option.
  143. config MAC80211_IBSS_DEBUG
  144. bool "Verbose IBSS debugging"
  145. depends on MAC80211_DEBUG_MENU
  146. help
  147. Selecting this option causes mac80211 to print out
  148. very verbose IBSS debugging messages. It should not
  149. be selected on production systems as those messages
  150. are remotely triggerable.
  151. Do not select this option.
  152. config MAC80211_PS_DEBUG
  153. bool "Verbose powersave mode debugging"
  154. depends on MAC80211_DEBUG_MENU
  155. help
  156. Selecting this option causes mac80211 to print out very
  157. verbose power save mode debugging messages (when mac80211
  158. is an AP and has power saving stations.)
  159. It should not be selected on production systems as those
  160. messages are remotely triggerable.
  161. Do not select this option.
  162. config MAC80211_MPL_DEBUG
  163. bool "Verbose mesh peer link debugging"
  164. depends on MAC80211_DEBUG_MENU
  165. depends on MAC80211_MESH
  166. help
  167. Selecting this option causes mac80211 to print out very
  168. verbose mesh peer link debugging messages (when mac80211
  169. is taking part in a mesh network).
  170. It should not be selected on production systems as those
  171. messages are remotely triggerable.
  172. Do not select this option.
  173. config MAC80211_MPATH_DEBUG
  174. bool "Verbose mesh path debugging"
  175. depends on MAC80211_DEBUG_MENU
  176. depends on MAC80211_MESH
  177. help
  178. Selecting this option causes mac80211 to print out very
  179. verbose mesh path selection debugging messages (when mac80211
  180. is taking part in a mesh network).
  181. It should not be selected on production systems as those
  182. messages are remotely triggerable.
  183. Do not select this option.
  184. config MAC80211_MHWMP_DEBUG
  185. bool "Verbose mesh HWMP routing debugging"
  186. depends on MAC80211_DEBUG_MENU
  187. depends on MAC80211_MESH
  188. help
  189. Selecting this option causes mac80211 to print out very
  190. verbose mesh routing (HWMP) debugging messages (when mac80211
  191. is taking part in a mesh network).
  192. It should not be selected on production systems as those
  193. messages are remotely triggerable.
  194. Do not select this option.
  195. config MAC80211_MESH_SYNC_DEBUG
  196. bool "Verbose mesh synchronization debugging"
  197. depends on MAC80211_DEBUG_MENU
  198. depends on MAC80211_MESH
  199. help
  200. Selecting this option causes mac80211 to print out very verbose mesh
  201. synchronization debugging messages (when mac80211 is taking part in a
  202. mesh network).
  203. Do not select this option.
  204. config MAC80211_MESH_CSA_DEBUG
  205. bool "Verbose mesh channel switch debugging"
  206. depends on MAC80211_DEBUG_MENU
  207. depends on MAC80211_MESH
  208. help
  209. Selecting this option causes mac80211 to print out very verbose mesh
  210. channel switch debugging messages (when mac80211 is taking part in a
  211. mesh network).
  212. Do not select this option.
  213. config MAC80211_MESH_PS_DEBUG
  214. bool "Verbose mesh powersave debugging"
  215. depends on MAC80211_DEBUG_MENU
  216. depends on MAC80211_MESH
  217. help
  218. Selecting this option causes mac80211 to print out very verbose mesh
  219. powersave debugging messages (when mac80211 is taking part in a
  220. mesh network).
  221. Do not select this option.
  222. config MAC80211_TDLS_DEBUG
  223. bool "Verbose TDLS debugging"
  224. depends on MAC80211_DEBUG_MENU
  225. help
  226. Selecting this option causes mac80211 to print out very
  227. verbose TDLS selection debugging messages (when mac80211
  228. is a TDLS STA).
  229. It should not be selected on production systems as those
  230. messages are remotely triggerable.
  231. Do not select this option.
  232. config MAC80211_DEBUG_COUNTERS
  233. bool "Extra statistics for TX/RX debugging"
  234. depends on MAC80211_DEBUG_MENU
  235. depends on MAC80211_DEBUGFS
  236. help
  237. Selecting this option causes mac80211 to keep additional
  238. and very verbose statistics about TX and RX handler use
  239. as well as a few selected dot11 counters. These will be
  240. exposed in debugfs.
  241. Note that some of the counters are not concurrency safe
  242. and may thus not always be accurate.
  243. If unsure, say N.
  244. config MAC80211_STA_HASH_MAX_SIZE
  245. int "Station hash table maximum size" if MAC80211_DEBUG_MENU
  246. default 0
  247. help
  248. Setting this option to a low value (e.g. 4) allows testing the
  249. hash table with collisions relatively deterministically (just
  250. connect more stations than the number selected here.)
  251. If unsure, leave the default of 0.