1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>struct sta_info</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="The 802.11 subsystems &#8211; for kernel developers"><link rel="up" href="sta-info.html#idp1114416796" title="Programming information"><link rel="prev" href="sta-info.html" title="Chapter&#160;22.&#160;Station info handling"><link rel="next" href="API-enum-ieee80211-sta-info-flags.html" title="enum ieee80211_sta_info_flags"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">struct sta_info</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="sta-info.html">Prev</a>&#160;</td><th width="60%" align="center">Programming information</th><td width="20%" align="right">&#160;<a accesskey="n" href="API-enum-ieee80211-sta-info-flags.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-struct-sta-info"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>struct sta_info &#8212; 
2  STA information
3 </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
4struct sta_info {
5  struct list_head list;
6  struct list_head free_list;
7  struct rcu_head rcu_head;
8  struct rhash_head hash_node;
9  struct ieee80211_local * local;
10  struct ieee80211_sub_if_data * sdata;
11  struct ieee80211_key __rcu * gtk[NUM_DEFAULT_KEYS + NUM_DEFAULT_MGMT_KEYS];
12  struct ieee80211_key __rcu * ptk[NUM_DEFAULT_KEYS];
13  u8 gtk_idx;
14  u8 ptk_idx;
15  struct rate_control_ref * rate_ctrl;
16  void * rate_ctrl_priv;
17  spinlock_t lock;
18  struct work_struct drv_deliver_wk;
19  u16 listen_interval;
20  bool dead;
21  bool uploaded;
22  enum ieee80211_sta_state sta_state;
23  unsigned long _flags;
24  spinlock_t ps_lock;
25  struct sk_buff_head ps_tx_buf[IEEE80211_NUM_ACS];
26  struct sk_buff_head tx_filtered[IEEE80211_NUM_ACS];
27  unsigned long driver_buffered_tids;
28  unsigned long txq_buffered_tids;
29  unsigned long rx_packets;
30  u64 rx_bytes;
31  unsigned long last_rx;
32  long last_connected;
33  unsigned long num_duplicates;
34  unsigned long rx_fragments;
35  unsigned long rx_dropped;
36  int last_signal;
37  struct ewma avg_signal;
38  int last_ack_signal;
39  u8 chains;
40  s8 chain_signal_last[IEEE80211_MAX_CHAINS];
41  struct ewma chain_signal_avg[IEEE80211_MAX_CHAINS];
42  __le16 last_seq_ctrl[IEEE80211_NUM_TIDS + 1];
43  unsigned long tx_filtered_count;
44  unsigned long tx_retry_failed;
45  unsigned long tx_retry_count;
46  unsigned int fail_avg;
47  u32 tx_fragments;
48  u64 tx_packets[IEEE80211_NUM_ACS];
49  u64 tx_bytes[IEEE80211_NUM_ACS];
50  struct ieee80211_tx_rate last_tx_rate;
51  int last_rx_rate_idx;
52  u32 last_rx_rate_flag;
53  u32 last_rx_rate_vht_flag;
54  u8 last_rx_rate_vht_nss;
55  u16 tid_seq[IEEE80211_QOS_CTL_TID_MASK + 1];
56  u64 tx_msdu[IEEE80211_NUM_TIDS + 1];
57  u64 tx_msdu_retries[IEEE80211_NUM_TIDS + 1];
58  u64 tx_msdu_failed[IEEE80211_NUM_TIDS + 1];
59  u64 rx_msdu[IEEE80211_NUM_TIDS + 1];
60  struct sta_ampdu_mlme ampdu_mlme;
61  u8 timer_to_tid[IEEE80211_NUM_TIDS];
62#ifdef CONFIG_MAC80211_MESH
63  u16 llid;
64  u16 plid;
65  u16 reason;
66  u8 plink_retries;
67  enum nl80211_plink_state plink_state;
68  u32 plink_timeout;
69  struct timer_list plink_timer;
70  s64 t_offset;
71  s64 t_offset_setpoint;
72  enum nl80211_mesh_power_mode local_pm;
73  enum nl80211_mesh_power_mode peer_pm;
74  enum nl80211_mesh_power_mode nonpeer_pm;
75#endif
76#ifdef CONFIG_MAC80211_DEBUGFS
77  struct sta_info_debugfsdentries debugfs;
78#endif
79  enum ieee80211_sta_rx_bandwidth cur_max_bandwidth;
80  unsigned int lost_packets;
81  unsigned int beacon_loss_count;
82  enum ieee80211_smps_mode known_smps_mode;
83  const struct ieee80211_cipher_scheme * cipher_scheme;
84  unsigned long last_tdls_pkt_time;
85  u8 reserved_tid;
86  struct ieee80211_sta sta;
87};  </pre></div><div class="refsect1"><a name="idp1114426084"></a><h2>Members</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term">list</span></dt><dd><p>
88global linked list entry
89      </p></dd><dt><span class="term">free_list</span></dt><dd><p>
90list entry for keeping track of stations to free
91      </p></dd><dt><span class="term">rcu_head</span></dt><dd><p>
92RCU head used for freeing this station struct
93      </p></dd><dt><span class="term">hash_node</span></dt><dd><p>
94hash node for rhashtable
95      </p></dd><dt><span class="term">local</span></dt><dd><p>
96pointer to the global information
97      </p></dd><dt><span class="term">sdata</span></dt><dd><p>
98virtual interface this station belongs to
99      </p></dd><dt><span class="term">gtk[NUM_DEFAULT_KEYS + NUM_DEFAULT_MGMT_KEYS]</span></dt><dd><p>
100group keys negotiated with this station, if any
101      </p></dd><dt><span class="term">ptk[NUM_DEFAULT_KEYS]</span></dt><dd><p>
102peer keys negotiated with this station, if any
103      </p></dd><dt><span class="term">gtk_idx</span></dt><dd><p>
104last installed group key index
105      </p></dd><dt><span class="term">ptk_idx</span></dt><dd><p>
106last installed peer key index
107      </p></dd><dt><span class="term">rate_ctrl</span></dt><dd><p>
108rate control algorithm reference
109      </p></dd><dt><span class="term">rate_ctrl_priv</span></dt><dd><p>
110rate control private per-STA pointer
111      </p></dd><dt><span class="term">lock</span></dt><dd><p>
112used for locking all fields that require locking, see comments
113in the header file.
114      </p></dd><dt><span class="term">drv_deliver_wk</span></dt><dd><p>
115used for delivering frames after driver PS unblocking
116      </p></dd><dt><span class="term">listen_interval</span></dt><dd><p>
117listen interval of this station, when we're acting as AP
118      </p></dd><dt><span class="term">dead</span></dt><dd><p>
119set to true when sta is unlinked
120      </p></dd><dt><span class="term">uploaded</span></dt><dd><p>
121set to true when sta is uploaded to the driver
122      </p></dd><dt><span class="term">sta_state</span></dt><dd><p>
123duplicates information about station state (for debug)
124      </p></dd><dt><span class="term">_flags</span></dt><dd><p>
125STA flags, see <span class="structname">enum</span> ieee80211_sta_info_flags, do not use directly
126      </p></dd><dt><span class="term">ps_lock</span></dt><dd><p>
127used for powersave (when mac80211 is the AP) related locking
128      </p></dd><dt><span class="term">ps_tx_buf[IEEE80211_NUM_ACS]</span></dt><dd><p>
129buffers (per AC) of frames to transmit to this station
130when it leaves power saving state or polls
131      </p></dd><dt><span class="term">tx_filtered[IEEE80211_NUM_ACS]</span></dt><dd><p>
132buffers (per AC) of frames we already tried to
133transmit but were filtered by hardware due to STA having
134entered power saving state, these are also delivered to
135the station when it leaves powersave or polls for frames
136      </p></dd><dt><span class="term">driver_buffered_tids</span></dt><dd><p>
137bitmap of TIDs the driver has data buffered on
138      </p></dd><dt><span class="term">txq_buffered_tids</span></dt><dd><p>
139bitmap of TIDs that mac80211 has txq data buffered on
140      </p></dd><dt><span class="term">rx_packets</span></dt><dd><p>
141Number of MSDUs received from this STA
142      </p></dd><dt><span class="term">rx_bytes</span></dt><dd><p>
143Number of bytes received from this STA
144      </p></dd><dt><span class="term">last_rx</span></dt><dd><p>
145time (in jiffies) when last frame was received from this STA
146      </p></dd><dt><span class="term">last_connected</span></dt><dd><p>
147time (in seconds) when a station got connected
148      </p></dd><dt><span class="term">num_duplicates</span></dt><dd><p>
149number of duplicate frames received from this STA
150      </p></dd><dt><span class="term">rx_fragments</span></dt><dd><p>
151number of received MPDUs
152      </p></dd><dt><span class="term">rx_dropped</span></dt><dd><p>
153number of dropped MPDUs from this STA
154      </p></dd><dt><span class="term">last_signal</span></dt><dd><p>
155signal of last received frame from this STA
156      </p></dd><dt><span class="term">avg_signal</span></dt><dd><p>
157moving average of signal of received frames from this STA
158      </p></dd><dt><span class="term">last_ack_signal</span></dt><dd><p>
159signal of last received Ack frame from this STA
160      </p></dd><dt><span class="term">chains</span></dt><dd><p>
161chains ever used for RX from this station
162      </p></dd><dt><span class="term">chain_signal_last[IEEE80211_MAX_CHAINS]</span></dt><dd><p>
163last signal (per chain)
164      </p></dd><dt><span class="term">chain_signal_avg[IEEE80211_MAX_CHAINS]</span></dt><dd><p>
165signal average (per chain)
166      </p></dd><dt><span class="term">last_seq_ctrl[IEEE80211_NUM_TIDS + 1]</span></dt><dd><p>
167last received seq/frag number from this STA (per RX queue)
168      </p></dd><dt><span class="term">tx_filtered_count</span></dt><dd><p>
169number of frames the hardware filtered for this STA
170      </p></dd><dt><span class="term">tx_retry_failed</span></dt><dd><p>
171number of frames that failed retry
172      </p></dd><dt><span class="term">tx_retry_count</span></dt><dd><p>
173total number of retries for frames to this STA
174      </p></dd><dt><span class="term">fail_avg</span></dt><dd><p>
175moving percentage of failed MSDUs
176      </p></dd><dt><span class="term">tx_fragments</span></dt><dd><p>
177number of transmitted MPDUs
178      </p></dd><dt><span class="term">tx_packets[IEEE80211_NUM_ACS]</span></dt><dd><p>
179number of RX/TX MSDUs
180      </p></dd><dt><span class="term">tx_bytes[IEEE80211_NUM_ACS]</span></dt><dd><p>
181number of bytes transmitted to this STA
182      </p></dd><dt><span class="term">last_tx_rate</span></dt><dd><p>
183rate used for last transmit, to report to userspace as
184<span class="quote">&#8220;<span class="quote">the</span>&#8221;</span> transmit rate
185      </p></dd><dt><span class="term">last_rx_rate_idx</span></dt><dd><p>
186rx status rate index of the last data packet
187      </p></dd><dt><span class="term">last_rx_rate_flag</span></dt><dd><p>
188rx status flag of the last data packet
189      </p></dd><dt><span class="term">last_rx_rate_vht_flag</span></dt><dd><p>
190rx status vht flag of the last data packet
191      </p></dd><dt><span class="term">last_rx_rate_vht_nss</span></dt><dd><p>
192rx status nss of last data packet
193      </p></dd><dt><span class="term">tid_seq[IEEE80211_QOS_CTL_TID_MASK + 1]</span></dt><dd><p>
194per-TID sequence numbers for sending to this STA
195      </p></dd><dt><span class="term">tx_msdu[IEEE80211_NUM_TIDS + 1]</span></dt><dd><p>
196MSDUs transmitted to this station, using IEEE80211_NUM_TID
197entry for non-QoS frames
198      </p></dd><dt><span class="term">tx_msdu_retries[IEEE80211_NUM_TIDS + 1]</span></dt><dd><p>
199MSDU retries for transmissions to to this station,
200using IEEE80211_NUM_TID entry for non-QoS frames
201      </p></dd><dt><span class="term">tx_msdu_failed[IEEE80211_NUM_TIDS + 1]</span></dt><dd><p>
202MSDU failures for transmissions to to this station,
203using IEEE80211_NUM_TID entry for non-QoS frames
204      </p></dd><dt><span class="term">rx_msdu[IEEE80211_NUM_TIDS + 1]</span></dt><dd><p>
205MSDUs received from this station, using IEEE80211_NUM_TID
206entry for non-QoS frames
207      </p></dd><dt><span class="term">ampdu_mlme</span></dt><dd><p>
208A-MPDU state machine state
209      </p></dd><dt><span class="term">timer_to_tid[IEEE80211_NUM_TIDS]</span></dt><dd><p>
210identity mapping to ID timers
211      </p></dd><dt><span class="term">llid</span></dt><dd><p>
212Local link ID
213      </p></dd><dt><span class="term">plid</span></dt><dd><p>
214Peer link ID
215      </p></dd><dt><span class="term">reason</span></dt><dd><p>
216Cancel reason on PLINK_HOLDING state
217      </p></dd><dt><span class="term">plink_retries</span></dt><dd><p>
218Retries in establishment
219      </p></dd><dt><span class="term">plink_state</span></dt><dd><p>
220peer link state
221      </p></dd><dt><span class="term">plink_timeout</span></dt><dd><p>
222timeout of peer link
223      </p></dd><dt><span class="term">plink_timer</span></dt><dd><p>
224peer link watch timer
225      </p></dd><dt><span class="term">t_offset</span></dt><dd><p>
226timing offset relative to this host
227      </p></dd><dt><span class="term">t_offset_setpoint</span></dt><dd><p>
228reference timing offset of this sta to be used when
229calculating clockdrift
230      </p></dd><dt><span class="term">local_pm</span></dt><dd><p>
231local link-specific power save mode
232      </p></dd><dt><span class="term">peer_pm</span></dt><dd><p>
233peer-specific power save mode towards local STA
234      </p></dd><dt><span class="term">nonpeer_pm</span></dt><dd><p>
235STA power save mode towards non-peer neighbors
236      </p></dd><dt><span class="term">debugfs</span></dt><dd><p>
237debug filesystem info
238      </p></dd><dt><span class="term">cur_max_bandwidth</span></dt><dd><p>
239maximum bandwidth to use for TX to the station,
240taken from HT/VHT capabilities or VHT operating mode notification
241      </p></dd><dt><span class="term">lost_packets</span></dt><dd><p>
242number of consecutive lost packets
243      </p></dd><dt><span class="term">beacon_loss_count</span></dt><dd><p>
244number of times beacon loss has triggered
245      </p></dd><dt><span class="term">known_smps_mode</span></dt><dd><p>
246the smps_mode the client thinks we are in. Relevant for
247AP only.
248      </p></dd><dt><span class="term">cipher_scheme</span></dt><dd><p>
249optional cipher scheme for this station
250      </p></dd><dt><span class="term">last_tdls_pkt_time</span></dt><dd><p>
251holds the time in jiffies of last TDLS pkt ACKed
252      </p></dd><dt><span class="term">reserved_tid</span></dt><dd><p>
253reserved TID (if any, otherwise IEEE80211_TID_UNRESERVED)
254      </p></dd><dt><span class="term">sta</span></dt><dd><p>
255station information we share with the driver
256      </p></dd></dl></div></div><div class="refsect1"><a name="idp1114483860"></a><h2>Description</h2><p>
257   </p><p>
258
259   This structure collects information about a station that
260   mac80211 is communicating with.
261</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="sta-info.html">Prev</a>&#160;</td><td width="20%" align="center"><a accesskey="u" href="sta-info.html#idp1114416796">Up</a></td><td width="40%" align="right">&#160;<a accesskey="n" href="API-enum-ieee80211-sta-info-flags.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter&#160;22.&#160;Station info handling&#160;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&#160;<span class="phrase">enum ieee80211_sta_info_flags</span></td></tr></table></div></body></html>
262