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 – for kernel developers"><link rel="up" href="aggregation-internals.html" title="Chapter 23. Aggregation"><link rel="prev" href="API-struct-tid-ampdu-tx.html" title="struct tid_ampdu_tx"><link rel="next" href="synchronisation.html" title="Chapter 24. 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> </td><th width="60%" align="center">Chapter 23. Aggregation</th><td width="20%" align="right"> <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 — 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> </td><td width="20%" align="center"><a accesskey="u" href="aggregation-internals.html">Up</a></td><td width="40%" align="right"> <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> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 24. Synchronisation</td></tr></table></div></body></html> 62