Skip to content

Commit

Permalink
mac80211: A-MPDU Rx add MLME structures
Browse files Browse the repository at this point in the history
This patch adds the needed structures to describe the Rx aggregation MLME per STA
new:
 - struct tid_ampdu_rx: TID aggregation information (Rx)
 - struct sta_ampdu_mlme: MLME aggregation information for STA
changed:
 - struct sta_info: ampdu_mlme added to describe A-MPDU MLME per STA,
		    and timer_to_tid added to map timer id into TID

Signed-off-by: Ron Rindjunsky <[email protected]>
Signed-off-by: John W. Linville <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
Ron Rindjunsky authored and davem330 committed Jan 28, 2008
1 parent 1b7d03a commit 5aae288
Showing 1 changed file with 47 additions and 0 deletions.
47 changes: 47 additions & 0 deletions net/mac80211/sta_info.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,51 @@
#define WLAN_STA_WME BIT(9)
#define WLAN_STA_WDS BIT(27)

#define STA_TID_NUM 16
#define ADDBA_RESP_INTERVAL HZ

#define HT_AGG_STATE_INITIATOR_SHIFT (4)

#define HT_AGG_STATE_REQ_STOP_BA_MSK BIT(3)

#define HT_AGG_STATE_IDLE (0x0)
#define HT_AGG_STATE_OPERATIONAL (0x7)

/**
* struct tid_ampdu_rx - TID aggregation information (Rx).
*
* @state: TID's state in session state machine.
* @dialog_token: dialog token for aggregation session
* @ssn: Starting Sequence Number expected to be aggregated.
* @buf_size: buffer size for incoming A-MPDUs
* @timeout: reset timer value.
* @head_seq_num: head sequence number in reordering buffer.
* @stored_mpdu_num: number of MPDUs in reordering buffer
* @reorder_buf: buffer to reorder incoming aggregated MPDUs
* @session_timer: check if peer keeps Tx-ing on the TID (by timeout value)
*/
struct tid_ampdu_rx {
u8 state;
u8 dialog_token;
u16 ssn;
u16 buf_size;
u16 timeout;
u16 head_seq_num;
u16 stored_mpdu_num;
struct sk_buff **reorder_buf;
struct timer_list session_timer;
};

/**
* struct sta_ampdu_mlme - STA aggregation information.
*
* @tid_agg_info_rx: aggregation info for Rx per TID
* @ampdu_rx: for locking sections in aggregation Rx flow
*/
struct sta_ampdu_mlme {
struct tid_ampdu_rx tid_rx[STA_TID_NUM];
spinlock_t ampdu_rx;
};

struct sta_info {
struct kref kref;
Expand Down Expand Up @@ -101,6 +146,8 @@ struct sta_info {

struct ieee80211_ht_info ht_info; /* 802.11n HT capabilities
of this STA */
struct sta_ampdu_mlme ampdu_mlme;
u8 timer_to_tid[STA_TID_NUM]; /* convert timer id to tid */

#ifdef CONFIG_MAC80211_DEBUGFS
struct sta_info_debugfsdentries {
Expand Down

0 comments on commit 5aae288

Please sign in to comment.