STRUCT STA_AMPDU_MLME(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

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 by wiphy mutex but also sta->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