aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/cfg80211.h
diff options
context:
space:
mode:
authorBen Greear <greearb@candelatech.com>2011-11-18 14:31:59 -0500
committerJohn W. Linville <linville@tuxdriver.com>2011-11-21 16:22:06 -0500
commit7e7c8926b2f4e3453b8aeb39cd814d2af3fec24f (patch)
treee22df42bf84d6ea3cb67ae0e332d7d7d10cca4b4 /include/net/cfg80211.h
parentdd76986b0e398978ca32dd60c1b7dc50ab4e9ae1 (diff)
wireless: Support ht-capabilities over-rides.
This allows users to disable features such as HT, HT40, and to modify the MCS, AMPDU, and AMSDU settings for drivers that support it. The MCS, AMPDU, and AMSDU features that may be disabled are are reported in the phy-info netlink message as a mask. Attemping to disable features that are not supported will take no affect, but will not return errors. This is to aid backwards compatibility in user-space apps that may not be clever enough to deal with parsing the the capabilities mask. This patch only enables the infrastructure. An additional patch will enable the feature in mac80211. Signed-off-by: Ben Greear <greearb@candelatech.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include/net/cfg80211.h')
-rw-r--r--include/net/cfg80211.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 6a1d849c597a..d5e18913f293 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -1044,6 +1044,15 @@ struct cfg80211_auth_request {
1044}; 1044};
1045 1045
1046/** 1046/**
1047 * enum cfg80211_assoc_req_flags - Over-ride default behaviour in association.
1048 *
1049 * @ASSOC_REQ_DISABLE_HT: Disable HT (802.11n)
1050 */
1051enum cfg80211_assoc_req_flags {
1052 ASSOC_REQ_DISABLE_HT = BIT(0),
1053};
1054
1055/**
1047 * struct cfg80211_assoc_request - (Re)Association request data 1056 * struct cfg80211_assoc_request - (Re)Association request data
1048 * 1057 *
1049 * This structure provides information needed to complete IEEE 802.11 1058 * This structure provides information needed to complete IEEE 802.11
@@ -1054,6 +1063,10 @@ struct cfg80211_auth_request {
1054 * @use_mfp: Use management frame protection (IEEE 802.11w) in this association 1063 * @use_mfp: Use management frame protection (IEEE 802.11w) in this association
1055 * @crypto: crypto settings 1064 * @crypto: crypto settings
1056 * @prev_bssid: previous BSSID, if not %NULL use reassociate frame 1065 * @prev_bssid: previous BSSID, if not %NULL use reassociate frame
1066 * @flags: See &enum cfg80211_assoc_req_flags
1067 * @ht_capa: HT Capabilities over-rides. Values set in ht_capa_mask
1068 * will be used in ht_capa. Un-supported values will be ignored.
1069 * @ht_capa_mask: The bits of ht_capa which are to be used.
1057 */ 1070 */
1058struct cfg80211_assoc_request { 1071struct cfg80211_assoc_request {
1059 struct cfg80211_bss *bss; 1072 struct cfg80211_bss *bss;
@@ -1061,6 +1074,9 @@ struct cfg80211_assoc_request {
1061 size_t ie_len; 1074 size_t ie_len;
1062 struct cfg80211_crypto_settings crypto; 1075 struct cfg80211_crypto_settings crypto;
1063 bool use_mfp; 1076 bool use_mfp;
1077 u32 flags;
1078 struct ieee80211_ht_cap ht_capa;
1079 struct ieee80211_ht_cap ht_capa_mask;
1064}; 1080};
1065 1081
1066/** 1082/**
@@ -1159,6 +1175,10 @@ struct cfg80211_ibss_params {
1159 * @key_len: length of WEP key for shared key authentication 1175 * @key_len: length of WEP key for shared key authentication
1160 * @key_idx: index of WEP key for shared key authentication 1176 * @key_idx: index of WEP key for shared key authentication
1161 * @key: WEP key for shared key authentication 1177 * @key: WEP key for shared key authentication
1178 * @flags: See &enum cfg80211_assoc_req_flags
1179 * @ht_capa: HT Capabilities over-rides. Values set in ht_capa_mask
1180 * will be used in ht_capa. Un-supported values will be ignored.
1181 * @ht_capa_mask: The bits of ht_capa which are to be used.
1162 */ 1182 */
1163struct cfg80211_connect_params { 1183struct cfg80211_connect_params {
1164 struct ieee80211_channel *channel; 1184 struct ieee80211_channel *channel;
@@ -1172,6 +1192,9 @@ struct cfg80211_connect_params {
1172 struct cfg80211_crypto_settings crypto; 1192 struct cfg80211_crypto_settings crypto;
1173 const u8 *key; 1193 const u8 *key;
1174 u8 key_len, key_idx; 1194 u8 key_len, key_idx;
1195 u32 flags;
1196 struct ieee80211_ht_cap ht_capa;
1197 struct ieee80211_ht_cap ht_capa_mask;
1175}; 1198};
1176 1199
1177/** 1200/**
@@ -1938,6 +1961,8 @@ struct wiphy_wowlan_support {
1938 * @wowlan: WoWLAN support information 1961 * @wowlan: WoWLAN support information
1939 * 1962 *
1940 * @ap_sme_capa: AP SME capabilities, flags from &enum nl80211_ap_sme_features. 1963 * @ap_sme_capa: AP SME capabilities, flags from &enum nl80211_ap_sme_features.
1964 * @ht_capa_mod_mask: Specify what ht_cap values can be over-ridden.
1965 * If null, then none can be over-ridden.
1941 */ 1966 */
1942struct wiphy { 1967struct wiphy {
1943 /* assign these fields before you register the wiphy */ 1968 /* assign these fields before you register the wiphy */
@@ -2027,6 +2052,8 @@ struct wiphy {
2027 /* dir in debugfs: ieee80211/<wiphyname> */ 2052 /* dir in debugfs: ieee80211/<wiphyname> */
2028 struct dentry *debugfsdir; 2053 struct dentry *debugfsdir;
2029 2054
2055 const struct ieee80211_ht_cap *ht_capa_mod_mask;
2056
2030#ifdef CONFIG_NET_NS 2057#ifdef CONFIG_NET_NS
2031 /* the network namespace this phy lives in currently */ 2058 /* the network namespace this phy lives in currently */
2032 struct net *_net; 2059 struct net *_net;