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>
This commit is contained in:
parent
0df3ef45a3
commit
80656c2031
@ -33,13 +33,36 @@
|
||||
|
||||
#define STA_TID_NUM 16
|
||||
#define ADDBA_RESP_INTERVAL HZ
|
||||
#define HT_AGG_MAX_RETRIES (0x3)
|
||||
|
||||
#define HT_AGG_STATE_INITIATOR_SHIFT (4)
|
||||
|
||||
#define HT_ADDBA_REQUESTED_MSK BIT(0)
|
||||
#define HT_ADDBA_DRV_READY_MSK BIT(1)
|
||||
#define HT_ADDBA_RECEIVED_MSK BIT(2)
|
||||
#define HT_AGG_STATE_REQ_STOP_BA_MSK BIT(3)
|
||||
|
||||
#define HT_AGG_STATE_INITIATOR_MSK BIT(HT_AGG_STATE_INITIATOR_SHIFT)
|
||||
#define HT_AGG_STATE_IDLE (0x0)
|
||||
#define HT_AGG_STATE_OPERATIONAL (0x7)
|
||||
#define HT_AGG_STATE_OPERATIONAL (HT_ADDBA_REQUESTED_MSK | \
|
||||
HT_ADDBA_DRV_READY_MSK | \
|
||||
HT_ADDBA_RECEIVED_MSK)
|
||||
|
||||
/**
|
||||
* struct tid_ampdu_tx - TID aggregation information (Tx).
|
||||
*
|
||||
* @state: TID's state in session state machine.
|
||||
* @dialog_token: dialog token for aggregation session
|
||||
* @ssn: Starting Sequence Number expected to be aggregated.
|
||||
* @addba_resp_timer: timer for peer's response to addba request
|
||||
* @addba_req_num: number of times addBA request has been sent.
|
||||
*/
|
||||
struct tid_ampdu_tx {
|
||||
u8 state;
|
||||
u8 dialog_token;
|
||||
u16 ssn;
|
||||
struct timer_list addba_resp_timer;
|
||||
u8 addba_req_num;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct tid_ampdu_rx - TID aggregation information (Rx).
|
||||
@ -69,12 +92,18 @@ struct tid_ampdu_rx {
|
||||
/**
|
||||
* struct sta_ampdu_mlme - STA aggregation information.
|
||||
*
|
||||
* @tid_agg_info_rx: aggregation info for Rx per TID
|
||||
* @tid_rx: aggregation info for Rx per TID
|
||||
* @tid_tx: aggregation info for Tx per TID
|
||||
* @ampdu_rx: for locking sections in aggregation Rx flow
|
||||
* @ampdu_tx: for locking sectionsi in aggregation Tx flow
|
||||
* @dialog_token_allocator: dialog token enumerator for each new session;
|
||||
*/
|
||||
struct sta_ampdu_mlme {
|
||||
struct tid_ampdu_rx tid_rx[STA_TID_NUM];
|
||||
struct tid_ampdu_tx tid_tx[STA_TID_NUM];
|
||||
spinlock_t ampdu_rx;
|
||||
spinlock_t ampdu_tx;
|
||||
u8 dialog_token_allocator;
|
||||
};
|
||||
|
||||
struct sta_info {
|
||||
@ -148,6 +177,7 @@ struct sta_info {
|
||||
of this STA */
|
||||
struct sta_ampdu_mlme ampdu_mlme;
|
||||
u8 timer_to_tid[STA_TID_NUM]; /* convert timer id to tid */
|
||||
u8 tid_to_tx_q[STA_TID_NUM]; /* map tid to tx queue */
|
||||
|
||||
#ifdef CONFIG_MAC80211_DEBUGFS
|
||||
struct sta_info_debugfsdentries {
|
||||
|
Loading…
Reference in New Issue
Block a user