1. 28 2月, 2009 2 次提交
    • J
      mac80211: fix aggregation for hardware with ampdu queues · 96f5e66e
      Johannes Berg 提交于
      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
      this:
       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: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      96f5e66e
    • J
      mac80211: disallow moving netns · 076ae609
      Johannes Berg 提交于
      mac80211 currently assumes init_net for all interfaces,
      so really will not cope well with network namespaces,
      at least at this time.
      
      To change this, we would have keep track of the netns
      in addition to the ifindex, which is not something I
      want to think about right now.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Cc: Eric W. Biederman <ebiederm@xmission.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      076ae609
  2. 14 2月, 2009 4 次提交
  3. 10 2月, 2009 2 次提交
  4. 30 1月, 2009 9 次提交
  5. 20 12月, 2008 4 次提交
  6. 13 12月, 2008 2 次提交
  7. 05 12月, 2008 1 次提交
  8. 26 11月, 2008 1 次提交
  9. 11 11月, 2008 1 次提交
  10. 01 11月, 2008 11 次提交
  11. 07 10月, 2008 1 次提交
  12. 25 9月, 2008 2 次提交
    • J
      mac80211: clean up rate control API · 4b7679a5
      Johannes Berg 提交于
      Long awaited, hard work. This patch totally cleans up the rate control
      API to remove the requirement to include internal headers outside of
      net/mac80211/.
      
      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: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      4b7679a5
    • J
      mac80211: make master iface not wireless · 133b8226
      Johannes Berg 提交于
      There's no need to register the master netdev with cfg80211,
      in fact, this is quite dangerous and lead to having to add
      checks for the master interface all over the config handlers.
      This patch removes the "ieee80211_ptr" from the master iface
      in favour of having a small netdev_priv() associated with
      the master interface that stores the ieee80211_local pointer.
      Because of this, a lot of code in the configuration handlers
      can go away. To make this patch easier to verify I have also
      removed a number of wiphy_priv() calls in favour of getting
      the sdata first and then the local pointer from that.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      133b8226