STRUCT IWL_TLC_CONFIG_CMD_V4(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct iwl_tlc_config_cmd_v4(9) β€” TLC configuration πŸ’–

okay bestie so you're in the Kernel API Manual and this page is literally the blueprint for struct iwl_tlc_config_cmd_v4 β€” aka the TLC configuration struct, version 4, no cap ✨. It's giving "rate control but make it structured," and we're gonna go through every single field together because that's what friends do 🫢


✨ SYNOPSIS ✨

struct iwl_tlc_config_cmd_v4 {
    u8 sta_id;
    u8 reserved1[3];
    u8 max_ch_width;
    u8 mode;
    u8 chains;
    u8 sgi_ch_width_supp;
    __le16 flags;
    __le16 non_ht_rates;
    __le16 ht_rates[IWL_TLC_NSS_MAX][IWL_TLC_MCS_PER_BW_NUM_V4];
    __le16 max_mpdu_len;
    __le16 max_tx_op;
 };

that's the whole cast of characters, and yes we're meeting all of them πŸ’…


πŸŽ€ Members πŸŽ€

  • sta_id β€” the station id. which station are we even talking about, that's this one πŸ’«
  • reserved1 β€” reserved. like, do not touch, it's not for you, it's saving a seat at the lunch table πŸͺ‘
  • max_ch_width β€” the max supported channel width, pulled from enum iwl_tlc_mng_cfg_cw. how wide can we go, that's the question 🌈
  • mode β€” enum iwl_tlc_mng_cfg_mode. the vibes/mode selector πŸ¦‹
  • chains β€” a bitmask of enum iwl_tlc_mng_cfg_chains. bitmask of chains, periodt πŸ”—
  • sgi_ch_width_supp β€” bitmap of SGI support per channel width β€” use BIT(enum iwl_tlc_mng_cfg_cw). one bit per width, so organized πŸ’…
  • flags β€” a bitmask of enum iwl_tlc_mng_cfg_flags. yes, more bits, we love bits ⭐
  • non_ht_rates β€” bitmap of supported legacy rates. the non-HT ones, the classics, the old money πŸ‘‘
  • ht_rates β€” bitmap of enum iwl_tlc_mng_ht_rates, per <nss, channel-width> pair. and the mapping is lowkey specific: (0 - 80mhz width and below, 1 - 160mhz, 2 - 320mhz). write that down bestie πŸ“
  • max_mpdu_len β€” max MPDU length, in bytes. bytes!! πŸ“
  • max_tx_op β€” max TXOP in uSecs for all AC (BK, BE, VO, VI), set zero for no limit. zero = unlimited, going feral with it πŸ”₯

🌸 SEE ALSO 🌸

Kernel file ./drivers/net/wireless/intel/iwlwifi/fw/api/rs.h β€” and then, the whole friend group 😭:

  • 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(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)
  • struct iwl_lq_cmd(9)

ok that's the whole page, you ate that πŸ’… go read the v3 struct too, it's giving prequel energy

and that's a wrap bestie πŸ§šπŸ’œ this little love letter came from ./drivers/net/wireless/intel/i... and it's stamped October 2026 β€” struct iwl_t...onfig_cmd_v4(9), signing off πŸŽ€

πŸ“¦ where this page comes from