Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

# SPDX-License-Identifier: GPL-2.0-only
config CONFIG_MAC80211
	tristate "Generic IEEE 802.11 Networking Stack (mac80211)"
	depends on CONFIG_CFG80211
	select CONFIG_CRYPTO
	select CONFIG_CRYPTO_LIB_ARC4
	select CONFIG_CRYPTO_AES
	select CONFIG_CRYPTO_CCM
	select CONFIG_CRYPTO_GCM
	select CONFIG_CRYPTO_CMAC
	select CONFIG_CRC32
	---help---
	  This option enables the hardware independent IEEE 802.11
	  networking stack.

comment "CFG80211 needs to be enabled for MAC80211"
	depends on CONFIG_CFG80211=n

if CONFIG_MAC80211 != n

config CONFIG_MAC80211_HAS_RC
	bool

config CONFIG_MAC80211_RC_MINSTREL
	bool "Minstrel" if CONFIG_EXPERT
	select CONFIG_MAC80211_HAS_RC
	default y
	---help---
	  This option enables the 'minstrel' TX rate control algorithm

choice
	prompt "Default rate control algorithm"
	depends on CONFIG_MAC80211_HAS_RC
	default CONFIG_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 CONFIG_MAC80211_RC_DEFAULT_MINSTREL
	bool "Minstrel"
	depends on CONFIG_MAC80211_RC_MINSTREL
	---help---
	  Select Minstrel as the default rate control algorithm.


endchoice

config CONFIG_MAC80211_RC_DEFAULT
	string
	default "minstrel_ht" if CONFIG_MAC80211_RC_DEFAULT_MINSTREL
	default ""

endif

comment "Some wireless drivers require a rate control algorithm"
	depends on CONFIG_MAC80211 && CONFIG_MAC80211_HAS_RC=n

config CONFIG_MAC80211_MESH
	bool "Enable mac80211 mesh networking support"
	depends on CONFIG_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 CONFIG_MAC80211_LEDS
	bool "Enable LED triggers"
	depends on CONFIG_MAC80211
	depends on CONFIG_LEDS_CLASS
	select CONFIG_LEDS_TRIGGERS
	---help---
	  This option enables a few LED triggers for different
	  packet receive/transmit events.

config CONFIG_MAC80211_DEBUGFS
	bool "Export mac80211 internals in DebugFS"
	depends on CONFIG_MAC80211 && CONFIG_DEBUG_FS
	---help---
	  Select this to see extensive information about
	  the internal state of mac80211 in debugfs.

	  Say N unless you know you need this.

config CONFIG_MAC80211_MESSAGE_TRACING
	bool "Trace all mac80211 debug messages"
	depends on CONFIG_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 CONFIG_MAC80211_DEBUG_MENU
	bool "Select mac80211 debugging features"
	depends on CONFIG_MAC80211
	---help---
	  This option collects various mac80211 debug settings.

config CONFIG_MAC80211_NOINLINE
	bool "Do not inline TX/RX handlers"
	depends on CONFIG_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 CONFIG_MAC80211_VERBOSE_DEBUG
	bool "Verbose debugging output"
	depends on CONFIG_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 CONFIG_MAC80211_MLME_DEBUG
	bool "Verbose managed MLME output"
	depends on CONFIG_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 CONFIG_MAC80211_STA_DEBUG
	bool "Verbose station debugging"
	depends on CONFIG_MAC80211_DEBUG_MENU
	---help---
	  Selecting this option causes mac80211 to print out
	  debugging messages for station addition/removal.

	  Do not select this option.

config CONFIG_MAC80211_HT_DEBUG
	bool "Verbose HT debugging"
	depends on CONFIG_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 CONFIG_MAC80211_OCB_DEBUG
	bool "Verbose OCB debugging"
	depends on CONFIG_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 CONFIG_MAC80211_IBSS_DEBUG
	bool "Verbose IBSS debugging"
	depends on CONFIG_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 CONFIG_MAC80211_PS_DEBUG
	bool "Verbose powersave mode debugging"
	depends on CONFIG_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 CONFIG_MAC80211_MPL_DEBUG
	bool "Verbose mesh peer link debugging"
	depends on CONFIG_MAC80211_DEBUG_MENU
	depends on CONFIG_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 CONFIG_MAC80211_MPATH_DEBUG
	bool "Verbose mesh path debugging"
	depends on CONFIG_MAC80211_DEBUG_MENU
	depends on CONFIG_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 CONFIG_MAC80211_MHWMP_DEBUG
	bool "Verbose mesh HWMP routing debugging"
	depends on CONFIG_MAC80211_DEBUG_MENU
	depends on CONFIG_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 CONFIG_MAC80211_MESH_SYNC_DEBUG
	bool "Verbose mesh synchronization debugging"
	depends on CONFIG_MAC80211_DEBUG_MENU
	depends on CONFIG_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 CONFIG_MAC80211_MESH_CSA_DEBUG
	bool "Verbose mesh channel switch debugging"
	depends on CONFIG_MAC80211_DEBUG_MENU
	depends on CONFIG_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 CONFIG_MAC80211_MESH_PS_DEBUG
	bool "Verbose mesh powersave debugging"
	depends on CONFIG_MAC80211_DEBUG_MENU
	depends on CONFIG_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 CONFIG_MAC80211_TDLS_DEBUG
	bool "Verbose TDLS debugging"
	depends on CONFIG_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 CONFIG_MAC80211_DEBUG_COUNTERS
	bool "Extra statistics for TX/RX debugging"
	depends on CONFIG_MAC80211_DEBUG_MENU
	depends on CONFIG_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 CONFIG_MAC80211_STA_HASH_MAX_SIZE
	int "Station hash table maximum size" if CONFIG_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.