• Johannes Berg's avatar
    mac80211: implement beacon filtering in software · d91f36db
    Johannes Berg authored
    Regardless of whether the hardware implements beacon filtering,
    there's no need to process all beacons in software all the time
    throughout the stack (mac80211 does a lot, then cfg80211, then
    in the future possibly userspace).
    This patch implements the "best possible" beacon filtering in
    mac80211. "Best possible" means that it can look for changes in
    all requested information elements, and distinguish vendor IEs
    by their OUI.
    In the future, we will add nl80211 API for userspace to request
    information elements and vendor IE OUIs to watch -- drivers can
    then implement the best they can do while software implements
    it fully.
    It is unclear whether or not this actually saves CPU time, but
    the data is all in the cache already so it should be fairly
    cheap. The additional _testing_, however, has great benefit;
    Without this, and on hardware that doesn't implement beacon
    filtering, wrong assumptions about, for example, scan result
    updates could quickly creep into code.
    Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>