linux/net/wireless
Luis R. Rodriguez cc5d8a3772 cfg80211: Fix country IE parsing for single channel triplets
This enhances the way we parse country IEs to minimize
the number of regulatory rules that we create. It also fixes
our current implementation which treated country IE triplets
with only one channel as one independed regulatory rule even
though adjecent rules were also being provided.

Without this patch APs which send country IE information with
a channel triplet for each individual channel will force cfg80211
to deny HT40 operation as a regulatory rule would have been created
independently for each channel and as such configured only for
20 MHz operation.

Although 802.11n APs which send country IEs triplets in this fassion
are likely rare Benoit reports this against the Ubiquity NanoStation M5,
with Country "FR" and HT40 enabled.

Since we now have a helper which parses the triplets in intermediate
steps we now take care extra care to process padding.

Reported-by: Benoit PAPILLAULT <benoit.papillault@free.fr>
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2010-01-12 13:57:58 -05:00
..
.gitignore wireless: support internal statically compiled regulatory database 2009-12-21 18:56:10 -05:00
chan.c cfg80211: add remain-on-channel command 2009-12-28 16:55:02 -05:00
core.c nl80211: Add new WIPHY attribute COVERAGE_CLASS 2010-01-12 13:49:17 -05:00
core.h cfg80211: Store IEs from both Beacon and Probe Response frames 2010-01-12 13:51:28 -05:00
db.txt wireless: support internal statically compiled regulatory database 2009-12-21 18:56:10 -05:00
debugfs.c cfg80211/mac80211: use debugfs_remove_recursive 2009-10-30 16:49:18 -04:00
debugfs.h cfg80211/mac80211: use debugfs_remove_recursive 2009-10-30 16:49:18 -04:00
ethtool.c cfg80211: add firmware and hardware version to wiphy 2009-10-07 16:39:46 -04:00
ethtool.h net/wireless/ethtool.h: drop unnecessary include of linux/ethtool.h 2009-10-07 16:39:49 -04:00
genregdb.awk wireless: support internal statically compiled regulatory database 2009-12-21 18:56:10 -05:00
ibss.c wireless : use a dedicated workqueue for cfg80211. 2009-11-28 15:05:00 -05:00
Kconfig wireless: remove CONFIG_WIRELESS_OLD_REGULATORY 2009-12-28 16:31:37 -05:00
lib80211_crypt_ccmp.c lib80211: silence excessive crypto debugging messages 2009-03-16 18:01:58 -04:00
lib80211_crypt_tkip.c lib80211: silence excessive crypto debugging messages 2009-03-16 18:01:58 -04:00
lib80211_crypt_wep.c lib80211: absorb crypto bits from net/ieee80211 2008-11-21 11:08:17 -05:00
lib80211.c lib80211: consolidate crypt init routines 2008-11-21 11:08:17 -05:00
Makefile wireless: support internal statically compiled regulatory database 2009-12-21 18:56:10 -05:00
mlme.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2009-12-30 15:25:08 -05:00
nl80211.c cfg80211: Store IEs from both Beacon and Probe Response frames 2010-01-12 13:51:28 -05:00
nl80211.h mac80211/cfg80211: add station events 2009-12-28 16:55:06 -05:00
radiotap.c wireless: use get/put_unaligned_* helpers 2008-05-14 16:29:32 -04:00
reg.c cfg80211: Fix country IE parsing for single channel triplets 2010-01-12 13:57:58 -05:00
reg.h Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
regdb.h wireless: support internal statically compiled regulatory database 2009-12-21 18:56:10 -05:00
scan.c cfg80211: Store IEs from both Beacon and Probe Response frames 2010-01-12 13:51:28 -05:00
sme.c wireless : use a dedicated workqueue for cfg80211. 2009-11-28 15:05:00 -05:00
sysfs.c cfg80211: rename cfg80211_registered_device's idx to wiphy_idx 2009-02-27 14:52:54 -05:00
sysfs.h [WIRELESS] cfg80211: New wireless config infrastructure. 2007-04-25 22:29:41 -07:00
util.c wireless: add ieee80211_amsdu_to_8023s 2009-12-22 13:31:15 -05:00
wext-compat.c cfg80211/mac80211: Use more generic bitrate mask for rate control 2010-01-12 13:50:11 -05:00
wext-compat.h cfg80211: validate channel settings across interfaces 2009-08-14 09:13:42 -04:00
wext-core.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 2009-12-04 13:25:15 -08:00
wext-priv.c wext: refactor 2009-10-07 16:39:43 -04:00
wext-proc.c wext: refactor 2009-10-07 16:39:43 -04:00
wext-sme.c cfg80211: don't set privacy w/o key 2009-09-28 16:55:04 -04:00
wext-spy.c wext: refactor 2009-10-07 16:39:43 -04:00