1. 28 10月, 2013 4 次提交
    • C
      {nl,cfg,mac}80211: enable the triggering of CSA frame in mesh · c6da674a
      Chun-Yeow Yeoh 提交于
      Allow the triggering of CSA frame using mesh interface. The
      rules are more or less same with IBSS, such as not allowed to
      change between the band and channel width has to be same from
      the previous mode. Also, move the ieee80211_send_action_csa
      to a common space so that it can be re-used by mesh interface.
      Signed-off-by: NChun-Yeow Yeoh <yeohchunyeow@cozybit.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      c6da674a
    • C
      mac80211: process the CSA frame for mesh accordingly · 8f2535b9
      Chun-Yeow Yeoh 提交于
      Process the CSA frame according to the procedures define in IEEE Std
      802.11-2012 section 10.9.8.4.3 as follow:
      * The mesh channel switch parameters element (MCSP) must be availabe.
      * If the MCSP's TTL is 1, drop the frame but still process the CSA.
      * If the MCSP's precedence value is less than or equal to the current
        precedence value, drop the frame and do not process the CSA.
      * The CSA frame is forwarded after TTL is decremented by 1 and the
        initiator field is set to 0. Transmit restrict field and others
        are maintained as is.
      * No beacon or probe response frame are handled here.
      
      Also, introduce the debug message used for mesh CSA purpose.
      Signed-off-by: NChun-Yeow Yeoh <yeohchunyeow@cozybit.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      8f2535b9
    • S
      mac80211: Remove check for offchannel state when waking netdev queues · 17ac4959
      Seth Forshee 提交于
      6c17b77b ensures that a device's
      mac80211 queues will remain stopped while offchannel. Since the
      vif can no longer be offchannel when the queues wake it's not
      necessary to check for this before waking its netdev queues.
      Signed-off-by: NSeth Forshee <seth.forshee@canonical.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      17ac4959
    • 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. 14 10月, 2013 1 次提交
  3. 01 10月, 2013 2 次提交
  4. 27 9月, 2013 1 次提交
  5. 26 9月, 2013 2 次提交
    • S
      mac80211: split off channel switch parsing function · e6b7cde4
      Simon Wunderlich 提交于
      The channel switch parsing function can be re-used for the IBSS code,
      put the common part into an extra function.
      Signed-off-by: NSimon Wunderlich <siwu@hrz.tu-chemnitz.de>
      Signed-off-by: NMathias Kretschmer <mathias.kretschmer@fokus.fraunhofer.de>
      [also move/rename chandef_downgrade]
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      e6b7cde4
    • J
      mac80211: add ieee80211_iterate_active_interfaces_rtnl() · c7c71066
      Johannes Berg 提交于
      If it is needed to disconnect multiple virtual interfaces after
      (WoWLAN-) suspend, the most obvious approach would be to iterate
      all interfaces by calling ieee80211_iterate_active_interfaces()
      and then call ieee80211_resume_disconnect() for each one. This
      is what the iwlmvm driver does.
      
      Unfortunately, this causes a locking dependency from mac80211's
      iflist_mtx to the key_mtx. This is problematic as the former is
      intentionally never held while calling any driver operation to
      allow drivers to iterate with their own locks held. The key_mtx
      is held while installing a key into the driver though, so this
      new lock dependency means drivers implementing the logic above
      can no longer hold their own lock while iterating.
      
      To fix this, add a new ieee80211_iterate_active_interfaces_rtnl()
      function that iterates while the RTNL is already held. This is
      true during suspend/resume, so that then the locking dependency
      isn't introduced.
      
      While at it, also refactor the various interface iterators and
      keep only a single implementation called by the various cases.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      c7c71066
  6. 16 8月, 2013 1 次提交
    • 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
  7. 16 7月, 2013 3 次提交
  8. 12 6月, 2013 1 次提交
  9. 05 6月, 2013 1 次提交
  10. 29 5月, 2013 1 次提交
  11. 25 5月, 2013 2 次提交
  12. 17 5月, 2013 1 次提交
  13. 16 4月, 2013 3 次提交
    • J
      mac80211: parse VHT channel switch IEs · b2e506bf
      Johannes Berg 提交于
      VHT introduces multiple IEs that need to be parsed for a
      wide bandwidth channel switch. Two are (currently) needed
      in mac80211:
       * wide bandwidth channel switch element
       * channel switch wrapper element
      
      The former is contained in the latter for beacons and probe
      responses, but not for the spectrum management action frames
      so the IE parser needs a new argument to differentiate them.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      b2e506bf
    • J
      mac80211: support secondary channel offset in CSA · 85220d71
      Johannes Berg 提交于
      Add support for the secondary channel offset IE in channel
      switch announcements. This is necessary for proper handling
      of CSA on HT access points.
      
      For this to work it is also necessary to convert everything
      here to use chandef structs instead of just channels. The
      driver updates aren't really correct though. In particular,
      the TI wl18xx driver update can't possibly be right since
      it just ignores the new channel width for lack of firmware
      API.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      85220d71
    • J
      mac80211: support extended channel switch · b4f286a1
      Johannes Berg 提交于
      Support extended channel switch when the operating
      class is one of the global operating classes as
      defined in Annex E of 802.11-2012. If it isn't,
      disconnect from the AP instead.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      b4f286a1
  14. 11 4月, 2013 1 次提交
  15. 08 4月, 2013 6 次提交
  16. 26 3月, 2013 1 次提交
  17. 21 3月, 2013 1 次提交
  18. 19 3月, 2013 2 次提交
  19. 06 3月, 2013 2 次提交
  20. 15 2月, 2013 4 次提交