STRUCT STA_AMPDU_MLME(9)
NAME π
okay bestie, welcome to the struct sta_ampdu_mlme(9) page β yes, that's the manual name, and it's literally the main character here. struct sta_ampdu_mlme β STA aggregation information. That's the whole name line, no cap.
β¨ SYNOPSIS β¨
here's the struct, copied exactly, because code is sacred and we do not mess with it:
struct sta_ampdu_mlme {
struct tid_ampdu_rx *tid_rx[IEEE80211_NUM_TIDS];
u8 tid_rx_token[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)];
unsigned long tid_rx_manage_offl[BITS_TO_LONGS(2 *
IEEE80211_NUM_TIDS)];
unsigned long agg_session_valid[BITS_TO_LONGS(IEEE80211_NUM_TIDS)];
unsigned long unexpected_agg[BITS_TO_LONGS(IEEE80211_NUM_TIDS)];
struct wiphy_work work;
struct tid_ampdu_tx *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;
};
πΈ Members πΈ
okay member-by-member, and yes every single one is here:
tid_rxβ the aggregation info for Rx per TID β and bestie, it's RCU protected, so mind the vibes.tid_rx_tokenβ dialog tokens for valid aggregation sessions. iconic little tokens.tid_rx_timer_expiredβ a bitmap indicating on which TIDs the RX timer expired until the work for it runs.tid_rx_stop_requestedβ a bitmap indicating which BA sessions per TID the driver requested to close until the work for it runs.tid_rx_manage_offlβ a bitmap indicating which BA sessions were requested to be treated as started/stopped due to offloading.agg_session_validβ a bitmap indicating which TID has a rx BA session open on.unexpected_aggβ a bitmap indicating which TID already sent a delBA due to unexpected aggregation related frames outside a session.workβ work struct for starting/stopping aggregation.tid_txβ aggregation info for Tx per TID.tid_start_txβ sessions where start was requested, not just protected bywiphymutex but alsosta->lock.last_addba_req_timeβ timestamp of the last addBA request.addba_req_numβ number of times addBA request has been sent.dialog_token_allocatorβ dialog token enumerator for each new session;
π SEE ALSO π
go look at these besties, they're all right here:
- Kernel file
./net/mac80211/sta_info.h enum ieee80211_sta_info_flags(9)struct tid_ampdu_tx(9)struct tid_ampdu_rx(9)struct ieee80211_fast_tx(9)struct ieee80211_fast_rx(9)struct mesh_sta(9)struct link_sta_info(9)struct ieee80211_sta_removed_link_stats(9)struct sta_info(9)__sta_info_flush(9)sta_info_flush(9)
mwah π
β source/version ./net/mac80211, date October 2026, page struct sta_ampdu_mlme(9). π«Ά
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms