diff options
Diffstat (limited to 'net/mac80211/sta_info.h')
-rw-r--r-- | net/mac80211/sta_info.h | 43 |
1 files changed, 12 insertions, 31 deletions
diff --git a/net/mac80211/sta_info.h b/net/mac80211/sta_info.h index 109db787ccb7..168a39a298bd 100644 --- a/net/mac80211/sta_info.h +++ b/net/mac80211/sta_info.h | |||
@@ -167,8 +167,6 @@ struct sta_ampdu_mlme { | |||
167 | * @lock: used for locking all fields that require locking, see comments | 167 | * @lock: used for locking all fields that require locking, see comments |
168 | * in the header file. | 168 | * in the header file. |
169 | * @flaglock: spinlock for flags accesses | 169 | * @flaglock: spinlock for flags accesses |
170 | * @ht_info: HT capabilities of this STA | ||
171 | * @supp_rates: Bitmap of supported rates (per band) | ||
172 | * @addr: MAC address of this STA | 170 | * @addr: MAC address of this STA |
173 | * @aid: STA's unique AID (1..2007, 0 = not assigned yet), | 171 | * @aid: STA's unique AID (1..2007, 0 = not assigned yet), |
174 | * only used in AP (and IBSS?) mode | 172 | * only used in AP (and IBSS?) mode |
@@ -191,20 +189,15 @@ struct sta_ampdu_mlme { | |||
191 | * @last_qual: qual of last received frame from this STA | 189 | * @last_qual: qual of last received frame from this STA |
192 | * @last_noise: noise of last received frame from this STA | 190 | * @last_noise: noise of last received frame from this STA |
193 | * @last_seq_ctrl: last received seq/frag number from this STA (per RX queue) | 191 | * @last_seq_ctrl: last received seq/frag number from this STA (per RX queue) |
194 | * @wme_rx_queue: TBD | ||
195 | * @tx_filtered_count: TBD | 192 | * @tx_filtered_count: TBD |
196 | * @tx_retry_failed: TBD | 193 | * @tx_retry_failed: TBD |
197 | * @tx_retry_count: TBD | 194 | * @tx_retry_count: TBD |
198 | * @tx_num_consecutive_failures: TBD | ||
199 | * @tx_num_mpdu_ok: TBD | ||
200 | * @tx_num_mpdu_fail: TBD | ||
201 | * @fail_avg: moving percentage of failed MSDUs | 195 | * @fail_avg: moving percentage of failed MSDUs |
202 | * @tx_packets: number of RX/TX MSDUs | 196 | * @tx_packets: number of RX/TX MSDUs |
203 | * @tx_bytes: TBD | 197 | * @tx_bytes: TBD |
204 | * @tx_fragments: number of transmitted MPDUs | 198 | * @tx_fragments: number of transmitted MPDUs |
205 | * @txrate_idx: TBD | 199 | * @last_txrate_idx: Index of the last used transmit rate |
206 | * @last_txrate_idx: TBD | 200 | * @tid_seq: TBD |
207 | * @wme_tx_queue: TBD | ||
208 | * @ampdu_mlme: TBD | 201 | * @ampdu_mlme: TBD |
209 | * @timer_to_tid: identity mapping to ID timers | 202 | * @timer_to_tid: identity mapping to ID timers |
210 | * @tid_to_tx_q: map tid to tx queue | 203 | * @tid_to_tx_q: map tid to tx queue |
@@ -217,6 +210,7 @@ struct sta_ampdu_mlme { | |||
217 | * @plink_timeout: TBD | 210 | * @plink_timeout: TBD |
218 | * @plink_timer: TBD | 211 | * @plink_timer: TBD |
219 | * @debugfs: debug filesystem info | 212 | * @debugfs: debug filesystem info |
213 | * @sta: station information we share with the driver | ||
220 | */ | 214 | */ |
221 | struct sta_info { | 215 | struct sta_info { |
222 | /* General information, mostly static */ | 216 | /* General information, mostly static */ |
@@ -229,10 +223,7 @@ struct sta_info { | |||
229 | void *rate_ctrl_priv; | 223 | void *rate_ctrl_priv; |
230 | spinlock_t lock; | 224 | spinlock_t lock; |
231 | spinlock_t flaglock; | 225 | spinlock_t flaglock; |
232 | struct ieee80211_ht_info ht_info; | 226 | |
233 | u64 supp_rates[IEEE80211_NUM_BANDS]; | ||
234 | u8 addr[ETH_ALEN]; | ||
235 | u16 aid; | ||
236 | u16 listen_interval; | 227 | u16 listen_interval; |
237 | 228 | ||
238 | /* | 229 | /* |
@@ -265,17 +256,10 @@ struct sta_info { | |||
265 | int last_qual; | 256 | int last_qual; |
266 | int last_noise; | 257 | int last_noise; |
267 | __le16 last_seq_ctrl[NUM_RX_DATA_QUEUES]; | 258 | __le16 last_seq_ctrl[NUM_RX_DATA_QUEUES]; |
268 | #ifdef CONFIG_MAC80211_DEBUG_COUNTERS | ||
269 | unsigned int wme_rx_queue[NUM_RX_DATA_QUEUES]; | ||
270 | #endif | ||
271 | 259 | ||
272 | /* Updated from TX status path only, no locking requirements */ | 260 | /* Updated from TX status path only, no locking requirements */ |
273 | unsigned long tx_filtered_count; | 261 | unsigned long tx_filtered_count; |
274 | unsigned long tx_retry_failed, tx_retry_count; | 262 | unsigned long tx_retry_failed, tx_retry_count; |
275 | /* TODO: update in generic code not rate control? */ | ||
276 | u32 tx_num_consecutive_failures; | ||
277 | u32 tx_num_mpdu_ok; | ||
278 | u32 tx_num_mpdu_fail; | ||
279 | /* moving percentage of failed MSDUs */ | 263 | /* moving percentage of failed MSDUs */ |
280 | unsigned int fail_avg; | 264 | unsigned int fail_avg; |
281 | 265 | ||
@@ -283,12 +267,8 @@ struct sta_info { | |||
283 | unsigned long tx_packets; | 267 | unsigned long tx_packets; |
284 | unsigned long tx_bytes; | 268 | unsigned long tx_bytes; |
285 | unsigned long tx_fragments; | 269 | unsigned long tx_fragments; |
286 | int txrate_idx; | 270 | unsigned int last_txrate_idx; |
287 | int last_txrate_idx; | ||
288 | u16 tid_seq[IEEE80211_QOS_CTL_TID_MASK + 1]; | 271 | u16 tid_seq[IEEE80211_QOS_CTL_TID_MASK + 1]; |
289 | #ifdef CONFIG_MAC80211_DEBUG_COUNTERS | ||
290 | unsigned int wme_tx_queue[NUM_RX_DATA_QUEUES]; | ||
291 | #endif | ||
292 | 272 | ||
293 | /* | 273 | /* |
294 | * Aggregation information, locked with lock. | 274 | * Aggregation information, locked with lock. |
@@ -319,13 +299,13 @@ struct sta_info { | |||
319 | struct dentry *num_ps_buf_frames; | 299 | struct dentry *num_ps_buf_frames; |
320 | struct dentry *inactive_ms; | 300 | struct dentry *inactive_ms; |
321 | struct dentry *last_seq_ctrl; | 301 | struct dentry *last_seq_ctrl; |
322 | #ifdef CONFIG_MAC80211_DEBUG_COUNTERS | ||
323 | struct dentry *wme_rx_queue; | ||
324 | struct dentry *wme_tx_queue; | ||
325 | #endif | ||
326 | struct dentry *agg_status; | 302 | struct dentry *agg_status; |
303 | bool add_has_run; | ||
327 | } debugfs; | 304 | } debugfs; |
328 | #endif | 305 | #endif |
306 | |||
307 | /* keep last! */ | ||
308 | struct ieee80211_sta sta; | ||
329 | }; | 309 | }; |
330 | 310 | ||
331 | static inline enum plink_state sta_plink_state(struct sta_info *sta) | 311 | static inline enum plink_state sta_plink_state(struct sta_info *sta) |
@@ -425,7 +405,7 @@ static inline u32 get_sta_flags(struct sta_info *sta) | |||
425 | /* | 405 | /* |
426 | * Get a STA info, must have be under RCU read lock. | 406 | * Get a STA info, must have be under RCU read lock. |
427 | */ | 407 | */ |
428 | struct sta_info *sta_info_get(struct ieee80211_local *local, u8 *addr); | 408 | struct sta_info *sta_info_get(struct ieee80211_local *local, const u8 *addr); |
429 | /* | 409 | /* |
430 | * Get STA info by index, BROKEN! | 410 | * Get STA info by index, BROKEN! |
431 | */ | 411 | */ |
@@ -451,7 +431,6 @@ int sta_info_insert(struct sta_info *sta); | |||
451 | * has already unlinked it. | 431 | * has already unlinked it. |
452 | */ | 432 | */ |
453 | void sta_info_unlink(struct sta_info **sta); | 433 | void sta_info_unlink(struct sta_info **sta); |
454 | void __sta_info_unlink(struct sta_info **sta); | ||
455 | 434 | ||
456 | void sta_info_destroy(struct sta_info *sta); | 435 | void sta_info_destroy(struct sta_info *sta); |
457 | void sta_info_set_tim_bit(struct sta_info *sta); | 436 | void sta_info_set_tim_bit(struct sta_info *sta); |
@@ -463,5 +442,7 @@ void sta_info_stop(struct ieee80211_local *local); | |||
463 | int sta_info_flush(struct ieee80211_local *local, | 442 | int sta_info_flush(struct ieee80211_local *local, |
464 | struct ieee80211_sub_if_data *sdata); | 443 | struct ieee80211_sub_if_data *sdata); |
465 | void sta_info_flush_delayed(struct ieee80211_sub_if_data *sdata); | 444 | void sta_info_flush_delayed(struct ieee80211_sub_if_data *sdata); |
445 | void ieee80211_sta_expire(struct ieee80211_sub_if_data *sdata, | ||
446 | unsigned long exp_time); | ||
466 | 447 | ||
467 | #endif /* STA_INFO_H */ | 448 | #endif /* STA_INFO_H */ |