STRUCT IWL_STA_CFG_CMD(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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 to 0 for STATION_TYPE_NAN_BCAST and STATION_TYPE_NAN_MGMT as 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. See enum 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. both BACK and non-BACK frames in a single AGG.
  • trig_rnd_alloc β€” indicates that trigger based random allocation is enabled according to UORA element 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