| # SPDX-License-Identifier: GPL-2.0-only |
| config MAC80211 |
| tristate "Generic IEEE 802.11 Networking Stack (mac80211)" |
| depends on CFG80211 |
| select CRYPTO |
| select CRYPTO_LIB_ARC4 |
| select CRYPTO_AES |
| select CRYPTO_CCM |
| select CRYPTO_GCM |
| select CRYPTO_CMAC |
| select CRC32 |
| help |
| This option enables the hardware independent IEEE 802.11 |
| networking stack. |
| |
| comment "CFG80211 needs to be enabled for MAC80211" |
| depends on CFG80211=n |
| |
| if MAC80211 != n |
| |
| config MAC80211_HAS_RC |
| bool |
| |
| config MAC80211_RC_MINSTREL |
| bool "Minstrel" if EXPERT |
| select MAC80211_HAS_RC |
| default y |
| help |
| This option enables the 'minstrel' TX rate control algorithm |
| |
| choice |
| prompt "Default rate control algorithm" |
| depends on MAC80211_HAS_RC |
| default MAC80211_RC_DEFAULT_MINSTREL |
| help |
| This option selects the default rate control algorithm |
| mac80211 will use. Note that this default can still be |
| overridden through the ieee80211_default_rc_algo module |
| parameter if different algorithms are available. |
| |
| config MAC80211_RC_DEFAULT_MINSTREL |
| bool "Minstrel" |
| depends on MAC80211_RC_MINSTREL |
| help |
| Select Minstrel as the default rate control algorithm. |
| |
| |
| endchoice |
| |
| config MAC80211_RC_DEFAULT |
| string |
| default "minstrel_ht" if MAC80211_RC_DEFAULT_MINSTREL |
| default "" |
| |
| endif |
| |
| comment "Some wireless drivers require a rate control algorithm" |
| depends on MAC80211 && MAC80211_HAS_RC=n |
| |
| config MAC80211_KUNIT_TEST |
| tristate "KUnit tests for mac80211" if !KUNIT_ALL_TESTS |
| depends on KUNIT |
| depends on MAC80211 |
| default KUNIT_ALL_TESTS |
| help |
| Enable this option to test mac80211 internals with kunit. |
| |
| If unsure, say N. |
| |
| config MAC80211_MESH |
| bool "Enable mac80211 mesh networking support" |
| depends on MAC80211 |
| help |
| Select this option to enable 802.11 mesh operation in mac80211 |
| drivers that support it. 802.11 mesh connects multiple stations |
| over (possibly multi-hop) wireless links to form a single logical |
| LAN. |
| |
| config MAC80211_LEDS |
| bool "Enable LED triggers" |
| depends on MAC80211 |
| depends on LEDS_CLASS=y || LEDS_CLASS=MAC80211 |
| select LEDS_TRIGGERS |
| help |
| This option enables a few LED triggers for different |
| packet receive/transmit events. |
| |
| config MAC80211_DEBUGFS |
| bool "Export mac80211 internals in DebugFS" |
| depends on MAC80211 && CFG80211_DEBUGFS |
| help |
| Select this to see extensive information about |
| the internal state of mac80211 in debugfs. |
| |
| Say N unless you know you need this. |
| |
| config MAC80211_MESSAGE_TRACING |
| bool "Trace all mac80211 debug messages" |
| depends on MAC80211 |
| help |
| Select this option to have mac80211 register the |
| mac80211_msg trace subsystem with tracepoints to |
| collect all debugging messages, independent of |
| printing them into the kernel log. |
| |
| The overhead in this option is that all the messages |
| need to be present in the binary and formatted at |
| runtime for tracing. |
| |
| menuconfig MAC80211_DEBUG_MENU |
| bool "Select mac80211 debugging features" |
| depends on MAC80211 |
| help |
| This option collects various mac80211 debug settings. |
| |
| config MAC80211_NOINLINE |
| bool "Do not inline TX/RX handlers" |
| depends on MAC80211_DEBUG_MENU |
| help |
| This option affects code generation in mac80211, when |
| selected some functions are marked "noinline" to allow |
| easier debugging of problems in the transmit and receive |
| paths. |
| |
| This option increases code size a bit and inserts a lot |
| of function calls in the code, but is otherwise safe to |
| enable. |
| |
| If unsure, say N unless you expect to be finding problems |
| in mac80211. |
| |
| config MAC80211_VERBOSE_DEBUG |
| bool "Verbose debugging output" |
| depends on MAC80211_DEBUG_MENU |
| help |
| Selecting this option causes mac80211 to print out |
| many debugging messages. It should not be selected |
| on production systems as some of the messages are |
| remotely triggerable. |
| |
| Do not select this option. |
| |
| config MAC80211_MLME_DEBUG |
| bool "Verbose managed MLME output" |
| depends on MAC80211_DEBUG_MENU |
| help |
| Selecting this option causes mac80211 to print out |
| debugging messages for the managed-mode MLME. It |
| should not be selected on production systems as some |
| of the messages are remotely triggerable. |
| |
| Do not select this option. |
| |
| config MAC80211_STA_DEBUG |
| bool "Verbose station debugging" |
| depends on MAC80211_DEBUG_MENU |
| help |
| Selecting this option causes mac80211 to print out |
| debugging messages for station addition/removal. |
| |
| Do not select this option. |
| |
| config MAC80211_HT_DEBUG |
| bool "Verbose HT debugging" |
| depends on MAC80211_DEBUG_MENU |
| help |
| This option enables 802.11n High Throughput features |
| debug tracing output. |
| |
| It should not be selected on production systems as some |
| of the messages are remotely triggerable. |
| |
| Do not select this option. |
| |
| config MAC80211_OCB_DEBUG |
| bool "Verbose OCB debugging" |
| depends on MAC80211_DEBUG_MENU |
| help |
| Selecting this option causes mac80211 to print out |
| very verbose OCB debugging messages. It should not |
| be selected on production systems as those messages |
| are remotely triggerable. |
| |
| Do not select this option. |
| |
| config MAC80211_IBSS_DEBUG |
| bool "Verbose IBSS debugging" |
| depends on MAC80211_DEBUG_MENU |
| help |
| Selecting this option causes mac80211 to print out |
| very verbose IBSS debugging messages. It should not |
| be selected on production systems as those messages |
| are remotely triggerable. |
| |
| Do not select this option. |
| |
| config MAC80211_PS_DEBUG |
| bool "Verbose powersave mode debugging" |
| depends on MAC80211_DEBUG_MENU |
| help |
| Selecting this option causes mac80211 to print out very |
| verbose power save mode debugging messages (when mac80211 |
| is an AP and has power saving stations.) |
| It should not be selected on production systems as those |
| messages are remotely triggerable. |
| |
| Do not select this option. |
| |
| config MAC80211_MPL_DEBUG |
| bool "Verbose mesh peer link debugging" |
| depends on MAC80211_DEBUG_MENU |
| depends on MAC80211_MESH |
| help |
| Selecting this option causes mac80211 to print out very |
| verbose mesh peer link debugging messages (when mac80211 |
| is taking part in a mesh network). |
| It should not be selected on production systems as those |
| messages are remotely triggerable. |
| |
| Do not select this option. |
| |
| config MAC80211_MPATH_DEBUG |
| bool "Verbose mesh path debugging" |
| depends on MAC80211_DEBUG_MENU |
| depends on MAC80211_MESH |
| help |
| Selecting this option causes mac80211 to print out very |
| verbose mesh path selection debugging messages (when mac80211 |
| is taking part in a mesh network). |
| It should not be selected on production systems as those |
| messages are remotely triggerable. |
| |
| Do not select this option. |
| |
| config MAC80211_MHWMP_DEBUG |
| bool "Verbose mesh HWMP routing debugging" |
| depends on MAC80211_DEBUG_MENU |
| depends on MAC80211_MESH |
| help |
| Selecting this option causes mac80211 to print out very |
| verbose mesh routing (HWMP) debugging messages (when mac80211 |
| is taking part in a mesh network). |
| It should not be selected on production systems as those |
| messages are remotely triggerable. |
| |
| Do not select this option. |
| |
| config MAC80211_MESH_SYNC_DEBUG |
| bool "Verbose mesh synchronization debugging" |
| depends on MAC80211_DEBUG_MENU |
| depends on MAC80211_MESH |
| help |
| Selecting this option causes mac80211 to print out very verbose mesh |
| synchronization debugging messages (when mac80211 is taking part in a |
| mesh network). |
| |
| Do not select this option. |
| |
| config MAC80211_MESH_CSA_DEBUG |
| bool "Verbose mesh channel switch debugging" |
| depends on MAC80211_DEBUG_MENU |
| depends on MAC80211_MESH |
| help |
| Selecting this option causes mac80211 to print out very verbose mesh |
| channel switch debugging messages (when mac80211 is taking part in a |
| mesh network). |
| |
| Do not select this option. |
| |
| config MAC80211_MESH_PS_DEBUG |
| bool "Verbose mesh powersave debugging" |
| depends on MAC80211_DEBUG_MENU |
| depends on MAC80211_MESH |
| help |
| Selecting this option causes mac80211 to print out very verbose mesh |
| powersave debugging messages (when mac80211 is taking part in a |
| mesh network). |
| |
| Do not select this option. |
| |
| config MAC80211_TDLS_DEBUG |
| bool "Verbose TDLS debugging" |
| depends on MAC80211_DEBUG_MENU |
| help |
| Selecting this option causes mac80211 to print out very |
| verbose TDLS selection debugging messages (when mac80211 |
| is a TDLS STA). |
| It should not be selected on production systems as those |
| messages are remotely triggerable. |
| |
| Do not select this option. |
| |
| config MAC80211_DEBUG_COUNTERS |
| bool "Extra statistics for TX/RX debugging" |
| depends on MAC80211_DEBUG_MENU |
| depends on MAC80211_DEBUGFS |
| help |
| Selecting this option causes mac80211 to keep additional |
| and very verbose statistics about TX and RX handler use |
| as well as a few selected dot11 counters. These will be |
| exposed in debugfs. |
| |
| Note that some of the counters are not concurrency safe |
| and may thus not always be accurate. |
| |
| If unsure, say N. |
| |
| config MAC80211_STA_HASH_MAX_SIZE |
| int "Station hash table maximum size" if MAC80211_DEBUG_MENU |
| default 0 |
| help |
| Setting this option to a low value (e.g. 4) allows testing the |
| hash table with collisions relatively deterministically (just |
| connect more stations than the number selected here.) |
| |
| If unsure, leave the default of 0. |