struct sta_info — STA information
struct sta_info { struct list_head list; struct sta_info __rcu * hnext; struct ieee80211_local * local; struct ieee80211_sub_if_data * sdata; struct ieee80211_key __rcu * gtk[NUM_DEFAULT_KEYS + NUM_DEFAULT_MGMT_KEYS]; struct ieee80211_key __rcu * ptk; struct rate_control_ref * rate_ctrl; void * rate_ctrl_priv; spinlock_t lock; spinlock_t flaglock; struct work_struct drv_unblock_wk; u16 listen_interval; bool dead; bool uploaded; u32 flags; struct sk_buff_head ps_tx_buf; struct sk_buff_head tx_filtered; unsigned long rx_packets; unsigned long rx_bytes; unsigned long wep_weak_iv_count; unsigned long last_rx; long last_connected; unsigned long num_duplicates; unsigned long rx_fragments; unsigned long rx_dropped; int last_signal; struct ewma avg_signal; __le16 last_seq_ctrl[NUM_RX_DATA_QUEUES]; unsigned long tx_filtered_count; unsigned long tx_retry_failed; unsigned long tx_retry_count; unsigned int fail_avg; unsigned long tx_packets; unsigned long tx_bytes; unsigned long tx_fragments; struct ieee80211_tx_rate last_tx_rate; int last_rx_rate_idx; int last_rx_rate_flag; u16 tid_seq[IEEE80211_QOS_CTL_TID_MASK + 1]; struct sta_ampdu_mlme ampdu_mlme; u8 timer_to_tid[STA_TID_NUM]; #ifdef CONFIG_MAC80211_MESH __le16 llid; __le16 plid; __le16 reason; u8 plink_retries; bool ignore_plink_timer; bool plink_timer_was_running; enum nl80211_plink_state plink_state; u32 plink_timeout; struct timer_list plink_timer; #endif #ifdef CONFIG_MAC80211_DEBUGFS struct sta_info_debugfsdentries debugfs; #endif unsigned int lost_packets; struct ieee80211_sta sta; };
global linked list entry
hash table linked list pointer
pointer to the global information
virtual interface this station belongs to
group keys negotiated with this station, if any
peer key negotiated with this station, if any
rate control algorithm reference
rate control private per-STA pointer
used for locking all fields that require locking, see comments in the header file.
spinlock for flags accesses
used for driver PS unblocking
listen interval of this station, when we're acting as AP
set to true when sta is unlinked
set to true when sta is uploaded to the driver
STA flags, see enum ieee80211_sta_info_flags
buffer of frames to transmit to this station when it leaves power saving state
buffer of frames we already tried to transmit but were filtered by hardware due to STA having entered power saving state
Number of MSDUs received from this STA
Number of bytes received from this STA
number of weak WEP IVs received from this station
time (in jiffies) when last frame was received from this STA
time (in seconds) when a station got connected
number of duplicate frames received from this STA
number of received MPDUs
number of dropped MPDUs from this STA
signal of last received frame from this STA
moving average of signal of received frames from this STA
last received seq/frag number from this STA (per RX queue)
number of frames the hardware filtered for this STA
number of frames that failed retry
total number of retries for frames to this STA
moving percentage of failed MSDUs
number of RX/TX MSDUs
number of bytes transmitted to this STA
number of transmitted MPDUs
rate used for last transmit, to report to userspace as “the” transmit rate
rx status rate index of the last data packet
rx status flag of the last data packet
per-TID sequence numbers for sending to this STA
A-MPDU state machine state
identity mapping to ID timers
Local link ID
Peer link ID
Cancel reason on PLINK_HOLDING state
Retries in establishment
ignore the peer-link timer (used internally)
used by suspend/resume to restore timers
peer link state
timeout of peer link
peer link watch timer
debug filesystem info
number of consecutive lost packets
station information we share with the driver