Merge branch 'master' of /home/davem/src/GIT/linux-2.6/
[safe/jmp/linux-2.6] / net / mac80211 / Kconfig
index 297f4d9..a10d508 100644 (file)
@@ -1,94 +1,85 @@
 config MAC80211
        tristate "Generic IEEE 802.11 Networking Stack (mac80211)"
-       depends on EXPERIMENTAL
+       depends on CFG80211
        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.
+         This option enables the hardware independent IEEE 802.11
+         networking stack.
 
-config MAC80211_RC_DEFAULT_CHOICE
-       bool "Choose default rate control algorithm" if EMBEDDED
+comment "CFG80211 needs to be enabled for MAC80211"
+       depends on CFG80211=n
+
+if MAC80211 != n
+
+config MAC80211_RC_PID
+       bool "PID controller based rate control algorithm" if EMBEDDED
+       ---help---
+         This option enables a TX rate control algorithm for
+         mac80211 that uses a PID controller to select the TX
+         rate.
+
+config MAC80211_RC_MINSTREL
+       bool "Minstrel" if EMBEDDED
        default y
-       depends on MAC80211
        ---help---
-         This options enables selection of a default rate control
-         algorithm to be built into the mac80211 module.  Alternate
-         rate control algorithms might be built into the mac80211
-         module as well.
+         This option enables the 'minstrel' TX rate control algorithm
 
 choice
        prompt "Default rate control algorithm"
-       default MAC80211_RC_DEFAULT_PID
-       depends on MAC80211 && MAC80211_RC_DEFAULT_CHOICE
+       default MAC80211_RC_DEFAULT_MINSTREL
        ---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.
+         overridden 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
+       depends on 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
+config MAC80211_RC_DEFAULT_MINSTREL
+       bool "Minstrel"
+       depends on MAC80211_RC_MINSTREL
        ---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.
+         Select Minstrel as the default rate control algorithm.
+
 
 endchoice
 
 config MAC80211_RC_DEFAULT
        string
-       depends on MAC80211
+       default "minstrel" if MAC80211_RC_DEFAULT_MINSTREL
        default "pid" if MAC80211_RC_DEFAULT_PID
-       default "simple" if MAC80211_RC_DEFAULT_SIMPLE
        default ""
 
-config MAC80211_RC_PID
-       bool "PID controller based rate control algorithm"
-       default y
-       depends on MAC80211
-       ---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.
+endif
 
-config MAC80211_RC_SIMPLE
-       bool "Simple rate control algorithm (DEPRECATED)"
-       default n
-       depends on MAC80211
+config MAC80211_MESH
+       bool "Enable mac80211 mesh networking (pre-802.11s) support"
+       depends on MAC80211 && EXPERIMENTAL
        ---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 near future.
-         It has been replaced by the PID algorithm.
-
-         Say N unless you know what you are doing.
+        This options enables support of Draft 802.11s mesh networking.
+        The implementation is based on Draft 2.08 of the Mesh Networking
+        amendment.  However, no compliance with that draft is claimed or even
+        possible, as drafts leave a number of identifiers to be defined after
+        ratification.  For more information visit http://o11s.org/.
 
 config MAC80211_LEDS
        bool "Enable LED triggers"
-       depends on MAC80211 && LEDS_TRIGGERS
+       depends on MAC80211
+       select NEW_LEDS
+       select LEDS_TRIGGERS
        ---help---
-       This option enables a few LED triggers for different
-       packet receive/transmit events.
+         This option enables a few LED triggers for different
+         packet receive/transmit events.
 
 config MAC80211_DEBUGFS
        bool "Export mac80211 internals in DebugFS"
@@ -99,60 +90,142 @@ config MAC80211_DEBUGFS
 
          Say N unless you know you need this.
 
-config MAC80211_DEBUG
-       bool "Enable debugging output"
+menuconfig MAC80211_DEBUG_MENU
+       bool "Select mac80211 debugging features"
        depends on MAC80211
        ---help---
-         This option will enable debug tracing output for the
-         ieee80211 network stack.
+         This option collects various mac80211 debug settings.
 
-         If you are not trying to debug or develop the ieee80211
-         subsystem, you most likely want to say N here.
+config MAC80211_DEBUG_PACKET_ALIGNMENT
+       bool "Enable packet alignment debugging"
+       depends on MAC80211_DEBUG_MENU
+       ---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.
 
-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.
+         Say N unless you're writing a mac80211 based driver.
+
+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 you are not trying to debug of develop the ieee80211
-       subsystem, you most likely want to say N here.
+         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
+       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_LOWTX_FRAME_DUMP
-       bool "Debug frame dumping"
-       depends on MAC80211_DEBUG
+config MAC80211_HT_DEBUG
+       bool "Verbose HT debugging"
+       depends on MAC80211_DEBUG_MENU
        ---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.
+         This option enables 802.11n High Throughput features
+         debug tracing output.
 
-         If unsure, say N and insert the debugging code
-         you require into the driver you are debugging.
+         It should not be selected on production systems as some
+         of the messages are remotely triggerable.
 
-config TKIP_DEBUG
-       bool "TKIP debugging"
-       depends on MAC80211_DEBUG
+         Do not select this option.
 
-config MAC80211_DEBUG_COUNTERS
-       bool "Extra statistics for TX/RX debugging"
-       depends on MAC80211_DEBUG
+config MAC80211_TKIP_DEBUG
+       bool "Verbose TKIP debugging"
+       depends on MAC80211_DEBUG_MENU
+       ---help---
+         Selecting this option causes mac80211 to print out
+         very verbose TKIP 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 "Support for IBSS testing"
-       depends on MAC80211_DEBUG
+       bool "Verbose IBSS debugging"
+       depends on MAC80211_DEBUG_MENU
        ---help---
-         Say Y here if you intend to debug the IBSS code.
+         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_VERBOSE_PS_DEBUG
        bool "Verbose powersave mode debugging"
-       depends on MAC80211_DEBUG
+       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_VERBOSE_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_VERBOSE_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_DEBUG_COUNTERS
+       bool "Extra statistics for TX/RX debugging"
+       depends on MAC80211_DEBUG_MENU
+       depends on MAC80211_DEBUGFS
        ---help---
-         Say Y here to print out verbose powersave
-         mode debug messages.
+         Selecting this option causes mac80211 to keep additional
+         and very verbose statistics about TX and RX handler use
+         and show them in debugfs.
+
+         If unsure, say N.
+
+config MAC80211_DRIVER_API_TRACER
+       bool "Driver API tracer"
+       depends on MAC80211_DEBUG_MENU
+       depends on EVENT_TRACING
+       help
+         Say Y here to make mac80211 register with the ftrace
+         framework for the driver API -- you can see which
+         driver methods it is calling then by looking at the
+         trace.
+
+         If unsure, say N.