STRUCT IWL_TX_RESP(9)
π struct iwl_tx_resp(9) β the Kernel API Manual, bestie edition β¨
okay so this is a page from the Kernel API Manual, and it's all about struct iwl_tx_resp β the little guy that tells you fw is TXing a packet (REPLY_TX = 0x1c). yes that's literally in the NAME, we love a clear title π
β¨ NAME β¨
struct iwl_tx_resp β notifies that fw is TXing a packet ( REPLY_TX = 0x1c )
πΈ SYNOPSIS πΈ
here's the whole struct, character for character, no cap:
struct iwl_tx_resp {
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;
__le16 tx_queue;
__le16 reserved2;
struct agg_tx_status status;
};
π¦ Members π¦
time for the member-by-member vibe check, every single one of them, let's go π₯
frame_countβ1means no aggregation,>1means aggregation. one brain cell vs. group project energy πbt_kill_countβ the num of times it got blocked by bluetooth (unused for agg)failure_rtsβ num of failures due to unsuccessful RTS πfailure_frameβ num failures due to no ACK (unused for agg)initial_rateβ for non-agg: the rate of the successful Tx. For agg: the rate of the Tx of all the batch. It'sRATE_MCS_*, and the format depends on the command version π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 β±οΈpa_statusβ tx power infopa_integ_res_aβ tx power infopa_integ_res_bβ tx power infopa_integ_res_cβ tx power infomeasurement_req_idβ tx power inforeduced_tpcβ transmit power reduction usedreservedβ reservedtfd_infoβ TFD information set by the FH β¨seq_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 math slay πframe_ctrlβ frame controltx_queueβ TX queue for this responsereserved2β reserved for padding/alignmentstatusβ for non-agg: frame statusTX_STATUS_*. For version 6, TX response isn't received for aggregation at all. that's just how it is π«Ά
π 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 main character function you wanna check, iykyk π
fr fr, don't skip the pointer to iwl_mvm_get_scd_ssn, it's giving "the lore is over there" π
π SEE ALSO π
Kernel file ./drivers/net/wireless/intel/iwlwifi/fw/api/tx.h, plus all these besties:
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_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)
that's the whole page, you ate that ππ
this cutie came from ./drivers/net/wireless/intel/i... and it's dated October 2026, filed under struct iwl_tx_resp(9). go forth and read your TX responses, bestie π§β¨π
π¦ 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