STRUCT IWL_MAC_POWER_CMD(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct iwl_mac_power_cmd β€” the Kernel API manual, but make it make sense ✨

okay bestie, so the manual name here is struct iwl_mac_power_cmd(9) and this whole page is about one little struct that carries the power command MAC_PM_POWER_TABLE = 0xA9 (it's a command, and it has a simple generic response β€” slay, low-maintenance king πŸ‘‘).


🌸 NAME 🌸

struct iwl_mac_power_cmd β€” the power command MAC_PM_POWER_TABLE = 0xA9 (a command, with a simple generic response). That's it, that's the vibe πŸ’…


✨ SYNOPSIS ✨

Like, here's the literal shape of it, copied exactly because we do NOT freestyle structs in this house:

struct iwl_mac_power_cmd {
    __le32 id_and_color;
    __le16 flags;
    __le16 keep_alive_seconds;
    __le32 rx_data_timeout;
    __le32 tx_data_timeout;
    u8 lprx_rssi_threshold;
    u8 skip_dtim_periods;
    u8 qndp_tid;
    u8 uapsd_ac_flags;
 };

(yeah there's a stray space before that last }; β€” we are not touching it, it's canon 🫢)


πŸ¦‹ Members πŸ¦‹

okay so every single field, no skips, let's go:

  • id_and_color β€” the MAC context identifier, and it's an enum iwl_ctxt_id_and_color. it's giving "your name and your assigned color" ✨
  • flags β€” the power table command flags, and they come from POWER_FLAGS_*. pick your faves πŸ’…
  • keep_alive_seconds β€” how long the keep alive period is, in seconds. default is 25 sec. minimum allowed is 3 * DTIM. and listen: the keep alive period must be set regardless of the power scheme or the current power state. also the FW uses this value even when PM is disabled. no skipping this one, it's main character energy πŸ‘‘
  • rx_data_timeout β€” the minimum time (usec) from the last Rx packet for the AM to PSM transition β€” legacy PM. noted, periodt.
  • tx_data_timeout β€” same deal but for Tx: minimum time (usec) from the last Tx packet for the AM to PSM transition β€” legacy PM. twins fr fr 🫢
  • lprx_rssi_threshold β€” the signal strength up to which LP RX can be enabled. default is 80dbm. iconic little threshold πŸŽ€
  • skip_dtim_periods β€” how many DTIM periods to skip if the Skip over DTIM flag is set. example time: if you need to skip over one DTIM, this value needs to be set to 2 (DTIM periods). yes, 2, not 1, don't come for me, that's what it says 😭
  • qndp_tid β€” the TID client that shall be used for uAPSD QNDP triggers. he's got one job and he's doing it πŸ’€
  • uapsd_ac_flags β€” sets the trigger-enabled and delivery-enabled indication for each corresponding AC. and for the correct values, use IEEE80211_WMM_IE_STA_QOSINFO_AC*. literally use those, iykyk 🌈

🧚 SEE ALSO 🧚

the whole friend group, no one left behind (and yes, from the kernel file ./drivers/net/wireless/intel/iwlwifi/fw/api/power.h):

  • enum iwl_ltr_config_flags(9)
  • struct iwl_ltr_config_cmd_v1(9)
  • struct iwl_ltr_config_cmd(9)
  • enum iwl_power_flags(9)
  • struct iwl_powertable_cmd(9)
  • enum iwl_device_power_flags(9)
  • struct iwl_device_power_cmd(9)
  • struct iwl_mac_power_cmd_v2(9)
  • struct iwl_dev_tx_power_common(9)
  • struct iwl_dev_tx_power_cmd_v3(9)
  • struct iwl_dev_tx_power_cmd_v4(9)
  • struct iwl_dev_tx_power_cmd_v5(9)
  • struct iwl_dev_tx_power_cmd_v8(9)
  • struct iwl_dev_tx_power_cmd_v3_v8(9)
  • struct iwl_dev_tx_power_cmd_v9(9)
  • struct iwl_dev_tx_power_cmd_v10(9)
  • enum iwl_geo_per_chain_offset_operation(9)
  • struct iwl_per_chain_offset(9)
  • struct iwl_geo_tx_power_profiles_cmd_v1(9)
  • struct iwl_geo_tx_power_profiles_cmd_v2(9)
  • struct iwl_geo_tx_power_profiles_cmd_v3(9)
  • struct iwl_geo_tx_power_profiles_cmd_v4(9)
  • struct iwl_geo_tx_power_profiles_cmd_v5(9)
  • struct iwl_geo_tx_power_profiles_cmd_v6(9)
  • struct iwl_geo_tx_power_profiles_resp(9)
  • enum iwl_ppag_flags(9)
  • union iwl_ppag_table_cmd(9)
  • struct iwl_sar_offset_mapping_cmd(9)
  • struct iwl_beacon_filter_cmd(9)
  • struct iwl_txpower_constraints_cmd(9)

ngl bestie, keep_alive_seconds is mandatory even when PM is disabled β€” that's not a suggestion, that's the rules 😀

and that's the page!! mwah πŸ’– sourced from ./drivers/net/wireless/intel/i..., dated October 2026, and it's all about struct iwl_mac_power_cmd(9) β€” go forth and set your keep-alives, queen πŸŽ€πŸ‘‘πŸ¦‹

πŸ“¦ where this page comes from