diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2010-05-05 09:28:27 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-05-07 14:55:51 -0400 |
commit | 0aaffa9b9699894aab3266195a529baf9f96ac29 (patch) | |
tree | 26fe5f5277ac6d7061ea723f92d4038b0c28b0b8 /include | |
parent | f444de05d20e27cdd960c13fcbcfca3099f03143 (diff) |
mac80211: improve HT channel handling
Currently, when one interface switches HT mode,
all others will follow along. This is clearly
undesirable, since the new one might switch to
no-HT while another one is operating in HT.
Address this issue by keeping track of the HT
mode per interface, and allowing only changes
that are compatible, i.e. switching into HT40+
is not possible when another interface is in
HT40-, in that case the second one needs to
fall back to HT20.
Also, to allow drivers to know what's going on,
store the per-interface HT mode (channel type)
in the virtual interface's bss_conf.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/net/mac80211.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index 0528615ac827..9448a5b1bb15 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
@@ -191,6 +191,9 @@ enum ieee80211_bss_change { | |||
191 | * the current band. | 191 | * the current band. |
192 | * @bssid: The BSSID for this BSS | 192 | * @bssid: The BSSID for this BSS |
193 | * @enable_beacon: whether beaconing should be enabled or not | 193 | * @enable_beacon: whether beaconing should be enabled or not |
194 | * @channel_type: Channel type for this BSS -- the hardware might be | ||
195 | * configured for HT40+ while this BSS only uses no-HT, for | ||
196 | * example. | ||
194 | * @ht_operation_mode: HT operation mode (like in &struct ieee80211_ht_info). | 197 | * @ht_operation_mode: HT operation mode (like in &struct ieee80211_ht_info). |
195 | * This field is only valid when the channel type is one of the HT types. | 198 | * This field is only valid when the channel type is one of the HT types. |
196 | * @cqm_rssi_thold: Connection quality monitor RSSI threshold, a zero value | 199 | * @cqm_rssi_thold: Connection quality monitor RSSI threshold, a zero value |
@@ -215,6 +218,7 @@ struct ieee80211_bss_conf { | |||
215 | u16 ht_operation_mode; | 218 | u16 ht_operation_mode; |
216 | s32 cqm_rssi_thold; | 219 | s32 cqm_rssi_thold; |
217 | u32 cqm_rssi_hyst; | 220 | u32 cqm_rssi_hyst; |
221 | enum nl80211_channel_type channel_type; | ||
218 | }; | 222 | }; |
219 | 223 | ||
220 | /** | 224 | /** |