STRUCT IWL_MVM_VIF_LINK_INFO(9)
π¦ struct iwl_mvm_vif_link_info β the Kernel API Manual, section 9, bestie edition
okay so this is a page from the Kernel API Manual, section 9, all about struct iwl_mvm_vif_link_info β and yes the header in the original is literally struct iwl_m...if_link_info(9) because man page titles got truncated and honestly? relatable, we've all been cut off mid-sentence in the group chat π
β¨ NAME β¨
struct iwl_mvm_vif_link_info β the per-link data that lives inside a Virtual Interface π
like, one struct per link, and she's carrying a LOT.
πΈ SYNOPSIS πΈ
struct iwl_mvm_vif_link_info {
u8 bssid[ETH_ALEN];
u8 ap_sta_id;
u8 fw_link_id;
struct iwl_mvm_int_sta bcast_sta;
struct iwl_mvm_int_sta mcast_sta;
struct {
u32 num_beacons, accu_num_beacons;
u8 avg_signal;
} beacon_stats;
enum ieee80211_smps_mode smps_requests[NUM_IWL_MVM_SMPS_REQ];
struct iwl_probe_resp_data *probe_resp_data;
struct ieee80211_key_conf *igtk;
bool he_ru_2mhz_block;
bool active;
bool listen_lmac;
bool csa_block_tx;
u16 cab_queue;
struct iwl_mvm_phy_ctxt *phy_ctxt;
struct ieee80211_tx_queue_params queue_params[IEEE80211_NUM_ACS];
u16 mgmt_queue;
struct iwl_mvm_link_bf_data bf_data;
u32 average_beacon_energy;
};
look at her. absolute main character struct energy. no notes. π
π Members π
okay bestie, field by field, let's get into it:
bssidβ the BSSID for this (client) interface. her government name, basically πͺͺap_sta_idβ thesta_idof the AP. important caveat: this is valid only if the VIF type isSTAπfw_link_idβ the id of the link, according to the FW API. the firmware's own little name tag for her πbcast_staβ station used for broadcast packets. used by the following vifs:P2P_DEVICE,GOandAP. so like, the broadcast girlies π’mcast_staβ multicast station. sister of the above, different crowd π«Άbeacon_statsβ beacon statistics, and she contains three things: the number of received beacons (num_beacons), the number of received beacons accumulated over an FW restart (accu_num_beacons), and the current average signal of beacons retrieved from the firmware (avg_signal). a whole little trio in a nested struct, iconic πsmps_requestsβ the SMPS requests of different parts of the driver, combined on update to yield the overall request to mac80211. democracy in aNUM_IWL_MVM_SMPS_REQ-sized array πprobe_resp_dataβ data from an FW notification, used to store NOA and CSA related data that gets inserted into the probe response. the receipts, filed for later π¨igtkβ the current IGTK programmed into the firmware. key material, handle with care πhe_ru_2mhz_blockβ when set, 26-tone RU OFDMA transmissions should be blocked. just say no to 26-tone RU OFDMA π«activeβ indicates the link is active in FW. purely for sanity checking, she's a vibe check in boolean form βlisten_lmacβ indicates this link is allocated to the listen LMAC. yes she's on listen duty πcsa_block_txβ we got CSA withmode=1. that's the whole note. that's the field πcab_queueβ the content-after-beacon (multicast) queue. cab stands for content-after-beacon, not the taxi, sorry to disappoint πphy_ctxtβ the phy context allocated to this link, if any. note the if any β sometimes she's allocated, sometimes she's not, she contains multitudes π§queue_paramsβ QoS params for this MAC, in anIEEE80211_NUM_ACS-sized array πmgmt_queueβ the queue number for unbufferable management frames. unbufferable, honestly same πbf_dataβ beacon filtering data, in the form of astruct iwl_mvm_link_bf_dataπaverage_beacon_energyβ average beacon energy for beacons received during client connections. energy, but make it literally measurable β‘
no cap: every field above is straight from the man page β I'm just narrating, not inventing a single thing π«Ά
π₯ SEE ALSO π₯
go read the whole friend group, they're all in the kernel file ./drivers/net/wireless/intel/iwlwifi/mvm/mvm.h, struct iwl_mvm_vif_link_info:
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(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)
and that's the whole page, bestie β¨ source is ./drivers/net/wireless/intel/i... (the truncated path, living her truth), dated October 2026, and the footer still insists on calling her struct iwl_m...if_link_info(9) β love that for her. mwah ππ
π¦ 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