STRUCT IWL_MVM_TID_DATA(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct iwl_mvm_tid_data(9) β€” the Kernel API Manual glow-up πŸŽ€

okay so bestie, gather round, because we're diving into a kernel API manual page and honestly? it's giving main character energy. this is struct iwl_mvm_tid_data(9) from the Kernel API Manual, section 9, and it's literally the struct that holds the states for each RA / TID. no cap. πŸ¦‹


✨ SYNOPSIS ✨

struct iwl_mvm_tid_data {
    u16 seq_number;
    u16 next_reclaimed;
    __le32 rate_n_flags;
    u8 lq_color;
    bool amsdu_in_ampdu_allowed;
    enum iwl_mvm_agg_state state;
    u16 txq_id;
    u16 ssn;
    u16 tx_time;
    unsigned long tpt_meas_start;
    u32 tx_count_last;
    u32 tx_count;
 };

like, look at her. twelve fields. absolutely iconic. πŸ’…


🌸 Members 🌸

  • seq_number β€” the next WiFi sequence number to use. simple, cute, does her job. ✨
  • next_reclaimed β€” the WiFi sequence number of the next packet to be acked. this is basically (last acked packet++). yeah, that's the whole vibe. πŸŽ€
  • rate_n_flags β€” the rate at which Tx was attempted. she's the little memory holder that keeps the data between the Tx response (TX_CMD) and the block ack notification (COMPRESSED_BA). carrying the group chat receipts, fr fr. πŸ’Œ
  • lq_color β€” the color of the LQ command as it appears in tx response. yes she has a color. slay. 🌈
  • amsdu_in_ampdu_allowed β€” true if A-MSDU in A-MPDU is allowed. boolean queen. πŸ‘‘
  • state β€” state of the BA agreement establishment / tear down. we love a girl who knows where she is in life (unlike me at 3am). 😭
  • txq_id β€” Tx queue used by the BA session / DQA. πŸ”₯
  • ssn β€” the first packet to be sent in AGG HW queue in Tx AGG start flow, or the first packet to be sent in legacy HW queue in Tx AGG stop flow. basically, when next_reclaimed reaches ssn, we can tell mac80211 that we are ready to finish the Tx AGG stop / start flow. lowkey the most important field here and she knows it. πŸ’€
  • tx_time β€” medium time consumed by this A-MPDU. she's been through a lot, ok? 🫢
  • tpt_meas_start β€” time of the throughput measurements start, is reset every HZ. every HZ! she refreshes herself like a proper self-care routine. 🌸
  • tx_count_last β€” number of frames transmitted during the last second. πŸ“Š
  • tx_count β€” counts the number of frames transmitted since the last reset of tpt_meas_start. the long-game counter. ⭐

πŸ‘€ SEE ALSO πŸ‘€

the whole friend group, and yes you should follow all of them:

  • Kernel file ./drivers/net/wireless/intel/iwlwifi/mvm/sta.h
  • DQA - Dynamic Queue Allocation -introduction(9)
  • station table - introduction(9)
  • station table - locking(9)
  • station table - internal stations(9)
  • station table - AP Station in STA mode(9)
  • station table - Drain vs. Flush(9)
  • station table - fw restart(9)
  • AP mode - PS(9)
  • enum iwl_mvm_agg_state(9)
  • enum iwl_mvm_rxq_notif_type(9)
  • struct iwl_mvm_internal_rxq_notif(9)
  • struct iwl_mvm_rxq_dup_data(9)
  • struct iwl_mvm_link_sta(9)
  • struct iwl_mvm_sta(9)
  • struct iwl_mvm_int_sta(9)
  • iwl_mvm_sta_send_to_fw(9)
  • struct iwl_mvm_sta_state_ops(9)

ok that's the whole page bestie, no details skipped, i would never do that to you πŸ’– go forth and understand your RA / TID states. periodt. πŸ’…

and that's a wrap, mwah! this cutie came from source ./drivers/net/wireless/intel/i... and the date on her birth certificate says October 2026 β€” anyway, struct iwl_mvm_tid_data(9) out. 🧚✨

πŸ“¦ where this page comes from