STRUCT IWL_MVM_BA_NOTIF(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… NAME πŸ’…

ok so this is struct iwl_mvm_ba_notif β€” it's the little guy that notifies about reception of BA (BA_NOTIF = 0xc5), and bestie, we're gonna go through every single field together, no skips, no "you'll figure it out later" 🫢

(it lives in the Kernel API Manual β€” that's the manual name, folding it in here so you know where you are πŸ’–)


✨ SYNOPSIS ✨

here's the whole shape of her, character for character, don't touch anything:

struct iwl_mvm_ba_notif {
    u8 sta_addr[ETH_ALEN];
    __le16 reserved;
    u8 sta_id;
    u8 tid;
    __le16 seq_ctl;
    __le64 bitmap;
    __le16 scd_flow;
    __le16 scd_ssn;
    u8 txed;
    u8 txed_2_done;
    u8 reduced_txp;
    u8 reserved1;
 };

πŸŽ€ Members πŸŽ€

okay field-by-field, this is the part you actually came for πŸ‘‘

  • sta_addr β€” the MAC address, literally just the MAC address πŸ’…
  • reserved β€” reserved. that's it. that's the field. don't touch it πŸ™ˆ
  • sta_id β€” the index of the recipient (BA-sending) station inside fw's station table πŸ—‚οΈ
  • tid β€” the tid of the session, iykyk ✨
  • seq_ctl β€” the sequence control field πŸŽ€
  • bitmap β€” the bitmap of the BA notification as seen in the air πŸ¦‹ (yes, as seen in the air, iconic)
  • scd_flow β€” tells you which tx queue this BA relates to 🚦
  • scd_ssn β€” the index of the last contiguously sent packet πŸ“¦
  • txed β€” how many Txed frames are in this batch πŸ”₯
  • txed_2_done β€” how many Acked frames are in this batch βœ…
  • 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 will set this value to 0 ⭐ (fr fr, that's the whole caveat, don't forget it)
  • reserved1 β€” reserved, again, respectfully leave her alone πŸ™ˆ
lowkey a bunch of these are just reserved and that's fine, not every field needs lore πŸ’€

🌈 SEE ALSO 🌈

all her friends live in the kernel file ./drivers/net/wireless/intel/iwlwifi/fw/api/tx.h β€” go say hi πŸ‘‹

  • 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_compressed_ba_tfd(9)
  • struct iwl_compressed_ba_ratid(9)
  • struct iwl_compressed_ba_notif(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 whole page, bestie, you ate that πŸ“

signing off from ./drivers/net/wireless/intel/i... β€” dated October 2026, still serving struct iwl_mvm_ba_notif(9) realness πŸ‘‘πŸ’œ

πŸ“¦ where this page comes from