STRUCT IWL_COMPRESSED_BA_NOTIF(9)
π struct iwl_compressed_ba_notif(9) β a Kernel API Manual moment
okay bestie, so this is one of those pages from the Kernel API Manual, section 9, and it's genuinely iconic if you're into wifi firmware internals. it's giving "the firmware is texting you back to tell you what happened to your Block Ack" energy. let's get into it π«Ά
β¨ NAME β¨
struct iwl_compressed_ba_notif β notifies about reception of BA ( BA_NOTIF = 0xc5 )
like, literally the notification struct. it shows up, it's got the receipt, and it tells you how the BA went. no cap π
π¦ SYNOPSIS π¦
struct iwl_compressed_ba_notif {
__le32 flags;
u8 sta_id;
u8 reduced_txp;
u8 tlc_rate_info;
u8 retry_cnt;
__le32 query_byte_cnt;
__le16 query_frame_cnt;
__le16 txed;
__le16 done;
u8 rts_retry_cnt;
u8 reserved;
__le32 wireless_time;
__le32 tx_rate;
__le16 tfd_cnt;
__le16 ra_tid_cnt;
union {
struct iwl_compressed_ba_ratid ra_tid[];
struct iwl_compressed_ba_tfd tfd[];
};
};
look at her. she's structured. she's got a union at the end. main character energy fr fr π
πΈ Members πΈ
flagsβ the status flag, bestie. go checkiwl_mvm_ba_resp_flagsfor the whole lore.sta_idβ the index of the recipient (BA-sending) station in the firmware's station table. that's the station's little seat number πͺreduced_txpβ power reduced according to TPC. and listen, this is the actual value, not a copy from the LQ command. so if it wasn't the first rate that got used for Tx-ing, then FW sets this bad boy to0. periodt πtlc_rate_infoβ TLC rate info, the initial rate index, and the TLC table color. it's giving palette β¨retry_cntβ retry count. you already know.query_byte_cntβ SCD query byte count.query_frame_cntβ SCD query frame count. sibling of the one above, slay πtxedβ number of frames sent in the aggregation (all-TIDs). the "how much did we yeet" number π₯doneβ number of frames that were Acked by the BA (all-TIDs). the "how much actually landed" number βrts_retry_cntβ RTS retry count.reservedβ reserved (for alignment). she's just here so the struct lines up. filler queen but we respect her πwireless_timeβ Wireless-media time. clock it β°tx_rateβ the rate the aggregation was sent at. heads up: the format depends on the command version, so don't assume, okay? πtfd_cntβ number of TFD-Q elements.ra_tid_cntβ number of RATID-Q elements.{unnamed_union}β anonymous. yeah, she has no name. mysterious. we love a mystery π΅οΈββοΈra_tidβ array of RA-TID queue status updates. for debug purposes only ngl β don't build your whole life on it. seeiwl_compressed_ba_ratidfor more details. length lives inra_tid_cnt.tfdβ array of TFD queue status updates. seeiwl_compressed_ba_tfdfor details. length lives intfd_cnt.
π SEE ALSO π
the whole friendship group, in the kernel file ./drivers/net/wireless/intel/iwlwifi/fw/api/tx.h:
enum iwl_tx_flags(9)enum iwl_tx_cmd_flags(9)enum iwl_tx_pm_timeouts(9)enum iwl_tx_cmd_sec_ctrl(9)enum iwl_tx_offload_assist_flags_pos(9)struct iwl_tx_cmd_v6_params(9)struct iwl_tx_cmd_v6(9)struct iwl_tx_cmd_v9(9)struct iwl_tx_cmd(9)struct agg_tx_status(9)struct iwl_tx_resp_v3(9)struct iwl_tx_resp(9)struct iwl_mvm_ba_notif(9)struct iwl_compressed_ba_tfd(9)struct iwl_compressed_ba_ratid(9)struct iwl_mac_beacon_cmd_v6(9)struct iwl_mac_beacon_cmd_v7(9)struct iwl_mac_beacon_cmd(9)struct iwl_extended_beacon_notif_v5(9)struct iwl_extended_beacon_notif(9)enum iwl_dump_control(9)struct iwl_tx_path_flush_cmd_v1(9)struct iwl_tx_path_flush_cmd(9)struct iwl_flush_queue_info(9)struct iwl_tx_path_flush_cmd_rsp(9)struct iwl_scd_txq_cfg_cmd(9)struct iwl_scd_txq_cfg_rsp(9)
and that's the page, bestie π§ go read the whole squad, they're all linked above and they all ate π
source:./drivers/net/wireless/intel/i...β dated October 2026 β and yes she's stillstruct iwl_compressed_ba_notif(9). mwah πβ¨
π¦ 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