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 rhlist_head hash_node;
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         struct ieee80211_fast_rx __rcu * fast_rx;
26         struct ieee80211_sta_rx_stats __percpu * pcpu_rx_stats;
27       #ifdef CONFIG_MAC80211_MESH
28         struct mesh_sta * mesh;
29       #endif
30         struct work_struct drv_deliver_wk;
31         u16 listen_interval;
32         bool dead;
33         bool removed;
34         bool uploaded;
35         enum ieee80211_sta_state sta_state;
36         unsigned long _flags;
37         spinlock_t ps_lock;
38         struct sk_buff_head ps_tx_buf[IEEE80211_NUM_ACS];
39         struct sk_buff_head tx_filtered[IEEE80211_NUM_ACS];
40         unsigned long driver_buffered_tids;
41         unsigned long txq_buffered_tids;
42         long last_connected;
43         struct ieee80211_sta_rx_stats rx_stats;
44         struct tx_stats;
45         u16 tid_seq[IEEE80211_QOS_CTL_TID_MASK + 1];
46         struct sta_ampdu_mlme ampdu_mlme;
47         u8 timer_to_tid[IEEE80211_NUM_TIDS];
48       #ifdef CONFIG_MAC80211_DEBUGFS
49         struct dentry * debugfs_dir;
50       #endif
51         enum ieee80211_sta_rx_bandwidth cur_max_bandwidth;
52         enum ieee80211_smps_mode known_smps_mode;
53         const struct ieee80211_cipher_scheme * cipher_scheme;
54         struct codel_params cparams;
55         u8 reserved_tid;
56         struct cfg80211_chan_def tdls_chandef;
57         struct ieee80211_sta sta;
58       };
59

MEMBERS

61       list
62           global linked list entry
63
64       free_list
65           list entry for keeping track of stations to free
66
67       rcu_head
68           RCU head used for freeing this station struct
69
70       hash_node
71           hash node for rhashtable
72
73       addr[ETH_ALEN]
74           station's MAC address - duplicated from public part to let the hash
75           table work with just a single cacheline
76
77       local
78           pointer to the global information
79
80       sdata
81           virtual interface this station belongs to
82
83       gtk[NUM_DEFAULT_KEYS + NUM_DEFAULT_MGMT_KEYS]
84           group keys negotiated with this station, if any
85
86       ptk[NUM_DEFAULT_KEYS]
87           peer keys negotiated with this station, if any
88
89       ptk_idx
90           last installed peer key index
91
92       rate_ctrl
93           rate control algorithm reference
94
95       rate_ctrl_priv
96           rate control private per-STA pointer
97
98       rate_ctrl_lock
99           spinlock used to protect rate control data (data inside the
100           algorithm, so serializes calls there)
101
102       lock
103           used for locking all fields that require locking, see comments in
104           the header file.
105
106       fast_tx
107           TX fastpath information
108
109       fast_rx
110           RX fastpath information
111
112       pcpu_rx_stats
113           per-CPU RX statistics, assigned only if the driver needs this (by
114           advertising the USES_RSS hw flag)
115
116       mesh
117           mesh STA information
118
119       drv_deliver_wk
120           used for delivering frames after driver PS unblocking
121
122       listen_interval
123           listen interval of this station, when we're acting as AP
124
125       dead
126           set to true when sta is unlinked
127
128       removed
129           set to true when sta is being removed from sta_list
130
131       uploaded
132           set to true when sta is uploaded to the driver
133
134       sta_state
135           duplicates information about station state (for debug)
136
137       _flags
138           STA flags, see enum ieee80211_sta_info_flags, do not use directly
139
140       ps_lock
141           used for powersave (when mac80211 is the AP) related locking
142
143       ps_tx_buf[IEEE80211_NUM_ACS]
144           buffers (per AC) of frames to transmit to this station when it
145           leaves power saving state or polls
146
147       tx_filtered[IEEE80211_NUM_ACS]
148           buffers (per AC) of frames we already tried to transmit but were
149           filtered by hardware due to STA having entered power saving state,
150           these are also delivered to the station when it leaves powersave or
151           polls for frames
152
153       driver_buffered_tids
154           bitmap of TIDs the driver has data buffered on
155
156       txq_buffered_tids
157           bitmap of TIDs that mac80211 has txq data buffered on
158
159       last_connected
160           time (in seconds) when a station got connected
161
162       rx_stats
163           RX statistics
164
165       tx_stats
166           TX statistics
167
168       tid_seq[IEEE80211_QOS_CTL_TID_MASK + 1]
169           per-TID sequence numbers for sending to this STA
170
171       ampdu_mlme
172           A-MPDU state machine state
173
174       timer_to_tid[IEEE80211_NUM_TIDS]
175           identity mapping to ID timers
176
177       debugfs_dir
178           debug filesystem directory dentry
179
180       cur_max_bandwidth
181           maximum bandwidth to use for TX to the station, taken from HT/VHT
182           capabilities or VHT operating mode notification
183
184       known_smps_mode
185           the smps_mode the client thinks we are in. Relevant for AP only.
186
187       cipher_scheme
188           optional cipher scheme for this station
189
190       cparams
191           CoDel parameters for this station.
192
193       reserved_tid
194           reserved TID (if any, otherwise IEEE80211_TID_UNRESERVED)
195
196       tdls_chandef
197           a TDLS peer can have a wider chandef that is compatible to the BSS
198           one.
199
200       sta
201           station information we share with the driver
202

DESCRIPTION

204       This structure collects information about a station that mac80211 is
205       communicating with.
206

AUTHOR

208       Johannes Berg <johannes@sipsolutions.net>
209           Author.
210
212Kernel Hackers Manual 3.10         June 2019                STRUCT STA_INFO(9)
Impressum