diff options
author | Ron Rindjunsky <ron.rindjunsky@intel.com> | 2008-01-28 07:07:16 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-02-29 15:19:13 -0500 |
commit | 80656c20315558a9bc5c5b7f7c6949fa72277afd (patch) | |
tree | 72e6ffb8d410f5cd3d33d29a5bf399a576551be4 | |
parent | 0df3ef45a3d7b59cc53ce4e3611033c6e3b51a1b (diff) |
mac80211: A-MPDU Tx add MLME structures
This patch adds the needed structures to describe the Tx aggregation MLME
per STA
new:
- struct tid_ampdu_tx: TID aggregation information (Tx)
changed:
- struct sta_ampdu_mlme: Tx aggregation information per TID and
dialog token creator were added
- struct sta_info: tid_to_tx_q added for tid<->tx queue mapping
Signed-off-by: Ron Rindjunsky <ron.rindjunsky@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | net/mac80211/sta_info.h | 36 |
1 files changed, 33 insertions, 3 deletions
diff --git a/net/mac80211/sta_info.h b/net/mac80211/sta_info.h index 96fe3ed95038..48a620a4e1a6 100644 --- a/net/mac80211/sta_info.h +++ b/net/mac80211/sta_info.h | |||
@@ -33,13 +33,36 @@ | |||
33 | 33 | ||
34 | #define STA_TID_NUM 16 | 34 | #define STA_TID_NUM 16 |
35 | #define ADDBA_RESP_INTERVAL HZ | 35 | #define ADDBA_RESP_INTERVAL HZ |
36 | #define HT_AGG_MAX_RETRIES (0x3) | ||
36 | 37 | ||
37 | #define HT_AGG_STATE_INITIATOR_SHIFT (4) | 38 | #define HT_AGG_STATE_INITIATOR_SHIFT (4) |
38 | 39 | ||
40 | #define HT_ADDBA_REQUESTED_MSK BIT(0) | ||
41 | #define HT_ADDBA_DRV_READY_MSK BIT(1) | ||
42 | #define HT_ADDBA_RECEIVED_MSK BIT(2) | ||
39 | #define HT_AGG_STATE_REQ_STOP_BA_MSK BIT(3) | 43 | #define HT_AGG_STATE_REQ_STOP_BA_MSK BIT(3) |
40 | 44 | #define HT_AGG_STATE_INITIATOR_MSK BIT(HT_AGG_STATE_INITIATOR_SHIFT) | |
41 | #define HT_AGG_STATE_IDLE (0x0) | 45 | #define HT_AGG_STATE_IDLE (0x0) |
42 | #define HT_AGG_STATE_OPERATIONAL (0x7) | 46 | #define HT_AGG_STATE_OPERATIONAL (HT_ADDBA_REQUESTED_MSK | \ |
47 | HT_ADDBA_DRV_READY_MSK | \ | ||
48 | HT_ADDBA_RECEIVED_MSK) | ||
49 | |||
50 | /** | ||
51 | * struct tid_ampdu_tx - TID aggregation information (Tx). | ||
52 | * | ||
53 | * @state: TID's state in session state machine. | ||
54 | * @dialog_token: dialog token for aggregation session | ||
55 | * @ssn: Starting Sequence Number expected to be aggregated. | ||
56 | * @addba_resp_timer: timer for peer's response to addba request | ||
57 | * @addba_req_num: number of times addBA request has been sent. | ||
58 | */ | ||
59 | struct tid_ampdu_tx { | ||
60 | u8 state; | ||
61 | u8 dialog_token; | ||
62 | u16 ssn; | ||
63 | struct timer_list addba_resp_timer; | ||
64 | u8 addba_req_num; | ||
65 | }; | ||
43 | 66 | ||
44 | /** | 67 | /** |
45 | * struct tid_ampdu_rx - TID aggregation information (Rx). | 68 | * struct tid_ampdu_rx - TID aggregation information (Rx). |
@@ -69,12 +92,18 @@ struct tid_ampdu_rx { | |||
69 | /** | 92 | /** |
70 | * struct sta_ampdu_mlme - STA aggregation information. | 93 | * struct sta_ampdu_mlme - STA aggregation information. |
71 | * | 94 | * |
72 | * @tid_agg_info_rx: aggregation info for Rx per TID | 95 | * @tid_rx: aggregation info for Rx per TID |
96 | * @tid_tx: aggregation info for Tx per TID | ||
73 | * @ampdu_rx: for locking sections in aggregation Rx flow | 97 | * @ampdu_rx: for locking sections in aggregation Rx flow |
98 | * @ampdu_tx: for locking sectionsi in aggregation Tx flow | ||
99 | * @dialog_token_allocator: dialog token enumerator for each new session; | ||
74 | */ | 100 | */ |
75 | struct sta_ampdu_mlme { | 101 | struct sta_ampdu_mlme { |
76 | struct tid_ampdu_rx tid_rx[STA_TID_NUM]; | 102 | struct tid_ampdu_rx tid_rx[STA_TID_NUM]; |
103 | struct tid_ampdu_tx tid_tx[STA_TID_NUM]; | ||
77 | spinlock_t ampdu_rx; | 104 | spinlock_t ampdu_rx; |
105 | spinlock_t ampdu_tx; | ||
106 | u8 dialog_token_allocator; | ||
78 | }; | 107 | }; |
79 | 108 | ||
80 | struct sta_info { | 109 | struct sta_info { |
@@ -148,6 +177,7 @@ struct sta_info { | |||
148 | of this STA */ | 177 | of this STA */ |
149 | struct sta_ampdu_mlme ampdu_mlme; | 178 | struct sta_ampdu_mlme ampdu_mlme; |
150 | u8 timer_to_tid[STA_TID_NUM]; /* convert timer id to tid */ | 179 | u8 timer_to_tid[STA_TID_NUM]; /* convert timer id to tid */ |
180 | u8 tid_to_tx_q[STA_TID_NUM]; /* map tid to tx queue */ | ||
151 | 181 | ||
152 | #ifdef CONFIG_MAC80211_DEBUGFS | 182 | #ifdef CONFIG_MAC80211_DEBUGFS |
153 | struct sta_info_debugfsdentries { | 183 | struct sta_info_debugfsdentries { |