aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/mac80211.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net/mac80211.h')
-rw-r--r--include/net/mac80211.h35
1 files changed, 20 insertions, 15 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index de22cbfef232..abb3b1a9ddc9 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -19,6 +19,7 @@
19#include <linux/wireless.h> 19#include <linux/wireless.h>
20#include <linux/device.h> 20#include <linux/device.h>
21#include <linux/ieee80211.h> 21#include <linux/ieee80211.h>
22#include <linux/inetdevice.h>
22#include <net/cfg80211.h> 23#include <net/cfg80211.h>
23 24
24/** 25/**
@@ -312,9 +313,10 @@ enum mac80211_tx_control_flags {
312 IEEE80211_TX_INTFL_NL80211_FRAME_TX = BIT(21), 313 IEEE80211_TX_INTFL_NL80211_FRAME_TX = BIT(21),
313 IEEE80211_TX_CTL_LDPC = BIT(22), 314 IEEE80211_TX_CTL_LDPC = BIT(22),
314 IEEE80211_TX_CTL_STBC = BIT(23) | BIT(24), 315 IEEE80211_TX_CTL_STBC = BIT(23) | BIT(24),
315#define IEEE80211_TX_CTL_STBC_SHIFT 23
316}; 316};
317 317
318#define IEEE80211_TX_CTL_STBC_SHIFT 23
319
318/** 320/**
319 * enum mac80211_rate_control_flags - per-rate flags set by the 321 * enum mac80211_rate_control_flags - per-rate flags set by the
320 * Rate Control algorithm. 322 * Rate Control algorithm.
@@ -412,8 +414,6 @@ struct ieee80211_tx_rate {
412 * @driver_data: array of driver_data pointers 414 * @driver_data: array of driver_data pointers
413 * @ampdu_ack_len: number of acked aggregated frames. 415 * @ampdu_ack_len: number of acked aggregated frames.
414 * relevant only if IEEE80211_TX_STAT_AMPDU was set. 416 * relevant only if IEEE80211_TX_STAT_AMPDU was set.
415 * @ampdu_ack_map: block ack bit map for the aggregation.
416 * relevant only if IEEE80211_TX_STAT_AMPDU was set.
417 * @ampdu_len: number of aggregated frames. 417 * @ampdu_len: number of aggregated frames.
418 * relevant only if IEEE80211_TX_STAT_AMPDU was set. 418 * relevant only if IEEE80211_TX_STAT_AMPDU was set.
419 * @ack_signal: signal strength of the ACK frame 419 * @ack_signal: signal strength of the ACK frame
@@ -448,10 +448,9 @@ struct ieee80211_tx_info {
448 struct { 448 struct {
449 struct ieee80211_tx_rate rates[IEEE80211_TX_MAX_RATES]; 449 struct ieee80211_tx_rate rates[IEEE80211_TX_MAX_RATES];
450 u8 ampdu_ack_len; 450 u8 ampdu_ack_len;
451 u64 ampdu_ack_map;
452 int ack_signal; 451 int ack_signal;
453 u8 ampdu_len; 452 u8 ampdu_len;
454 /* 7 bytes free */ 453 /* 15 bytes free */
455 } status; 454 } status;
456 struct { 455 struct {
457 struct ieee80211_tx_rate driver_rates[ 456 struct ieee80211_tx_rate driver_rates[
@@ -815,7 +814,6 @@ enum ieee80211_key_flags {
815 * encrypted in hardware. 814 * encrypted in hardware.
816 * @alg: The key algorithm. 815 * @alg: The key algorithm.
817 * @flags: key flags, see &enum ieee80211_key_flags. 816 * @flags: key flags, see &enum ieee80211_key_flags.
818 * @ap_addr: AP's MAC address
819 * @keyidx: the key index (0-3) 817 * @keyidx: the key index (0-3)
820 * @keylen: key material length 818 * @keylen: key material length
821 * @key: key material. For ALG_TKIP the key is encoded as a 256-bit (32 byte) 819 * @key: key material. For ALG_TKIP the key is encoded as a 256-bit (32 byte)
@@ -881,16 +879,12 @@ struct ieee80211_sta {
881 * enum sta_notify_cmd - sta notify command 879 * enum sta_notify_cmd - sta notify command
882 * 880 *
883 * Used with the sta_notify() callback in &struct ieee80211_ops, this 881 * Used with the sta_notify() callback in &struct ieee80211_ops, this
884 * indicates addition and removal of a station to station table, 882 * indicates if an associated station made a power state transition.
885 * or if a associated station made a power state transition.
886 * 883 *
887 * @STA_NOTIFY_ADD: (DEPRECATED) a station was added to the station table
888 * @STA_NOTIFY_REMOVE: (DEPRECATED) a station being removed from the station table
889 * @STA_NOTIFY_SLEEP: a station is now sleeping 884 * @STA_NOTIFY_SLEEP: a station is now sleeping
890 * @STA_NOTIFY_AWAKE: a sleeping station woke up 885 * @STA_NOTIFY_AWAKE: a sleeping station woke up
891 */ 886 */
892enum sta_notify_cmd { 887enum sta_notify_cmd {
893 STA_NOTIFY_ADD, STA_NOTIFY_REMOVE,
894 STA_NOTIFY_SLEEP, STA_NOTIFY_AWAKE, 888 STA_NOTIFY_SLEEP, STA_NOTIFY_AWAKE,
895}; 889};
896 890
@@ -1535,6 +1529,16 @@ enum ieee80211_ampdu_mlme_action {
1535 * of the bss parameters has changed when a call is made. The callback 1529 * of the bss parameters has changed when a call is made. The callback
1536 * can sleep. 1530 * can sleep.
1537 * 1531 *
1532 * @configure_arp_filter: Configuration function for hardware ARP query filter.
1533 * This function is called with all the IP addresses configured to the
1534 * interface as argument - all ARP queries targeted to any of these
1535 * addresses must pass through. If the hardware filter does not support
1536 * enought addresses, hardware filtering must be disabled. The ifa_list
1537 * argument may be NULL, indicating that filtering must be disabled.
1538 * This function is called upon association complete with current
1539 * address(es), and while associated whenever the IP address(es) change.
1540 * The callback can sleep.
1541 *
1538 * @prepare_multicast: Prepare for multicast filter configuration. 1542 * @prepare_multicast: Prepare for multicast filter configuration.
1539 * This callback is optional, and its return value is passed 1543 * This callback is optional, and its return value is passed
1540 * to configure_filter(). This callback must be atomic. 1544 * to configure_filter(). This callback must be atomic.
@@ -1674,6 +1678,9 @@ struct ieee80211_ops {
1674 struct ieee80211_vif *vif, 1678 struct ieee80211_vif *vif,
1675 struct ieee80211_bss_conf *info, 1679 struct ieee80211_bss_conf *info,
1676 u32 changed); 1680 u32 changed);
1681 int (*configure_arp_filter)(struct ieee80211_hw *hw,
1682 struct ieee80211_vif *vif,
1683 struct in_ifaddr *ifa_list);
1677 u64 (*prepare_multicast)(struct ieee80211_hw *hw, 1684 u64 (*prepare_multicast)(struct ieee80211_hw *hw,
1678 struct netdev_hw_addr_list *mc_list); 1685 struct netdev_hw_addr_list *mc_list);
1679 void (*configure_filter)(struct ieee80211_hw *hw, 1686 void (*configure_filter)(struct ieee80211_hw *hw,
@@ -2334,16 +2341,14 @@ void ieee80211_start_tx_ba_cb_irqsafe(struct ieee80211_vif *vif, const u8 *ra,
2334 * ieee80211_stop_tx_ba_session - Stop a Block Ack session. 2341 * ieee80211_stop_tx_ba_session - Stop a Block Ack session.
2335 * @sta: the station whose BA session to stop 2342 * @sta: the station whose BA session to stop
2336 * @tid: the TID to stop BA. 2343 * @tid: the TID to stop BA.
2337 * @initiator: if indicates initiator DELBA frame will be sent.
2338 * 2344 *
2339 * Return: error if no sta with matching da found, success otherwise 2345 * Return: negative error if the TID is invalid, or no aggregation active
2340 * 2346 *
2341 * Although mac80211/low level driver/user space application can estimate 2347 * Although mac80211/low level driver/user space application can estimate
2342 * the need to stop aggregation on a certain RA/TID, the session level 2348 * the need to stop aggregation on a certain RA/TID, the session level
2343 * will be managed by the mac80211. 2349 * will be managed by the mac80211.
2344 */ 2350 */
2345int ieee80211_stop_tx_ba_session(struct ieee80211_sta *sta, u16 tid, 2351int ieee80211_stop_tx_ba_session(struct ieee80211_sta *sta, u16 tid);
2346 enum ieee80211_back_parties initiator);
2347 2352
2348/** 2353/**
2349 * ieee80211_stop_tx_ba_cb - low level driver ready to stop aggregate. 2354 * ieee80211_stop_tx_ba_cb - low level driver ready to stop aggregate.