aboutsummaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2009-05-08 15:46:17 -0400
committerDavid S. Miller <davem@davemloft.net>2009-05-08 15:46:17 -0400
commita8679be2073392cf22a910bc25da0c7d36459845 (patch)
tree0d25750ea4ba3a85fe683f285261083d77080976 /include/net
parent22f6dacdfcfdc792d068e9c41234808860498d04 (diff)
parent9dfd6ba353b993d648dcda72480c7ce92cd27c7e (diff)
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6
Diffstat (limited to 'include/net')
-rw-r--r--include/net/mac80211.h77
1 files changed, 35 insertions, 42 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 446dbf75a1c5..38dc1cd10270 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -149,6 +149,13 @@ struct ieee80211_low_level_stats {
149 * @BSS_CHANGED_ERP_SLOT: slot timing changed 149 * @BSS_CHANGED_ERP_SLOT: slot timing changed
150 * @BSS_CHANGED_HT: 802.11n parameters changed 150 * @BSS_CHANGED_HT: 802.11n parameters changed
151 * @BSS_CHANGED_BASIC_RATES: Basic rateset changed 151 * @BSS_CHANGED_BASIC_RATES: Basic rateset changed
152 * @BSS_CHANGED_BEACON_INT: Beacon interval changed
153 * @BSS_CHANGED_BSSID: BSSID changed, for whatever
154 * reason (IBSS and managed mode)
155 * @BSS_CHANGED_BEACON: Beacon data changed, retrieve
156 * new beacon (beaconing modes)
157 * @BSS_CHANGED_BEACON_ENABLED: Beaconing should be
158 * enabled/disabled (beaconing modes)
152 */ 159 */
153enum ieee80211_bss_change { 160enum ieee80211_bss_change {
154 BSS_CHANGED_ASSOC = 1<<0, 161 BSS_CHANGED_ASSOC = 1<<0,
@@ -157,6 +164,10 @@ enum ieee80211_bss_change {
157 BSS_CHANGED_ERP_SLOT = 1<<3, 164 BSS_CHANGED_ERP_SLOT = 1<<3,
158 BSS_CHANGED_HT = 1<<4, 165 BSS_CHANGED_HT = 1<<4,
159 BSS_CHANGED_BASIC_RATES = 1<<5, 166 BSS_CHANGED_BASIC_RATES = 1<<5,
167 BSS_CHANGED_BEACON_INT = 1<<6,
168 BSS_CHANGED_BSSID = 1<<7,
169 BSS_CHANGED_BEACON = 1<<8,
170 BSS_CHANGED_BEACON_ENABLED = 1<<9,
160}; 171};
161 172
162/** 173/**
@@ -190,8 +201,11 @@ struct ieee80211_bss_ht_conf {
190 * @basic_rates: bitmap of basic rates, each bit stands for an 201 * @basic_rates: bitmap of basic rates, each bit stands for an
191 * index into the rate table configured by the driver in 202 * index into the rate table configured by the driver in
192 * the current band. 203 * the current band.
204 * @bssid: The BSSID for this BSS
205 * @enable_beacon: whether beaconing should be enabled or not
193 */ 206 */
194struct ieee80211_bss_conf { 207struct ieee80211_bss_conf {
208 const u8 *bssid;
195 /* association related data */ 209 /* association related data */
196 bool assoc; 210 bool assoc;
197 u16 aid; 211 u16 aid;
@@ -199,6 +213,7 @@ struct ieee80211_bss_conf {
199 bool use_cts_prot; 213 bool use_cts_prot;
200 bool use_short_preamble; 214 bool use_short_preamble;
201 bool use_short_slot; 215 bool use_short_slot;
216 bool enable_beacon;
202 u8 dtim_period; 217 u8 dtim_period;
203 u16 beacon_int; 218 u16 beacon_int;
204 u16 assoc_capability; 219 u16 assoc_capability;
@@ -518,10 +533,16 @@ struct ieee80211_rx_status {
518 * 533 *
519 * @IEEE80211_CONF_RADIOTAP: add radiotap header at receive time (if supported) 534 * @IEEE80211_CONF_RADIOTAP: add radiotap header at receive time (if supported)
520 * @IEEE80211_CONF_PS: Enable 802.11 power save mode (managed mode only) 535 * @IEEE80211_CONF_PS: Enable 802.11 power save mode (managed mode only)
536 * @IEEE80211_CONF_IDLE: The device is running, but idle; if the flag is set
537 * the driver should be prepared to handle configuration requests but
538 * may turn the device off as much as possible. Typically, this flag will
539 * be set when an interface is set UP but not associated or scanning, but
540 * it can also be unset in that case when monitor interfaces are active.
521 */ 541 */
522enum ieee80211_conf_flags { 542enum ieee80211_conf_flags {
523 IEEE80211_CONF_RADIOTAP = (1<<0), 543 IEEE80211_CONF_RADIOTAP = (1<<0),
524 IEEE80211_CONF_PS = (1<<1), 544 IEEE80211_CONF_PS = (1<<1),
545 IEEE80211_CONF_IDLE = (1<<2),
525}; 546};
526 547
527 548
@@ -529,25 +550,35 @@ enum ieee80211_conf_flags {
529 * enum ieee80211_conf_changed - denotes which configuration changed 550 * enum ieee80211_conf_changed - denotes which configuration changed
530 * 551 *
531 * @IEEE80211_CONF_CHANGE_RADIO_ENABLED: the value of radio_enabled changed 552 * @IEEE80211_CONF_CHANGE_RADIO_ENABLED: the value of radio_enabled changed
532 * @IEEE80211_CONF_CHANGE_BEACON_INTERVAL: the beacon interval changed 553 * @_IEEE80211_CONF_CHANGE_BEACON_INTERVAL: DEPRECATED
533 * @IEEE80211_CONF_CHANGE_LISTEN_INTERVAL: the listen interval changed 554 * @IEEE80211_CONF_CHANGE_LISTEN_INTERVAL: the listen interval changed
534 * @IEEE80211_CONF_CHANGE_RADIOTAP: the radiotap flag changed 555 * @IEEE80211_CONF_CHANGE_RADIOTAP: the radiotap flag changed
535 * @IEEE80211_CONF_CHANGE_PS: the PS flag or dynamic PS timeout changed 556 * @IEEE80211_CONF_CHANGE_PS: the PS flag or dynamic PS timeout changed
536 * @IEEE80211_CONF_CHANGE_POWER: the TX power changed 557 * @IEEE80211_CONF_CHANGE_POWER: the TX power changed
537 * @IEEE80211_CONF_CHANGE_CHANNEL: the channel/channel_type changed 558 * @IEEE80211_CONF_CHANGE_CHANNEL: the channel/channel_type changed
538 * @IEEE80211_CONF_CHANGE_RETRY_LIMITS: retry limits changed 559 * @IEEE80211_CONF_CHANGE_RETRY_LIMITS: retry limits changed
560 * @IEEE80211_CONF_CHANGE_IDLE: Idle flag changed
539 */ 561 */
540enum ieee80211_conf_changed { 562enum ieee80211_conf_changed {
541 IEEE80211_CONF_CHANGE_RADIO_ENABLED = BIT(0), 563 IEEE80211_CONF_CHANGE_RADIO_ENABLED = BIT(0),
542 IEEE80211_CONF_CHANGE_BEACON_INTERVAL = BIT(1), 564 _IEEE80211_CONF_CHANGE_BEACON_INTERVAL = BIT(1),
543 IEEE80211_CONF_CHANGE_LISTEN_INTERVAL = BIT(2), 565 IEEE80211_CONF_CHANGE_LISTEN_INTERVAL = BIT(2),
544 IEEE80211_CONF_CHANGE_RADIOTAP = BIT(3), 566 IEEE80211_CONF_CHANGE_RADIOTAP = BIT(3),
545 IEEE80211_CONF_CHANGE_PS = BIT(4), 567 IEEE80211_CONF_CHANGE_PS = BIT(4),
546 IEEE80211_CONF_CHANGE_POWER = BIT(5), 568 IEEE80211_CONF_CHANGE_POWER = BIT(5),
547 IEEE80211_CONF_CHANGE_CHANNEL = BIT(6), 569 IEEE80211_CONF_CHANGE_CHANNEL = BIT(6),
548 IEEE80211_CONF_CHANGE_RETRY_LIMITS = BIT(7), 570 IEEE80211_CONF_CHANGE_RETRY_LIMITS = BIT(7),
571 IEEE80211_CONF_CHANGE_IDLE = BIT(8),
549}; 572};
550 573
574static inline __deprecated enum ieee80211_conf_changed
575__IEEE80211_CONF_CHANGE_BEACON_INTERVAL(void)
576{
577 return _IEEE80211_CONF_CHANGE_BEACON_INTERVAL;
578}
579#define IEEE80211_CONF_CHANGE_BEACON_INTERVAL \
580 __IEEE80211_CONF_CHANGE_BEACON_INTERVAL()
581
551/** 582/**
552 * struct ieee80211_conf - configuration of the device 583 * struct ieee80211_conf - configuration of the device
553 * 584 *
@@ -559,7 +590,7 @@ enum ieee80211_conf_changed {
559 * @beacon_int: beacon interval (TODO make interface config) 590 * @beacon_int: beacon interval (TODO make interface config)
560 * 591 *
561 * @listen_interval: listen interval in units of beacon interval 592 * @listen_interval: listen interval in units of beacon interval
562 * @max_sleep_interval: the maximum number of beacon intervals to sleep for 593 * @max_sleep_period: the maximum number of beacon intervals to sleep for
563 * before checking the beacon for a TIM bit (managed mode only); this 594 * before checking the beacon for a TIM bit (managed mode only); this
564 * value will be only achievable between DTIM frames, the hardware 595 * value will be only achievable between DTIM frames, the hardware
565 * needs to check for the multicast traffic bit in DTIM beacons. 596 * needs to check for the multicast traffic bit in DTIM beacons.
@@ -584,7 +615,7 @@ struct ieee80211_conf {
584 int beacon_int; 615 int beacon_int;
585 u32 flags; 616 u32 flags;
586 int power_level, dynamic_ps_timeout; 617 int power_level, dynamic_ps_timeout;
587 int max_sleep_interval; 618 int max_sleep_period;
588 619
589 u16 listen_interval; 620 u16 listen_interval;
590 bool radio_enabled; 621 bool radio_enabled;
@@ -650,37 +681,6 @@ struct ieee80211_if_init_conf {
650}; 681};
651 682
652/** 683/**
653 * enum ieee80211_if_conf_change - interface config change flags
654 *
655 * @IEEE80211_IFCC_BSSID: The BSSID changed.
656 * @IEEE80211_IFCC_BEACON: The beacon for this interface changed
657 * (currently AP and MESH only), use ieee80211_beacon_get().
658 * @IEEE80211_IFCC_BEACON_ENABLED: The enable_beacon value changed.
659 */
660enum ieee80211_if_conf_change {
661 IEEE80211_IFCC_BSSID = BIT(0),
662 IEEE80211_IFCC_BEACON = BIT(1),
663 IEEE80211_IFCC_BEACON_ENABLED = BIT(2),
664};
665
666/**
667 * struct ieee80211_if_conf - configuration of an interface
668 *
669 * @changed: parameters that have changed, see &enum ieee80211_if_conf_change.
670 * @bssid: BSSID of the network we are associated to/creating.
671 * @enable_beacon: Indicates whether beacons can be sent.
672 * This is valid only for AP/IBSS/MESH modes.
673 *
674 * This structure is passed to the config_interface() callback of
675 * &struct ieee80211_hw.
676 */
677struct ieee80211_if_conf {
678 u32 changed;
679 const u8 *bssid;
680 bool enable_beacon;
681};
682
683/**
684 * enum ieee80211_key_alg - key algorithm 684 * enum ieee80211_key_alg - key algorithm
685 * @ALG_WEP: WEP40 or WEP104 685 * @ALG_WEP: WEP40 or WEP104
686 * @ALG_TKIP: TKIP 686 * @ALG_TKIP: TKIP
@@ -1348,10 +1348,6 @@ enum ieee80211_ampdu_mlme_action {
1348 * This function should never fail but returns a negative error code 1348 * This function should never fail but returns a negative error code
1349 * if it does. 1349 * if it does.
1350 * 1350 *
1351 * @config_interface: Handler for configuration requests related to interfaces
1352 * (e.g. BSSID changes.)
1353 * Returns a negative error code which will be seen in userspace.
1354 *
1355 * @bss_info_changed: Handler for configuration requests related to BSS 1351 * @bss_info_changed: Handler for configuration requests related to BSS
1356 * parameters that may vary during BSS's lifespan, and may affect low 1352 * parameters that may vary during BSS's lifespan, and may affect low
1357 * level driver (e.g. assoc/disassoc status, erp parameters). 1353 * level driver (e.g. assoc/disassoc status, erp parameters).
@@ -1453,9 +1449,6 @@ struct ieee80211_ops {
1453 void (*remove_interface)(struct ieee80211_hw *hw, 1449 void (*remove_interface)(struct ieee80211_hw *hw,
1454 struct ieee80211_if_init_conf *conf); 1450 struct ieee80211_if_init_conf *conf);
1455 int (*config)(struct ieee80211_hw *hw, u32 changed); 1451 int (*config)(struct ieee80211_hw *hw, u32 changed);
1456 int (*config_interface)(struct ieee80211_hw *hw,
1457 struct ieee80211_vif *vif,
1458 struct ieee80211_if_conf *conf);
1459 void (*bss_info_changed)(struct ieee80211_hw *hw, 1452 void (*bss_info_changed)(struct ieee80211_hw *hw,
1460 struct ieee80211_vif *vif, 1453 struct ieee80211_vif *vif,
1461 struct ieee80211_bss_conf *info, 1454 struct ieee80211_bss_conf *info,