summaryrefslogtreecommitdiff
path: root/net/mac80211/util.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2013-03-26 17:13:58 +0400
committerJohannes Berg <johannes.berg@intel.com>2013-04-16 17:29:43 +0400
commitb4f286a1c0ad0b84c2d502b354d4d98d5a86c64b (patch)
treef2cb487aaab163dff52c0588c1a80b1aaa951a89 /net/mac80211/util.c
parent1ce3e82b0eb472161313183be0033e46d5c4bbaf (diff)
downloadlinux-b4f286a1c0ad0b84c2d502b354d4d98d5a86c64b.tar.xz
mac80211: support extended channel switch
Support extended channel switch when the operating class is one of the global operating classes as defined in Annex E of 802.11-2012. If it isn't, disconnect from the AP instead. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/util.c')
-rw-r--r--net/mac80211/util.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/net/mac80211/util.c b/net/mac80211/util.c
index 1d6217ac3ba3..e4a6d559372d 100644
--- a/net/mac80211/util.c
+++ b/net/mac80211/util.c
@@ -863,6 +863,13 @@ u32 ieee802_11_parse_elems_crc(u8 *start, size_t len,
}
elems->ch_switch_ie = (void *)pos;
break;
+ case WLAN_EID_EXT_CHANSWITCH_ANN:
+ if (elen != sizeof(struct ieee80211_ext_chansw_ie)) {
+ elem_parse_failed = true;
+ break;
+ }
+ elems->ext_chansw_ie = (void *)pos;
+ break;
case WLAN_EID_COUNTRY:
elems->country_elem = pos;
elems->country_elem_len = elen;