Sophie

Sophie

distrib > CentOS > 6 > i386 > by-pkgid > 2c51d8eb79f8810ada971ee8c30ce1e5 > files > 2498

kernel-doc-2.6.32-71.14.1.el6.noarch.rpm

<?xml version="1.0" encoding="ANSI_X3.4-1968" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968" /><title>Chapter&#160;8.&#160;Beacon filter support</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><link rel="home" href="index.html" title="The mac80211 subsystem for kernel developers" /><link rel="up" href="pt02.html" title="Part&#160;II.&#160;Advanced driver interface" /><link rel="prev" href="ch07.html" title="Chapter&#160;7.&#160;Powersave support" /><link rel="next" href="re38.html" title="ieee80211_beacon_loss" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&#160;8.&#160;Beacon filter support</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch07.html">Prev</a>&#160;</td><th width="60%" align="center">Part&#160;II.&#160;Advanced driver interface</th><td width="20%" align="right">&#160;<a accesskey="n" href="re38.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter&#160;8.&#160;Beacon filter support"><div class="titlepage"><div><div><h2 class="title"><a id="beacon-filter"></a>Chapter&#160;8.&#160;Beacon filter support</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="refentrytitle"><a href="re38.html"><span>ieee80211_beacon_loss</span></a></span><span class="refpurpose"> &#8212; 
  inform hardware does not receive beacons
 </span></dt></dl></div><p>
   </p><p>
   Some hardware have beacon filter support to reduce host cpu wakeups
   which will reduce system power consumption. It usuallly works so that
   the firmware creates a checksum of the beacon but omits all constantly
   changing elements (TSF, TIM etc). Whenever the checksum changes the
   beacon is forwarded to the host, otherwise it will be just dropped. That
   way the host will only receive beacons where some relevant information
   (for example ERP protection or WMM settings) have changed.
   </p><p>
   Beacon filter support is advertised with the <code class="constant">IEEE80211_HW_BEACON_FILTER</code>
   hardware capability. The driver needs to enable beacon filter support
   whenever power save is enabled, that is <code class="constant">IEEE80211_CONF_PS</code> is set. When
   power save is enabled, the stack will not check for beacon loss and the
   driver needs to notify about loss of beacons with <code class="function">ieee80211_beacon_loss</code>.
   </p><p>
   The time (or number of beacons missed) until the firmware notifies the
   driver of a beacon loss event (which in turn causes the driver to call
   <code class="function">ieee80211_beacon_loss</code>) should be configurable and will be controlled
   by mac80211 and the roaming algorithm in the future.
   </p><p>
   Since there may be constantly changing information elements that nothing
   in the software stack cares about, we will, in the future, have mac80211
   tell the driver which information elements are interesting in the sense
   that we want to see changes in them. This will include
   - a list of information element IDs
   - a list of OUIs for the vendor information element
   </p><p>
   Ideally, the hardware would filter out any beacons without changes in the
   requested elements, but if it cannot support that it may, at the expense
   of some efficiency, filter out only a subset. For example, if the device
   doesn't support checking for OUIs it should pass up all changes in all
   vendor information elements.
   </p><p>
   Note that change, for the sake of simplification, also includes information
   elements appearing or disappearing from the beacon.
   </p><p>
   Some hardware supports an <span class="quote">&#8220;<span class="quote">ignore list</span>&#8221;</span> instead, just make sure nothing
   that was requested is on the ignore list, and include commonly changing
   information element IDs in the ignore list, for example 11 (BSS load) and
   the various vendor-assigned IEs with unknown contents (128, 129, 133-136,
   149, 150, 155, 156, 173, 176, 178, 179, 219); for forward compatibility
   it could also include some currently unused IDs.
   </p><p>
   </p><p>
   In addition to these capabilities, hardware should support notifying the
   host of changes in the beacon RSSI. This is relevant to implement roaming
   when no traffic is flowing (when traffic is flowing we see the RSSI of
   the received data packets). This can consist in notifying the host when
   the RSSI changes significantly or when it drops below or rises above
   configurable thresholds. In the future these thresholds will also be
   configured by mac80211 (which gets them from userspace) to implement
   them as the roaming algorithm requires.
   </p><p>
   If the hardware cannot implement this, the driver should ask it to
   periodically pass beacon frames to the host so that software can do the
   signal strength threshold checking.
</p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch07.html">Prev</a>&#160;</td><td width="20%" align="center"><a accesskey="u" href="pt02.html">Up</a></td><td width="40%" align="right">&#160;<a accesskey="n" href="re38.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter&#160;7.&#160;Powersave support&#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>ieee80211_beacon_loss</span></td></tr></table></div></body></html>