1. 22 Apr, 2009 1 commit
  2. 28 Mar, 2009 9 commits
  3. 16 Mar, 2009 1 commit
  4. 27 Feb, 2009 2 commits
    • Johannes Berg's avatar
      mac80211: split IBSS/managed code · 46900298
      Johannes Berg authored
      This patch splits out the ibss code and data from managed (station) mode.
      The reason to do this is to better separate the state machines, and have
      the code be contained better so it gets easier to determine what exactly
      a given change will affect, that in turn makes it easier to understand.
      This is quite some churn, especially because I split sdata->u.sta into
      sdata->u.mgd and sdata->u.ibss, but I think it's easier to maintain that
      way. I've also shuffled around some code -- null function sending is only
      applicable to managed interfaces so put that into that file, some other
      functions are needed from various places so put them into util, and also
      rearranged the prototypes in ieee80211_i.h accordingly.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    • Johannes Berg's avatar
      mac80211: fix aggregation for hardware with ampdu queues · 96f5e66e
      Johannes Berg authored
      Hardware with AMPDU queues currently has broken aggregation.
      This patch fixes it by making all A-MPDUs go over the regular AC queues,
      but keeping track of the hardware queues in mac80211. As a first rough
      version, it actually stops the AC queue for extended periods of time,
      which can be removed by adding buffering internal to mac80211, but is
      currently not a huge problem because people rarely use multiple TIDs
      that are in the same AC (and iwlwifi currently doesn't operate as AP).
      This is a short-term fix, my current medium-term plan, which I hope to
      execute soon as well, but am not sure can finish before .30, looks like
       1) rework the internal queuing layer in mac80211 that we use for
          fragments if the driver stopped queue in the middle of a fragmented
          frame to be able to queue more frames at once (rather than just a
          single frame with its fragments)
       2) instead of stopping the entire AC queue, queue up the frames in a
          per-station/per-TID queue during aggregation session initiation,
          when the session has come up take all those frames and put them
          onto the queue from 1)
       3) push the ampdu queue layer abstraction this patch introduces in
          mac80211 into the driver, and remove the virtual queue stuff from
          mac80211 again
      This plan will probably also affect ath9k in that mac80211 queues the
      frames instead of passing them down, even when there are no ampdu queues.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
  5. 13 Feb, 2009 1 commit
  6. 11 Feb, 2009 1 commit
  7. 09 Feb, 2009 1 commit
    • Luis R. Rodriguez's avatar
      mac80211: do not TX injected frames when not allowed · 47f4d887
      Luis R. Rodriguez authored
      Monitor mode is able to TX by using injected frames. We should
      not allow injected frames to be sent unless allowed by regulatory
      rules. Since AP mode uses a monitor interfaces to transmit
      management frames we have to take care to not break AP mode as
      well while resolving this. We can deal with this by allowing compliant
      APs solutions to inform mac80211 if their monitor interface is
      intended to be used for an AP by setting a cfg80211 flag for the
      monitor interface. hostapd, for example, currently does its own
      checks to ensure AP mode is not used on channels which require radar
      detection. Once such solutions are available it can can add this
      flag for monitor interfaces.
      Acked-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
  8. 29 Jan, 2009 7 commits
  9. 22 Jan, 2009 1 commit
  10. 19 Dec, 2008 1 commit
    • Kalle Valo's avatar
      mac80211: implement dynamic power save · 520eb820
      Kalle Valo authored
      This patch implements dynamic power save for mac80211. Basically it
      means enabling power save mode after an idle period. Implementing it
      dynamically gives a good compromise of low power consumption and low
      latency. Some hardware have support for this in firmware, but some
      require the host to do it.
      The dynamic power save is implemented by adding an timeout to
      ieee80211_subif_start_xmit(). The timeout can be enabled from userspace
      with Wireless Extensions. For example, the command below enables the
      dynamic power save and sets the time timeout to 500 ms:
      iwconfig wlan0 power timeout 500m
      Power save now only works with devices which handle power save in firmware.
      It's also disabled by default and the heuristics when and how to enable is
      considered as a policy decision and will be left for the userspace to handle.
      In case the firmware has support for this, drivers can disable this feature
      with IEEE80211_HW_NO_STACK_DYNAMIC_PS.
      Big thanks to Johannes Berg for the help with the design and code.
      Signed-off-by: default avatarKalle Valo <kalle.valo@nokia.com>
      Acked-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
  11. 12 Dec, 2008 1 commit
  12. 05 Dec, 2008 1 commit
  13. 10 Nov, 2008 1 commit
  14. 31 Oct, 2008 7 commits
  15. 28 Oct, 2008 1 commit
  16. 06 Oct, 2008 3 commits
  17. 24 Sep, 2008 1 commit
    • Johannes Berg's avatar
      mac80211: clean up rate control API · 4b7679a5
      Johannes Berg authored
      Long awaited, hard work. This patch totally cleans up the rate control
      API to remove the requirement to include internal headers outside of
      There's one internal use in the PID algorithm left for mesh networking,
      we'll have to figure out a way to clean that one up and decide how to
      do the peer link evaluation, possibly independent of the rate control
      algorithm or via new API.
      Additionally, ath9k is left using the cross-inclusion hack for now, we
      will add new API where necessary to make this work properly, but right
      now I'm not expert enough to do it. It's still off better than before.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>