STRUCT IWL_MLD_STA(9)
π struct iwl_mld_sta(9) π
okay bestie, so this is from the Kernel API Manual β it's the page for struct iwl_mld_sta, which is literally just "representation of a station in the driver." That's the whole NAME vibe. Sit down, grab a strawberry drink π, and let's get into it.
β¨ SYNOPSIS β¨
struct iwl_mld_sta {
struct {
enum ieee80211_sta_state sta_state;
enum iwl_fw_sta_type sta_type;
};
struct iwl_mld *mld;
struct ieee80211_vif *vif;
struct iwl_mld_rxq_dup_data *dup_data;
u8 tid_to_baid[IWL_MAX_TID_COUNT];
u8 data_tx_ant;
struct iwl_mld_link_sta deflink;
struct iwl_mld_link_sta *link[IEEE80211_MLD_MAX_NUM_LINKS];
struct iwl_mld_ptk_pn *ptk_pn[IWL_NUM_DEFAULT_KEYS];
struct iwl_mld_per_q_mpdu_counter *mpdu_counters;
};
like, that's the whole struct, no cap π§
π Members π
{unnamed_struct}β anonymous. it's giving mysterious, it's giving "I have no name and I don't need one." πsta_stateβ the station state, as defined byenum ieee80211_sta_state.sta_typeβ what kind of station this is. seeenum iwl_fw_sta_typefor the lore.mldβ a pointer to theiwl_mldobject. yeah. that one.vifβ pointer to thevifobject.dup_dataβ per queue duplicate packet detection data π¦tid_to_baidβ a simple map of TID to Block-Ack fw id. simple! iconic! we love a straightforward map β¨data_tx_antβ stores the last TX antenna index. it gets used for setting TXrate_n_flagsfor injected data frames, and it toggles on every TX failure (yes, every single one, she's keeping score π).deflinkβ this holds the default link STA information. for non MLO STA, all link specific STA information is accessed throughdeflinkor throughlink[0]which points to the address ofdeflink. for MLO Link STA, the first added link STA will point todeflink. sodeflinkis lowkey the main character here πlinkβ reference to Link Sta entries. for Non MLO STA, except 1st link, i.elink[0], all links would be assigned toNULLby default and would access link information viadeflinkorlink[0]. for MLO STA, the first link STA being added will point its link pointer todeflinkaddress and the remaining would be allocated and the address would be assigned tolink[link_id]wherelink_idis the id assigned by the AP. okay so it's nested and slightly unhinged but we understood the assignment π«Άptk_pnβ Array of pointers to PTK PN data, used to track the Packet Number per key index and per queue (TID). tracking queen behavior fr fr π₯mpdu_countersβ RX/TX MPDUs counters for each queue. counting her blessings, one MPDU at a time π
π Description π
This represent the MLD-level sta, and will not be added to the FW. it's Embedded in ieee80211_sta. so she lives inside ieee80211_sta, she's cozy, she's not going to the firmware, periodt π
ngl this is the important part: MLD-level sta β not added to the FW. do not try to send her to the firmware, she's not going. π
πΈ SEE ALSO πΈ
- Kernel file
./drivers/net/wireless/intel/iwlwifi/mld/sta.h struct iwl_mld_rxq_dup_data(9)struct iwl_mld_link_sta(9)struct iwl_mld_per_link_mpdu_counter(9)struct iwl_mld_per_q_mpdu_counter(9)struct iwl_mld_int_sta(9)
okay that's the whole page bestie, you ate that π«Ά this one comes straight from ./drivers/net/wireless/intel/i..., dated October 2026, and it's the struct iwl_mld_sta(9) page β go forth and read structs responsibly πβ¨π
π¦ 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