aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/ieee80211_i.h
diff options
context:
space:
mode:
authorBen Greear <greearb@candelatech.com>2011-11-18 14:32:00 -0500
committerJohn W. Linville <linville@tuxdriver.com>2011-11-21 16:22:06 -0500
commitef96a84202ccfb48a4569256ffba45e32308f7ee (patch)
tree708275d21455ecbf3b5408241b73f95fa4c484e0 /net/mac80211/ieee80211_i.h
parent7e7c8926b2f4e3453b8aeb39cd814d2af3fec24f (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.h11
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
454struct ieee80211_if_ibss { 457struct 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 */
1255void ieee80211_ht_cap_ie_to_sta_ht_cap(struct ieee80211_supported_band *sband, 1258bool ieee80111_cfg_override_disables_ht40(struct ieee80211_sub_if_data *sdata);
1259void ieee80211_apply_htcap_overrides(struct ieee80211_sub_if_data *sdata,
1260 struct ieee80211_sta_ht_cap *ht_cap);
1261void 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);
1258void ieee80211_send_delba(struct ieee80211_sub_if_data *sdata, 1265void ieee80211_send_delba(struct ieee80211_sub_if_data *sdata,
@@ -1407,7 +1414,7 @@ void ieee80211_recalc_smps(struct ieee80211_local *local);
1407size_t ieee80211_ie_split(const u8 *ies, size_t ielen, 1414size_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);
1409size_t ieee80211_ie_split_vendor(const u8 *ies, size_t ielen, size_t offset); 1416size_t ieee80211_ie_split_vendor(const u8 *ies, size_t ielen, size_t offset);
1410u8 *ieee80211_ie_build_ht_cap(u8 *pos, struct ieee80211_supported_band *sband, 1417u8 *ieee80211_ie_build_ht_cap(u8 *pos, struct ieee80211_sta_ht_cap *ht_cap,
1411 u16 cap); 1418 u16 cap);
1412u8 *ieee80211_ie_build_ht_info(u8 *pos, 1419u8 *ieee80211_ie_build_ht_info(u8 *pos,
1413 struct ieee80211_sta_ht_cap *ht_cap, 1420 struct ieee80211_sta_ht_cap *ht_cap,