aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/mac80211.h
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2010-05-10 12:39:28 -0400
committerPatrick McHardy <kaber@trash.net>2010-05-10 12:39:28 -0400
commit1e4b1057121bc756b91758a434b504d2010f6088 (patch)
treeb016cf2c728289c7e36d9e4e488f30ab0bd0ae6e /include/net/mac80211.h
parent3b254c54ec46eb022cb26ee6ab37fae23f5f7d6a (diff)
parent3ee943728fff536edaf8f59faa58aaa1aa7366e3 (diff)
Merge branch 'master' of /repos/git/net-next-2.6
Conflicts: net/bridge/br_device.c net/bridge/br_forward.c Signed-off-by: Patrick McHardy <kaber@trash.net>
Diffstat (limited to 'include/net/mac80211.h')
-rw-r--r--include/net/mac80211.h38
1 files changed, 24 insertions, 14 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 344e5bf72062..54aa16b98b76 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -145,6 +145,7 @@ struct ieee80211_low_level_stats {
145 * @BSS_CHANGED_BEACON_ENABLED: Beaconing should be 145 * @BSS_CHANGED_BEACON_ENABLED: Beaconing should be
146 * enabled/disabled (beaconing modes) 146 * enabled/disabled (beaconing modes)
147 * @BSS_CHANGED_CQM: Connection quality monitor config changed 147 * @BSS_CHANGED_CQM: Connection quality monitor config changed
148 * @BSS_CHANGED_IBSS: IBSS join status changed
148 */ 149 */
149enum ieee80211_bss_change { 150enum ieee80211_bss_change {
150 BSS_CHANGED_ASSOC = 1<<0, 151 BSS_CHANGED_ASSOC = 1<<0,
@@ -158,6 +159,7 @@ enum ieee80211_bss_change {
158 BSS_CHANGED_BEACON = 1<<8, 159 BSS_CHANGED_BEACON = 1<<8,
159 BSS_CHANGED_BEACON_ENABLED = 1<<9, 160 BSS_CHANGED_BEACON_ENABLED = 1<<9,
160 BSS_CHANGED_CQM = 1<<10, 161 BSS_CHANGED_CQM = 1<<10,
162 BSS_CHANGED_IBSS = 1<<11,
161}; 163};
162 164
163/** 165/**
@@ -167,6 +169,8 @@ enum ieee80211_bss_change {
167 * to that BSS) that can change during the lifetime of the BSS. 169 * to that BSS) that can change during the lifetime of the BSS.
168 * 170 *
169 * @assoc: association status 171 * @assoc: association status
172 * @ibss_joined: indicates whether this station is part of an IBSS
173 * or not
170 * @aid: association ID number, valid only when @assoc is true 174 * @aid: association ID number, valid only when @assoc is true
171 * @use_cts_prot: use CTS protection 175 * @use_cts_prot: use CTS protection
172 * @use_short_preamble: use 802.11b short preamble; 176 * @use_short_preamble: use 802.11b short preamble;
@@ -194,7 +198,7 @@ enum ieee80211_bss_change {
194struct ieee80211_bss_conf { 198struct ieee80211_bss_conf {
195 const u8 *bssid; 199 const u8 *bssid;
196 /* association related data */ 200 /* association related data */
197 bool assoc; 201 bool assoc, ibss_joined;
198 u16 aid; 202 u16 aid;
199 /* erp related data */ 203 /* erp related data */
200 bool use_cts_prot; 204 bool use_cts_prot;
@@ -274,6 +278,9 @@ struct ieee80211_bss_conf {
274 * @IEEE80211_TX_INTFL_NL80211_FRAME_TX: Frame was requested through nl80211 278 * @IEEE80211_TX_INTFL_NL80211_FRAME_TX: Frame was requested through nl80211
275 * MLME command (internal to mac80211 to figure out whether to send TX 279 * MLME command (internal to mac80211 to figure out whether to send TX
276 * status to user space) 280 * status to user space)
281 * @IEEE80211_TX_CTL_LDPC: tells the driver to use LDPC for this frame
282 * @IEEE80211_TX_CTL_STBC: Enables Space-Time Block Coding (STBC) for this
283 * frame and selects the maximum number of streams that it can use.
277 */ 284 */
278enum mac80211_tx_control_flags { 285enum mac80211_tx_control_flags {
279 IEEE80211_TX_CTL_REQ_TX_STATUS = BIT(0), 286 IEEE80211_TX_CTL_REQ_TX_STATUS = BIT(0),
@@ -297,6 +304,9 @@ enum mac80211_tx_control_flags {
297 IEEE80211_TX_INTFL_RETRANSMISSION = BIT(19), 304 IEEE80211_TX_INTFL_RETRANSMISSION = BIT(19),
298 IEEE80211_TX_INTFL_HAS_RADIOTAP = BIT(20), 305 IEEE80211_TX_INTFL_HAS_RADIOTAP = BIT(20),
299 IEEE80211_TX_INTFL_NL80211_FRAME_TX = BIT(21), 306 IEEE80211_TX_INTFL_NL80211_FRAME_TX = BIT(21),
307 IEEE80211_TX_CTL_LDPC = BIT(22),
308 IEEE80211_TX_CTL_STBC = BIT(23) | BIT(24),
309#define IEEE80211_TX_CTL_STBC_SHIFT 23
300}; 310};
301 311
302/** 312/**
@@ -395,11 +405,11 @@ struct ieee80211_tx_rate {
395 * @status: union for status data 405 * @status: union for status data
396 * @driver_data: array of driver_data pointers 406 * @driver_data: array of driver_data pointers
397 * @ampdu_ack_len: number of acked aggregated frames. 407 * @ampdu_ack_len: number of acked aggregated frames.
398 * relevant only if IEEE80211_TX_STATUS_AMPDU was set. 408 * relevant only if IEEE80211_TX_STAT_AMPDU was set.
399 * @ampdu_ack_map: block ack bit map for the aggregation. 409 * @ampdu_ack_map: block ack bit map for the aggregation.
400 * relevant only if IEEE80211_TX_STATUS_AMPDU was set. 410 * relevant only if IEEE80211_TX_STAT_AMPDU was set.
401 * @ampdu_len: number of aggregated frames. 411 * @ampdu_len: number of aggregated frames.
402 * relevant only if IEEE80211_TX_STATUS_AMPDU was set. 412 * relevant only if IEEE80211_TX_STAT_AMPDU was set.
403 * @ack_signal: signal strength of the ACK frame 413 * @ack_signal: signal strength of the ACK frame
404 */ 414 */
405struct ieee80211_tx_info { 415struct ieee80211_tx_info {
@@ -550,7 +560,6 @@ enum mac80211_rx_flags {
550 * @signal: signal strength when receiving this frame, either in dBm, in dB or 560 * @signal: signal strength when receiving this frame, either in dBm, in dB or
551 * unspecified depending on the hardware capabilities flags 561 * unspecified depending on the hardware capabilities flags
552 * @IEEE80211_HW_SIGNAL_* 562 * @IEEE80211_HW_SIGNAL_*
553 * @noise: noise when receiving this frame, in dBm (DEPRECATED).
554 * @antenna: antenna used 563 * @antenna: antenna used
555 * @rate_idx: index of data rate into band's supported rates or MCS index if 564 * @rate_idx: index of data rate into band's supported rates or MCS index if
556 * HT rates are use (RX_FLAG_HT) 565 * HT rates are use (RX_FLAG_HT)
@@ -561,7 +570,6 @@ struct ieee80211_rx_status {
561 enum ieee80211_band band; 570 enum ieee80211_band band;
562 int freq; 571 int freq;
563 int signal; 572 int signal;
564 int noise __deprecated;
565 int antenna; 573 int antenna;
566 int rate_idx; 574 int rate_idx;
567 int flag; 575 int flag;
@@ -610,6 +618,7 @@ enum ieee80211_conf_flags {
610 * @IEEE80211_CONF_CHANGE_RETRY_LIMITS: retry limits changed 618 * @IEEE80211_CONF_CHANGE_RETRY_LIMITS: retry limits changed
611 * @IEEE80211_CONF_CHANGE_IDLE: Idle flag changed 619 * @IEEE80211_CONF_CHANGE_IDLE: Idle flag changed
612 * @IEEE80211_CONF_CHANGE_SMPS: Spatial multiplexing powersave mode changed 620 * @IEEE80211_CONF_CHANGE_SMPS: Spatial multiplexing powersave mode changed
621 * @IEEE80211_CONF_CHANGE_QOS: Quality of service was enabled or disabled
613 */ 622 */
614enum ieee80211_conf_changed { 623enum ieee80211_conf_changed {
615 IEEE80211_CONF_CHANGE_SMPS = BIT(1), 624 IEEE80211_CONF_CHANGE_SMPS = BIT(1),
@@ -661,6 +670,9 @@ enum ieee80211_smps_mode {
661 * @dynamic_ps_timeout: The dynamic powersave timeout (in ms), see the 670 * @dynamic_ps_timeout: The dynamic powersave timeout (in ms), see the
662 * powersave documentation below. This variable is valid only when 671 * powersave documentation below. This variable is valid only when
663 * the CONF_PS flag is set. 672 * the CONF_PS flag is set.
673 * @dynamic_ps_forced_timeout: The dynamic powersave timeout (in ms) configured
674 * by cfg80211 (essentially, wext) If set, this value overrules the value
675 * chosen by mac80211 based on ps qos network latency.
664 * 676 *
665 * @power_level: requested transmit power (in dBm) 677 * @power_level: requested transmit power (in dBm)
666 * 678 *
@@ -680,7 +692,7 @@ enum ieee80211_smps_mode {
680 */ 692 */
681struct ieee80211_conf { 693struct ieee80211_conf {
682 u32 flags; 694 u32 flags;
683 int power_level, dynamic_ps_timeout; 695 int power_level, dynamic_ps_timeout, dynamic_ps_forced_timeout;
684 int max_sleep_period; 696 int max_sleep_period;
685 697
686 u16 listen_interval; 698 u16 listen_interval;
@@ -791,6 +803,7 @@ struct ieee80211_key_conf {
791 u8 iv_len; 803 u8 iv_len;
792 u8 hw_key_idx; 804 u8 hw_key_idx;
793 u8 flags; 805 u8 flags;
806 u8 *ap_addr;
794 s8 keyidx; 807 s8 keyidx;
795 u8 keylen; 808 u8 keylen;
796 u8 key[0]; 809 u8 key[0];
@@ -919,10 +932,6 @@ enum ieee80211_tkip_key_type {
919 * one milliwatt. This is the preferred method since it is standardized 932 * one milliwatt. This is the preferred method since it is standardized
920 * between different devices. @max_signal does not need to be set. 933 * between different devices. @max_signal does not need to be set.
921 * 934 *
922 * @IEEE80211_HW_NOISE_DBM:
923 * Hardware can provide noise (radio interference) values in units dBm,
924 * decibel difference from one milliwatt.
925 *
926 * @IEEE80211_HW_SPECTRUM_MGMT: 935 * @IEEE80211_HW_SPECTRUM_MGMT:
927 * Hardware supports spectrum management defined in 802.11h 936 * Hardware supports spectrum management defined in 802.11h
928 * Measurement, Channel Switch, Quieting, TPC 937 * Measurement, Channel Switch, Quieting, TPC
@@ -986,7 +995,7 @@ enum ieee80211_hw_flags {
986 IEEE80211_HW_2GHZ_SHORT_PREAMBLE_INCAPABLE = 1<<4, 995 IEEE80211_HW_2GHZ_SHORT_PREAMBLE_INCAPABLE = 1<<4,
987 IEEE80211_HW_SIGNAL_UNSPEC = 1<<5, 996 IEEE80211_HW_SIGNAL_UNSPEC = 1<<5,
988 IEEE80211_HW_SIGNAL_DBM = 1<<6, 997 IEEE80211_HW_SIGNAL_DBM = 1<<6,
989 IEEE80211_HW_NOISE_DBM = 1<<7, 998 /* use this hole */
990 IEEE80211_HW_SPECTRUM_MGMT = 1<<8, 999 IEEE80211_HW_SPECTRUM_MGMT = 1<<8,
991 IEEE80211_HW_AMPDU_AGGREGATION = 1<<9, 1000 IEEE80211_HW_AMPDU_AGGREGATION = 1<<9,
992 IEEE80211_HW_SUPPORTS_PS = 1<<10, 1001 IEEE80211_HW_SUPPORTS_PS = 1<<10,
@@ -1646,7 +1655,7 @@ struct ieee80211_ops {
1646 struct ieee80211_key_conf *conf, 1655 struct ieee80211_key_conf *conf,
1647 struct ieee80211_sta *sta, 1656 struct ieee80211_sta *sta,
1648 u32 iv32, u16 *phase1key); 1657 u32 iv32, u16 *phase1key);
1649 int (*hw_scan)(struct ieee80211_hw *hw, 1658 int (*hw_scan)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
1650 struct cfg80211_scan_request *req); 1659 struct cfg80211_scan_request *req);
1651 void (*sw_scan_start)(struct ieee80211_hw *hw); 1660 void (*sw_scan_start)(struct ieee80211_hw *hw);
1652 void (*sw_scan_complete)(struct ieee80211_hw *hw); 1661 void (*sw_scan_complete)(struct ieee80211_hw *hw);
@@ -1671,7 +1680,8 @@ struct ieee80211_ops {
1671 struct ieee80211_vif *vif, 1680 struct ieee80211_vif *vif,
1672 enum ieee80211_ampdu_mlme_action action, 1681 enum ieee80211_ampdu_mlme_action action,
1673 struct ieee80211_sta *sta, u16 tid, u16 *ssn); 1682 struct ieee80211_sta *sta, u16 tid, u16 *ssn);
1674 1683 int (*get_survey)(struct ieee80211_hw *hw, int idx,
1684 struct survey_info *survey);
1675 void (*rfkill_poll)(struct ieee80211_hw *hw); 1685 void (*rfkill_poll)(struct ieee80211_hw *hw);
1676 void (*set_coverage_class)(struct ieee80211_hw *hw, u8 coverage_class); 1686 void (*set_coverage_class)(struct ieee80211_hw *hw, u8 coverage_class);
1677#ifdef CONFIG_NL80211_TESTMODE 1687#ifdef CONFIG_NL80211_TESTMODE