STRUCT IWL_SCD_QUEUE_CFG_CMD(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct iwl_scd_queue_cfg_cmd(9) β€” like, the scheduler queue allocation command bestie ✨

okay so this is a page from the Kernel API Manual, section 9, and it's all about struct iwl_scd_queue_cfg_cmd. it's giving "firmware tells the scheduler to allocate a queue" energy and honestly? iconic. let's get into it πŸŽ€


🌸 NAME 🌸

struct iwl_scd_queue_cfg_cmd β€” the scheduler queue allocation command. that's it, that's the whole vibe. she allocates queues, she's booked and busy πŸ’…


✨ SYNOPSIS ✨

bestie, look at her. look at the whole struct. every field, exactly as written, no notes:

struct iwl_scd_queue_cfg_cmd {
    __le32 operation;
    union {
      struct {
        __le32 sta_mask;
        u8 tid;
        u8 reserved[3];
        __le32 flags;
        __le32 cb_size;
        __le64 bc_dram_addr;
        __le64 tfdq_dram_addr;
      } add;
      struct {
        __le32 sta_mask;
        __le32 tid;
      } remove;
      struct {
        __le32 old_sta_mask;
        __le32 tid;
        __le32 new_sta_mask;
      } modify;
    } u;
 };

a union with three whole personalities inside β€” add, remove, modify β€” and she switches between them depending on what you're doing. main character energy fr fr πŸ‘‘


πŸ¦‹ Members πŸ¦‹

  • operation β€” the actual operation you're doing, and for the full menu you gotta look at enum iwl_scd_queue_cfg_operation. lowkey the most important field here ngl.
  • u β€” the union, and which part of it matters depends on the command usage. choose your fighter πŸ’€

πŸ’– the add era πŸ’–

  • u.add.sta_mask β€” station mask. bestie's name tag.
  • u.add.tid β€” the TID. yes queen, traffic identifier.
  • u.add.reserved β€” reserved. she's just there. don't touch. we respect her space πŸ™ˆ
  • u.add.flags β€” flags from enum iwl_tx_queue_cfg_actions…
⚠️ okay so this is the one exception: TX_QUEUE_CFG_ENABLE_QUEUE is not valid here. not allowed. not today. do not pass go. put it out of your mind entirely πŸ’€
  • u.add.cb_size β€” size code. short and sweet.
  • u.add.bc_dram_addr β€” byte-count table IOVA. literally the address, keep it exact 🫢
  • u.add.tfdq_dram_addr β€” TFD queue IOVA. also exact.

🧚 the remove era 🧚

  • u.remove.sta_mask β€” station mask of the queue you're removing. bye bestie πŸ‘‹
  • u.remove.tid β€” TID of the queue you're removing.

🌈 the modify era 🌈

  • u.modify.old_sta_mask β€” old station mask, for modify. the before pic.
  • u.modify.tid β€” TID of the queue you're modifying.
  • u.modify.new_sta_mask β€” new station mask, for modify. the after pic ✨

πŸ‘‘ SEE ALSO πŸ‘‘

the whole friend group, and you WILL be introduced to every single one of them, no cap. kernel file ./drivers/net/wireless/intel/iwlwifi/fw/api/datapath.h, plus:

  • enum iwl_data_path_subcmd_ids(9)
  • struct iwl_mu_group_mgmt_cmd(9)
  • struct iwl_mu_group_mgmt_notif(9)
  • struct iwl_time_sync_cfg_cmd(9)
  • enum iwl_synced_time_operation(9)
  • struct iwl_synced_time_cmd(9)
  • struct iwl_synced_time_rsp(9)
  • struct iwl_time_msmt_ptp_ctx(9)
  • struct iwl_time_msmt_notify(9)
  • struct iwl_time_msmt_cfm_notify(9)
  • struct iwl_channel_estimation_cfg(9)
  • enum iwl_thermal_dual_chain_req_events(9)
  • struct iwl_thermal_dual_chain_request(9)
  • struct iwl_rlc_properties(9)
  • struct iwl_sad_properties(9)
  • struct iwl_rlc_config_cmd(9)
  • enum iwl_rx_baid_action(9)
  • struct iwl_rx_baid_cfg_cmd_alloc(9)
  • struct iwl_rx_baid_cfg_cmd_modify(9)
  • struct iwl_rx_baid_cfg_cmd_remove_v1(9)
  • struct iwl_rx_baid_cfg_cmd_remove(9)
  • struct iwl_rx_baid_cfg_cmd(9)
  • struct iwl_rx_baid_cfg_resp(9)
  • enum iwl_scd_queue_cfg_operation(9)
  • enum iwl_sec_key_flags(9)
  • struct iwl_sec_key_cmd(9)

like, that's a lot of mutuals. go say hi πŸ’œ


and that's the page!! mwah πŸ’‹ this one came from ./drivers/net/wireless/intel/i..., dated October 2026, and it lives at struct iwl_s...ueue_cfg_cmd(9) β€” go forth and allocate queues responsibly bestie, ily, bye πŸ«ΆπŸŽ€

πŸ“¦ where this page comes from