1. NAME▲
struct_sta_info - STA information
2. SYNOPSIS ▲
struct
sta_info {
struct
list_head list;
struct
rcu_head rcu_head;
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;
struct
work_struct drv_unblock_wk;
u16 listen_interval;
bool dead;
bool uploaded;
enum
ieee80211_sta_state sta_state;
unsigned
long
_flags;
struct
sk_buff_head ps_tx_buf[IEEE80211_NUM_ACS];
struct
sk_buff_head tx_filtered[IEEE80211_NUM_ACS];
unsigned
long
driver_buffered_tids;
unsigned
long
rx_packets;
u64 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;
int
last_ack_signal;
__le16 last_seq_ctrl[IEEE80211_NUM_TIDS +
1
];
unsigned
long
tx_filtered_count;
unsigned
long
tx_retry_failed;
unsigned
long
tx_retry_count;
unsigned
int
fail_avg;
u32 tx_fragments;
u64 tx_packets[IEEE80211_NUM_ACS];
u64 tx_bytes[IEEE80211_NUM_ACS];
struct
ieee80211_tx_rate last_tx_rate;
int
last_rx_rate_idx;
u32 last_rx_rate_flag;
u8 last_rx_rate_vht_nss;
u16 tid_seq[IEEE80211_QOS_CTL_TID_MASK +
1
];
struct
sta_ampdu_mlme ampdu_mlme;
u8 timer_to_tid[IEEE80211_NUM_TIDS];
#ifdef CONFIG_MAC80211_MESH
__le16 llid;
__le16 plid;
__le16 reason;
u8 plink_retries;
bool ignore_plink_timer;
enum
nl80211_plink_state plink_state;
u32 plink_timeout;
struct
timer_list plink_timer;
s64 t_offset;
s64 t_offset_setpoint;
enum
nl80211_mesh_power_mode local_pm;
enum
nl80211_mesh_power_mode peer_pm;
enum
nl80211_mesh_power_mode nonpeer_pm;
#endif
#ifdef CONFIG_MAC80211_DEBUGFS
struct
sta_info_debugfsdentries debugfs;
#endif
enum
ieee80211_sta_rx_bandwidth cur_max_bandwidth;
unsigned
int
lost_packets;
unsigned
int
beacon_loss_count;
struct
ieee80211_sta sta;
}
;
3. MEMBERS ▲
list
global linked list entry
rcu_head
RCU head used for freeing this station struct
hnext
hash table linked list pointer
local
pointer to the global information
sdata
virtual interface this station belongs to
gtk[NUM_DEFAULT_KEYS + NUM_DEFAULT_MGMT_KEYS]
group keys negotiated with this station, if any
ptk
peer key negotiated with this station, if any
rate_ctrl
rate control algorithm reference
rate_ctrl_priv
rate control private per-STA pointer
lock
used for locking all fields that require locking, see comments in the header file.
drv_unblock_wk
used for driver PS unblocking
listen_interval
listen interval of this station, when weAqre acting as AP
dead
set to true when sta is unlinked
uploaded
set to true when sta is uploaded to the driver
sta_state
duplicates information about station state (for debug)
_flags
STA flags, see enum ieee80211_sta_info_flags, do not use directly
ps_tx_buf[IEEE80211_NUM_ACS]
buffers (per AC) of frames to transmit to this station when it leaves power saving state or polls
tx_filtered[IEEE80211_NUM_ACS]
buffers (per AC) of frames we already tried to transmit but were filtered by hardware due to STA having entered power saving state, these are also delivered to the station when it leaves powersave or polls for frames
driver_buffered_tids
bitmap of TIDs the driver has data buffered on
rx_packets
Number of MSDUs received from this STA
rx_bytes
Number of bytes received from this STA
wep_weak_iv_count
number of weak WEP IVs received from this station
last_rx
time (in jiffies) when last frame was received from this STA
last_connected
time (in seconds) when a station got connected
num_duplicates
number of duplicate frames received from this STA
rx_fragments
number of received MPDUs
rx_dropped
number of dropped MPDUs from this STA
last_signal
signal of last received frame from this STA
avg_signal
moving average of signal of received frames from this STA
last_ack_signal
signal of last received Ack frame from this STA
last_seq_ctrl[IEEE80211_NUM_TIDS + 1]
last received seq/frag number from this STA (per RX queue)
tx_filtered_count
number of frames the hardware filtered for this STA
tx_retry_failed
number of frames that failed retry
tx_retry_count
total number of retries for frames to this STA
fail_avg
moving percentage of failed MSDUs
tx_fragments
number of transmitted MPDUs
tx_packets[IEEE80211_NUM_ACS]
number of RX/TX MSDUs
tx_bytes[IEEE80211_NUM_ACS]
number of bytes transmitted to this STA
last_tx_rate
rate used for last transmit, to report to userspace as « the » transmit rate
last_rx_rate_idx
rx status rate index of the last data packet
last_rx_rate_flag
rx status flag of the last data packet
last_rx_rate_vht_nss
rx status nss of last data packet
tid_seq[IEEE80211_QOS_CTL_TID_MASK + 1]
per-TID sequence numbers for sending to this STA
ampdu_mlme
A-MPDU state machine state
timer_to_tid[IEEE80211_NUM_TIDS]
identity mapping to ID timers
llid
Local link ID
plid
Peer link ID
reason
Cancel reason on PLINK_HOLDING state
plink_retries
Retries in establishment
ignore_plink_timer
ignore the peer-link timer (used internally)
plink_state
peer link state
plink_timeout
timeout of peer link
plink_timer
peer link watch timer
t_offset
timing offset relative to this host
t_offset_setpoint
reference timing offset of this sta to be used when calculating clockdrift
local_pm
local link-specific power save mode
peer_pm
peer-specific power save mode towards local STA
nonpeer_pm
STA power save mode towards non-peer neighbors
debugfs
debug filesystem info
cur_max_bandwidth
maximum bandwidth to use for TX to the station, taken from HT/VHT capabilities or VHT operating mode notification
lost_packets
number of consecutive lost packets
beacon_loss_count
number of times beacon loss has triggered
sta
station information we share with the driver
4. DESCRIPTION ▲
This structure collects information about a station that mac80211 is communicating with.
5. AUTHOR ▲
Johannes Berg <>
Author.
6. COPYRIGHT ▲