1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>struct tid_ampdu_rx</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="The 802.11 subsystems &#8211; for kernel developers"><link rel="up" href="aggregation-internals.html" title="Chapter&#160;23.&#160;Aggregation"><link rel="prev" href="API-struct-tid-ampdu-tx.html" title="struct tid_ampdu_tx"><link rel="next" href="synchronisation.html" title="Chapter&#160;24.&#160;Synchronisation"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">struct tid_ampdu_rx</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-struct-tid-ampdu-tx.html">Prev</a>&#160;</td><th width="60%" align="center">Chapter&#160;23.&#160;Aggregation</th><td width="20%" align="right">&#160;<a accesskey="n" href="synchronisation.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-struct-tid-ampdu-rx"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>struct tid_ampdu_rx &#8212; 
2  TID aggregation information (Rx).
3 </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
4struct tid_ampdu_rx {
5  struct rcu_head rcu_head;
6  spinlock_t reorder_lock;
7  struct sk_buff_head * reorder_buf;
8  unsigned long * reorder_time;
9  struct timer_list session_timer;
10  struct timer_list reorder_timer;
11  unsigned long last_rx;
12  u16 head_seq_num;
13  u16 stored_mpdu_num;
14  u16 ssn;
15  u16 buf_size;
16  u16 timeout;
17  u8 dialog_token;
18  bool auto_seq;
19  bool removed;
20};  </pre></div><div class="refsect1"><a name="idp1114548196"></a><h2>Members</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term">rcu_head</span></dt><dd><p>
21RCU head used for freeing this struct
22      </p></dd><dt><span class="term">reorder_lock</span></dt><dd><p>
23serializes access to reorder buffer, see below.
24      </p></dd><dt><span class="term">reorder_buf</span></dt><dd><p>
25buffer to reorder incoming aggregated MPDUs. An MPDU may be an
26A-MSDU with individually reported subframes.
27      </p></dd><dt><span class="term">reorder_time</span></dt><dd><p>
28jiffies when skb was added
29      </p></dd><dt><span class="term">session_timer</span></dt><dd><p>
30check if peer keeps Tx-ing on the TID (by timeout value)
31      </p></dd><dt><span class="term">reorder_timer</span></dt><dd><p>
32releases expired frames from the reorder buffer.
33      </p></dd><dt><span class="term">last_rx</span></dt><dd><p>
34jiffies of last rx activity
35      </p></dd><dt><span class="term">head_seq_num</span></dt><dd><p>
36head sequence number in reordering buffer.
37      </p></dd><dt><span class="term">stored_mpdu_num</span></dt><dd><p>
38number of MPDUs in reordering buffer
39      </p></dd><dt><span class="term">ssn</span></dt><dd><p>
40Starting Sequence Number expected to be aggregated.
41      </p></dd><dt><span class="term">buf_size</span></dt><dd><p>
42buffer size for incoming A-MPDUs
43      </p></dd><dt><span class="term">timeout</span></dt><dd><p>
44reset timer value (in TUs).
45      </p></dd><dt><span class="term">dialog_token</span></dt><dd><p>
46dialog token for aggregation session
47      </p></dd><dt><span class="term">auto_seq</span></dt><dd><p>
48used for offloaded BA sessions to automatically pick head_seq_and
49and ssn.
50      </p></dd><dt><span class="term">removed</span></dt><dd><p>
51this session is removed (but might have been found due to RCU)
52      </p></dd></dl></div></div><div class="refsect1"><a name="idp1114559612"></a><h2>Description</h2><p>
53   This structure's lifetime is managed by RCU, assignments to
54   the array holding it must hold the aggregation mutex.
55   </p><p>
56
57   The <em class="parameter"><code>reorder_lock</code></em> is used to protect the members of this
58   struct, except for <em class="parameter"><code>timeout</code></em>, <em class="parameter"><code>buf_size</code></em> and <em class="parameter"><code>dialog_token</code></em>,
59   which are constant across the lifetime of the struct (the
60   dialog token being used only for debugging).
61</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-struct-tid-ampdu-tx.html">Prev</a>&#160;</td><td width="20%" align="center"><a accesskey="u" href="aggregation-internals.html">Up</a></td><td width="40%" align="right">&#160;<a accesskey="n" href="synchronisation.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">struct tid_ampdu_tx</span>&#160;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&#160;Chapter&#160;24.&#160;Synchronisation</td></tr></table></div></body></html>
62