config MAC80211
	tristate "Generic IEEE 802.11 Networking Stack (mac80211)"
	select CRYPTO
	select CRYPTO_ECB
	select CRYPTO_ARC4
	select CRYPTO_AES
	select CRC32
	select WIRELESS_EXT
	select CFG80211
	---help---
	  This option enables the hardware independent IEEE 802.11
	  networking stack.

config MAC80211_QOS
	def_bool y
	depends on MAC80211
	depends on NET_SCHED
	depends on NETDEVICES_MULTIQUEUE

comment "QoS/HT support disabled"
	depends on MAC80211 && !MAC80211_QOS
comment "QoS/HT support needs CONFIG_NET_SCHED"
	depends on MAC80211 && !NET_SCHED
comment "QoS/HT support needs CONFIG_NETDEVICES_MULTIQUEUE"
	depends on MAC80211 && !NETDEVICES_MULTIQUEUE

menu "Rate control algorithm selection"
	depends on MAC80211 != n

choice
	prompt "Default rate control algorithm"
	default MAC80211_RC_DEFAULT_PID
	---help---
	  This option selects the default rate control algorithm
	  mac80211 will use. Note that this default can still be
	  overriden through the ieee80211_default_rc_algo module
	  parameter if different algorithms are available.

config MAC80211_RC_DEFAULT_PID
	bool "PID controller based rate control algorithm"
	select MAC80211_RC_PID
	---help---
	  Select the PID controller based rate control as the
	  default rate control algorithm. You should choose
	  this unless you know what you are doing.

config MAC80211_RC_DEFAULT_NONE
	bool "No default algorithm"
	depends on EMBEDDED
	help
	  Selecting this option will select no default algorithm
	  and allow you to not build any. Do not choose this
	  option unless you know your driver comes with another
	  suitable algorithm.
endchoice

comment "Selecting 'y' for an algorithm will"
comment "build the algorithm into mac80211."

config MAC80211_RC_DEFAULT
	string
	default "pid" if MAC80211_RC_DEFAULT_PID
	default ""

config MAC80211_RC_PID
	tristate "PID controller based rate control algorithm"
	---help---
	  This option enables a TX rate control algorithm for
	  mac80211 that uses a PID controller to select the TX
	  rate.

	  Say Y or M unless you're sure you want to use a
	  different rate control algorithm.

endmenu

config MAC80211_MESH
	bool "Enable mac80211 mesh networking (pre-802.11s) support"
	depends on MAC80211 && EXPERIMENTAL
	---help---
	 This options enables support of Draft 802.11s mesh networking.
	 The implementation is based on Draft 1.08 of the Mesh Networking
	 amendment. For more information visit http://o11s.org/.


config MAC80211_LEDS
	bool "Enable LED triggers"
	depends on MAC80211
	select NEW_LEDS
	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 && 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 MAC80211_DEBUG_PACKET_ALIGNMENT
	bool "Enable packet alignment debugging"
	depends on MAC80211
	help
	  This option is recommended for driver authors and strongly
	  discouraged for everybody else, it will trigger a warning
	  when a driver hands mac80211 a buffer that is aligned in
	  a way that will cause problems with the IP stack on some
	  architectures.

	  Say N unless you're writing a mac80211 based driver.

config MAC80211_DEBUG
	bool "Enable debugging output"
	depends on MAC80211
	---help---
	  This option will enable debug tracing output for the
	  ieee80211 network stack.

	  If you are not trying to debug or develop the ieee80211
	  subsystem, you most likely want to say N here.

config MAC80211_HT_DEBUG
	bool "Enable HT debugging output"
	depends on MAC80211_DEBUG
	---help---
	  This option enables 802.11n High Throughput features
	  debug tracing output.

	  If you are not trying to debug of develop the ieee80211
	  subsystem, you most likely want to say N here.

config MAC80211_VERBOSE_DEBUG
	bool "Verbose debugging output"
	depends on MAC80211_DEBUG

config MAC80211_LOWTX_FRAME_DUMP
	bool "Debug frame dumping"
	depends on MAC80211_DEBUG
	---help---
	  Selecting this option will cause the stack to
	  print a message for each frame that is handed
	  to the lowlevel driver for transmission. This
	  message includes all MAC addresses and the
	  frame control field.

	  If unsure, say N and insert the debugging code
	  you require into the driver you are debugging.

config MAC80211_TKIP_DEBUG
	bool "TKIP debugging"
	depends on MAC80211_DEBUG

config MAC80211_DEBUG_COUNTERS
	bool "Extra statistics for TX/RX debugging"
	depends on MAC80211_DEBUG

config MAC80211_IBSS_DEBUG
	bool "Support for IBSS testing"
	depends on MAC80211_DEBUG
	---help---
	  Say Y here if you intend to debug the IBSS code.

config MAC80211_VERBOSE_PS_DEBUG
	bool "Verbose powersave mode debugging"
	depends on MAC80211_DEBUG
	---help---
	  Say Y here to print out verbose powersave
	  mode debug messages.

config MAC80211_VERBOSE_MPL_DEBUG
	bool "Verbose mesh peer link debugging"
	depends on MAC80211_DEBUG && MAC80211_MESH
	---help---
	  Say Y here to print out verbose mesh peer link
	  debug messages.
