aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRon Rindjunsky <ron.rindjunsky@intel.com>2007-12-25 10:00:31 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-28 18:00:57 -0500
commit1b7d03acbfe9d6f1ecf169e6494c5eca29fa0ed3 (patch)
tree182e48682aedbfbf16b92f5b946246a816f2ec11
parent6368e4b18d5c71c73eecd96d568e726b80e5bce1 (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>
-rw-r--r--include/net/mac80211.h21
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 */
929enum 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 */
1050struct ieee80211_ops { 1068struct 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/**