1STRUCT STA_AMPDU_MLM(9) Internals STRUCT STA_AMPDU_MLM(9)
2
3
4
6 struct_sta_ampdu_mlme - STA aggregation information.
7
9 struct sta_ampdu_mlme {
10 struct mutex mtx;
11 struct tid_ampdu_rx __rcu * tid_rx[IEEE80211_NUM_TIDS];
12 u8 tid_rx_token[IEEE80211_NUM_TIDS];
13 unsigned long tid_rx_timer_expired[BITS_TO_LONGS(IEEE80211_NUM_TIDS)];
14 unsigned long tid_rx_stop_requested[BITS_TO_LONGS(IEEE80211_NUM_TIDS)];
15 unsigned long tid_rx_manage_offl[BITS_TO_LONGS(2 *IEEE80211_NUM_TIDS)];
16 unsigned long agg_session_valid[BITS_TO_LONGS(IEEE80211_NUM_TIDS)];
17 unsigned long unexpected_agg[BITS_TO_LONGS(IEEE80211_NUM_TIDS)];
18 struct work_struct work;
19 struct tid_ampdu_tx __rcu * tid_tx[IEEE80211_NUM_TIDS];
20 struct tid_ampdu_tx * tid_start_tx[IEEE80211_NUM_TIDS];
21 unsigned long last_addba_req_time[IEEE80211_NUM_TIDS];
22 u8 addba_req_num[IEEE80211_NUM_TIDS];
23 u8 dialog_token_allocator;
24 };
25
27 mtx
28 mutex to protect all TX data (except non-NULL assignments to
29 tid_tx[idx], which are protected by the sta spinlock) tid_start_tx
30 is also protected by sta->lock.
31
32 tid_rx[IEEE80211_NUM_TIDS]
33 aggregation info for Rx per TID -- RCU protected
34
35 tid_rx_token[IEEE80211_NUM_TIDS]
36 dialog tokens for valid aggregation sessions
37
38 tid_rx_timer_expired[BITS_TO_LONGS(IEEE80211_NUM_TIDS)]
39 bitmap indicating on which TIDs the RX timer expired until the work
40 for it runs
41
42 tid_rx_stop_requested[BITS_TO_LONGS(IEEE80211_NUM_TIDS)]
43 bitmap indicating which BA sessions per TID the driver requested to
44 close until the work for it runs
45
46 tid_rx_manage_offl[BITS_TO_LONGS(2 *IEEE80211_NUM_TIDS)]
47 bitmap indicating which BA sessions were requested to be treated as
48 started/stopped due to offloading
49
50 agg_session_valid[BITS_TO_LONGS(IEEE80211_NUM_TIDS)]
51 bitmap indicating which TID has a rx BA session open on
52
53 unexpected_agg[BITS_TO_LONGS(IEEE80211_NUM_TIDS)]
54 bitmap indicating which TID already sent a delBA due to unexpected
55 aggregation related frames outside a session
56
57 work
58 work struct for starting/stopping aggregation
59
60 tid_tx[IEEE80211_NUM_TIDS]
61 aggregation info for Tx per TID
62
63 tid_start_tx[IEEE80211_NUM_TIDS]
64 sessions where start was requested
65
66 last_addba_req_time[IEEE80211_NUM_TIDS]
67 timestamp of the last addBA request.
68
69 addba_req_num[IEEE80211_NUM_TIDS]
70 number of times addBA request has been sent.
71
72 dialog_token_allocator
73 dialog token enumerator for each new session;
74
76 Johannes Berg <johannes@sipsolutions.net>
77 Author.
78
80Kernel Hackers Manual 3.10 June 2019 STRUCT STA_AMPDU_MLM(9)