STRUCT IWL_STA_CFG_CMD(9)
π struct iwl_sta_cfg_cmd(9) β the Kernel API Manual, bestie edition π
okay so this is a page straight out of the Kernel API Manual, and today's main character is struct iwl_sta_cfg_cmd. buckle up, we're getting into the wifi firmware weeds together π¦
β¨ NAME β¨
struct iwl_sta_cfg_cmd β the cmd structure you use to add a peer sta to the uCode's station table ( STA_CONFIG_CMD = 0xA ) π«
like, that's the whole vibe. it's the little envelope you hand to the uCode so it knows a new station exists. slay.
πΈ SYNOPSIS πΈ
here's the whole struct, character for character, no notes (jk, tons of notes below):
struct iwl_sta_cfg_cmd {
__le32 sta_id;
__le32 link_mask;
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;
u8 use_ldpc_x2_cw;
u8 use_icf;
u8 dps_pad_time;
u8 dps_trans_delay;
u8 dps_enabled;
u8 mic_prep_pad_delay;
u8 mic_compute_pad_delay;
u8 nmi_sta_id;
u8 ndi_local_addr[ETH_ALEN];
u8 reserved[2];
};
π Members π
okay girl, field-by-field, let's go π«Ά
sta_idβ the index of the station in uCode's station table. her little seat number πlink_maskβ bitmap of link FW IDs used with this STA. Should be set to0forSTATION_TYPE_NAN_BCASTandSTATION_TYPE_NAN_MGMTas they are not associated with any link added by the driver. no cap, those two literally don't have a link, so zero it out πpeer_mld_addressβ the peers mld address.reserved_for_peer_mld_addressβ reserved. (it's reserved. that's it. that's the tea β)peer_link_addressβ the address of the link that is used to communicate with this sta.reserved_for_peer_link_addressβ reserved. same energy β¨station_typeβ type of this station. Seeenum iwl_fw_sta_type. iykyk πassoc_idβ for GO only.beamform_flagsβ beam forming controls.mfpβ indicates whether the STA uses management frame protection or not.mimoβ indicates whether the sta uses mimo or not.mimo_protectionβ indicates whether the sta uses mimo protection or not.ack_enabledβ indicates that the AP supports receiving ACK- enabled AGG, i.e. bothBACKand non-BACKframes in a single AGG.trig_rnd_allocβ indicates that trigger based random allocation is enabled according toUORAelement existence.tx_ampdu_spacingβ minimum A-MPDU spacing:4- 2us density,5- 4us density,6- 8us density,7- 16us density. literally just vibes in microsecond form π§tx_ampdu_max_sizeβ maximum A-MPDU length:0- 8K,1- 16K,2- 32K,3- 64K,4- 128K,5- 256K,6- 512K,7- 1024K. the numbers ate, ngl π₯sp_lengthβ the size of the SP in actual number of frames.uapsd_acsβ 4 LS bits are trigger enabled ACs, 4 MS bits are the deliver enabled ACs. low bits and high bits doing different jobs, iconic behavior πpkt_extβ optional, exists according to PPE-present bit in the HE/EHT-PHY capa. she's optional but she still shows up when the PPE-present bit says so πββοΈhtc_flagsβ which features are supported in HTC.use_ldpc_x2_cwβ Indicates whether to use LDPC with double CW.use_icfβ Indicates whether to use ICF instead of RTS.dps_pad_timeβ DPS (Dynamic Power Save) padding delay resolution to ensure proper timing alignment. timing alignment is the whole game fr fr βdps_trans_delayβ DPS minimal time that takes the peer to return to low power.dps_enabledβ flag indicating whether or not DPS is enabled.mic_prep_pad_delayβ MIC prep time padding.mic_compute_pad_delayβ MIC compute time padding.nmi_sta_idβ for an NDI peer STA, the NMI peer STA ID it relates to.ndi_local_addrβ for an NDI peer STA or NAN multicast data station, the local NDI interface MAC address. local only, bestie πreservedβ Reserved for alignment. the padding doing its little job so everything lines up pretty π
π¦ SEE ALSO π¦
the whole group chat, all invited, all listed, no one left out (and i mean it β every single reference, exactly as written):
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_v1(9), struct iwl_sta_cfg_cmd_v2(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 a long list but every one of them matters, don't @ me π
and that's the page!! source file path ./drivers/net/wireless/intel/i... (yes it's truncated in the original, keeping it exactly like that π), dated October 2026, all about struct iwl_sta_cfg_cmd(9). mwah, go forth and add your stations, bestie ππβ¨
π¦ 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