'\" t .\" Title: struct sta_info .\" Author: .\" Generator: DocBook XSL Stylesheets v1.79.1 .\" Date: January 2017 .\" Manual: Internals .\" Source: Kernel Hackers Manual 4.8.15 .\" Language: English .\" .TH "STRUCT STA_INFO" "9" "January 2017" "Kernel Hackers Manual 4\&.8\&." "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 rhash_head hash_node; u8 addr[ETH_ALEN]; 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 ptk_idx; struct rate_control_ref * rate_ctrl; void * rate_ctrl_priv; spinlock_t rate_ctrl_lock; spinlock_t lock; struct ieee80211_fast_tx __rcu * fast_tx; struct ieee80211_fast_rx __rcu * fast_rx; struct ieee80211_sta_rx_stats __percpu * pcpu_rx_stats; #ifdef CONFIG_MAC80211_MESH struct mesh_sta * mesh; #endif struct work_struct drv_deliver_wk; u16 listen_interval; bool dead; bool removed; 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 txq_buffered_tids; long last_connected; struct ieee80211_sta_rx_stats rx_stats; struct tx_stats; 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_DEBUGFS struct dentry * debugfs_dir; #endif enum ieee80211_sta_rx_bandwidth cur_max_bandwidth; enum ieee80211_smps_mode known_smps_mode; const struct ieee80211_cipher_scheme * cipher_scheme; u8 reserved_tid; struct cfg80211_chan_def tdls_chandef; 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 hash_node .RS 4 hash node for rhashtable .RE .PP addr[ETH_ALEN] .RS 4 station\*(Aqs MAC address \- duplicated from public part to let the hash table work with just a single cacheline .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 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 rate_ctrl_lock .RS 4 spinlock used to protect rate control data (data inside the algorithm, so serializes calls there) .RE .PP lock .RS 4 used for locking all fields that require locking, see comments in the header file\&. .RE .PP fast_tx .RS 4 TX fastpath information .RE .PP fast_rx .RS 4 RX fastpath information .RE .PP pcpu_rx_stats .RS 4 per\-CPU RX statistics, assigned only if the driver needs this (by advertising the USES_RSS hw flag) .RE .PP mesh .RS 4 mesh STA information .RE .PP drv_deliver_wk .RS 4 used for delivering frames after 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 removed .RS 4 set to true when sta is being removed from sta_list .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 txq_buffered_tids .RS 4 bitmap of TIDs that mac80211 has txq data buffered on .RE .PP last_connected .RS 4 time (in seconds) when a station got connected .RE .PP rx_stats .RS 4 RX statistics .RE .PP tx_stats .RS 4 TX statistics .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 debugfs_dir .RS 4 debug filesystem directory dentry .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 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 reserved_tid .RS 4 reserved TID (if any, otherwise IEEE80211_TID_UNRESERVED) .RE .PP tdls_chandef .RS 4 a TDLS peer can have a wider chandef that is compatible to the BSS one\&. .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