mac80211: A-MPDU Rx add MLME structures
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 <ron.rindjunsky@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
1b7d03acbf
commit
5aae288061
@ -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;
|
||||
@ -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 {
|
||||
|
Loading…
Reference in New Issue
Block a user