STRUCT IWL_LINK_CONFIG_CMD(9)
β¨ NAME β¨
struct iwl_link_config_cmd β the command structure you use to configure the LINK context in the MLD API, bestie. Also known as LINK_CONFIG_CMD =0x9 π«Ά This is from the Kernel API Manual, just so you know where we're living rn.
π SYNOPSIS π
okay so here's the whole struct, and yes it's giving "final boss of structs" energy but we're gonna get through it together π
struct iwl_link_config_cmd {
__le32 action;
__le32 link_id;
__le32 mac_id;
__le32 phy_id;
u8 local_link_addr[6];
__le16 reserved_for_local_link_addr;
__le32 modify_mask;
__le32 active;
union {
__le32 listen_lmac;
struct {
u8 block_tx;
u8 modify_bandwidth;
u8 reserved1[2];
};
};
__le32 cck_rates;
__le32 ofdm_rates;
__le32 cck_short_preamble;
__le32 short_slot;
__le32 protection_flags;
__le32 qos_flags;
struct iwl_ac_qos ac[AC_NUM + 1];
u8 htc_trig_based_pkt_ext;
u8 rand_alloc_ecwmin;
u8 rand_alloc_ecwmax;
u8 ndp_fdbk_buff_th_exp;
struct iwl_he_backoff_conf trig_based_txf[AC_NUM];
__le32 bi;
__le32 dtim_interval;
__le16 puncture_mask;
__le16 frame_time_rts_th;
__le32 flags;
__le32 flags_mask;
u8 ref_bssid_addr[6];
__le16 reserved_for_ref_bssid_addr;
u8 bssid_index;
u8 bss_color;
u8 spec_link_id;
u8 ul_mu_data_disable;
u8 ibss_bssid_addr[6];
__le16 reserved_for_ibss_bssid_addr;
struct iwl_npca_params npca_params;
struct iwl_ac_qos prio_edca_params;
__le32 reserved3[4];
};
π Members π
okay bestie, field by field, no skips, no "ngl I forgot that one" π
actionβ the action we're performing, checkenum iwl_ctxt_actionfor the deets.link_idβ the id of the link that this cmd configures.mac_idβ interface ID. Only matters ifactionisFW_CTXT_ACTION_ADDβ like, only then, fr.phy_idβ PHY index. Can only be changed if the link was inactive (and stays inactive). If the link is active (or becomes active), this field is literally ignored πlocal_link_addrβ the link's MAC address. Can be changed only if the link was inactive (and stays inactive). If the link is active (or becomes active), this field is ignored too β same rule, iconic consistency.reserved_for_local_link_addrβ reserved π¦modify_maskβ fromenum iwl_link_ctx_modify_flags, selects what to change. Relevant only ifactionisFW_CTXT_ACTION_MODIFY.activeβ indicates whether the link is active or not.{unnamed_union}β anonymous, mysterious, no name, main character energy β¨listen_lmacβ indicates whether the link should be allocated on the Listen Lmac or on the Main Lmac. Cannot be changed on an active Link. Relevant only for eSR.{unnamed_struct}β anonymous again πblock_txβ tell the firmware that this link can't Tx. This should be used only when a link is de-activated because of CSA withmode = 1. Available since version 5.modify_bandwidthβ bandwidth request value for RX OMI (see alsoLINK_CONTEXT_MODIFY_BANDWIDTH), fromenum iwl_link_modify_bandwidth.reserved1β in version 2,listen_lmacbecame reserved.cck_ratesβ basic rates available for CCK.ofdm_ratesβ basic rates available for OFDM.cck_short_preambleβ1for enabling short preamble,0otherwise.short_slotβ1for enabling short slots,0otherwise.protection_flagsβ combination ofenum iwl_link_ctx_protection_flags.qos_flagsβ fromenum iwl_mac_qos_flags.acβ oneiwl_mac_qosconfiguration for each AC.htc_trig_based_pkt_extβ default PE in 4us units.rand_alloc_ecwminβ randomCWmin = 2**ECWmin-1.rand_alloc_ecwmaxβ randomCWmax = 2**ECWmax-1.ndp_fdbk_buff_th_expβ set exponent for the NDP feedback buffered threshold.trig_based_txfβ MU EDCA Parameter set for the trigger based traffic queues.biβ beacon interval in TU, applicable only when associated.dtim_intervalβ DTIM interval in TU. Relevant only for GO, otherwise this is offloaded.puncture_maskβ puncture mask for EHT (removed inVER_3). gone but not forgotten πframe_time_rts_thβ HE duration RTS threshold, in units of 32us.flagsβ a combination fromenum iwl_link_ctx_flags.flags_maskβ what offlagshave changed. Alsoenum iwl_link_ctx_flags. Below fields are for multi-bssid:ref_bssid_addrβ reference BSSID used by the AP.reserved_for_ref_bssid_addrβ reserved πbssid_indexβ index of the associated VAP.bss_colorβ 11ax AP ID that is used in the HE SIG-A to mark inter BSS frame.spec_link_idβlink_idas the AP knows it.ul_mu_data_disableβ OM Control UL MU Data Disable RX Support (bit 44) in HE MAC Capabilities information field as defined in figure 9-897 in IEEE802.11REVme-D5.0. yes that's the whole citation, we keep it π₯ibss_bssid_addrβ bssid for ibss.reserved_for_ibss_bssid_addrβ reserved πΈnpca_paramsβ NPCA parameters.prio_edca_paramsβ priority EDCA parameters for enhanced QoS.reserved3β reserved for future use π (future us is gonna have OPINIONS)
heads up bestie:phy_id,local_link_addr, andlisten_lmacare all "only while inactive" girls. If the link is active or becoming active, those fields get ignored and that's not a vibe, that's just the spec π
π SEE ALSO π
the whole group chat of related definitions, all of them, no cap β and they live in 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)enum iwl_fw_sta_type(9)struct iwl_sta_cfg_cmd_v1(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)
and that's the whole page, bestie, you ate that π this one came out of Kernel API Manual, page dated October 2026, sourced from ./drivers/net/wireless/intel/i... β go read the rest of the kernel docs, ily, bye ππ§
π¦ 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