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 – for kernel developers"><link rel="up" href="sta-info.html#idp1114416796" title="Programming information"><link rel="prev" href="sta-info.html" title="Chapter 22. 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> </td><th width="60%" align="center">Programming information</th><td width="20%" align="right"> <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 — 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">“<span class="quote">the</span>”</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> </td><td width="20%" align="center"><a accesskey="u" href="sta-info.html#idp1114416796">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-enum-ieee80211-sta-info-flags.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 22. Station info handling </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">enum ieee80211_sta_info_flags</span></td></tr></table></div></body></html> 262