diff options
Diffstat (limited to 'net/mac80211/sta_info.h')
-rw-r--r-- | net/mac80211/sta_info.h | 38 |
1 files changed, 33 insertions, 5 deletions
diff --git a/net/mac80211/sta_info.h b/net/mac80211/sta_info.h index 3ef06a26b9cb..0218caf5c14a 100644 --- a/net/mac80211/sta_info.h +++ b/net/mac80211/sta_info.h | |||
@@ -220,6 +220,25 @@ struct sta_ampdu_mlme { | |||
220 | u8 dialog_token_allocator; | 220 | u8 dialog_token_allocator; |
221 | }; | 221 | }; |
222 | 222 | ||
223 | /* | ||
224 | * struct ieee80211_tx_latency_stat - Tx latency statistics | ||
225 | * | ||
226 | * Measures TX latency and jitter for a station per TID. | ||
227 | * | ||
228 | * @max: worst case latency | ||
229 | * @sum: sum of all latencies | ||
230 | * @counter: amount of Tx frames sent from interface | ||
231 | * @bins: each bin counts how many frames transmitted within a certain | ||
232 | * latency range. when disabled it is NULL. | ||
233 | * @bin_count: amount of bins. | ||
234 | */ | ||
235 | struct ieee80211_tx_latency_stat { | ||
236 | u32 max; | ||
237 | u32 sum; | ||
238 | u32 counter; | ||
239 | u32 *bins; | ||
240 | u32 bin_count; | ||
241 | }; | ||
223 | 242 | ||
224 | /** | 243 | /** |
225 | * struct sta_info - STA information | 244 | * struct sta_info - STA information |
@@ -231,8 +250,10 @@ struct sta_ampdu_mlme { | |||
231 | * @hnext: hash table linked list pointer | 250 | * @hnext: hash table linked list pointer |
232 | * @local: pointer to the global information | 251 | * @local: pointer to the global information |
233 | * @sdata: virtual interface this station belongs to | 252 | * @sdata: virtual interface this station belongs to |
234 | * @ptk: peer key negotiated with this station, if any | 253 | * @ptk: peer keys negotiated with this station, if any |
254 | * @ptk_idx: last installed peer key index | ||
235 | * @gtk: group keys negotiated with this station, if any | 255 | * @gtk: group keys negotiated with this station, if any |
256 | * @gtk_idx: last installed group key index | ||
236 | * @rate_ctrl: rate control algorithm reference | 257 | * @rate_ctrl: rate control algorithm reference |
237 | * @rate_ctrl_priv: rate control private per-STA pointer | 258 | * @rate_ctrl_priv: rate control private per-STA pointer |
238 | * @last_tx_rate: rate used for last transmit, to report to userspace as | 259 | * @last_tx_rate: rate used for last transmit, to report to userspace as |
@@ -274,6 +295,7 @@ struct sta_ampdu_mlme { | |||
274 | * @tid_seq: per-TID sequence numbers for sending to this STA | 295 | * @tid_seq: per-TID sequence numbers for sending to this STA |
275 | * @ampdu_mlme: A-MPDU state machine state | 296 | * @ampdu_mlme: A-MPDU state machine state |
276 | * @timer_to_tid: identity mapping to ID timers | 297 | * @timer_to_tid: identity mapping to ID timers |
298 | * @tx_lat: Tx latency statistics | ||
277 | * @llid: Local link ID | 299 | * @llid: Local link ID |
278 | * @plid: Peer link ID | 300 | * @plid: Peer link ID |
279 | * @reason: Cancel reason on PLINK_HOLDING state | 301 | * @reason: Cancel reason on PLINK_HOLDING state |
@@ -303,6 +325,7 @@ struct sta_ampdu_mlme { | |||
303 | * @chain_signal_avg: signal average (per chain) | 325 | * @chain_signal_avg: signal average (per chain) |
304 | * @known_smps_mode: the smps_mode the client thinks we are in. Relevant for | 326 | * @known_smps_mode: the smps_mode the client thinks we are in. Relevant for |
305 | * AP only. | 327 | * AP only. |
328 | * @cipher_scheme: optional cipher scheme for this station | ||
306 | */ | 329 | */ |
307 | struct sta_info { | 330 | struct sta_info { |
308 | /* General information, mostly static */ | 331 | /* General information, mostly static */ |
@@ -312,7 +335,9 @@ struct sta_info { | |||
312 | struct ieee80211_local *local; | 335 | struct ieee80211_local *local; |
313 | struct ieee80211_sub_if_data *sdata; | 336 | struct ieee80211_sub_if_data *sdata; |
314 | struct ieee80211_key __rcu *gtk[NUM_DEFAULT_KEYS + NUM_DEFAULT_MGMT_KEYS]; | 337 | struct ieee80211_key __rcu *gtk[NUM_DEFAULT_KEYS + NUM_DEFAULT_MGMT_KEYS]; |
315 | struct ieee80211_key __rcu *ptk; | 338 | struct ieee80211_key __rcu *ptk[NUM_DEFAULT_KEYS]; |
339 | u8 gtk_idx; | ||
340 | u8 ptk_idx; | ||
316 | struct rate_control_ref *rate_ctrl; | 341 | struct rate_control_ref *rate_ctrl; |
317 | void *rate_ctrl_priv; | 342 | void *rate_ctrl_priv; |
318 | spinlock_t lock; | 343 | spinlock_t lock; |
@@ -380,14 +405,16 @@ struct sta_info { | |||
380 | struct sta_ampdu_mlme ampdu_mlme; | 405 | struct sta_ampdu_mlme ampdu_mlme; |
381 | u8 timer_to_tid[IEEE80211_NUM_TIDS]; | 406 | u8 timer_to_tid[IEEE80211_NUM_TIDS]; |
382 | 407 | ||
408 | struct ieee80211_tx_latency_stat *tx_lat; | ||
409 | |||
383 | #ifdef CONFIG_MAC80211_MESH | 410 | #ifdef CONFIG_MAC80211_MESH |
384 | /* | 411 | /* |
385 | * Mesh peer link attributes | 412 | * Mesh peer link attributes |
386 | * TODO: move to a sub-structure that is referenced with pointer? | 413 | * TODO: move to a sub-structure that is referenced with pointer? |
387 | */ | 414 | */ |
388 | __le16 llid; | 415 | u16 llid; |
389 | __le16 plid; | 416 | u16 plid; |
390 | __le16 reason; | 417 | u16 reason; |
391 | u8 plink_retries; | 418 | u8 plink_retries; |
392 | bool ignore_plink_timer; | 419 | bool ignore_plink_timer; |
393 | enum nl80211_plink_state plink_state; | 420 | enum nl80211_plink_state plink_state; |
@@ -414,6 +441,7 @@ struct sta_info { | |||
414 | unsigned int beacon_loss_count; | 441 | unsigned int beacon_loss_count; |
415 | 442 | ||
416 | enum ieee80211_smps_mode known_smps_mode; | 443 | enum ieee80211_smps_mode known_smps_mode; |
444 | const struct ieee80211_cipher_scheme *cipher_scheme; | ||
417 | 445 | ||
418 | /* keep last! */ | 446 | /* keep last! */ |
419 | struct ieee80211_sta sta; | 447 | struct ieee80211_sta sta; |