STRUCT IWL_TX_RESP_V3(9)
π struct iwl_tx_resp_v3(9) β a Kernel API Manual moment
okay so bestie, welcome to the Kernel API Manual, and buckle up because we're about to vibe-check a struct that literally just tells you "hey, firmware is TXing a packet rn." That's it. That's the whole personality. It's REPLY_TX = 0x1c, and it ate. π¦
β¨ NAME β¨
struct iwl_tx_resp_v3 β notifies that fw is TXing a packet ( REPLY_TX = 0x1c ) π
π SYNOPSIS π
no cap, here's the whole glow-up, copied verbatim because we do not mess with the source:
struct iwl_tx_resp_v3 {
u8 frame_count;
u8 bt_kill_count;
u8 failure_rts;
u8 failure_frame;
__le32 initial_rate;
__le16 wireless_media_time;
u8 pa_status;
u8 pa_integ_res_a[3];
u8 pa_integ_res_b[3];
u8 pa_integ_res_c[3];
__le16 measurement_req_id;
u8 reduced_tpc;
u8 reserved;
__le32 tfd_info;
__le16 seq_ctl;
__le16 byte_cnt;
u8 tlc_info;
u8 ra_tid;
__le16 frame_ctrl;
struct agg_tx_status status[];
};
look at her. main character struct energy, honestly. π
πΈ Members πΈ (the whole friend group)
frame_countβ1means no aggregation,>1means aggregation. she's doing a headcount bestie πbt_kill_countβ num of times blocked by bluetooth (unused for agg). bluetooth really said "not today" πfailure_rtsβ num of failures due to unsuccessful RTSfailure_frameβ num failures due to no ACK (unused for agg). ghosted by the ACK, tragic πinitial_rateβ for non-agg: rate of the successful Tx. For agg: rate of the Tx of all the batch.RATE_MCS_*wireless_media_timeβ for non-agg:RTS + CTS + frame tx attempts time + ACK. for agg:RTS + CTS + aggregation tx time + block-ack time. in usec. it's giving stopwatch energy β±οΈpa_statusβ tx power infopa_integ_res_aβ tx power infopa_integ_res_bβ tx power infopa_integ_res_cβ tx power info
the waypa_integ_res_a,pa_integ_res_b, andpa_integ_res_care all just "tx power info"β¦ triplets. iconic. they're a matched set π
measurement_req_idβ tx power inforeduced_tpcβ transmit power reduction usedreservedβ reserved. she's reserved. literally in her reserved era πtfd_infoβ TFD information set by the FHseq_ctlβ sequence control from the Tx cmdbyte_cntβ byte count from the Tx cmdtlc_infoβ TLC rate infora_tidβ bits[3:0]= ra, bits[7:4]= tid. bit-packing queen fr fr βframe_ctrlβ frame controlstatusβ for non-agg: frame statusTX_STATUS_*for agg: status of 1st frame,AGG_TX_STATE_*; other frame status fields follow this one, up toframe_count. Length inframe_count. she's flexible, she's a whole array, she contains multitudes π«Ά
π Description π
After the array of statuses comes the SSN of the SCD. Look at iwl_mvm_get_scd_ssn for more details. that's the plot twist bestie, there's more data hiding after the status array π
π SEE ALSO π
Kernel file ./drivers/net/wireless/intel/iwlwifi/fw/api/tx.h β and the entire extended universe, alphabetically unhinged, all here:
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(9)struct iwl_mvm_ba_notif(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)
okay that's the whole page bestie, you're officially fluent in iwl_tx_resp_v3 π§π
and for the cute sign-off: this absolute baddie of a reference lives at ./drivers/net/wireless/intel/i... and it's dated October 2026, filed under struct iwl_tx_resp_v3(9) β slay, go read it, periodt. π₯π
π¦ 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