linux/net/mac80211
Luis R. Rodriguez b2e1b30290 cfg80211: Add new wireless regulatory infrastructure
This adds the new wireless regulatory infrastructure. The
main motiviation behind this was to centralize regulatory
code as each driver was implementing their own regulatory solution,
and to replace the initial centralized code we have where:

* only 3 regulatory domains are supported: US, JP and EU
* regulatory domains can only be changed through module parameter
* all rules were built statically in the kernel

We now have support for regulatory domains for many countries
and regulatory domains are now queried through a userspace agent
through udev allowing distributions to update regulatory rules
without updating the kernel.

Each driver can regulatory_hint() a regulatory domain
based on either their EEPROM mapped regulatory domain value to a
respective ISO/IEC 3166-1 country code or pass an internally built
regulatory domain. We also add support to let the user set the
regulatory domain through userspace in case of faulty EEPROMs to
further help compliance.

Support for world roaming will be added soon for cards capable of
this.

For more information see:

http://wireless.kernel.org/en/developers/Regulatory/CRDA

For now we leave an option to enable the old module parameter,
ieee80211_regdom, and to build the 3 old regdomains statically
(US, JP and EU). This option is CONFIG_WIRELESS_OLD_REGULATORY.
These old static definitions and the module parameter is being
scheduled for removal for 2.6.29. Note that if you use this
you won't make use of a world regulatory domain as its pointless.
If you leave this option enabled and if CRDA is present and you
use US or JP we will try to ask CRDA to update us a regulatory
domain for us.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2008-09-15 16:48:19 -04:00
..
Kconfig mac80211: Reimplement WME using ->select_queue(). 2008-07-17 19:21:12 -07:00
Makefile mac80211: move spectrum management code out 2008-09-11 15:53:39 -04:00
aes_ccm.c mac80211: aes_ccm.c remove crypto wrapper and extra args 2008-07-08 14:16:02 -04:00
aes_ccm.h mac80211: pass scratch buffer directly, remove additional pointers 2008-07-08 14:16:02 -04:00
cfg.c cfg80211: Add new wireless regulatory infrastructure 2008-09-15 16:48:19 -04:00
cfg.h
debugfs.c mac80211: revamp virtual interface handling 2008-07-14 14:30:07 -04:00
debugfs.h
debugfs_key.c mac80211: Fix debugfs union misuse and pointer corruption 2008-09-02 17:39:50 -04:00
debugfs_key.h
debugfs_netdev.c mac80211: Fix debugfs file add/del for netdev 2008-08-26 20:06:33 -04:00
debugfs_netdev.h mac80211: revamp virtual interface handling 2008-07-14 14:30:07 -04:00
debugfs_sta.c replace net_device arguments with ieee80211_{local,sub_if_data} as appropriate 2008-08-22 16:29:58 -04:00
debugfs_sta.h
event.c replace net_device arguments with ieee80211_{local,sub_if_data} as appropriate 2008-08-22 16:29:58 -04:00
ht.c mac80211: move frame TX function 2008-09-11 15:53:39 -04:00
ieee80211_i.h mac80211: move frame TX function 2008-09-11 15:53:39 -04:00
iface.c mac80211: Reorder debugfs calls during netdev deinit 2008-09-11 15:53:40 -04:00
key.c
key.h
led.c
led.h
main.c mac80211: initialise queue QoS parameters at hw start 2008-09-11 15:53:39 -04:00
mesh.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-08-29 23:06:00 -07:00
mesh.h replace net_device arguments with ieee80211_{local,sub_if_data} as appropriate 2008-08-22 16:29:58 -04:00
mesh_hwmp.c mac80211: move frame TX function 2008-09-11 15:53:39 -04:00
mesh_pathtbl.c replace net_device arguments with ieee80211_{local,sub_if_data} as appropriate 2008-08-22 16:29:58 -04:00
mesh_plink.c mac80211: move frame TX function 2008-09-11 15:53:39 -04:00
michael.c mac80211: remove ieee80211_get_hdr_info 2008-07-08 14:16:01 -04:00
michael.h mac80211: remove ieee80211_get_hdr_info 2008-07-08 14:16:01 -04:00
mlme.c mac80211: move frame TX function 2008-09-11 15:53:39 -04:00
rate.c
rate.h build algorithms into the mac80211 module 2008-06-30 17:37:34 -04:00
rc80211_pid.h Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-07-14 20:23:54 -07:00
rc80211_pid_algo.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 2008-07-14 20:40:34 -07:00
rc80211_pid_debugfs.c
rx.c mac80211: make ieee80211_rx_h_mgmt more readable 2008-09-11 15:53:39 -04:00
scan.c mac80211: move frame TX function 2008-09-11 15:53:39 -04:00
spectmgmt.c mac80211: move frame TX function 2008-09-11 15:53:39 -04:00
sta_info.c mac80211: make master netdev handling sane 2008-07-14 14:30:06 -04:00
sta_info.h mac80211: add missing kernel-doc 2008-09-08 14:23:12 -04:00
tkip.c
tkip.h
tx.c replace net_device arguments with ieee80211_{local,sub_if_data} as appropriate 2008-08-22 16:29:58 -04:00
util.c mac80211: move frame TX function 2008-09-11 15:53:39 -04:00
wep.c mac80211: use ieee80211 frame control directly 2008-08-22 16:29:54 -04:00
wep.h
wext.c mac80211: cleanup mlme state namespace 2008-08-22 16:29:59 -04:00
wme.c mac80211: Use only precedence level of DSCP field for frame classification 2008-08-29 16:24:05 -04:00
wme.h mac80211: wme.h remove unused QOS_CONTROL_LEN 2008-08-22 16:29:53 -04:00
wpa.c replace net_device arguments with ieee80211_{local,sub_if_data} as appropriate 2008-08-22 16:29:58 -04:00
wpa.h