OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2002-2005, Devicescape Software, Inc. | 2 * Copyright 2002-2005, Devicescape Software, Inc. |
3 * | 3 * |
4 * This program is free software; you can redistribute it and/or modify | 4 * This program is free software; you can redistribute it and/or modify |
5 * it under the terms of the GNU General Public License version 2 as | 5 * it under the terms of the GNU General Public License version 2 as |
6 * published by the Free Software Foundation. | 6 * published by the Free Software Foundation. |
7 */ | 7 */ |
8 | 8 |
9 #ifndef STA_INFO_H | 9 #ifndef STA_INFO_H |
10 #define STA_INFO_H | 10 #define STA_INFO_H |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
72 | 72 |
73 /** | 73 /** |
74 * struct tid_ampdu_tx - TID aggregation information (Tx). | 74 * struct tid_ampdu_tx - TID aggregation information (Tx). |
75 * | 75 * |
76 * @rcu_head: rcu head for freeing structure | 76 * @rcu_head: rcu head for freeing structure |
77 * @addba_resp_timer: timer for peer's response to addba request | 77 * @addba_resp_timer: timer for peer's response to addba request |
78 * @pending: pending frames queue -- use sta's spinlock to protect | 78 * @pending: pending frames queue -- use sta's spinlock to protect |
79 * @dialog_token: dialog token for aggregation session | 79 * @dialog_token: dialog token for aggregation session |
80 * @state: session state (see above) | 80 * @state: session state (see above) |
81 * @stop_initiator: initiator of a session stop | 81 * @stop_initiator: initiator of a session stop |
82 * @tx_stop: TX DelBA frame when stopping | |
83 * | 82 * |
84 * This structure is protected by RCU and the per-station | 83 * This structure is protected by RCU and the per-station |
85 * spinlock. Assignments to the array holding it must hold | 84 * spinlock. Assignments to the array holding it must hold |
86 * the spinlock, only the TX path can access it under RCU | 85 * the spinlock, only the TX path can access it under RCU |
87 * lock-free if, and only if, the state has the flag | 86 * lock-free if, and only if, the state has the flag |
88 * %HT_AGG_STATE_OPERATIONAL set. Otherwise, the TX path | 87 * %HT_AGG_STATE_OPERATIONAL set. Otherwise, the TX path |
89 * must also acquire the spinlock and re-check the state, | 88 * must also acquire the spinlock and re-check the state, |
90 * see comments in the tx code touching it. | 89 * see comments in the tx code touching it. |
91 */ | 90 */ |
92 struct tid_ampdu_tx { | 91 struct tid_ampdu_tx { |
93 struct rcu_head rcu_head; | 92 struct rcu_head rcu_head; |
94 struct timer_list addba_resp_timer; | 93 struct timer_list addba_resp_timer; |
95 struct sk_buff_head pending; | 94 struct sk_buff_head pending; |
96 unsigned long state; | 95 unsigned long state; |
97 u8 dialog_token; | 96 u8 dialog_token; |
98 u8 stop_initiator; | 97 u8 stop_initiator; |
99 bool tx_stop; | |
100 }; | 98 }; |
101 | 99 |
102 /** | 100 /** |
103 * struct tid_ampdu_rx - TID aggregation information (Rx). | 101 * struct tid_ampdu_rx - TID aggregation information (Rx). |
104 * | 102 * |
105 * @reorder_buf: buffer to reorder incoming aggregated MPDUs | 103 * @reorder_buf: buffer to reorder incoming aggregated MPDUs |
106 * @reorder_time: jiffies when skb was added | 104 * @reorder_time: jiffies when skb was added |
107 * @session_timer: check if peer keeps Tx-ing on the TID (by timeout value) | 105 * @session_timer: check if peer keeps Tx-ing on the TID (by timeout value) |
108 * @head_seq_num: head sequence number in reordering buffer. | 106 * @head_seq_num: head sequence number in reordering buffer. |
109 * @stored_mpdu_num: number of MPDUs in reordering buffer | 107 * @stored_mpdu_num: number of MPDUs in reordering buffer |
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
480 void sta_info_stop(struct ieee80211_local *local); | 478 void sta_info_stop(struct ieee80211_local *local); |
481 int sta_info_flush(struct ieee80211_local *local, | 479 int sta_info_flush(struct ieee80211_local *local, |
482 struct ieee80211_sub_if_data *sdata); | 480 struct ieee80211_sub_if_data *sdata); |
483 void ieee80211_sta_expire(struct ieee80211_sub_if_data *sdata, | 481 void ieee80211_sta_expire(struct ieee80211_sub_if_data *sdata, |
484 unsigned long exp_time); | 482 unsigned long exp_time); |
485 | 483 |
486 void ieee80211_sta_ps_deliver_wakeup(struct sta_info *sta); | 484 void ieee80211_sta_ps_deliver_wakeup(struct sta_info *sta); |
487 void ieee80211_sta_ps_deliver_poll_response(struct sta_info *sta); | 485 void ieee80211_sta_ps_deliver_poll_response(struct sta_info *sta); |
488 | 486 |
489 #endif /* STA_INFO_H */ | 487 #endif /* STA_INFO_H */ |
OLD | NEW |