1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>Chapter 10. Beacon filter support</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="advanced.html" title="Part II. Advanced driver interface"><link rel="prev" href="powersave.html" title="Chapter 9. Powersave support"><link rel="next" href="API-ieee80211-beacon-loss.html" title="ieee80211_beacon_loss"></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">Chapter 10. Beacon filter support</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="powersave.html">Prev</a> </td><th width="60%" align="center">Part II. Advanced driver interface</th><td width="20%" align="right"> <a accesskey="n" href="API-ieee80211-beacon-loss.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a name="beacon-filter"></a>Chapter 10. Beacon filter support</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="refentrytitle"><a href="API-ieee80211-beacon-loss.html"><span class="phrase">ieee80211_beacon_loss</span></a></span><span class="refpurpose"> — 2 inform hardware does not receive beacons 3 </span></dt></dl></div><p> 4 </p><p> 5 Some hardware have beacon filter support to reduce host cpu wakeups 6 which will reduce system power consumption. It usually works so that 7 the firmware creates a checksum of the beacon but omits all constantly 8 changing elements (TSF, TIM etc). Whenever the checksum changes the 9 beacon is forwarded to the host, otherwise it will be just dropped. That 10 way the host will only receive beacons where some relevant information 11 (for example ERP protection or WMM settings) have changed. 12 </p><p> 13 Beacon filter support is advertised with the <code class="constant">IEEE80211_VIF_BEACON_FILTER</code> 14 interface capability. The driver needs to enable beacon filter support 15 whenever power save is enabled, that is <code class="constant">IEEE80211_CONF_PS</code> is set. When 16 power save is enabled, the stack will not check for beacon loss and the 17 driver needs to notify about loss of beacons with <code class="function">ieee80211_beacon_loss</code>. 18 </p><p> 19 The time (or number of beacons missed) until the firmware notifies the 20 driver of a beacon loss event (which in turn causes the driver to call 21 <code class="function">ieee80211_beacon_loss</code>) should be configurable and will be controlled 22 by mac80211 and the roaming algorithm in the future. 23 </p><p> 24 Since there may be constantly changing information elements that nothing 25 in the software stack cares about, we will, in the future, have mac80211 26 tell the driver which information elements are interesting in the sense 27 that we want to see changes in them. This will include 28 - a list of information element IDs 29 - a list of OUIs for the vendor information element 30 </p><p> 31 Ideally, the hardware would filter out any beacons without changes in the 32 requested elements, but if it cannot support that it may, at the expense 33 of some efficiency, filter out only a subset. For example, if the device 34 doesn't support checking for OUIs it should pass up all changes in all 35 vendor information elements. 36 </p><p> 37 Note that change, for the sake of simplification, also includes information 38 elements appearing or disappearing from the beacon. 39 </p><p> 40 Some hardware supports an <span class="quote">“<span class="quote">ignore list</span>”</span> instead, just make sure nothing 41 that was requested is on the ignore list, and include commonly changing 42 information element IDs in the ignore list, for example 11 (BSS load) and 43 the various vendor-assigned IEs with unknown contents (128, 129, 133-136, 44 149, 150, 155, 156, 173, 176, 178, 179, 219); for forward compatibility 45 it could also include some currently unused IDs. 46 </p><p> 47 </p><p> 48 In addition to these capabilities, hardware should support notifying the 49 host of changes in the beacon RSSI. This is relevant to implement roaming 50 when no traffic is flowing (when traffic is flowing we see the RSSI of 51 the received data packets). This can consist in notifying the host when 52 the RSSI changes significantly or when it drops below or rises above 53 configurable thresholds. In the future these thresholds will also be 54 configured by mac80211 (which gets them from userspace) to implement 55 them as the roaming algorithm requires. 56 </p><p> 57 If the hardware cannot implement this, the driver should ask it to 58 periodically pass beacon frames to the host so that software can do the 59 signal strength threshold checking. 60</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="powersave.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="advanced.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ieee80211-beacon-loss.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 9. Powersave support </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">ieee80211_beacon_loss</span></td></tr></table></div></body></html> 61