diff options
author | Ron Rindjunsky <ron.rindjunsky@intel.com> | 2007-12-25 10:00:31 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 18:00:57 -0500 |
commit | 1b7d03acbfe9d6f1ecf169e6494c5eca29fa0ed3 (patch) | |
tree | 182e48682aedbfbf16b92f5b946246a816f2ec11 /include/net/mac80211.h | |
parent | 6368e4b18d5c71c73eecd96d568e726b80e5bce1 (diff) |
mac80211: A-MPDU Rx add low level driver API
This patch adds the API to perform A-MPDU actions between mac80211 and low
level driver.
Signed-off-by: Ron Rindjunsky <ron.rindjunsky@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/mac80211.h')
-rw-r--r-- | include/net/mac80211.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index a762a75ae62d..3784a61a8489 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
@@ -918,6 +918,18 @@ enum ieee80211_erp_change_flags { | |||
918 | IEEE80211_ERP_CHANGE_PREAMBLE = 1<<1, | 918 | IEEE80211_ERP_CHANGE_PREAMBLE = 1<<1, |
919 | }; | 919 | }; |
920 | 920 | ||
921 | /** | ||
922 | * enum ieee80211_ampdu_mlme_action - A-MPDU actions | ||
923 | * | ||
924 | * These flags are used with the ampdu_action() callback in | ||
925 | * &struct ieee80211_ops to indicate which action is needed. | ||
926 | * @IEEE80211_AMPDU_RX_START: start Rx aggregation | ||
927 | * @IEEE80211_AMPDU_RX_STOP: stop Rx aggregation | ||
928 | */ | ||
929 | enum ieee80211_ampdu_mlme_action { | ||
930 | IEEE80211_AMPDU_RX_START, | ||
931 | IEEE80211_AMPDU_RX_STOP, | ||
932 | }; | ||
921 | 933 | ||
922 | /** | 934 | /** |
923 | * struct ieee80211_ops - callbacks from mac80211 to the driver | 935 | * struct ieee80211_ops - callbacks from mac80211 to the driver |
@@ -1046,6 +1058,12 @@ enum ieee80211_erp_change_flags { | |||
1046 | * used to determine whether to reply to Probe Requests. | 1058 | * used to determine whether to reply to Probe Requests. |
1047 | * | 1059 | * |
1048 | * @conf_ht: Configures low level driver with 802.11n HT data. Must be atomic. | 1060 | * @conf_ht: Configures low level driver with 802.11n HT data. Must be atomic. |
1061 | * | ||
1062 | * @ampdu_action: Perform a certain A-MPDU action | ||
1063 | * The RA/TID combination determines the destination and TID we want | ||
1064 | * the ampdu action to be performed for. The action is defined through | ||
1065 | * ieee80211_ampdu_mlme_action. Starting sequence number (@ssn) | ||
1066 | * is the first frame we expect to perform the action on. | ||
1049 | */ | 1067 | */ |
1050 | struct ieee80211_ops { | 1068 | struct ieee80211_ops { |
1051 | int (*tx)(struct ieee80211_hw *hw, struct sk_buff *skb, | 1069 | int (*tx)(struct ieee80211_hw *hw, struct sk_buff *skb, |
@@ -1091,6 +1109,9 @@ struct ieee80211_ops { | |||
1091 | struct ieee80211_tx_control *control); | 1109 | struct ieee80211_tx_control *control); |
1092 | int (*tx_last_beacon)(struct ieee80211_hw *hw); | 1110 | int (*tx_last_beacon)(struct ieee80211_hw *hw); |
1093 | int (*conf_ht)(struct ieee80211_hw *hw, struct ieee80211_conf *conf); | 1111 | int (*conf_ht)(struct ieee80211_hw *hw, struct ieee80211_conf *conf); |
1112 | int (*ampdu_action)(struct ieee80211_hw *hw, | ||
1113 | enum ieee80211_ampdu_mlme_action action, | ||
1114 | const u8 *ra, u16 tid, u16 ssn); | ||
1094 | }; | 1115 | }; |
1095 | 1116 | ||
1096 | /** | 1117 | /** |