STRUCT IWL_MVM_STA(9)
β¨ NAME β¨
okay so bestie, this is the struct iwl_mvm_sta(9) page from the Kernel API Manual, and it is literally the driverβs representation of a station:
struct iwl_mvm_sta β representation of a station in the driver π
πΈ SYNOPSIS πΈ
hereβs the whole struct, no skips, copy-paste energy π«Ά:
struct iwl_mvm_sta {
u32 tfd_queue_msk;
u32 mac_id_n_color;
u16 tid_disable_agg;
u8 sta_type;
enum ieee80211_sta_state sta_state;
bool bt_reduced_txpower;
bool next_status_eosp;
bool authorized;
spinlock_t lock;
struct iwl_mvm_tid_data tid_data[IWL_MAX_TID_COUNT + 1];
u8 tid_to_baid[IWL_MAX_TID_COUNT];
struct ieee80211_vif *vif;
struct iwl_mvm_key_pn *ptk_pn[4];
struct iwl_mvm_rxq_dup_data *dup_data;
u8 reserved_queue;
s8 tx_protection;
bool tt_tx_protection;
bool disable_tx;
u16 amsdu_enabled;
u16 max_amsdu_len;
bool sleeping;
u8 agg_tids;
u8 sleep_tx_count;
u8 tx_ant;
u32 pairwise_cipher;
struct iwl_mvm_link_sta deflink;
struct iwl_mvm_link_sta *link[IEEE80211_MLD_MAX_NUM_LINKS];
};
π Members π
every member gets its moment, periodt. π
tfd_queue_mskβ the tfd queues used by the stationmac_id_n_colorβ the MAC context this station is linked totid_disable_aggβ bitmap: ifbit(tid)is set, the fw wonβt send ampdus for tid.sta_typeβ station typesta_stateβ station state according toenum ieee80211_sta_statebt_reduced_txpowerβ is reduced tx power enabled for this stationnext_status_eospβ the next reclaimed packet is a PS-Poll response and we need to signal the EOSPauthorizedβ indicates station is authorizedlockβ lock to protect the whole struct. Sincetid_datais access from Tx and from Tx response flow, it needs a spinlock.tid_dataβ per tid data + mgmt. Look atiwl_mvm_tid_data.tid_to_baidβ a simple map of TID to baidvifβ a vif pointerptk_pnβ per-queue PTK PN data structuresdup_dataβ per queue duplicate packet detection datareserved_queueβ the queue reserved for this STA for DQA purposes Every STA has is given one reserved queue to allow it to operate. If no such queue can be guaranteed, the STA addition will fail.tx_protectionβ reference counter for controlling the Tx protection.tt_tx_protectionβ is thermal throttling enable Tx protection?disable_txβ is tx to this STA disabled?amsdu_enabledβ bitmap of TX AMSDU allowed TIDs. In case TLC offload is not active it is either0xFFFFor0.max_amsdu_lenβ max AMSDU lengthsleepingβ sta sleep transitions in power managementagg_tidsβ bitmap of tids whose status is operational aggregated (IWL_AGG_ON)sleep_tx_countβ the number of frames that we told the firmware to let out even when that station is asleep. This is useful in case the queue gets empty before all the frames were sent, which can happen when we are sending frames from an AMPDU queue and there was a hole in the BA window. To be used for UAPSD only.tx_antβ the index of the antenna to use for data tx to this station. Only used during connection establishment (e.g. for the 4 way handshake exchange).pairwise_cipherβ used to feed iwlmei upon authorizationdeflinkβ the default link station, for non-MLO STA, all link specific data is accessed viadeflink(orlink[0]). For MLO, it will hold data of the first added link STA.linkβ per link sta entries. For non-MLO onlylink[0]holds data. For MLO,link[0]points todeflinkandlink[link_id]is allocated when new link sta is added.
π¦ Description π¦
When mac80211 creates a station it reserves some space (hw->sta_data_size) in the structure for use by driver. This structure is placed in that space.
π₯ SEE ALSO π₯
go read these too, iykyk π
- Kernel file
./drivers/net/wireless/intel/iwlwifi/mvm/sta.h DQA - Dynamic Queue Allocation -introduction(9)station table - introduction(9)station table - locking(9)station table - internal stations(9)station table - AP Station in STA mode(9)station table - Drain vs. Flush(9)station table - fw restart(9)AP mode - PS(9)enum iwl_mvm_agg_state(9)struct iwl_mvm_tid_data(9)enum iwl_mvm_rxq_notif_type(9)struct iwl_mvm_internal_rxq_notif(9)struct iwl_mvm_rxq_dup_data(9)struct iwl_mvm_link_sta(9)struct iwl_mvm_int_sta(9)iwl_mvm_sta_send_to_fw(9)struct iwl_mvm_sta_state_ops(9)
mwah π this page came from ./drivers/net/wireless/intel/i..., dated October 2026, and itβs literally the struct iwl_mvm_sta(9) manual page. byeee π«Ά
π¦ 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