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
	select NET_SCH_FIFO
	---help---
	  This option enables the hardware independent IEEE 802.11
	  networking stack.

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_SIMPLE
	bool "Simple rate control algorithm"
	select MAC80211_RC_SIMPLE
	---help---
	  Select the simple rate control as the default rate
	  control algorithm. Note that this is a non-responsive,
	  dumb algorithm. You should choose the PID rate control
	  instead.

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 "simple" if MAC80211_RC_DEFAULT_SIMPLE
	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.

config MAC80211_RC_SIMPLE
	tristate "Simple rate control algorithm (DEPRECATED)"
	---help---
	  This option enables a very simple, non-responsive TX
	  rate control algorithm. This algorithm is deprecated
	  and will be removed from the kernel in the near future.
	  It has been replaced by the PID algorithm.

	  Say N unless you know what you are doing.
endmenu

config MAC80211_LEDS
	bool "Enable LED triggers"
	depends on MAC80211 && 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 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.
