1. 15 9月, 2011 1 次提交
  2. 14 9月, 2011 1 次提交
  3. 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
  4. 09 8月, 2011 1 次提交
  5. 29 4月, 2011 1 次提交
  6. 31 3月, 2011 1 次提交
  7. 26 2月, 2011 1 次提交
  8. 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
  9. 04 2月, 2011 1 次提交
  10. 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
  11. 07 12月, 2010 1 次提交
  12. 30 11月, 2010 1 次提交
  13. 25 11月, 2010 2 次提交
  14. 07 10月, 2010 1 次提交
  15. 06 10月, 2010 1 次提交
  16. 25 9月, 2010 1 次提交
  17. 26 8月, 2010 1 次提交
  18. 25 8月, 2010 1 次提交
  19. 29 6月, 2010 1 次提交
  20. 03 6月, 2010 1 次提交
  21. 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
  22. 16 3月, 2010 1 次提交
  23. 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
  24. 10 2月, 2010 1 次提交
  25. 26 1月, 2010 1 次提交
  26. 20 1月, 2010 2 次提交
  27. 29 12月, 2009 1 次提交
  28. 23 12月, 2009 1 次提交
  29. 22 12月, 2009 2 次提交
    • J
      mac80211: reduce reliance on netdev · 47846c9b
      Johannes Berg 提交于
      For bluetooth 3, we will most likely not have
      a netdev for a virtual interface (sdata), so
      prepare for that by reducing the reliance on
      having a netdev. This patch moves the name
      and address fields into the sdata struct and
      uses them from there all over. Some work is
      needed to keep them sync'ed, but that's not
      a lot of work and in slow paths anyway.
      
      In doing so, this also reduces the number of
      pointer dereferences in many places, because
      of things like sdata->dev->dev_addr becoming
      sdata->vif.addr.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      47846c9b
    • J
      mac80211: make station management completely depend on vif · abe60632
      Johannes Berg 提交于
      The station management currently uses the virtual
      interface, but you cannot add the same station to
      multiple virtual interfaces if you're communicating
      with it in multiple ways.
      
      This restriction should be lifted so that in the
      future we can, for instance, support bluetooth 3
      with an access point that mac80211 is already
      associated to.
      
      We can do that by requiring all sta_info_get users
      to provide the virtual interface and making the RX
      code aware that an address may match more than one
      station struct. Thanks to the previous patches this
      one isn't all that large and except for the RX and
      TX status paths changes has low complexity.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      abe60632
  30. 05 12月, 2009 1 次提交
    • J
      mac80211: Fix TX status reporting for injected data frames · 914828fa
      Jouni Malinen 提交于
      An earlier optimization on removing unnecessary traffic on cooked
      monitor interfaces ("mac80211: reduce the amount of unnecessary traffic
      on cooked monitor interfaces ") ended up removing quite a bit more
      than just unnecessary traffic. It was not supposed to remove TX status
      reporting for injected frames, but ended up doing it by checking the
      injected flag in skb->cb only after that field had been cleared with
      memset.. Fix this by taking a local copy of the injected flag before
      skb->cb is cleared.
      
      This broke user space applications that depend on getting TX status
      notifications for injected data frames. For example, STA inactivity
      poll from hostapd did not work and ended up kicking out stations even
      if they were still present.
      Signed-off-by: NJouni Malinen <j@w1.fi>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      914828fa
  31. 19 11月, 2009 1 次提交