aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2009-11-16 06:00:38 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-11-18 17:09:15 -0500
commitc951ad3550ab40071bb0f222ba6125845769c08a (patch)
tree9db1d3c110b359a34a3d706eaf40285cfa01550b /include
parent3b53fde8ac40c4321389def14d7f4a9e14092fd3 (diff)
mac80211: convert aggregation to operate on vifs/stas
The entire aggregation code currently operates on the hw pointer and station addresses, but that needs to change to make stations purely per-vif; As one step preparing for that make the aggregation code callable with the station, or by the combination of virtual interface and station address. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include')
-rw-r--r--include/net/mac80211.h28
1 files changed, 13 insertions, 15 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 3b3defbe6fc1..4af0ffb98aaf 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -1508,6 +1508,7 @@ struct ieee80211_ops {
1508 void (*reset_tsf)(struct ieee80211_hw *hw); 1508 void (*reset_tsf)(struct ieee80211_hw *hw);
1509 int (*tx_last_beacon)(struct ieee80211_hw *hw); 1509 int (*tx_last_beacon)(struct ieee80211_hw *hw);
1510 int (*ampdu_action)(struct ieee80211_hw *hw, 1510 int (*ampdu_action)(struct ieee80211_hw *hw,
1511 struct ieee80211_vif *vif,
1511 enum ieee80211_ampdu_mlme_action action, 1512 enum ieee80211_ampdu_mlme_action action,
1512 struct ieee80211_sta *sta, u16 tid, u16 *ssn); 1513 struct ieee80211_sta *sta, u16 tid, u16 *ssn);
1513 1514
@@ -2029,8 +2030,7 @@ void ieee80211_queue_delayed_work(struct ieee80211_hw *hw,
2029 2030
2030/** 2031/**
2031 * ieee80211_start_tx_ba_session - Start a tx Block Ack session. 2032 * ieee80211_start_tx_ba_session - Start a tx Block Ack session.
2032 * @hw: pointer as obtained from ieee80211_alloc_hw(). 2033 * @sta: the station for which to start a BA session
2033 * @ra: receiver address of the BA session recipient
2034 * @tid: the TID to BA on. 2034 * @tid: the TID to BA on.
2035 * 2035 *
2036 * Return: success if addBA request was sent, failure otherwise 2036 * Return: success if addBA request was sent, failure otherwise
@@ -2039,22 +2039,22 @@ void ieee80211_queue_delayed_work(struct ieee80211_hw *hw,
2039 * the need to start aggregation on a certain RA/TID, the session level 2039 * the need to start aggregation on a certain RA/TID, the session level
2040 * will be managed by the mac80211. 2040 * will be managed by the mac80211.
2041 */ 2041 */
2042int ieee80211_start_tx_ba_session(struct ieee80211_hw *hw, u8 *ra, u16 tid); 2042int ieee80211_start_tx_ba_session(struct ieee80211_sta *sta, u16 tid);
2043 2043
2044/** 2044/**
2045 * ieee80211_start_tx_ba_cb - low level driver ready to aggregate. 2045 * ieee80211_start_tx_ba_cb - low level driver ready to aggregate.
2046 * @hw: pointer as obtained from ieee80211_alloc_hw(). 2046 * @vif: &struct ieee80211_vif pointer from &struct ieee80211_if_init_conf
2047 * @ra: receiver address of the BA session recipient. 2047 * @ra: receiver address of the BA session recipient.
2048 * @tid: the TID to BA on. 2048 * @tid: the TID to BA on.
2049 * 2049 *
2050 * This function must be called by low level driver once it has 2050 * This function must be called by low level driver once it has
2051 * finished with preparations for the BA session. 2051 * finished with preparations for the BA session.
2052 */ 2052 */
2053void ieee80211_start_tx_ba_cb(struct ieee80211_hw *hw, u8 *ra, u16 tid); 2053void ieee80211_start_tx_ba_cb(struct ieee80211_vif *vif, u8 *ra, u16 tid);
2054 2054
2055/** 2055/**
2056 * ieee80211_start_tx_ba_cb_irqsafe - low level driver ready to aggregate. 2056 * ieee80211_start_tx_ba_cb_irqsafe - low level driver ready to aggregate.
2057 * @hw: pointer as obtained from ieee80211_alloc_hw(). 2057 * @vif: &struct ieee80211_vif pointer from &struct ieee80211_if_init_conf
2058 * @ra: receiver address of the BA session recipient. 2058 * @ra: receiver address of the BA session recipient.
2059 * @tid: the TID to BA on. 2059 * @tid: the TID to BA on.
2060 * 2060 *
@@ -2062,13 +2062,12 @@ void ieee80211_start_tx_ba_cb(struct ieee80211_hw *hw, u8 *ra, u16 tid);
2062 * finished with preparations for the BA session. 2062 * finished with preparations for the BA session.
2063 * This version of the function is IRQ-safe. 2063 * This version of the function is IRQ-safe.
2064 */ 2064 */
2065void ieee80211_start_tx_ba_cb_irqsafe(struct ieee80211_hw *hw, const u8 *ra, 2065void ieee80211_start_tx_ba_cb_irqsafe(struct ieee80211_vif *vif, const u8 *ra,
2066 u16 tid); 2066 u16 tid);
2067 2067
2068/** 2068/**
2069 * ieee80211_stop_tx_ba_session - Stop a Block Ack session. 2069 * ieee80211_stop_tx_ba_session - Stop a Block Ack session.
2070 * @hw: pointer as obtained from ieee80211_alloc_hw(). 2070 * @sta: the station whose BA session to stop
2071 * @ra: receiver address of the BA session recipient
2072 * @tid: the TID to stop BA. 2071 * @tid: the TID to stop BA.
2073 * @initiator: if indicates initiator DELBA frame will be sent. 2072 * @initiator: if indicates initiator DELBA frame will be sent.
2074 * 2073 *
@@ -2078,24 +2077,23 @@ void ieee80211_start_tx_ba_cb_irqsafe(struct ieee80211_hw *hw, const u8 *ra,
2078 * the need to stop aggregation on a certain RA/TID, the session level 2077 * the need to stop aggregation on a certain RA/TID, the session level
2079 * will be managed by the mac80211. 2078 * will be managed by the mac80211.
2080 */ 2079 */
2081int ieee80211_stop_tx_ba_session(struct ieee80211_hw *hw, 2080int ieee80211_stop_tx_ba_session(struct ieee80211_sta *sta, u16 tid,
2082 u8 *ra, u16 tid,
2083 enum ieee80211_back_parties initiator); 2081 enum ieee80211_back_parties initiator);
2084 2082
2085/** 2083/**
2086 * ieee80211_stop_tx_ba_cb - low level driver ready to stop aggregate. 2084 * ieee80211_stop_tx_ba_cb - low level driver ready to stop aggregate.
2087 * @hw: pointer as obtained from ieee80211_alloc_hw(). 2085 * @vif: &struct ieee80211_vif pointer from &struct ieee80211_if_init_conf
2088 * @ra: receiver address of the BA session recipient. 2086 * @ra: receiver address of the BA session recipient.
2089 * @tid: the desired TID to BA on. 2087 * @tid: the desired TID to BA on.
2090 * 2088 *
2091 * This function must be called by low level driver once it has 2089 * This function must be called by low level driver once it has
2092 * finished with preparations for the BA session tear down. 2090 * finished with preparations for the BA session tear down.
2093 */ 2091 */
2094void ieee80211_stop_tx_ba_cb(struct ieee80211_hw *hw, u8 *ra, u8 tid); 2092void ieee80211_stop_tx_ba_cb(struct ieee80211_vif *vif, u8 *ra, u8 tid);
2095 2093
2096/** 2094/**
2097 * ieee80211_stop_tx_ba_cb_irqsafe - low level driver ready to stop aggregate. 2095 * ieee80211_stop_tx_ba_cb_irqsafe - low level driver ready to stop aggregate.
2098 * @hw: pointer as obtained from ieee80211_alloc_hw(). 2096 * @vif: &struct ieee80211_vif pointer from &struct ieee80211_if_init_conf
2099 * @ra: receiver address of the BA session recipient. 2097 * @ra: receiver address of the BA session recipient.
2100 * @tid: the desired TID to BA on. 2098 * @tid: the desired TID to BA on.
2101 * 2099 *
@@ -2103,7 +2101,7 @@ void ieee80211_stop_tx_ba_cb(struct ieee80211_hw *hw, u8 *ra, u8 tid);
2103 * finished with preparations for the BA session tear down. 2101 * finished with preparations for the BA session tear down.
2104 * This version of the function is IRQ-safe. 2102 * This version of the function is IRQ-safe.
2105 */ 2103 */
2106void ieee80211_stop_tx_ba_cb_irqsafe(struct ieee80211_hw *hw, const u8 *ra, 2104void ieee80211_stop_tx_ba_cb_irqsafe(struct ieee80211_vif *vif, const u8 *ra,
2107 u16 tid); 2105 u16 tid);
2108 2106
2109/** 2107/**