diff options
author | David S. Miller <davem@davemloft.net> | 2009-05-08 15:46:17 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-05-08 15:46:17 -0400 |
commit | a8679be2073392cf22a910bc25da0c7d36459845 (patch) | |
tree | 0d25750ea4ba3a85fe683f285261083d77080976 /include/net | |
parent | 22f6dacdfcfdc792d068e9c41234808860498d04 (diff) | |
parent | 9dfd6ba353b993d648dcda72480c7ce92cd27c7e (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.h | 77 |
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 | */ |
153 | enum ieee80211_bss_change { | 160 | enum 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 | */ |
194 | struct ieee80211_bss_conf { | 207 | struct 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 | */ |
522 | enum ieee80211_conf_flags { | 542 | enum 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 | */ |
540 | enum ieee80211_conf_changed { | 562 | enum 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 | ||
574 | static 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 | */ | ||
660 | enum 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 | */ | ||
677 | struct 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, |