diff options
Diffstat (limited to 'include/net/mac80211.h')
-rw-r--r-- | include/net/mac80211.h | 38 |
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 | */ |
149 | enum ieee80211_bss_change { | 150 | enum 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 { | |||
194 | struct ieee80211_bss_conf { | 198 | struct 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 | */ |
278 | enum mac80211_tx_control_flags { | 285 | enum 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 | */ |
405 | struct ieee80211_tx_info { | 415 | struct 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 | */ |
614 | enum ieee80211_conf_changed { | 623 | enum 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 | */ |
681 | struct ieee80211_conf { | 693 | struct 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 |