1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>ieee80211_sta_set_buffered</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="AP.html#ps-client" title="support for powersaving clients"><link rel="prev" href="API-ieee80211-sta-ps-transition-ni.html" title="ieee80211_sta_ps_transition_ni"><link rel="next" href="API-ieee80211-sta-block-awake.html" title="ieee80211_sta_block_awake"></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">ieee80211_sta_set_buffered</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-ieee80211-sta-ps-transition-ni.html">Prev</a>&#160;</td><th width="60%" align="center">support for powersaving clients</th><td width="20%" align="right">&#160;<a accesskey="n" href="API-ieee80211-sta-block-awake.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-ieee80211-sta-set-buffered"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ieee80211_sta_set_buffered &#8212; 
2  inform mac80211 about driver-buffered frames
3 </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ieee80211_sta_set_buffered </b>(</code></td><td>struct ieee80211_sta * <var class="pdparam">sta</var>, </td></tr><tr><td>&#160;</td><td>u8 <var class="pdparam">tid</var>, </td></tr><tr><td>&#160;</td><td>bool <var class="pdparam">buffered</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer">&#160;</div></div></div><div class="refsect1"><a name="idp1114186084"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sta</code></em></span></dt><dd><p>
4     <span class="structname">struct ieee80211_sta</span> pointer for the sleeping station
5    </p></dd><dt><span class="term"><em class="parameter"><code>tid</code></em></span></dt><dd><p>
6     the TID that has buffered frames
7    </p></dd><dt><span class="term"><em class="parameter"><code>buffered</code></em></span></dt><dd><p>
8     indicates whether or not frames are buffered for this TID
9    </p></dd></dl></div></div><div class="refsect1"><a name="idp1114189996"></a><h2>Description</h2><p>
10   If a driver buffers frames for a powersave station instead of passing
11   them back to mac80211 for retransmission, the station may still need
12   to be told that there are buffered frames via the TIM bit.
13   </p><p>
14
15   This function informs mac80211 whether or not there are frames that are
16   buffered in the driver for a given TID; mac80211 can then use this data
17   to set the TIM bit (NOTE: This may call back into the driver's set_tim
18   call! Beware of the locking!)
19   </p><p>
20
21   If all frames are released to the station (due to PS-poll or uAPSD)
22   then the driver needs to inform mac80211 that there no longer are
23   frames buffered. However, when the station wakes up mac80211 assumes
24   that all buffered frames will be transmitted and clears this data,
25   drivers need to make sure they inform mac80211 about all buffered
26   frames on the sleep transition (<code class="function">sta_notify</code> with <code class="constant">STA_NOTIFY_SLEEP</code>).
27   </p><p>
28
29   Note that technically mac80211 only needs to know this per AC, not per
30   TID, but since driver buffering will inevitably happen per TID (since
31   it is related to aggregation) it is easier to make mac80211 map the
32   TID to the AC as required instead of keeping track in all drivers that
33   use this API.
34</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ieee80211-sta-ps-transition-ni.html">Prev</a>&#160;</td><td width="20%" align="center"><a accesskey="u" href="AP.html#ps-client">Up</a></td><td width="40%" align="right">&#160;<a accesskey="n" href="API-ieee80211-sta-block-awake.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">ieee80211_sta_ps_transition_ni</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;<span class="phrase">ieee80211_sta_block_awake</span></td></tr></table></div></body></html>
35