struct sta_ampdu_mlme — STA aggregation information.
struct sta_ampdu_mlme { struct mutex mtx; struct tid_ampdu_rx __rcu * tid_rx[IEEE80211_NUM_TIDS]; unsigned long tid_rx_timer_expired[BITS_TO_LONGS(IEEE80211_NUM_TIDS)]; unsigned long tid_rx_stop_requested[BITS_TO_LONGS(IEEE80211_NUM_TIDS)]; struct work_struct work; struct tid_ampdu_tx __rcu * tid_tx[IEEE80211_NUM_TIDS]; struct tid_ampdu_tx * tid_start_tx[IEEE80211_NUM_TIDS]; unsigned long last_addba_req_time[IEEE80211_NUM_TIDS]; u8 addba_req_num[IEEE80211_NUM_TIDS]; u8 dialog_token_allocator; };
mutex to protect all TX data (except non-NULL assignments to tid_tx[idx], which are protected by the sta spinlock) tid_start_tx is also protected by sta->lock.
aggregation info for Rx per TID -- RCU protected
bitmap indicating on which TIDs the RX timer expired until the work for it runs
bitmap indicating which BA sessions per TID the driver requested to close until the work for it runs
work struct for starting/stopping aggregation
aggregation info for Tx per TID
sessions where start was requested
timestamp of the last addBA request.
number of times addBA request has been sent.
dialog token enumerator for each new session;