All new accounts created on Gitlab now require administrator approval. If you invite any collaborators, please let Flux staff know so they can approve the accounts.

  1. 19 Dec, 2013 1 commit
    • Johannes Berg's avatar
      mac80211: fix iflist_mtx/mtx locking in radar detection · 34a3740d
      Johannes Berg authored
      The scan code creates an iflist_mtx -> mtx locking dependency,
      and a few other places, notably radar detection, were creating
      the opposite dependency, causing lockdep to complain. As scan
      and radar detection are mutually exclusive, the deadlock can't
      really happen in practice, but it's still bad form.
      
      A similar issue exists in the monitor mode code, but this is
      only used by channel-context drivers right now and those have
      to have hardware scan, so that also can't happen.
      
      Still, fix these issues by making some of the channel context
      code require the mtx to be held rather than acquiring it, thus
      allowing the monitor/radar callers to keep the iflist_mtx->mtx
      lock ordering.
      
      While at it, also fix access to the local->scanning variable
      in the radar code, and document that radar_detect_enabled is
      now properly protected by the mtx.
      
      All this would now introduce an ABBA deadlock between the DFS
      work cancelling and local->mtx, so change the locking there a
      bit to not need to use cancel_delayed_work_sync() but be able
      to just use cancel_delayed_work(). The work is also safely
      stopped/removed when the interface is stopped, so no extra
      changes are needed.
      Reported-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      Tested-by: default avatarSimon Wunderlich <sw@simonwunderlich.de>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      34a3740d
  2. 18 Dec, 2013 1 commit
  3. 16 Dec, 2013 1 commit
  4. 03 Dec, 2013 1 commit
    • Johannes Berg's avatar
      nl80211: vendor command support · ad7e718c
      Johannes Berg authored
      Add support for vendor-specific commands to nl80211. This is
      intended to be used for really vendor-specific functionality
      that can't be implemented in a generic fashion for any reason.
      It's *NOT* intended to be used for any normal/generic feature
      or any optimisations that could be implemented across drivers.
      
      Currently, only vendor commands (with replies) are supported,
      no dump operations or vendor-specific notifications.
      
      Also add a function wdev_to_ieee80211_vif() to mac80211 which
      is needed for mac80211-based drivers wanting to implement any
      vendor commands.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      ad7e718c
  5. 25 Nov, 2013 6 commits
  6. 28 Oct, 2013 4 commits
    • Chun-Yeow Yeoh's avatar
      {nl,cfg,mac}80211: enable the triggering of CSA frame in mesh · c6da674a
      Chun-Yeow Yeoh authored
      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: default avatarChun-Yeow Yeoh <yeohchunyeow@cozybit.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      c6da674a
    • Chun-Yeow Yeoh's avatar
      mac80211: process the CSA frame for mesh accordingly · 8f2535b9
      Chun-Yeow Yeoh authored
      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: default avatarChun-Yeow Yeoh <yeohchunyeow@cozybit.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      8f2535b9
    • Seth Forshee's avatar
      mac80211: Remove check for offchannel state when waking netdev queues · 17ac4959
      Seth Forshee authored
      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: default avatarSeth Forshee <seth.forshee@canonical.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      17ac4959
    • Emmanuel Grumbach's avatar
      mac80211: implement SMPS for AP · 687da132
      Emmanuel Grumbach authored
      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: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      [fix vht streams loop, initialisation]
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      687da132
  7. 14 Oct, 2013 1 commit
  8. 01 Oct, 2013 2 commits
  9. 26 Sep, 2013 3 commits
  10. 16 Aug, 2013 1 commit
    • Johannes Berg's avatar
      mac80211: add APIs to allow keeping connections after WoWLAN · 27b3eb9c
      Johannes Berg authored
      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: default avatarJohannes Berg <johannes.berg@intel.com>
      27b3eb9c
  11. 16 Jul, 2013 3 commits
  12. 12 Jun, 2013 1 commit
  13. 05 Jun, 2013 1 commit
  14. 29 May, 2013 1 commit
  15. 24 May, 2013 2 commits
  16. 16 May, 2013 1 commit
  17. 16 Apr, 2013 3 commits
    • Johannes Berg's avatar
      mac80211: parse VHT channel switch IEs · b2e506bf
      Johannes Berg authored
      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: default avatarJohannes Berg <johannes.berg@intel.com>
      b2e506bf
    • Johannes Berg's avatar
      mac80211: support secondary channel offset in CSA · 85220d71
      Johannes Berg authored
      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: default avatarJohannes Berg <johannes.berg@intel.com>
      85220d71
    • Johannes Berg's avatar
      mac80211: support extended channel switch · b4f286a1
      Johannes Berg authored
      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: default avatarJohannes Berg <johannes.berg@intel.com>
      b4f286a1
  18. 11 Apr, 2013 1 commit
  19. 08 Apr, 2013 6 commits