STRUCT IWL_STA_CFG_CMD_V1(9)
π 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 atenum iwl_fw_sta_typeif 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
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms