aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/ieee80211_i.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2007-12-28 08:32:58 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-28 18:09:43 -0500
commit471b3efdfccc257591331724145f8ccf8b3217e1 (patch)
treec9e576442c7b62c8c667ae1046e560323f0821fd /net/mac80211/ieee80211_i.h
parent2bc454b0b30b3645d114689b64321cb49be99923 (diff)
mac80211: add unified BSS configuration
This patch (based on Ron Rindjunsky's) creates a framework for a unified way to pass BSS configuration to drivers that require the information, e.g. for implementing power save mode. This patch introduces new ieee80211_bss_conf structure that is passed to the driver via the new bss_info_changed() callback when the BSS configuration changes. This new BSS configuration infrastructure adds the following new features: * drivers are notified of their association AID * drivers are notified of association status and replaces the erp_ie_changed() callback. The patch also does the relevant driver updates for the latter change. Signed-off-by: Ron Rindjunsky <ron.rindjunsky@intel.com> Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/ieee80211_i.h')
-rw-r--r--net/mac80211/ieee80211_i.h19
1 files changed, 12 insertions, 7 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index 08a6c0cff690..72ecbf7bf962 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -291,12 +291,7 @@ struct ieee80211_if_sta {
291/* flags used in struct ieee80211_sub_if_data.flags */ 291/* flags used in struct ieee80211_sub_if_data.flags */
292#define IEEE80211_SDATA_ALLMULTI BIT(0) 292#define IEEE80211_SDATA_ALLMULTI BIT(0)
293#define IEEE80211_SDATA_PROMISC BIT(1) 293#define IEEE80211_SDATA_PROMISC BIT(1)
294#define IEEE80211_SDATA_USE_PROTECTION BIT(2) /* CTS protect ERP frames */ 294#define IEEE80211_SDATA_USERSPACE_MLME BIT(2)
295/* use short preamble with IEEE 802.11b: this flag is set when the AP or beacon
296 * generator reports that there are no present stations that cannot support short
297 * preambles */
298#define IEEE80211_SDATA_SHORT_PREAMBLE BIT(3)
299#define IEEE80211_SDATA_USERSPACE_MLME BIT(4)
300struct ieee80211_sub_if_data { 295struct ieee80211_sub_if_data {
301 struct list_head list; 296 struct list_head list;
302 297
@@ -327,6 +322,15 @@ struct ieee80211_sub_if_data {
327 struct ieee80211_key *keys[NUM_DEFAULT_KEYS]; 322 struct ieee80211_key *keys[NUM_DEFAULT_KEYS];
328 struct ieee80211_key *default_key; 323 struct ieee80211_key *default_key;
329 324
325 /*
326 * BSS configuration for this interface.
327 *
328 * FIXME: I feel bad putting this here when we already have a
329 * bss pointer, but the bss pointer is just wrong when
330 * you have multiple virtual STA mode interfaces...
331 * This needs to be fixed.
332 */
333 struct ieee80211_bss_conf bss_conf;
330 struct ieee80211_if_ap *bss; /* BSS that this device belongs to */ 334 struct ieee80211_if_ap *bss; /* BSS that this device belongs to */
331 335
332 union { 336 union {
@@ -770,7 +774,8 @@ struct sta_info * ieee80211_ibss_add_sta(struct net_device *dev,
770 u8 *addr); 774 u8 *addr);
771int ieee80211_sta_deauthenticate(struct net_device *dev, u16 reason); 775int ieee80211_sta_deauthenticate(struct net_device *dev, u16 reason);
772int ieee80211_sta_disassociate(struct net_device *dev, u16 reason); 776int ieee80211_sta_disassociate(struct net_device *dev, u16 reason);
773void ieee80211_erp_info_change_notify(struct net_device *dev, u8 changes); 777void ieee80211_bss_info_change_notify(struct ieee80211_sub_if_data *sdata,
778 u32 changed);
774void ieee80211_reset_erp_info(struct net_device *dev); 779void ieee80211_reset_erp_info(struct net_device *dev);
775int ieee80211_ht_cap_ie_to_ht_info(struct ieee80211_ht_cap *ht_cap_ie, 780int ieee80211_ht_cap_ie_to_ht_info(struct ieee80211_ht_cap *ht_cap_ie,
776 struct ieee80211_ht_info *ht_info); 781 struct ieee80211_ht_info *ht_info);