aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/net/mac80211.h59
1 files changed, 26 insertions, 33 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 94ff3eface49..9801afb62545 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -3,7 +3,7 @@
3 * 3 *
4 * Copyright 2002-2005, Devicescape Software, Inc. 4 * Copyright 2002-2005, Devicescape Software, Inc.
5 * Copyright 2006-2007 Jiri Benc <jbenc@suse.cz> 5 * Copyright 2006-2007 Jiri Benc <jbenc@suse.cz>
6 * Copyright 2007 Johannes Berg <johannes@sipsolutions.net> 6 * Copyright 2007-2008 Johannes Berg <johannes@sipsolutions.net>
7 * 7 *
8 * This program is free software; you can redistribute it and/or modify 8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as 9 * it under the terms of the GNU General Public License version 2 as
@@ -82,22 +82,6 @@ enum ieee80211_notification_types {
82}; 82};
83 83
84/** 84/**
85 * struct ieee80211_ht_bss_info - describing BSS's HT characteristics
86 *
87 * This structure describes most essential parameters needed
88 * to describe 802.11n HT characteristics in a BSS.
89 *
90 * @primary_channel: channel number of primery channel
91 * @bss_cap: 802.11n's general BSS capabilities (e.g. channel width)
92 * @bss_op_mode: 802.11n's BSS operation modes (e.g. HT protection)
93 */
94struct ieee80211_ht_bss_info {
95 u8 primary_channel;
96 u8 bss_cap; /* use IEEE80211_HT_IE_CHA_ */
97 u8 bss_op_mode; /* use IEEE80211_HT_IE_ */
98};
99
100/**
101 * enum ieee80211_max_queues - maximum number of queues 85 * enum ieee80211_max_queues - maximum number of queues
102 * 86 *
103 * @IEEE80211_MAX_QUEUES: Maximum number of regular device queues. 87 * @IEEE80211_MAX_QUEUES: Maximum number of regular device queues.
@@ -172,6 +156,19 @@ enum ieee80211_bss_change {
172}; 156};
173 157
174/** 158/**
159 * struct ieee80211_bss_ht_conf - BSS's changing HT configuration
160 * @secondary_channel_offset: secondary channel offset, uses
161 * %IEEE80211_HT_PARAM_CHA_SEC_ values
162 * @width_40_ok: indicates that 40 MHz bandwidth may be used for TX
163 * @operation_mode: HT operation mode (like in &struct ieee80211_ht_info)
164 */
165struct ieee80211_bss_ht_conf {
166 u8 secondary_channel_offset;
167 bool width_40_ok;
168 u16 operation_mode;
169};
170
171/**
175 * struct ieee80211_bss_conf - holds the BSS's changing parameters 172 * struct ieee80211_bss_conf - holds the BSS's changing parameters
176 * 173 *
177 * This structure keeps information about a BSS (and an association 174 * This structure keeps information about a BSS (and an association
@@ -190,9 +187,7 @@ enum ieee80211_bss_change {
190 * @timestamp: beacon timestamp 187 * @timestamp: beacon timestamp
191 * @beacon_int: beacon interval 188 * @beacon_int: beacon interval
192 * @assoc_capability: capabilities taken from assoc resp 189 * @assoc_capability: capabilities taken from assoc resp
193 * @assoc_ht: association in HT mode 190 * @ht: BSS's HT configuration
194 * @ht_cap: ht capabilities
195 * @ht_bss_conf: ht extended capabilities
196 * @basic_rates: bitmap of basic rates, each bit stands for an 191 * @basic_rates: bitmap of basic rates, each bit stands for an
197 * index into the rate table configured by the driver in 192 * index into the rate table configured by the driver in
198 * the current band. 193 * the current band.
@@ -210,10 +205,7 @@ struct ieee80211_bss_conf {
210 u16 assoc_capability; 205 u16 assoc_capability;
211 u64 timestamp; 206 u64 timestamp;
212 u64 basic_rates; 207 u64 basic_rates;
213 /* ht related data */ 208 struct ieee80211_bss_ht_conf ht;
214 bool assoc_ht;
215 struct ieee80211_sta_ht_cap *ht_cap;
216 struct ieee80211_ht_bss_info *ht_bss_conf;
217}; 209};
218 210
219/** 211/**
@@ -447,13 +439,11 @@ struct ieee80211_rx_status {
447 * Flags to define PHY configuration options 439 * Flags to define PHY configuration options
448 * 440 *
449 * @IEEE80211_CONF_RADIOTAP: add radiotap header at receive time (if supported) 441 * @IEEE80211_CONF_RADIOTAP: add radiotap header at receive time (if supported)
450 * @IEEE80211_CONF_SUPPORT_HT_MODE: use 802.11n HT capabilities (if supported)
451 * @IEEE80211_CONF_PS: Enable 802.11 power save mode 442 * @IEEE80211_CONF_PS: Enable 802.11 power save mode
452 */ 443 */
453enum ieee80211_conf_flags { 444enum ieee80211_conf_flags {
454 IEEE80211_CONF_RADIOTAP = (1<<0), 445 IEEE80211_CONF_RADIOTAP = (1<<0),
455 IEEE80211_CONF_SUPPORT_HT_MODE = (1<<1), 446 IEEE80211_CONF_PS = (1<<1),
456 IEEE80211_CONF_PS = (1<<2),
457}; 447};
458 448
459/* XXX: remove all this once drivers stop trying to use it */ 449/* XXX: remove all this once drivers stop trying to use it */
@@ -463,6 +453,10 @@ static inline int __deprecated __IEEE80211_CONF_SHORT_SLOT_TIME(void)
463} 453}
464#define IEEE80211_CONF_SHORT_SLOT_TIME (__IEEE80211_CONF_SHORT_SLOT_TIME()) 454#define IEEE80211_CONF_SHORT_SLOT_TIME (__IEEE80211_CONF_SHORT_SLOT_TIME())
465 455
456struct ieee80211_ht_conf {
457 bool enabled;
458};
459
466/** 460/**
467 * enum ieee80211_conf_changed - denotes which configuration changed 461 * enum ieee80211_conf_changed - denotes which configuration changed
468 * 462 *
@@ -474,6 +468,7 @@ static inline int __deprecated __IEEE80211_CONF_SHORT_SLOT_TIME(void)
474 * @IEEE80211_CONF_CHANGE_POWER: the TX power changed 468 * @IEEE80211_CONF_CHANGE_POWER: the TX power changed
475 * @IEEE80211_CONF_CHANGE_CHANNEL: the channel changed 469 * @IEEE80211_CONF_CHANGE_CHANNEL: the channel changed
476 * @IEEE80211_CONF_CHANGE_RETRY_LIMITS: retry limits changed 470 * @IEEE80211_CONF_CHANGE_RETRY_LIMITS: retry limits changed
471 * @IEEE80211_CONF_CHANGE_HT: HT configuration changed
477 */ 472 */
478enum ieee80211_conf_changed { 473enum ieee80211_conf_changed {
479 IEEE80211_CONF_CHANGE_RADIO_ENABLED = BIT(0), 474 IEEE80211_CONF_CHANGE_RADIO_ENABLED = BIT(0),
@@ -484,6 +479,7 @@ enum ieee80211_conf_changed {
484 IEEE80211_CONF_CHANGE_POWER = BIT(5), 479 IEEE80211_CONF_CHANGE_POWER = BIT(5),
485 IEEE80211_CONF_CHANGE_CHANNEL = BIT(6), 480 IEEE80211_CONF_CHANGE_CHANNEL = BIT(6),
486 IEEE80211_CONF_CHANGE_RETRY_LIMITS = BIT(7), 481 IEEE80211_CONF_CHANGE_RETRY_LIMITS = BIT(7),
482 IEEE80211_CONF_CHANGE_HT = BIT(8),
487}; 483};
488 484
489/** 485/**
@@ -496,9 +492,8 @@ enum ieee80211_conf_changed {
496 * @listen_interval: listen interval in units of beacon interval 492 * @listen_interval: listen interval in units of beacon interval
497 * @flags: configuration flags defined above 493 * @flags: configuration flags defined above
498 * @power_level: requested transmit power (in dBm) 494 * @power_level: requested transmit power (in dBm)
499 * @ht_cap: describes current self configuration of 802.11n HT capabilities
500 * @ht_bss_conf: describes current BSS configuration of 802.11n HT parameters
501 * @channel: the channel to tune to 495 * @channel: the channel to tune to
496 * @ht: the HT configuration for the device
502 * @long_frame_max_tx_count: Maximum number of transmissions for a "long" frame 497 * @long_frame_max_tx_count: Maximum number of transmissions for a "long" frame
503 * (a frame not RTS protected), called "dot11LongRetryLimit" in 802.11, 498 * (a frame not RTS protected), called "dot11LongRetryLimit" in 802.11,
504 * but actually means the number of transmissions not the number of retries 499 * but actually means the number of transmissions not the number of retries
@@ -517,9 +512,7 @@ struct ieee80211_conf {
517 u8 long_frame_max_tx_count, short_frame_max_tx_count; 512 u8 long_frame_max_tx_count, short_frame_max_tx_count;
518 513
519 struct ieee80211_channel *channel; 514 struct ieee80211_channel *channel;
520 515 struct ieee80211_ht_conf ht;
521 struct ieee80211_sta_ht_cap ht_cap;
522 struct ieee80211_ht_bss_info ht_bss_conf;
523}; 516};
524 517
525/** 518/**
@@ -715,7 +708,7 @@ enum set_key_cmd {
715 * @addr: MAC address 708 * @addr: MAC address
716 * @aid: AID we assigned to the station if we're an AP 709 * @aid: AID we assigned to the station if we're an AP
717 * @supp_rates: Bitmap of supported rates (per band) 710 * @supp_rates: Bitmap of supported rates (per band)
718 * @ht_cap: HT capabilities of this STA 711 * @ht_cap: HT capabilities of this STA; restricted to our own TX capabilities
719 * @drv_priv: data area for driver use, will always be aligned to 712 * @drv_priv: data area for driver use, will always be aligned to
720 * sizeof(void *), size is determined in hw information. 713 * sizeof(void *), size is determined in hw information.
721 */ 714 */