1. 28 10月, 2013 1 次提交
    • E
      mac80211: implement SMPS for AP · 687da132
      Emmanuel Grumbach 提交于
      When the driver requests to move to STATIC or DYNAMIC SMPS,
      we send an action frame to each associated station and
      reconfigure the channel context / driver.
      Of course, non-MIMO stations are ignored.
      
      The beacon isn't updated. The association response will
      include the original capabilities. Stations that associate
      while in non-OFF SMPS mode will get an action frame right
      after association to inform them about our current state.
      Note that we wait until the end of the EAPOL. Sending an
      action frame before the EAPOL is finished can be an issue
      for a few clients. Clients aren't likely to send EAPOL
      frames in MIMO anyway.
      
      When the SMPS configuration gets more permissive (e.g.
      STATIC -> OFF), we don't wake up stations that are asleep
      We remember that they don't know about the change and send
      the action frame when they wake up.
      
      When the SMPS configuration gets more restrictive (e.g.
      OFF -> STATIC), we set the TIM bit for every sleeping STA.
      uAPSD stations might send MIMO until they poll the action
      frame, but this is for a short period of time.
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      [fix vht streams loop, initialisation]
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      687da132
  2. 11 10月, 2013 1 次提交
  3. 03 10月, 2013 1 次提交
  4. 01 10月, 2013 6 次提交
  5. 26 9月, 2013 10 次提交
  6. 26 8月, 2013 1 次提交
    • J
      mac80211: fix change_interface queue assignments · a9865538
      Johannes Berg 提交于
      Jouni reported that with mac80211_hwsim, multicast TX was causing
      crashes due to invalid vif->cab_queue assignment. It turns out that
      this is caused by change_interface() getting invoked and not having
      the vif->type/vif->p2p assigned correctly before calling the queue
      check (ieee80211_check_queues). Fix this by passing the 'external'
      interface type to the function and adjusting it accordingly.
      
      While at it, also fix the error path in change_interface, it wasn't
      correctly resetting to the external type but using the internal one
      instead.
      
      Fortunately this affects on hwsim because all other drivers set the
      vif->type/vif->p2p variables when changing iftype. This shouldn't
      be needed, but almost all implementations actually do it for their
      own internal handling.
      Reported-by: NJouni Malinen <j@w1.fi>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      a9865538
  7. 23 8月, 2013 5 次提交
  8. 22 8月, 2013 1 次提交
  9. 21 8月, 2013 3 次提交
  10. 16 8月, 2013 3 次提交
    • J
      mac80211: add APIs to allow keeping connections after WoWLAN · 27b3eb9c
      Johannes Berg 提交于
      In order to be able to (securely) keep connections alive after
      the system was suspended for WoWLAN, we need some additional
      APIs. We already have API (ieee80211_gtk_rekey_notify) to tell
      wpa_supplicant about the new replay counter if GTK rekeying
      was done by the device while the host was asleep, but that's
      not sufficient.
      
      If GTK rekeying wasn't done, we need to tell the host about
      sequence counters for the GTK (and PTK regardless of rekeying)
      that was used while asleep, add ieee80211_set_key_rx_seq() for
      that.
      
      If GTK rekeying was done, then we need to be able to disable
      the old keys (with ieee80211_remove_key()) and allocate the
      new GTK key(s) in mac80211 (with ieee80211_gtk_rekey_add()).
      
      If protocol offload (e.g. ARP) is implemented, then also the
      TX sequence counter for the PTK must be updated, using the new
      ieee80211_set_key_tx_seq() function.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      27b3eb9c
    • S
      mac80211: move ibss presp generation in own function · d51b70ff
      Simon Wunderlich 提交于
      Channel Switch will later require to generate beacons without setting
      them immediately. Therefore split the presp generation in an own
      function. Splitting the original very long function might be a good idea
      anyway.
      Signed-off-by: NSimon Wunderlich <siwu@hrz.tu-chemnitz.de>
      Signed-off-by: NMathias Kretschmer <mathias.kretschmer@fokus.fraunhofer.de>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      d51b70ff
    • J
      mac80211: perform power save processing before decryption · 86c228a7
      Johan Almbladh 提交于
      This patch decouples the power save processing from the frame decryption
      by running the decrypt rx handler after sta_process. In the case where
      the decryption failed for some reason, the stack used to not process
      the PM and MOREDATA bits for that frame. The stack now always performs
      power save processing regardless of the decryption result. That means that
      encrypted data frames and NULLFUNC frames are now handled in the same way
      regarding power save processing, making the stack more robust.
      Signed-off-by: NJohan Almbladh <ja@anyfi.net>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      86c228a7
  11. 13 8月, 2013 1 次提交
  12. 12 8月, 2013 3 次提交
  13. 09 8月, 2013 2 次提交
  14. 06 8月, 2013 1 次提交
  15. 02 8月, 2013 1 次提交