STRUCT IWL_MLD_VIF(9)
π struct iwl_mld_vif(9) β the kernel API manual, bestie edition π
okay so this is a page from the Kernel API Manual (that's the manual name, iykyk) and it's all about struct iwl_mld_vif, which lowkey runs the whole virtual interface situation. sit down, grab a strawberry π, we're gonna go through it together.
β¨ NAME β¨
struct iwl_mld_vif β virtual interface (MAC context) configuration parameters. literally the vibe-check container for a vif's MAC context settings π
πΈ SYNOPSIS πΈ
here's the whole thing, no crumbs left behind, copy-paste energy:
struct iwl_mld_vif {
struct {
u8 fw_id;
struct iwl_mld_session_protect session_protect;
struct ieee80211_sta *ap_sta;
bool authorized;
u8 num_associated_stas;
bool ap_ibss_active;
enum iwl_mld_cca_40mhz_wa_status cca_40mhz_workaround;
#ifdef CONFIG_IWLWIFI_DEBUGFS;
bool beacon_inject_active;
#endif;
u8 low_latency_causes;
time64_t last_link_activation_time;
};
struct iwl_mld *mld;
struct iwl_mld_link deflink;
struct iwl_mld_link *link[IEEE80211_MLD_MAX_NUM_LINKS];
struct {
struct iwl_mld_nan_link links[IWL_FW_MAX_LINKS];
bool mac_added;
struct iwl_mld_int_sta bcast_sta;
struct iwl_mld_int_sta mgmt_sta;
struct iwl_mld_int_sta mcast_data_sta;
struct ieee80211_key_conf *tx_igtk;
} nan;
struct iwl_mld_emlsr emlsr;
#ifdef CONFIG_PM_SLEEP;
struct iwl_mld_wowlan_data wowlan_data;
#endif;
#ifdef CONFIG_IWLWIFI_DEBUGFS;
bool use_ps_poll;
bool disable_bf;
struct dentry *dbgfs_slink;
#endif;
enum iwl_roc_activity roc_activity;
struct iwl_mld_int_sta aux_sta;
struct wiphy_delayed_work mlo_scan_start_wk;
};
π¦ Members π¦
okay now the member-by-member tour, main character energy for each one:
{unnamed_struct}β anonymous. that's it, that's the whole description. mysterious. iconique. πfw_idβ fw id of the mac context.session_protectβ session protection parameters.ap_staβ pointer to AP sta, for easier access to it. Relevant only for STA vifs.authorizedβ indicates the AP station was set to authorized.num_associated_stasβ number of associated STAs. Relevant only for AP mode.ap_ibss_activeβ whether the AP/IBSS was started.cca_40mhz_workaroundβ When we are connected in 2.4 GHz and 40 MHz, and the environment is too loaded, we work around this by reconnecting to the same AP with 20 MHz. This manages the status of the workaround. (a whole little glow-up arc for your connection β¨)beacon_inject_activeβ indicates an active debugfs beacon ie injection.low_latency_causesβ bit flags, indicating the causes for low-latency, seeiwl_mld_low_latency_cause.last_link_activation_timeβ last time a link was activated, for deferring MLO scans (to make them more reliable). it's giving "give it a sec, bestie" β³mldβ pointer to the mld structure.deflinkβ default link data, for use in non-MLO,linkβ reference to link data for each valid link, for use in MLO.nanβ NAN parameters.nan.linksβ NAN links for FW (indexed by FW link ID).nan.mac_addedβ track whether or not the MAC was added to FW.nan.bcast_staβ internal station used for NAN synchronization and discovery activities. No queue is associated with it. (no queue, no problem π«Ά)nan.mgmt_staβ internal station used for NAN management frames, e.g., SDFs and NAFs.nan.mcast_data_staβ internal station used for multicast NAN Data frames.nan.tx_igtkβ TX IGTK key for NAN, tracked separately since NAN does not use the vif links.emlsrβ information related to EMLSR.wowlan_dataβ data used by the wowlan suspend flow.use_ps_pollβ use ps_poll frames.disable_bfβ disable beacon filter.dbgfs_slinkβ debugfs symlink for this interface.roc_activityβ the id of theroc_activityrunning. Relevant for STA and p2p device only. Set toROC_NUM_ACTIVITIESwhen not in use.aux_staβ station used for remain on channel. Used in P2P device.mlo_scan_start_wkβ worker to start a deferred MLO scan.
π SEE ALSO π
go be nosy in these, bestie, they're all linked:
- Kernel file
./drivers/net/wireless/intel/iwlwifi/mld/iface.henumiwl_mld_emlsr_blocked(9), enumiwl_mld_emlsr_exit(9), structiwl_mld_emlsr(9)
aaaand that's the page!! π ngl you ate that whole struct. this one came from ./drivers/net/wireless/intel/i... (yes that's the truncated source path, the manpage really does cut it off like that π) and it's dated October 2026, so mark your calendar and stan struct iwl_mld_vif(9) forever. periodt. π
π₯π
π¦ 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