diff options
author | Ben Greear <greearb@candelatech.com> | 2011-11-18 14:32:00 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-11-21 16:22:06 -0500 |
commit | ef96a84202ccfb48a4569256ffba45e32308f7ee (patch) | |
tree | 708275d21455ecbf3b5408241b73f95fa4c484e0 /net/mac80211/ieee80211_i.h | |
parent | 7e7c8926b2f4e3453b8aeb39cd814d2af3fec24f (diff) |
mac80211: Support ht-cap over-rides.
This implements ht-cap over-rides for mac80211 drivers.
HT may be disabled, making an /a/b/g/n station act like an
a/b/g station. HT40 may be disabled forcing the station to
be HT20 even if the AP and local hardware support HT40.
MAX-AMSDU may be disabled.
AMPDU-Density may be increased.
AMPDU-Factor may be decreased.
This has been successfully tested with ath9k using patched
wpa_supplicant and iw.
Signed-off-by: Ben Greear <greearb@candelatech.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/ieee80211_i.h')
-rw-r--r-- | net/mac80211/ieee80211_i.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h index 17661df1515f..762243e469df 100644 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h | |||
@@ -449,6 +449,9 @@ struct ieee80211_if_managed { | |||
449 | */ | 449 | */ |
450 | int rssi_min_thold, rssi_max_thold; | 450 | int rssi_min_thold, rssi_max_thold; |
451 | int last_ave_beacon_signal; | 451 | int last_ave_beacon_signal; |
452 | |||
453 | struct ieee80211_ht_cap ht_capa; /* configured ht-cap over-rides */ | ||
454 | struct ieee80211_ht_cap ht_capa_mask; /* Valid parts of ht_capa */ | ||
452 | }; | 455 | }; |
453 | 456 | ||
454 | struct ieee80211_if_ibss { | 457 | struct ieee80211_if_ibss { |
@@ -1252,7 +1255,11 @@ netdev_tx_t ieee80211_subif_start_xmit(struct sk_buff *skb, | |||
1252 | struct net_device *dev); | 1255 | struct net_device *dev); |
1253 | 1256 | ||
1254 | /* HT */ | 1257 | /* HT */ |
1255 | void ieee80211_ht_cap_ie_to_sta_ht_cap(struct ieee80211_supported_band *sband, | 1258 | bool ieee80111_cfg_override_disables_ht40(struct ieee80211_sub_if_data *sdata); |
1259 | void ieee80211_apply_htcap_overrides(struct ieee80211_sub_if_data *sdata, | ||
1260 | struct ieee80211_sta_ht_cap *ht_cap); | ||
1261 | void ieee80211_ht_cap_ie_to_sta_ht_cap(struct ieee80211_sub_if_data *sdata, | ||
1262 | struct ieee80211_supported_band *sband, | ||
1256 | struct ieee80211_ht_cap *ht_cap_ie, | 1263 | struct ieee80211_ht_cap *ht_cap_ie, |
1257 | struct ieee80211_sta_ht_cap *ht_cap); | 1264 | struct ieee80211_sta_ht_cap *ht_cap); |
1258 | void ieee80211_send_delba(struct ieee80211_sub_if_data *sdata, | 1265 | void ieee80211_send_delba(struct ieee80211_sub_if_data *sdata, |
@@ -1407,7 +1414,7 @@ void ieee80211_recalc_smps(struct ieee80211_local *local); | |||
1407 | size_t ieee80211_ie_split(const u8 *ies, size_t ielen, | 1414 | size_t ieee80211_ie_split(const u8 *ies, size_t ielen, |
1408 | const u8 *ids, int n_ids, size_t offset); | 1415 | const u8 *ids, int n_ids, size_t offset); |
1409 | size_t ieee80211_ie_split_vendor(const u8 *ies, size_t ielen, size_t offset); | 1416 | size_t ieee80211_ie_split_vendor(const u8 *ies, size_t ielen, size_t offset); |
1410 | u8 *ieee80211_ie_build_ht_cap(u8 *pos, struct ieee80211_supported_band *sband, | 1417 | u8 *ieee80211_ie_build_ht_cap(u8 *pos, struct ieee80211_sta_ht_cap *ht_cap, |
1411 | u16 cap); | 1418 | u16 cap); |
1412 | u8 *ieee80211_ie_build_ht_info(u8 *pos, | 1419 | u8 *ieee80211_ie_build_ht_info(u8 *pos, |
1413 | struct ieee80211_sta_ht_cap *ht_cap, | 1420 | struct ieee80211_sta_ht_cap *ht_cap, |