1. 13 Feb, 2009 1 commit
    • Kalle Valo's avatar
      mac80211: remove multicast check from check_tim() · 1fb3606b
      Kalle Valo authored
      
      
      Currently mac80211 checks for the multicast tim bit from beacons,
      disables power save and sends a null frame if the bit is set. This was
      added to support ath9k. But this is a bit controversial because the AP will
      send multicast frames immediately after the beacon and the time constraints
      are really high. Relying mac80211 to be fast enough here might not be
      reliable in all situations. And there's no need to send a null frame, AP
      will send the frames immediately after the dtim beacon no matter what.
      
      Also if dynamic power save is disabled (iwconfig wlan0 power timeout 0)
      currently mac80211 disables power save whenever the multicast bit is set
      but it's never enabled again after receiving the first multicast/broadcast
      frame.
      
      The current implementation is not usable on p54/stlc45xx and the
      easiest way to fix this is to remove the multicast tim bit check
      altogether. Handling multicast tim bit in host is rare, most of the
      designs do this in firmware/hardware, so it's better not to have it in
      mac80211. It's a lot better to do this in firmware/hardware, or if
      that's not possible it could be done in the driver.
      
      Also renamed the function to ieee80211_check_tim() to follow the style
      of the file.
      
      Signed-off-by: default avatarKalle Valo <kalle.valo@nokia.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      1fb3606b
  2. 11 Feb, 2009 1 commit
  3. 09 Feb, 2009 4 commits
  4. 29 Jan, 2009 21 commits
  5. 22 Jan, 2009 1 commit
  6. 19 Dec, 2008 5 commits
  7. 12 Dec, 2008 1 commit
  8. 05 Dec, 2008 2 commits
  9. 26 Nov, 2008 1 commit
  10. 25 Nov, 2008 1 commit
    • Luis R. Rodriguez's avatar
      cfg80211/mac80211: Add 802.11d support · 3f2355cb
      Luis R. Rodriguez authored
      
      
      This adds country IE parsing to mac80211 and enables its usage
      within the new regulatory infrastructure in cfg80211. We parse
      the country IEs only on management beacons for the BSSID you are
      associated to and disregard the IEs when the country and environment
      (indoor, outdoor, any) matches the already processed country IE.
      
      To avoid following misinformed or outdated APs we build and use
      a regulatory domain out of the intersection between what the AP
      provides us on the country IE and what CRDA is aware is allowed
      on the same country.
      
      A secondary device is allowed to follow only the same country IE
      as it make no sense for two devices on a system to be in two
      different countries.
      
      In the case the AP is using country IEs for an incorrect country
      the user may help compliance further by setting the regulatory
      domain before or after the IE is parsed and in that case another
      intersection will be performed.
      
      CONFIG_WIRELESS_OLD_REGULATORY is supported but requires CRDA
      present.
      
      Signed-off-by: default avatarLuis R. Rodriguez <lrodriguez@atheros.com>
      Acked-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      3f2355cb
  11. 21 Nov, 2008 1 commit
  12. 18 Nov, 2008 1 commit
    • Johannes Berg's avatar
      mac80211: remove ieee80211_notify_mac · 8e3bad65
      Johannes Berg authored
      Before ieee80211_notify_mac() was added, it was presented with the
      use case of using it to tell mac80211 that the association may
      have been lost because the firmware crashed/reset.
      
      Since then, it has also been used by iwlwifi to (slightly) speed
      up re-association after resume, a workaround around the fact that
      mac80211 has no suspend/resume handling yet. It is also not used
      by any other drivers, so clearly it cannot be necessary for "good
      enough" suspend/resume.
      
      Unfortunately, the callback suffers from a severe problem: It only
      works for station mode. If suspend/resume happens while in IBSS or
      any other mode (but station), then the callback is pointless.
      
      Recently, it has created a number of locking issues, first because
      it required rtnl locking rather than RCU due to calling sleeping
      functions within the critical section, and now because it's called
      by iwlwifi from the mac80211 workqueue that may not use the rtnl
      because it is flushed under rtnl.
      (cf. http://bugzilla.kernel.org/show_bug.cgi?id=12046
      
      )
      
      I think, therefore, that we should take a step back, remove it
      entirely for now and add the small feature it provided properly.
      For suspend and resume we will need to introduce new hooks, and for
      the case where the firmware was reset the driver will probably
      simply just pretend it has done a suspend/resume cycle to get
      mac80211 to reprogram the hardware completely, not just try to
      connect to the current AP again in station mode. When doing so, we
      will need to take into account locking issues and possibly defer
      to schedule_work from within mac80211 for the resume operation,
      while the suspend operation must be done directly.
      
      Proper suspend/resume should also not necessarily try to reconnect
      to the current AP, the time spent in suspend may have been short
      enough to not be disconnected from the AP, mac80211 will detect
      that the AP went out of range quickly if it did, and if the
      association is lost then the AP will disassoc as soon as a data
      frame is sent. We might also take into account WWOL then, and
      have mac80211 program the hardware into such a mode where it is
      available and requested.
      
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      8e3bad65