STRUCT IWL_TLC_CONFIG_CMD(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ¦‹ struct iwl_tlc_config_cmd β€” TLC configuration πŸ¦‹

Okay bestie, so this one is a Kernel API Manual page, and it's literally the whole deal on struct iwl_tlc_config_cmd β€” the TLC config struct. No cap, it's just a struct + a member-by-member glow-up tour. Let's get into it πŸ’…


✨ SYNOPSIS ✨

Here's the whole vibe, verbatim, don't @ me:

struct iwl_tlc_config_cmd {
    __le32 sta_mask;
    __le32 phy_id;
    u8 max_ch_width;
    u8 mode;
    u8 chains;
    u8 sgi_ch_width_supp;
    __le16 flags;
    __le16 non_ht_rates;
    __le32 ht_rates[IWL_TLC_NSS_MAX][IWL_TLC_MCS_PER_BW_NUM_V4];
    __le16 max_mpdu_len;
    __le16 max_tx_op;
 };

πŸŽ€ Members πŸŽ€

Girl. The members. Every single one, here we go:

  • sta_mask β€” the station mask. And the tea here 🍡: in NAN we can have multiple logical stations of the same peer (like, ones that share the same TLC configuration). Multiple. Logical. Stations. Iconic behavior honestly.
  • phy_id β€” the phy id that gets used for this TLC configuration.
  • max_ch_width β€” the max supported channel width, straight from enum iwl_tlc_mng_cfg_cw.
  • mode β€” it's enum iwl_tlc_mng_cfg_mode. That's it, that's the field.
  • chains β€” a bitmask of enum iwl_tlc_mng_cfg_chains.
  • sgi_ch_width_supp β€” a bitmap of SGI support per channel width, and you build it with BIT(enum iwl_tlc_mng_cfg_cw). Cute little bitwise moment.
  • flags β€” a bitmask of enum iwl_tlc_mng_cfg_flags.
  • non_ht_rates β€” a bitmap of supported legacy rates. The old-school ones, respectfully.
  • ht_rates β€” a bitmap of enum iwl_tlc_mng_ht_rates, per <nss, channel-width> pair. And the pair indexing, iykyk:
    • 0 β€” 80mhz width and below
    • 1 β€” 160mhz
    • 2 β€” 320mhz
  • max_mpdu_len β€” max MPDU length, in bytes. Bytes!! Not vibes.
  • max_tx_op β€” max TXOP in uSecs for all AC (BK, BE, VO, VI). Set it to zero for no limit 🫢

πŸ”₯ SEE ALSO πŸ”₯

Kernel file ./drivers/net/wireless/intel/iwlwifi/fw/api/rs.h, plus this 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_v4(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)

✨ okay that's the whole page, go forth and configure your TLC ✨

And the cute little sign-off, fr: this one came from ./drivers/net/wireless/intel/i... (the path is literally truncated like that, not my fault 😭), dated October 2026, out of the Kernel API Manual. Bye bestie, slay πŸŽ€πŸ’–

πŸ“¦ where this page comes from