| 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 |