STRUCT IWL_LQ_CMD(9)
π struct iwl_lq_cmd β link quality command π
okay bestie, this is from the Kernel API Manual (the struct iwl_lq_cmd(9) page, to be exact), and it's literally the link quality command. no cap, it's giving "here's the whole struct, every field, don't skip a single one" energy. let's get into it π«Ά
β¨ SYNOPSIS β¨
like, here's the whole thing, character for character, because we do NOT paraphrase code in this house π
struct iwl_lq_cmd {
u8 sta_id;
u8 reduced_tpc;
__le16 control;
u8 flags;
u8 mimo_delim;
u8 single_stream_ant_msk;
u8 dual_stream_ant_msk;
u8 initial_rate_index[AC_NUM];
__le16 agg_time_limit;
u8 agg_disable_start_th;
u8 agg_frame_cnt_limit;
__le32 reserved2;
__le32 rs_table[LQ_MAX_RETRY_NUM];
__le32 ss_params;
};
π Members π
okay so, field by field, no skipping, that's the rule π
sta_idβ the station you're updating. that's it, that's the whole vibe β¨reduced_tpcβ reduced transmit power control value πΈcontrolβ not used. iconic honestly, just vibing there πflagsβ a combination ofLQ_FLAG_*π¦mimo_delimβ the first SISO index inrs_table, which separates MIMO and SISO rates. she's the divider, the boundary, the main character of rate separation πsingle_stream_ant_mskβ best antenna for SISO (can be dual in CDD). Should beANT_[ABC]βdual_stream_ant_mskβ best antennas for MIMO, combination ofANT_[ABC]π₯initial_rate_indexβ first index fromrs_tableper AC category πagg_time_limitβ aggregation max time threshold in usec/100, meaning value of100is one usec. Range is100to8000. bestie read that twice, the units are sneaky πagg_disable_start_thβ try-count threshold for starting aggregation. If a frame has higher try-count, it should not be selected for starting an aggregation sequence. like, if you already tried too hard, you're not starting the group project, sorry πagg_frame_cnt_limitβ max frame count in an aggregation.0: no limit.1: no aggregation (one frame per aggregation).2-0x3f: maximal number of frames (up to3f == 63) πreserved2β reserved. respectfully reserved. she's not participating today πrs_tableβ array of rates for each TX try, each israte_n_flags, meaning it is a combination ofRATE_MCS_*andIWL_RATE_*_PLCPπss_paramsβ single stream features. declare whether STBC or BFER are allowed. it's giving "fill out the permission slip" energy π§
πΈ SEE ALSO πΈ
go read these next, bestie, the whole extended universe:
Kernel file ./drivers/net/wireless/intel/iwlwifi/fw/api/rs.h β plus enum iwl_tlc_mng_cfg_flags(9), enum iwl_tlc_mng_cfg_cw(9), enum iwl_tlc_mng_cfg_chains(9), enum iwl_tlc_mng_cfg_mode(9), enum iwl_tlc_mng_ht_rates(9), enum IWL_TLC_MCS_PER_BW(9), struct iwl_tlc_config_cmd_v3(9), struct iwl_tlc_config_cmd_v4(9), struct iwl_tlc_config_cmd(9), enum iwl_tlc_update_flags(9), struct iwl_tlc_update_notif(9), enum iwl_tlc_debug_types(9), struct iwl_dhc_tlc_cmd(9)
ngl that's a long list but every single one is on here for a reason, so don't come for me π
and that's the page!! this one came from ./drivers/net/wireless/intel/i..., dated October 2026 β ty for coming to my ted talk, ily, go update your link quality commands responsibly πβ¨π
π¦ 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