STRUCT IWL_MVM_VIF(9)
π struct iwl_mvm_vif(9) π
okay so β welcome to section 9 of the Kernel API Manual, bestie π. This is the page for struct iwl_mvm_vif, and no cap, it's literally "data per Virtual Interface, it is a MAC context." That's the whole NAME, and honestly? iconic brevity.
β¨ SYNOPSIS β¨
get a load of this absolute unit of a struct, iykyk:
struct iwl_mvm_vif {
struct iwl_mvm *mvm;
u16 id;
u16 color;
bool associated;
u8 ap_assoc_sta_count;
bool uploaded;
bool ap_ibss_active;
bool pm_enabled;
bool monitor_active;
bool session_prot_connection_loss;
u8 low_latency: 6;
u8 low_latency_actual: 1;
u8 authorized:1;
bool ps_disabled;
u32 ap_beacon_time;
bool bf_enabled;
bool ba_enabled;
#ifdef CONFIG_PM_SLEEP;
struct {
u8 kck[NL80211_KCK_EXT_LEN];
u8 kek[NL80211_KEK_EXT_LEN];
size_t kek_len;
size_t kck_len;
u32 akm;
__le64 replay_ctr;
bool valid;
} rekey_data;
int tx_key_idx;
bool seqno_valid;
u16 seqno;
#endif;
#if IS_ENABLED(CONFIG_IPV6);
struct in6_addr
target_ipv6_addrs[IWL_PROTO_OFFLOAD_NUM_IPV6_ADDRS_MAX];
unsigned long
tentative_addrs[BITS_TO_LONGS(IWL_PROTO_OFFLOAD_NUM_IPV6_ADDRS_MAX)];
int num_target_ipv6_addrs;
#endif;
#ifdef CONFIG_IWLWIFI_DEBUGFS;
struct dentry *dbgfs_dir;
struct dentry *dbgfs_slink;
struct iwl_dbgfs_pm dbgfs_pm;
struct iwl_dbgfs_bf dbgfs_bf;
struct iwl_mac_power_cmd_v2 mac_pwr_cmd;
int dbgfs_quota_min;
bool ftm_unprotected;
#endif;
u8 uapsd_misbehaving_ap_addr[ETH_ALEN];
struct delayed_work uapsd_nonagg_detected_wk;
bool csa_countdown;
bool csa_failed;
bool csa_bcn_pending;
bool csa_blocks_tx;
u16 csa_target_freq;
u16 csa_count;
u16 csa_misbehave;
struct delayed_work csa_work;
enum iwl_tsf_id tsf_id;
struct iwl_mvm_time_event_data time_event_data;
struct iwl_mvm_time_event_data hs_time_event_data;
enum iwl_roc_activity roc_activity;
bool p2p_in_binding;
netdev_features_t features;
struct ieee80211_sta *ap_sta;
struct ieee80211_key_conf *ap_early_keys[4];
struct {
struct ieee80211_key_conf *keys[2];
} bcn_prot;
u16 max_tx_op;
struct iwl_mvm_vif_link_info deflink;
struct iwl_mvm_vif_link_info *link[IEEE80211_MLD_MAX_NUM_LINKS];
};
she's long, she's got conditional compilation moments, she's got vibes π . now let's meet every single member, bestie β all of them, no skipping π«Ά
π¦ Members π¦
mvmβ pointer back to themvmstruct πΈidβ between0and3colorβ to solve races upon MAC addition and removalassociatedβ indicates that we're currently associated, used only for managing the firmware state iniwl_mvm_bss_info_changed_stationap_assoc_sta_countβ count of stations associated to us β valid only if VIF type is APuploadedβ indicates the MAC context has been added to the deviceap_ibss_activeβ indicates that AP/IBSS is configured and that the interface should get quota etc.pm_enabled- indicate if MAC power management is allowedpm_enabledβ indicates powersave is enabled β¨monitor_activeβ indicates that monitor context is configured, and that the interface should get quota etc.session_prot_connection_lossβ the connection was lost due to session protection ending without receiving a beacon, so we need to now protect the deauth separatelylow_latencyβ bit flags for low latency, seeenum iwl_mvm_low_latency_causefor causes.low_latency_actualβ boolean, indicates low latency is set, as a result fromlow_latencybit flags and takes force into account.authorizedβ indicates the AP station was set to authorizedps_disabledβ indicates that this interface requires PS to be disabledap_beacon_timeβ AP beacon time for synchronisation (on older FW)bf_enabledβ indicates if beacon filtering is enabledba_enabledβ indicated if beacon abort is enabledrekey_dataβ rekeying data for WoWLAN GTK rekey offloadtx_key_idxβ WEP transmit key index for D3seqno_validβ indicatesseqnois validseqnoβ storage for seqno for older firmware D0/D3 transitiontarget_ipv6_addrsβ IPv6 addresses on this interface for offload π§tentative_addrsβ bitmap of tentative IPv6 addresses intarget_ipv6_addrsnum_target_ipv6_addrsβ number oftarget_ipv6_addrsdbgfs_dirβ debugfs directory for this vifdbgfs_slinkβ debugfs symlink for this interfacedbgfs_pmβ power management debugfs datadbgfs_bfβ beamforming debugfs datamac_pwr_cmdβ debugfs override for MAC power commanddbgfs_quota_minβ debugfs value for minimal quotaftm_unprotectedβ unprotected FTM debugfs overrideuapsd_misbehaving_ap_addrβ MLD address/BSSID of U-APSD misbehaving AP, to not use U-APSD on reconnectionuapsd_nonagg_detected_wkβ worker for handling detection of no aggregation in U-APSDcsa_countdownβ indicates that CSA countdown may be startedcsa_failedβ CSA failed to schedule time event, report an error later πcsa_bcn_pendingβ indicates that we are waiting for a beacon on a new channelcsa_blocks_txβ CSA is blocking TXcsa_target_freqβ CSA target channel frequency (old implementation)csa_countβ CSA counter (old CSA implementation w/o firmware)csa_misbehaveβ CSA AP misbehaviour flag (old implementation)csa_workβ CSA work (old implementation)tsf_idβ the TSF resource ID assigned in firmware (for firmware needing that)time_event_dataβ session protection time event datahs_time_event_dataβ hotspot/AUX ROC time event dataroc_activityβ currently running ROC activity for this vif (orROC_NUM_ACTIVITIESif no activity is running).p2p_in_bindingβ indicates that this P2P-Device interface should be added to the binding, i.e. is running ROC right nowfeaturesβ hw features active for this vifap_staβ pointer to the AP STA data structureap_early_keysβ The firmware cannot install keys before stations etc., but higher layers work differently, so we store the keys here for later installation. π₯bcn_protβ beacon protection data (keys; FIXME: needs to be per link) πmax_tx_opβ max TXOP in usecs for all ACs, zero for no limit.deflinkβ default link data for use in non-MLOlinkβ link data for each link in MLO
π SEE ALSO π
all the friends-and-family of this struct, straight outta the kernel file ./drivers/net/wireless/intel/iwlwifi/mvm/mvm.h:
- struct
iwl_mvm_mod_params(9) enum iwl_power_scheme(9)enum iwl_mvm_low_latency_force(9)enum iwl_mvm_low_latency_cause(9)- struct
iwl_mvm_link_bf_data(9) - struct
iwl_probe_resp_data(9) - struct
iwl_mvm_vif_link_info(9) - struct
iwl_mvm_tt_mgmt(9) - struct
iwl_mvm_thermal_device(9) - struct
iwl_mvm_reorder_buffer(9) - struct
iwl_mvm_reorder_buf_entry(9) - struct
iwl_mvm_baid_data(9) - struct
iwl_mvm_tvqm_txq_info(9) - struct
iwl_mvm_acs_survey_channel(9) enum iwl_mvm_status(9)- struct
iwl_mvm_roc_ops(9) - struct
iwl_mvm_switch_vif_chanctx_ops(9)
okay and one last little sign-off, bestie π«Ά β this gorgeous page came from the source path./drivers/net/wireless/intel/i...and it's dated October 2026, and it'sstruct iwl_mvm_vif(9)all the way down. go read your structs, ily, 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