Skip to content

Commit

Permalink
mac80211: A-MPDU Tx add MLME structures
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Ron Rindjunsky authored and John W. Linville committed Feb 29, 2008
1 parent 0df3ef4 commit 80656c2
Showing 1 changed file with 33 additions and 3 deletions.
36 changes: 33 additions & 3 deletions net/mac80211/sta_info.h
Original file line number Diff line number Diff line change
Expand Up @@ -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).
Expand Down Expand Up @@ -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 {
Expand Down Expand Up @@ -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 {
Expand Down

0 comments on commit 80656c2

Please sign in to comment.