SYNOPSIS
struct tid_ampdu_rx {
struct rcu_head rcu_head;
spinlock_t reorder_lock;
struct sk_buff ** reorder_buf;
unsigned long * reorder_time;
struct timer_list session_timer;
struct timer_list reorder_timer;
unsigned long last_rx;
u16 head_seq_num;
u16 stored_mpdu_num;
u16 ssn;
u16 buf_size;
u16 timeout;
u8 dialog_token;
};
MEMBERS
rcu_head
- RCU head used for freeing this struct
reorder_lock
- serializes access to reorder buffer, see below.
reorder_buf
- buffer to reorder incoming aggregated MPDUs
reorder_time
- jiffies when skb was added
session_timer
- check if peer keeps Tx-ing on the TID (by timeout value)
reorder_timer
- releases expired frames from the reorder buffer.
last_rx
- jiffies of last rx activity
head_seq_num
- head sequence number in reordering buffer.
stored_mpdu_num
- number of MPDUs in reordering buffer
ssn
- Starting Sequence Number expected to be aggregated.
buf_size
- buffer size for incoming A-MPDUs
timeout
- reset timer value (in TUs).
dialog_token
- dialog token for aggregation session
DESCRIPTION
This structure's lifetime is managed by RCU, assignments to the array holding it must hold the aggregation mutex.
The reorder_lock is used to protect the members of this struct, except for timeout, buf_size and dialog_token, which are constant across the lifetime of the struct (the dialog token being used only for debugging).
COPYRIGHT