1. 22 11月, 2011 1 次提交
  2. 10 11月, 2011 3 次提交
  3. 01 11月, 2011 1 次提交
  4. 15 10月, 2011 2 次提交
  5. 12 10月, 2011 1 次提交
  6. 01 10月, 2011 6 次提交
    • J
      mac80211: optimise station flags · c2c98fde
      Johannes Berg 提交于
      The flaglock in struct sta_info has long been
      something that I wanted to get rid of, this
      finally does the conversion to atomic bitops.
      
      The conversion itself is straight-forward in
      most places, a few things needed to change a
      bit since we can no longer use multiple bits
      at the same time.
      
      On x86-64, this is a fairly significant code
      size reduction:
         text	   data	    bss	    dec	    hex
       427861	  23648	   1008	 452517	  6e7a5	before
       425383	  23648	    976	 450007	  6ddd7	after
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      c2c98fde
    • J
      mac80211: implement uAPSD · 47086fc5
      Johannes Berg 提交于
      Add uAPSD support to mac80211. This is probably not
      possible with all devices, so advertising it with
      the cfg80211 flag will be left up to drivers that
      want it.
      
      Due to my previous patches it is now a fairly
      straight-forward extension. Drivers need to have
      accurate TX status reporting for the EOSP frame.
      For drivers that buffer themselves, the provided
      APIs allow releasing the right number of frames,
      but then drivers need to set EOSP and more-data
      themselves. This is documented in more detail in
      the new code itself.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      47086fc5
    • J
      mac80211: clear more-data bit on filtered frames · 8a8656fa
      Johannes Berg 提交于
      It doesn't seem likely, but maybe possible, that the
      more-data bit needs to be recomputed due to changes
      in the queued frames. Clear it for filtered frames
      to ensure that we never send it incorrectly. It'll
      be set again as necessary when we retransmit this
      frame.
      
      The more likely case is maybe where the station woke
      up after the filtered frame in which case more-data
      should be clear when the frame is transmitted to the
      station since it is now awake.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      8a8656fa
    • J
      mac80211: split PS buffers into ACs · 948d887d
      Johannes Berg 提交于
      For uAPSD support we'll need to have per-AC PS
      buffers. As this is a major undertaking, split
      the buffers before really adding support for
      uAPSD. This already makes some reference to the
      uapsd_queues variable, but for now that will
      never be non-zero.
      
      Since book-keeping is complicated, also change
      the logic for keeping a maximum of frames only
      and allow 64 frames per AC (up from 128 for a
      station).
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      948d887d
    • J
      mac80211: also expire filtered frames · 60750397
      Johannes Berg 提交于
      mac80211 will expire normal PS-buffered frames, but
      if the device rejected some frames for a sleeping
      station, these won't be on the ps_tx_buf queue but
      on the tx_filtered queue instead; this is done to
      avoid reordering.
      
      However, mac80211 will not expire frames from the
      filtered queue, let's fix that.
      
      Also add a more comments to what all this expiry is
      doing and how it works.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      60750397
    • J
      mac80211: unify TIM bit handling · c868cb35
      Johannes Berg 提交于
      Currently, the TIM bit for a given station is set
      and cleared all over the place. Since the logic to
      set/clear it will become much more complex when we
      add uAPSD support, as a first step let's collect
      the entire logic in one place. This requires a few
      small adjustments to other places.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      c868cb35
  7. 17 9月, 2011 1 次提交
  8. 15 9月, 2011 1 次提交
  9. 14 9月, 2011 1 次提交
  10. 23 8月, 2011 1 次提交
    • H
      mac80211: Tear down BA session on BAR tx failure · e69deded
      Helmut Schaa 提交于
      As described at [1] some STAs (i.e. Intel 5100 Windows) can end up
      correctly BlockAcking incoming frames without delivering them to user
      space if a AMPDU subframe got lost and we don't flush the receipients
      reorder buffer with a BlockAckReq. This in turn results in stuck
      connections.
      
      According to 802.11n-2009 it is not necessary to send a BAR to flush
      the recepients RX reorder buffer but we still do that to be polite.
      
      However, assume the following frame exchange:
      
      AP -> STA, AMPDU (failed)
      AP -> STA, BAR (failed)
      
      The client in question then ends up in the same situation and won't
      deliver frames to userspace anymore since we weren't able to flush
      its reorder buffer.
      
      This is not a hypothetical situation but I was able to observe this
      exact behavior during a stress test between a rt2800pci AP and a Intel
      5100 Windows client.
      
      In order to work around this issue just tear down the BA session as
      soon as a BAR failed to be TX'ed.
      
      [1] http://comments.gmane.org/gmane.linux.kernel.wireless.general/66867Signed-off-by: NHelmut Schaa <helmut.schaa@googlemail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      e69deded
  11. 09 8月, 2011 1 次提交
  12. 29 4月, 2011 1 次提交
  13. 31 3月, 2011 1 次提交
  14. 26 2月, 2011 1 次提交
  15. 24 2月, 2011 1 次提交
    • V
      mac80211: Fix a race on enabling power save. · f3e85b9e
      Vivek Natarajan 提交于
      There is a race on sending a data frame before the tx completion
      of nullfunc frame for enabling power save. As the data quickly
      follows the nullfunc frame, the AP thinks that the station is out
      of power save and continues to send the frames. Whereas in the
      station, the nullfunc ack will be processed after the tx completion
      of data frame and mac80211 goes to powersave. Thus the power
      save state mismatch between the station and the AP causes some
      data loss and some applications fail because of that. This patch
      fixes this issue.
      Signed-off-by: NVivek Natarajan <vnatarajan@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      f3e85b9e
  16. 04 2月, 2011 1 次提交
  17. 03 2月, 2011 1 次提交
    • J
      mac80211: fix TX status cookie in HW offload case · 4334ec85
      Johannes Berg 提交于
      When the off-channel TX is done with remain-on-channel
      offloaded to hardware, the reported cookie is wrong as
      in that case we shouldn't use the SKB as the cookie but
      need to instead use the corresponding r-o-c cookie
      (XOR'ed with 2 to prevent API mismatches).
      
      Fix this by keeping track of the hw_roc_skb pointer
      just for the status processing and use the correct
      cookie to report in this case. We can't use the
      hw_roc_skb pointer itself because it is NULL'ed when
      the frame is transmitted to prevent it being used
      twice.
      
      This fixes a bug where the P2P state machine in the
      supplicant gets stuck because it never gets a correct
      result for its transmitted frame.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      4334ec85
  18. 07 12月, 2010 1 次提交
  19. 30 11月, 2010 1 次提交
  20. 25 11月, 2010 2 次提交
  21. 07 10月, 2010 1 次提交
  22. 06 10月, 2010 1 次提交
  23. 25 9月, 2010 1 次提交
  24. 26 8月, 2010 1 次提交
  25. 25 8月, 2010 1 次提交
  26. 29 6月, 2010 1 次提交
  27. 03 6月, 2010 1 次提交
  28. 27 4月, 2010 1 次提交
    • J
      mac80211: Fix sta->last_tx_rate setting with no-op rate control devices · 0c869808
      Juuso Oikarinen 提交于
      The sta->last_tx_rate is traditionally updated just before transmitting a
      frame based on information from the rate control algorithm. However, for
      hardware drivers with IEEE80211_HW_HAS_RATE_CONTROL this is not performed,
      as the rate control algorithm is not executed, and because the used rate is
      not known before the frame has actually been transmitted.
      
      This causes atleast a fixed 1Mb/s to be reported to user space. A few other
      instances of code also rely on this information.
      
      Fix this by setting the sta->last_tx_rate in tx_status handling. There, look
      for last rates entry set by the driver, and use that as value for
      sta->last_tx_rate.
      Signed-off-by: NJuuso Oikarinen <juuso.oikarinen@nokia.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      0c869808
  29. 16 3月, 2010 1 次提交
  30. 16 2月, 2010 1 次提交
    • J
      cfg80211/mac80211: allow registering for and sending action frames · 026331c4
      Jouni Malinen 提交于
      This implements a new command to register for action frames
      that userspace wants to handle instead of the in-kernel
      rejection. It is then responsible for rejecting ones that
      it decided not to handle. There is no unregistration, but
      the socket can be closed for that.
      
      Frames that are not registered for will not be forwarded
      to userspace and will be rejected by the kernel, the
      cfg80211 API helps implementing that.
      
      Additionally, this patch adds a new command that allows
      doing action frame transmission from userspace. It can be
      used either to exchange action frames on the current
      operational channel (e.g., with the AP with which we are
      currently associated) or to exchange off-channel Public
      Action frames with the remain-on-channel command.
      Signed-off-by: NJouni Malinen <jouni.malinen@atheros.com>
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      026331c4
  31. 10 2月, 2010 1 次提交