18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ciconfig MAC80211
38c2ecf20Sopenharmony_ci	tristate "Generic IEEE 802.11 Networking Stack (mac80211)"
48c2ecf20Sopenharmony_ci	depends on CFG80211
58c2ecf20Sopenharmony_ci	select CRYPTO
68c2ecf20Sopenharmony_ci	select CRYPTO_LIB_ARC4
78c2ecf20Sopenharmony_ci	select CRYPTO_AES
88c2ecf20Sopenharmony_ci	select CRYPTO_CCM
98c2ecf20Sopenharmony_ci	select CRYPTO_GCM
108c2ecf20Sopenharmony_ci	select CRYPTO_CMAC
118c2ecf20Sopenharmony_ci	select CRC32
128c2ecf20Sopenharmony_ci	help
138c2ecf20Sopenharmony_ci	  This option enables the hardware independent IEEE 802.11
148c2ecf20Sopenharmony_ci	  networking stack.
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_cicomment "CFG80211 needs to be enabled for MAC80211"
178c2ecf20Sopenharmony_ci	depends on CFG80211=n
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ciif MAC80211 != n
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ciconfig MAC80211_HAS_RC
228c2ecf20Sopenharmony_ci	bool
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ciconfig MAC80211_RC_MINSTREL
258c2ecf20Sopenharmony_ci	bool "Minstrel" if EXPERT
268c2ecf20Sopenharmony_ci	select MAC80211_HAS_RC
278c2ecf20Sopenharmony_ci	default y
288c2ecf20Sopenharmony_ci	help
298c2ecf20Sopenharmony_ci	  This option enables the 'minstrel' TX rate control algorithm
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_cichoice
328c2ecf20Sopenharmony_ci	prompt "Default rate control algorithm"
338c2ecf20Sopenharmony_ci	depends on MAC80211_HAS_RC
348c2ecf20Sopenharmony_ci	default MAC80211_RC_DEFAULT_MINSTREL
358c2ecf20Sopenharmony_ci	help
368c2ecf20Sopenharmony_ci	  This option selects the default rate control algorithm
378c2ecf20Sopenharmony_ci	  mac80211 will use. Note that this default can still be
388c2ecf20Sopenharmony_ci	  overridden through the ieee80211_default_rc_algo module
398c2ecf20Sopenharmony_ci	  parameter if different algorithms are available.
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ciconfig MAC80211_RC_DEFAULT_MINSTREL
428c2ecf20Sopenharmony_ci	bool "Minstrel"
438c2ecf20Sopenharmony_ci	depends on MAC80211_RC_MINSTREL
448c2ecf20Sopenharmony_ci	help
458c2ecf20Sopenharmony_ci	  Select Minstrel as the default rate control algorithm.
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ciendchoice
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ciconfig MAC80211_RC_DEFAULT
518c2ecf20Sopenharmony_ci	string
528c2ecf20Sopenharmony_ci	default "minstrel_ht" if MAC80211_RC_DEFAULT_MINSTREL
538c2ecf20Sopenharmony_ci	default ""
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ciendif
568c2ecf20Sopenharmony_ci
578c2ecf20Sopenharmony_cicomment "Some wireless drivers require a rate control algorithm"
588c2ecf20Sopenharmony_ci	depends on MAC80211 && MAC80211_HAS_RC=n
598c2ecf20Sopenharmony_ci
608c2ecf20Sopenharmony_ciconfig MAC80211_MESH
618c2ecf20Sopenharmony_ci	bool "Enable mac80211 mesh networking support"
628c2ecf20Sopenharmony_ci	depends on MAC80211
638c2ecf20Sopenharmony_ci	help
648c2ecf20Sopenharmony_ci	  Select this option to enable 802.11 mesh operation in mac80211
658c2ecf20Sopenharmony_ci	  drivers that support it.  802.11 mesh connects multiple stations
668c2ecf20Sopenharmony_ci	  over (possibly multi-hop) wireless links to form a single logical
678c2ecf20Sopenharmony_ci	  LAN.
688c2ecf20Sopenharmony_ci
698c2ecf20Sopenharmony_ciconfig MAC80211_LEDS
708c2ecf20Sopenharmony_ci	bool "Enable LED triggers"
718c2ecf20Sopenharmony_ci	depends on MAC80211
728c2ecf20Sopenharmony_ci	depends on LEDS_CLASS=y || LEDS_CLASS=MAC80211
738c2ecf20Sopenharmony_ci	select LEDS_TRIGGERS
748c2ecf20Sopenharmony_ci	help
758c2ecf20Sopenharmony_ci	  This option enables a few LED triggers for different
768c2ecf20Sopenharmony_ci	  packet receive/transmit events.
778c2ecf20Sopenharmony_ci
788c2ecf20Sopenharmony_ciconfig MAC80211_DEBUGFS
798c2ecf20Sopenharmony_ci	bool "Export mac80211 internals in DebugFS"
808c2ecf20Sopenharmony_ci	depends on MAC80211 && DEBUG_FS
818c2ecf20Sopenharmony_ci	help
828c2ecf20Sopenharmony_ci	  Select this to see extensive information about
838c2ecf20Sopenharmony_ci	  the internal state of mac80211 in debugfs.
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_ci	  Say N unless you know you need this.
868c2ecf20Sopenharmony_ci
878c2ecf20Sopenharmony_ciconfig MAC80211_MESSAGE_TRACING
888c2ecf20Sopenharmony_ci	bool "Trace all mac80211 debug messages"
898c2ecf20Sopenharmony_ci	depends on MAC80211
908c2ecf20Sopenharmony_ci	help
918c2ecf20Sopenharmony_ci	  Select this option to have mac80211 register the
928c2ecf20Sopenharmony_ci	  mac80211_msg trace subsystem with tracepoints to
938c2ecf20Sopenharmony_ci	  collect all debugging messages, independent of
948c2ecf20Sopenharmony_ci	  printing them into the kernel log.
958c2ecf20Sopenharmony_ci
968c2ecf20Sopenharmony_ci	  The overhead in this option is that all the messages
978c2ecf20Sopenharmony_ci	  need to be present in the binary and formatted at
988c2ecf20Sopenharmony_ci	  runtime for tracing.
998c2ecf20Sopenharmony_ci
1008c2ecf20Sopenharmony_cimenuconfig MAC80211_DEBUG_MENU
1018c2ecf20Sopenharmony_ci	bool "Select mac80211 debugging features"
1028c2ecf20Sopenharmony_ci	depends on MAC80211
1038c2ecf20Sopenharmony_ci	help
1048c2ecf20Sopenharmony_ci	  This option collects various mac80211 debug settings.
1058c2ecf20Sopenharmony_ci
1068c2ecf20Sopenharmony_ciconfig MAC80211_NOINLINE
1078c2ecf20Sopenharmony_ci	bool "Do not inline TX/RX handlers"
1088c2ecf20Sopenharmony_ci	depends on MAC80211_DEBUG_MENU
1098c2ecf20Sopenharmony_ci	help
1108c2ecf20Sopenharmony_ci	  This option affects code generation in mac80211, when
1118c2ecf20Sopenharmony_ci	  selected some functions are marked "noinline" to allow
1128c2ecf20Sopenharmony_ci	  easier debugging of problems in the transmit and receive
1138c2ecf20Sopenharmony_ci	  paths.
1148c2ecf20Sopenharmony_ci
1158c2ecf20Sopenharmony_ci	  This option increases code size a bit and inserts a lot
1168c2ecf20Sopenharmony_ci	  of function calls in the code, but is otherwise safe to
1178c2ecf20Sopenharmony_ci	  enable.
1188c2ecf20Sopenharmony_ci
1198c2ecf20Sopenharmony_ci	  If unsure, say N unless you expect to be finding problems
1208c2ecf20Sopenharmony_ci	  in mac80211.
1218c2ecf20Sopenharmony_ci
1228c2ecf20Sopenharmony_ciconfig MAC80211_VERBOSE_DEBUG
1238c2ecf20Sopenharmony_ci	bool "Verbose debugging output"
1248c2ecf20Sopenharmony_ci	depends on MAC80211_DEBUG_MENU
1258c2ecf20Sopenharmony_ci	help
1268c2ecf20Sopenharmony_ci	  Selecting this option causes mac80211 to print out
1278c2ecf20Sopenharmony_ci	  many debugging messages. It should not be selected
1288c2ecf20Sopenharmony_ci	  on production systems as some of the messages are
1298c2ecf20Sopenharmony_ci	  remotely triggerable.
1308c2ecf20Sopenharmony_ci
1318c2ecf20Sopenharmony_ci	  Do not select this option.
1328c2ecf20Sopenharmony_ci
1338c2ecf20Sopenharmony_ciconfig MAC80211_MLME_DEBUG
1348c2ecf20Sopenharmony_ci	bool "Verbose managed MLME output"
1358c2ecf20Sopenharmony_ci	depends on MAC80211_DEBUG_MENU
1368c2ecf20Sopenharmony_ci	help
1378c2ecf20Sopenharmony_ci	  Selecting this option causes mac80211 to print out
1388c2ecf20Sopenharmony_ci	  debugging messages for the managed-mode MLME. It
1398c2ecf20Sopenharmony_ci	  should not be selected on production systems as some
1408c2ecf20Sopenharmony_ci	  of the messages are remotely triggerable.
1418c2ecf20Sopenharmony_ci
1428c2ecf20Sopenharmony_ci	  Do not select this option.
1438c2ecf20Sopenharmony_ci
1448c2ecf20Sopenharmony_ciconfig MAC80211_STA_DEBUG
1458c2ecf20Sopenharmony_ci	bool "Verbose station debugging"
1468c2ecf20Sopenharmony_ci	depends on MAC80211_DEBUG_MENU
1478c2ecf20Sopenharmony_ci	help
1488c2ecf20Sopenharmony_ci	  Selecting this option causes mac80211 to print out
1498c2ecf20Sopenharmony_ci	  debugging messages for station addition/removal.
1508c2ecf20Sopenharmony_ci
1518c2ecf20Sopenharmony_ci	  Do not select this option.
1528c2ecf20Sopenharmony_ci
1538c2ecf20Sopenharmony_ciconfig MAC80211_HT_DEBUG
1548c2ecf20Sopenharmony_ci	bool "Verbose HT debugging"
1558c2ecf20Sopenharmony_ci	depends on MAC80211_DEBUG_MENU
1568c2ecf20Sopenharmony_ci	help
1578c2ecf20Sopenharmony_ci	  This option enables 802.11n High Throughput features
1588c2ecf20Sopenharmony_ci	  debug tracing output.
1598c2ecf20Sopenharmony_ci
1608c2ecf20Sopenharmony_ci	  It should not be selected on production systems as some
1618c2ecf20Sopenharmony_ci	  of the messages are remotely triggerable.
1628c2ecf20Sopenharmony_ci
1638c2ecf20Sopenharmony_ci	  Do not select this option.
1648c2ecf20Sopenharmony_ci
1658c2ecf20Sopenharmony_ciconfig MAC80211_OCB_DEBUG
1668c2ecf20Sopenharmony_ci	bool "Verbose OCB debugging"
1678c2ecf20Sopenharmony_ci	depends on MAC80211_DEBUG_MENU
1688c2ecf20Sopenharmony_ci	help
1698c2ecf20Sopenharmony_ci	  Selecting this option causes mac80211 to print out
1708c2ecf20Sopenharmony_ci	  very verbose OCB debugging messages. It should not
1718c2ecf20Sopenharmony_ci	  be selected on production systems as those messages
1728c2ecf20Sopenharmony_ci	  are remotely triggerable.
1738c2ecf20Sopenharmony_ci
1748c2ecf20Sopenharmony_ci	  Do not select this option.
1758c2ecf20Sopenharmony_ci
1768c2ecf20Sopenharmony_ciconfig MAC80211_IBSS_DEBUG
1778c2ecf20Sopenharmony_ci	bool "Verbose IBSS debugging"
1788c2ecf20Sopenharmony_ci	depends on MAC80211_DEBUG_MENU
1798c2ecf20Sopenharmony_ci	help
1808c2ecf20Sopenharmony_ci	  Selecting this option causes mac80211 to print out
1818c2ecf20Sopenharmony_ci	  very verbose IBSS debugging messages. It should not
1828c2ecf20Sopenharmony_ci	  be selected on production systems as those messages
1838c2ecf20Sopenharmony_ci	  are remotely triggerable.
1848c2ecf20Sopenharmony_ci
1858c2ecf20Sopenharmony_ci	  Do not select this option.
1868c2ecf20Sopenharmony_ci
1878c2ecf20Sopenharmony_ciconfig MAC80211_PS_DEBUG
1888c2ecf20Sopenharmony_ci	bool "Verbose powersave mode debugging"
1898c2ecf20Sopenharmony_ci	depends on MAC80211_DEBUG_MENU
1908c2ecf20Sopenharmony_ci	help
1918c2ecf20Sopenharmony_ci	  Selecting this option causes mac80211 to print out very
1928c2ecf20Sopenharmony_ci	  verbose power save mode debugging messages (when mac80211
1938c2ecf20Sopenharmony_ci	  is an AP and has power saving stations.)
1948c2ecf20Sopenharmony_ci	  It should not be selected on production systems as those
1958c2ecf20Sopenharmony_ci	  messages are remotely triggerable.
1968c2ecf20Sopenharmony_ci
1978c2ecf20Sopenharmony_ci	  Do not select this option.
1988c2ecf20Sopenharmony_ci
1998c2ecf20Sopenharmony_ciconfig MAC80211_MPL_DEBUG
2008c2ecf20Sopenharmony_ci	bool "Verbose mesh peer link debugging"
2018c2ecf20Sopenharmony_ci	depends on MAC80211_DEBUG_MENU
2028c2ecf20Sopenharmony_ci	depends on MAC80211_MESH
2038c2ecf20Sopenharmony_ci	help
2048c2ecf20Sopenharmony_ci	  Selecting this option causes mac80211 to print out very
2058c2ecf20Sopenharmony_ci	  verbose mesh peer link debugging messages (when mac80211
2068c2ecf20Sopenharmony_ci	  is taking part in a mesh network).
2078c2ecf20Sopenharmony_ci	  It should not be selected on production systems as those
2088c2ecf20Sopenharmony_ci	  messages are remotely triggerable.
2098c2ecf20Sopenharmony_ci
2108c2ecf20Sopenharmony_ci	  Do not select this option.
2118c2ecf20Sopenharmony_ci
2128c2ecf20Sopenharmony_ciconfig MAC80211_MPATH_DEBUG
2138c2ecf20Sopenharmony_ci	bool "Verbose mesh path debugging"
2148c2ecf20Sopenharmony_ci	depends on MAC80211_DEBUG_MENU
2158c2ecf20Sopenharmony_ci	depends on MAC80211_MESH
2168c2ecf20Sopenharmony_ci	help
2178c2ecf20Sopenharmony_ci	  Selecting this option causes mac80211 to print out very
2188c2ecf20Sopenharmony_ci	  verbose mesh path selection debugging messages (when mac80211
2198c2ecf20Sopenharmony_ci	  is taking part in a mesh network).
2208c2ecf20Sopenharmony_ci	  It should not be selected on production systems as those
2218c2ecf20Sopenharmony_ci	  messages are remotely triggerable.
2228c2ecf20Sopenharmony_ci
2238c2ecf20Sopenharmony_ci	  Do not select this option.
2248c2ecf20Sopenharmony_ci
2258c2ecf20Sopenharmony_ciconfig MAC80211_MHWMP_DEBUG
2268c2ecf20Sopenharmony_ci	bool "Verbose mesh HWMP routing debugging"
2278c2ecf20Sopenharmony_ci	depends on MAC80211_DEBUG_MENU
2288c2ecf20Sopenharmony_ci	depends on MAC80211_MESH
2298c2ecf20Sopenharmony_ci	help
2308c2ecf20Sopenharmony_ci	  Selecting this option causes mac80211 to print out very
2318c2ecf20Sopenharmony_ci	  verbose mesh routing (HWMP) debugging messages (when mac80211
2328c2ecf20Sopenharmony_ci	  is taking part in a mesh network).
2338c2ecf20Sopenharmony_ci	  It should not be selected on production systems as those
2348c2ecf20Sopenharmony_ci	  messages are remotely triggerable.
2358c2ecf20Sopenharmony_ci
2368c2ecf20Sopenharmony_ci	  Do not select this option.
2378c2ecf20Sopenharmony_ci
2388c2ecf20Sopenharmony_ciconfig MAC80211_MESH_SYNC_DEBUG
2398c2ecf20Sopenharmony_ci	bool "Verbose mesh synchronization debugging"
2408c2ecf20Sopenharmony_ci	depends on MAC80211_DEBUG_MENU
2418c2ecf20Sopenharmony_ci	depends on MAC80211_MESH
2428c2ecf20Sopenharmony_ci	help
2438c2ecf20Sopenharmony_ci	  Selecting this option causes mac80211 to print out very verbose mesh
2448c2ecf20Sopenharmony_ci	  synchronization debugging messages (when mac80211 is taking part in a
2458c2ecf20Sopenharmony_ci	  mesh network).
2468c2ecf20Sopenharmony_ci
2478c2ecf20Sopenharmony_ci	  Do not select this option.
2488c2ecf20Sopenharmony_ci
2498c2ecf20Sopenharmony_ciconfig MAC80211_MESH_CSA_DEBUG
2508c2ecf20Sopenharmony_ci	bool "Verbose mesh channel switch debugging"
2518c2ecf20Sopenharmony_ci	depends on MAC80211_DEBUG_MENU
2528c2ecf20Sopenharmony_ci	depends on MAC80211_MESH
2538c2ecf20Sopenharmony_ci	help
2548c2ecf20Sopenharmony_ci	  Selecting this option causes mac80211 to print out very verbose mesh
2558c2ecf20Sopenharmony_ci	  channel switch debugging messages (when mac80211 is taking part in a
2568c2ecf20Sopenharmony_ci	  mesh network).
2578c2ecf20Sopenharmony_ci
2588c2ecf20Sopenharmony_ci	  Do not select this option.
2598c2ecf20Sopenharmony_ci
2608c2ecf20Sopenharmony_ciconfig MAC80211_MESH_PS_DEBUG
2618c2ecf20Sopenharmony_ci	bool "Verbose mesh powersave debugging"
2628c2ecf20Sopenharmony_ci	depends on MAC80211_DEBUG_MENU
2638c2ecf20Sopenharmony_ci	depends on MAC80211_MESH
2648c2ecf20Sopenharmony_ci	help
2658c2ecf20Sopenharmony_ci	  Selecting this option causes mac80211 to print out very verbose mesh
2668c2ecf20Sopenharmony_ci	  powersave debugging messages (when mac80211 is taking part in a
2678c2ecf20Sopenharmony_ci	  mesh network).
2688c2ecf20Sopenharmony_ci
2698c2ecf20Sopenharmony_ci	  Do not select this option.
2708c2ecf20Sopenharmony_ci
2718c2ecf20Sopenharmony_ciconfig MAC80211_TDLS_DEBUG
2728c2ecf20Sopenharmony_ci	bool "Verbose TDLS debugging"
2738c2ecf20Sopenharmony_ci	depends on MAC80211_DEBUG_MENU
2748c2ecf20Sopenharmony_ci	help
2758c2ecf20Sopenharmony_ci	  Selecting this option causes mac80211 to print out very
2768c2ecf20Sopenharmony_ci	  verbose TDLS selection debugging messages (when mac80211
2778c2ecf20Sopenharmony_ci	  is a TDLS STA).
2788c2ecf20Sopenharmony_ci	  It should not be selected on production systems as those
2798c2ecf20Sopenharmony_ci	  messages are remotely triggerable.
2808c2ecf20Sopenharmony_ci
2818c2ecf20Sopenharmony_ci	  Do not select this option.
2828c2ecf20Sopenharmony_ci
2838c2ecf20Sopenharmony_ciconfig MAC80211_DEBUG_COUNTERS
2848c2ecf20Sopenharmony_ci	bool "Extra statistics for TX/RX debugging"
2858c2ecf20Sopenharmony_ci	depends on MAC80211_DEBUG_MENU
2868c2ecf20Sopenharmony_ci	depends on MAC80211_DEBUGFS
2878c2ecf20Sopenharmony_ci	help
2888c2ecf20Sopenharmony_ci	  Selecting this option causes mac80211 to keep additional
2898c2ecf20Sopenharmony_ci	  and very verbose statistics about TX and RX handler use
2908c2ecf20Sopenharmony_ci	  as well as a few selected dot11 counters. These will be
2918c2ecf20Sopenharmony_ci	  exposed in debugfs.
2928c2ecf20Sopenharmony_ci
2938c2ecf20Sopenharmony_ci	  Note that some of the counters are not concurrency safe
2948c2ecf20Sopenharmony_ci	  and may thus not always be accurate.
2958c2ecf20Sopenharmony_ci
2968c2ecf20Sopenharmony_ci	  If unsure, say N.
2978c2ecf20Sopenharmony_ci
2988c2ecf20Sopenharmony_ciconfig MAC80211_STA_HASH_MAX_SIZE
2998c2ecf20Sopenharmony_ci	int "Station hash table maximum size" if MAC80211_DEBUG_MENU
3008c2ecf20Sopenharmony_ci	default 0
3018c2ecf20Sopenharmony_ci	help
3028c2ecf20Sopenharmony_ci	  Setting this option to a low value (e.g. 4) allows testing the
3038c2ecf20Sopenharmony_ci	  hash table with collisions relatively deterministically (just
3048c2ecf20Sopenharmony_ci	  connect more stations than the number selected here.)
3058c2ecf20Sopenharmony_ci
3068c2ecf20Sopenharmony_ci	  If unsure, leave the default of 0.
307