1STRUCT STA_INFO(9)                 Internals                STRUCT STA_INFO(9)
2
3
4

NAME

6       struct_sta_info - STA information
7

SYNOPSIS

9       struct sta_info {
10         struct list_head list;
11         struct list_head free_list;
12         struct rcu_head rcu_head;
13         struct sta_info __rcu * hnext;
14         u8 addr[ETH_ALEN];
15         struct ieee80211_local * local;
16         struct ieee80211_sub_if_data * sdata;
17         struct ieee80211_key __rcu * gtk[NUM_DEFAULT_KEYS + NUM_DEFAULT_MGMT_KEYS];
18         struct ieee80211_key __rcu * ptk[NUM_DEFAULT_KEYS];
19         u8 ptk_idx;
20         struct rate_control_ref * rate_ctrl;
21         void * rate_ctrl_priv;
22         spinlock_t rate_ctrl_lock;
23         spinlock_t lock;
24         struct ieee80211_fast_tx __rcu * fast_tx;
25       #ifdef CONFIG_MAC80211_MESH
26         struct mesh_sta * mesh;
27       #endif
28         struct work_struct drv_deliver_wk;
29         u16 listen_interval;
30         bool dead;
31         bool uploaded;
32         enum ieee80211_sta_state sta_state;
33         unsigned long _flags;
34         spinlock_t ps_lock;
35         struct sk_buff_head ps_tx_buf[IEEE80211_NUM_ACS];
36         struct sk_buff_head tx_filtered[IEEE80211_NUM_ACS];
37         unsigned long driver_buffered_tids;
38         unsigned long txq_buffered_tids;
39         unsigned long rx_packets;
40         u64 rx_bytes;
41         unsigned long last_rx;
42         long last_connected;
43         unsigned long num_duplicates;
44         unsigned long rx_fragments;
45         unsigned long rx_dropped;
46         int last_signal;
47         struct ewma_signal avg_signal;
48         int last_ack_signal;
49         u8 chains;
50         s8 chain_signal_last[IEEE80211_MAX_CHAINS];
51         struct ewma_signal chain_signal_avg[IEEE80211_MAX_CHAINS];
52         __le16 last_seq_ctrl[IEEE80211_NUM_TIDS + 1];
53         unsigned long tx_filtered_count;
54         unsigned long tx_retry_failed;
55         unsigned long tx_retry_count;
56         u64 tx_packets[IEEE80211_NUM_ACS];
57         u64 tx_bytes[IEEE80211_NUM_ACS];
58         struct ieee80211_tx_rate last_tx_rate;
59         int last_rx_rate_idx;
60         u32 last_rx_rate_flag;
61         u32 last_rx_rate_vht_flag;
62         u8 last_rx_rate_vht_nss;
63         u16 tid_seq[IEEE80211_QOS_CTL_TID_MASK + 1];
64         u64 tx_msdu[IEEE80211_NUM_TIDS + 1];
65         u64 tx_msdu_retries[IEEE80211_NUM_TIDS + 1];
66         u64 tx_msdu_failed[IEEE80211_NUM_TIDS + 1];
67         u64 rx_msdu[IEEE80211_NUM_TIDS + 1];
68         struct sta_ampdu_mlme ampdu_mlme;
69         u8 timer_to_tid[IEEE80211_NUM_TIDS];
70       #ifdef CONFIG_MAC80211_DEBUGFS
71         struct sta_info_debugfsdentries debugfs;
72       #endif
73         enum ieee80211_sta_rx_bandwidth cur_max_bandwidth;
74         unsigned int lost_packets;
75         unsigned int beacon_loss_count;
76         enum ieee80211_smps_mode known_smps_mode;
77         const struct ieee80211_cipher_scheme * cipher_scheme;
78         unsigned long last_tdls_pkt_time;
79         u8 reserved_tid;
80         struct cfg80211_chan_def tdls_chandef;
81         struct ieee80211_sta sta;
82       };
83

MEMBERS

85       list
86           global linked list entry
87
88       free_list
89           list entry for keeping track of stations to free
90
91       rcu_head
92           RCU head used for freeing this station struct
93
94       hnext
95           hash table linked list pointer
96
97       addr[ETH_ALEN]
98           station´s MAC address - duplicated from public part to let the hash
99           table work with just a single cacheline
100
101       local
102           pointer to the global information
103
104       sdata
105           virtual interface this station belongs to
106
107       gtk[NUM_DEFAULT_KEYS + NUM_DEFAULT_MGMT_KEYS]
108           group keys negotiated with this station, if any
109
110       ptk[NUM_DEFAULT_KEYS]
111           peer keys negotiated with this station, if any
112
113       ptk_idx
114           last installed peer key index
115
116       rate_ctrl
117           rate control algorithm reference
118
119       rate_ctrl_priv
120           rate control private per-STA pointer
121
122       rate_ctrl_lock
123           spinlock used to protect rate control data (data inside the
124           algorithm, so serializes calls there)
125
126       lock
127           used for locking all fields that require locking, see comments in
128           the header file.
129
130       fast_tx
131           TX fastpath information
132
133       mesh
134           mesh STA information
135
136       drv_deliver_wk
137           used for delivering frames after driver PS unblocking
138
139       listen_interval
140           listen interval of this station, when we´re acting as AP
141
142       dead
143           set to true when sta is unlinked
144
145       uploaded
146           set to true when sta is uploaded to the driver
147
148       sta_state
149           duplicates information about station state (for debug)
150
151       _flags
152           STA flags, see enum ieee80211_sta_info_flags, do not use directly
153
154       ps_lock
155           used for powersave (when mac80211 is the AP) related locking
156
157       ps_tx_buf[IEEE80211_NUM_ACS]
158           buffers (per AC) of frames to transmit to this station when it
159           leaves power saving state or polls
160
161       tx_filtered[IEEE80211_NUM_ACS]
162           buffers (per AC) of frames we already tried to transmit but were
163           filtered by hardware due to STA having entered power saving state,
164           these are also delivered to the station when it leaves powersave or
165           polls for frames
166
167       driver_buffered_tids
168           bitmap of TIDs the driver has data buffered on
169
170       txq_buffered_tids
171           bitmap of TIDs that mac80211 has txq data buffered on
172
173       rx_packets
174           Number of MSDUs received from this STA
175
176       rx_bytes
177           Number of bytes received from this STA
178
179       last_rx
180           time (in jiffies) when last frame was received from this STA
181
182       last_connected
183           time (in seconds) when a station got connected
184
185       num_duplicates
186           number of duplicate frames received from this STA
187
188       rx_fragments
189           number of received MPDUs
190
191       rx_dropped
192           number of dropped MPDUs from this STA
193
194       last_signal
195           signal of last received frame from this STA
196
197       avg_signal
198           moving average of signal of received frames from this STA
199
200       last_ack_signal
201           signal of last received Ack frame from this STA
202
203       chains
204           chains ever used for RX from this station
205
206       chain_signal_last[IEEE80211_MAX_CHAINS]
207           last signal (per chain)
208
209       chain_signal_avg[IEEE80211_MAX_CHAINS]
210           signal average (per chain)
211
212       last_seq_ctrl[IEEE80211_NUM_TIDS + 1]
213           last received seq/frag number from this STA (per TID plus one for
214           non-QoS frames)
215
216       tx_filtered_count
217           number of frames the hardware filtered for this STA
218
219       tx_retry_failed
220           number of frames that failed retry
221
222       tx_retry_count
223           total number of retries for frames to this STA
224
225       tx_packets[IEEE80211_NUM_ACS]
226           number of RX/TX MSDUs
227
228       tx_bytes[IEEE80211_NUM_ACS]
229           number of bytes transmitted to this STA
230
231       last_tx_rate
232           rate used for last transmit, to report to userspace as “the”
233           transmit rate
234
235       last_rx_rate_idx
236           rx status rate index of the last data packet
237
238       last_rx_rate_flag
239           rx status flag of the last data packet
240
241       last_rx_rate_vht_flag
242           rx status vht flag of the last data packet
243
244       last_rx_rate_vht_nss
245           rx status nss of last data packet
246
247       tid_seq[IEEE80211_QOS_CTL_TID_MASK + 1]
248           per-TID sequence numbers for sending to this STA
249
250       tx_msdu[IEEE80211_NUM_TIDS + 1]
251           MSDUs transmitted to this station, using IEEE80211_NUM_TID entry
252           for non-QoS frames
253
254       tx_msdu_retries[IEEE80211_NUM_TIDS + 1]
255           MSDU retries for transmissions to to this station, using
256           IEEE80211_NUM_TID entry for non-QoS frames
257
258       tx_msdu_failed[IEEE80211_NUM_TIDS + 1]
259           MSDU failures for transmissions to to this station, using
260           IEEE80211_NUM_TID entry for non-QoS frames
261
262       rx_msdu[IEEE80211_NUM_TIDS + 1]
263           MSDUs received from this station, using IEEE80211_NUM_TID entry for
264           non-QoS frames
265
266       ampdu_mlme
267           A-MPDU state machine state
268
269       timer_to_tid[IEEE80211_NUM_TIDS]
270           identity mapping to ID timers
271
272       debugfs
273           debug filesystem info
274
275       cur_max_bandwidth
276           maximum bandwidth to use for TX to the station, taken from HT/VHT
277           capabilities or VHT operating mode notification
278
279       lost_packets
280           number of consecutive lost packets
281
282       beacon_loss_count
283           number of times beacon loss has triggered
284
285       known_smps_mode
286           the smps_mode the client thinks we are in. Relevant for AP only.
287
288       cipher_scheme
289           optional cipher scheme for this station
290
291       last_tdls_pkt_time
292           holds the time in jiffies of last TDLS pkt ACKed
293
294       reserved_tid
295           reserved TID (if any, otherwise IEEE80211_TID_UNRESERVED)
296
297       tdls_chandef
298           a TDLS peer can have a wider chandef that is compatible to the BSS
299           one.
300
301       sta
302           station information we share with the driver
303

DESCRIPTION

305       This structure collects information about a station that mac80211 is
306       communicating with.
307

AUTHOR

309       Johannes Berg <johannes@sipsolutions.net>
310           Author.
311
313Kernel Hackers Manual 2.6.         June 2019                STRUCT STA_INFO(9)
Impressum