STRUCT IWL_STA_CFG_CMD_V1(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct iwl_sta_cfg_cmd_v1(9) πŸ’…

okay bestie, so this is a page from the Kernel API Manual, and honestly? it's giving "under the hood of your wifi" realness. we're looking at struct iwl_sta_cfg_cmd_v1 β€” no cap, this is the cmd structure you use to add a peer sta to the uCode's station table, and its little ID badge says STA_CONFIG_CMD = 0xA. iconic. πŸŽ€


✨ SYNOPSIS ✨

struct iwl_sta_cfg_cmd_v1 {
    __le32 sta_id;
    __le32 link_id;
    u8 peer_mld_address[ETH_ALEN];
    __le16 reserved_for_peer_mld_address;
    u8 peer_link_address[ETH_ALEN];
    __le16 reserved_for_peer_link_address;
    __le32 station_type;
    __le32 assoc_id;
    __le32 beamform_flags;
    __le32 mfp;
    __le32 mimo;
    __le32 mimo_protection;
    __le32 ack_enabled;
    __le32 trig_rnd_alloc;
    __le32 tx_ampdu_spacing;
    __le32 tx_ampdu_max_size;
    __le32 sp_length;
    __le32 uapsd_acs;
    struct iwl_he_pkt_ext_v2 pkt_ext;
    __le32 htc_flags;
 };

like, look at all those fields. she's thorough. πŸ¦‹


πŸ‘― MEMBERS πŸ‘―

  • sta_id β€” the index of the station in the uCode's station table. her little seat number, basically. πŸ’Ί
  • link_id β€” the id of the link that is used to communicate with this sta. which link? that link. πŸ”—
  • peer_mld_address β€” the peer's mld address. straightforward, we love her.
  • reserved_for_peer_mld_address β€” reserved. that's it. that's the whole vibe. don't touch. πŸ™ˆ
  • peer_link_address β€” the address of the link that is used to communicate with this sta. yes it's a second address, she contains multitudes. πŸ¦‹
  • reserved_for_peer_link_address β€” reserved. again. hands off, bestie. πŸ’€
  • station_type β€” the type of this station. peek at enum iwl_fw_sta_type if you wanna know more, iykyk. πŸ‘‘
  • assoc_id β€” for GO only. that's the whole note. short and mysterious. ✨
  • beamform_flags β€” beam forming controls. beep boop, shape that signal. πŸ“‘
  • mfp β€” tells you whether the STA uses management frame protection or not. yes/no energy. πŸ”₯
  • mimo β€” tells you whether the sta uses mimo or not. again with the yes/no. πŸ“Ά
  • mimo_protection β€” tells you whether the sta uses mimo protection or not. third time's the charm.
  • ack_enabled β€” indicates that the AP supports receiving ACK-enabled AGG, i.e. both BACK and non-BACK frames in a single AGG. lowkey a mouthful but she said what she said. πŸ’…
  • trig_rnd_alloc β€” indicates that trigger based random allocation is enabled according to UORA element existence. fancy. 🌸
  • tx_ampdu_spacing β€” minimum A-MPDU spacing, and here's the cheat sheet: 4 - 2us density, 5 - 4us density, 6 - 8us density, 7 - 16us density. memorize it or don't, i'm not your mom. πŸŽ€
  • tx_ampdu_max_size β€” maximum A-MPDU length, another cheat sheet: 0 - 8K, 1 - 16K, 2 - 32K, 3 - 64K, 4 - 128K, 5 - 256K, 6 - 512K, 7 - 1024K. the way it just keeps going up 😭
  • sp_length β€” the size of the SP in actual number of frames. actual frames. not vibes. frames. 🧚
  • uapsd_acs β€” the 4 LS bits are trigger enabled ACs, and the 4 MS bits are the deliver enabled ACs. bit math, but make it cute. ⭐
  • pkt_ext β€” optional, exists according to the PPE-present bit in the HE/EHT-PHY capa. so like, she shows up only if she's invited. 🫢
  • htc_flags β€” which features are supported in HTC. the ✨feature flags✨ of it all.

🌈 SEE ALSO 🌈

the whole extended friend group, fr fr β€” these all live in the kernel file ./drivers/net/wireless/intel/iwlwifi/fw/api/mac-cfg.h:

enum iwl_mac_conf_subcmd_ids(9), struct iwl_p2p_noa_attr(9), struct iwl_probe_resp_data_notif(9), struct iwl_missed_vap_notif(9), struct iwl_channel_switch_start_notif_v1(9), struct iwl_channel_switch_start_notif(9), struct iwl_channel_switch_error_notif_v1(9), struct iwl_channel_switch_error_notif(9), struct iwl_cancel_channel_switch_cmd(9), struct iwl_chan_switch_te_cmd(9), struct iwl_mac_low_latency_cmd(9), struct iwl_mac_client_data(9), struct iwl_mac_p2p_dev_data(9), enum iwl_mac_config_filter_flags(9), struct iwl_mac_wifi_gen_support_v2(9), struct iwl_mac_wifi_gen_support(9), struct iwl_mac_config_cmd_v3(9), struct iwl_mac_nan_data(9), struct iwl_mac_config_cmd(9), enum iwl_link_ctx_modify_flags(9), enum iwl_link_ctx_protection_flags(9), enum iwl_link_ctx_flags(9), enum iwl_link_modify_bandwidth(9), enum iwl_npca_flags(9), struct iwl_npca_params(9), struct iwl_link_config_cmd(9), enum iwl_fw_sta_type(9), struct iwl_sta_cfg_cmd_v2(9), struct iwl_sta_cfg_cmd(9), struct iwl_aux_sta_cmd(9), struct iwl_remove_sta_cmd(9), struct iwl_mvm_sta_disable_tx_cmd(9), enum iwl_mvm_fw_esr_recommendation(9), struct iwl_esr_mode_notif_v1(9), enum iwl_esr_leave_reason(9), struct iwl_esr_mode_notif(9), struct iwl_missed_beacons_notif(9), struct iwl_esr_trans_fail_notif(9), struct iwl_twt_operation_cmd(9), struct iwl_nan_band_config(9), enum iwl_nan_flags(9), struct iwl_nan_config_cmd(9), struct iwl_nan_schedule_cmd_v1(9), struct iwl_nan_schedule_cmd(9), struct iwl_nan_peer_cmd(9), enum iwl_nan_cluster_notif_flags(9), struct iwl_nan_cluster_notif(9), struct iwl_nan_dw_end_notif(9), struct iwl_nan_ulw_attr_notif(9), enum iwl_nan_sched_update_status(9), struct iwl_nan_sched_update_completed_notif(9)


that's the whole page bestie, go forth and configure your stations πŸ’–βœ¨πŸŽ€

sign-off szn: this lil masterpiece comes from ./drivers/net/wireless/intel/i... and it's dated October 2026 β€” yeah, from the future, main character energy only. mwah. πŸ’…πŸ«Ά

πŸ“¦ where this page comes from