'\" t .\" Title: struct sta_info .\" Author: .\" Generator: DocBook XSL Stylesheets v1.78.1 .\" Date: May 2018 .\" Manual: Internals .\" Source: Kernel Hackers Manual 3.16.56 .\" Language: English .\" .TH "STRUCT STA_INFO" "9" "May 2018" "Kernel Hackers Manual 3\&.16\&" "Internals" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" struct_sta_info \- STA information .SH "SYNOPSIS" .sp .nf struct sta_info { struct list_head list; struct list_head free_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[NUM_DEFAULT_KEYS]; u8 gtk_idx; u8 ptk_idx; 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; spinlock_t ps_lock; 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; u8 chains; s8 chain_signal_last[IEEE80211_MAX_CHAINS]; struct ewma chain_signal_avg[IEEE80211_MAX_CHAINS]; __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; u32 last_rx_rate_vht_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]; struct ieee80211_tx_latency_stat * tx_lat; #ifdef CONFIG_MAC80211_MESH u16 llid; u16 plid; u16 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; enum ieee80211_smps_mode known_smps_mode; const struct ieee80211_cipher_scheme * cipher_scheme; struct ieee80211_sta sta; }; .fi .SH "MEMBERS" .PP list .RS 4 global linked list entry .RE .PP free_list .RS 4 list entry for keeping track of stations to free .RE .PP rcu_head .RS 4 RCU head used for freeing this station struct .RE .PP hnext .RS 4 hash table linked list pointer .RE .PP local .RS 4 pointer to the global information .RE .PP sdata .RS 4 virtual interface this station belongs to .RE .PP gtk[NUM_DEFAULT_KEYS + NUM_DEFAULT_MGMT_KEYS] .RS 4 group keys negotiated with this station, if any .RE .PP ptk[NUM_DEFAULT_KEYS] .RS 4 peer keys negotiated with this station, if any .RE .PP gtk_idx .RS 4 last installed group key index .RE .PP ptk_idx .RS 4 last installed peer key index .RE .PP rate_ctrl .RS 4 rate control algorithm reference .RE .PP rate_ctrl_priv .RS 4 rate control private per\-STA pointer .RE .PP lock .RS 4 used for locking all fields that require locking, see comments in the header file\&. .RE .PP drv_unblock_wk .RS 4 used for driver PS unblocking .RE .PP listen_interval .RS 4 listen interval of this station, when we\*(Aqre acting as AP .RE .PP dead .RS 4 set to true when sta is unlinked .RE .PP uploaded .RS 4 set to true when sta is uploaded to the driver .RE .PP sta_state .RS 4 duplicates information about station state (for debug) .RE .PP _flags .RS 4 STA flags, see enum ieee80211_sta_info_flags, do not use directly .RE .PP ps_lock .RS 4 used for powersave (when mac80211 is the AP) related locking .RE .PP ps_tx_buf[IEEE80211_NUM_ACS] .RS 4 buffers (per AC) of frames to transmit to this station when it leaves power saving state or polls .RE .PP tx_filtered[IEEE80211_NUM_ACS] .RS 4 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 .RE .PP driver_buffered_tids .RS 4 bitmap of TIDs the driver has data buffered on .RE .PP rx_packets .RS 4 Number of MSDUs received from this STA .RE .PP rx_bytes .RS 4 Number of bytes received from this STA .RE .PP wep_weak_iv_count .RS 4 number of weak WEP IVs received from this station .RE .PP last_rx .RS 4 time (in jiffies) when last frame was received from this STA .RE .PP last_connected .RS 4 time (in seconds) when a station got connected .RE .PP num_duplicates .RS 4 number of duplicate frames received from this STA .RE .PP rx_fragments .RS 4 number of received MPDUs .RE .PP rx_dropped .RS 4 number of dropped MPDUs from this STA .RE .PP last_signal .RS 4 signal of last received frame from this STA .RE .PP avg_signal .RS 4 moving average of signal of received frames from this STA .RE .PP last_ack_signal .RS 4 signal of last received Ack frame from this STA .RE .PP chains .RS 4 chains ever used for RX from this station .RE .PP chain_signal_last[IEEE80211_MAX_CHAINS] .RS 4 last signal (per chain) .RE .PP chain_signal_avg[IEEE80211_MAX_CHAINS] .RS 4 signal average (per chain) .RE .PP last_seq_ctrl[IEEE80211_NUM_TIDS + 1] .RS 4 last received seq/frag number from this STA (per RX queue) .RE .PP tx_filtered_count .RS 4 number of frames the hardware filtered for this STA .RE .PP tx_retry_failed .RS 4 number of frames that failed retry .RE .PP tx_retry_count .RS 4 total number of retries for frames to this STA .RE .PP fail_avg .RS 4 moving percentage of failed MSDUs .RE .PP tx_fragments .RS 4 number of transmitted MPDUs .RE .PP tx_packets[IEEE80211_NUM_ACS] .RS 4 number of RX/TX MSDUs .RE .PP tx_bytes[IEEE80211_NUM_ACS] .RS 4 number of bytes transmitted to this STA .RE .PP last_tx_rate .RS 4 rate used for last transmit, to report to userspace as \(lqthe\(rq transmit rate .RE .PP last_rx_rate_idx .RS 4 rx status rate index of the last data packet .RE .PP last_rx_rate_flag .RS 4 rx status flag of the last data packet .RE .PP last_rx_rate_vht_flag .RS 4 rx status vht flag of the last data packet .RE .PP last_rx_rate_vht_nss .RS 4 rx status nss of last data packet .RE .PP tid_seq[IEEE80211_QOS_CTL_TID_MASK + 1] .RS 4 per\-TID sequence numbers for sending to this STA .RE .PP ampdu_mlme .RS 4 A\-MPDU state machine state .RE .PP timer_to_tid[IEEE80211_NUM_TIDS] .RS 4 identity mapping to ID timers .RE .PP tx_lat .RS 4 Tx latency statistics .RE .PP llid .RS 4 Local link ID .RE .PP plid .RS 4 Peer link ID .RE .PP reason .RS 4 Cancel reason on PLINK_HOLDING state .RE .PP plink_retries .RS 4 Retries in establishment .RE .PP ignore_plink_timer .RS 4 ignore the peer\-link timer (used internally) .RE .PP plink_state .RS 4 peer link state .RE .PP plink_timeout .RS 4 timeout of peer link .RE .PP plink_timer .RS 4 peer link watch timer .RE .PP t_offset .RS 4 timing offset relative to this host .RE .PP t_offset_setpoint .RS 4 reference timing offset of this sta to be used when calculating clockdrift .RE .PP local_pm .RS 4 local link\-specific power save mode .RE .PP peer_pm .RS 4 peer\-specific power save mode towards local STA .RE .PP nonpeer_pm .RS 4 STA power save mode towards non\-peer neighbors .RE .PP debugfs .RS 4 debug filesystem info .RE .PP cur_max_bandwidth .RS 4 maximum bandwidth to use for TX to the station, taken from HT/VHT capabilities or VHT operating mode notification .RE .PP lost_packets .RS 4 number of consecutive lost packets .RE .PP beacon_loss_count .RS 4 number of times beacon loss has triggered .RE .PP known_smps_mode .RS 4 the smps_mode the client thinks we are in\&. Relevant for AP only\&. .RE .PP cipher_scheme .RS 4 optional cipher scheme for this station .RE .PP sta .RS 4 station information we share with the driver .RE .SH "DESCRIPTION" .PP .PP This structure collects information about a station that mac80211 is communicating with\&. .SH "AUTHOR" .PP \fBJohannes Berg\fR <\&johannes@sipsolutions.net\&> .RS 4 Author. .RE .SH "COPYRIGHT" .br