struct tid_ampdu_tx — TID aggregation information (Tx).
struct tid_ampdu_tx { struct rcu_head rcu_head; struct timer_list session_timer; struct timer_list addba_resp_timer; struct sk_buff_head pending; unsigned long state; unsigned long last_tx; u16 timeout; u8 dialog_token; u8 stop_initiator; bool tx_stop; u8 buf_size; u16 failed_bar_ssn; bool bar_pending; };
rcu head for freeing structure
check if we keep Tx-ing on the TID (by timeout value)
timer for peer's response to addba request
pending frames queue -- use sta's spinlock to protect
session state (see above)
jiffies of last tx activity
session timeout value to be filled in ADDBA requests
dialog token for aggregation session
initiator of a session stop
TX DelBA frame when stopping
reorder buffer size at receiver
ssn of the last failed BAR tx attempt
BAR needs to be re-sent
This structure's lifetime is managed by RCU, assignments to the array holding it must hold the aggregation mutex.
The TX path can access it under RCU lock-free if, and
only if, the state has the flag HT_AGG_STATE_OPERATIONAL
set. Otherwise, the TX path must also acquire the spinlock
and re-check the state, see comments in the tx code
touching it.