1. 18 Jun, 2013 1 commit
    • Antonio Quartulli's avatar
      Revert "mac80211: in IBSS use the Auth frame to trigger STA reinsertion" · 52874a5e
      Antonio Quartulli authored
      This reverts commit 6d810f10
      
      
      
      In this way an IBSS station will not use the AUTH messages
      to trigger a state reinitialisation anymore.
      
      The behaviour was racy and was not working properly.
      It has been introduced to help wpa_supplicant to support
      IBSS/RSN, however all the logic is now getting moved into
      wpa_s itself which will also be in charge of handling the
      AUTH messages thanks to the mgmt frame registration.
      
      If userspace does not register for receiving AUTH frames
      then mac80211 will still reply by itself.
      
      At the same time, the auth frame registration counter can be
      removed since it is not needed anymore.
      Signed-off-by: default avatarAntonio Quartulli <antonio@open-mesh.com>
      [remove unused variable]
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      52874a5e
  2. 11 Jun, 2013 3 commits
  3. 03 Jun, 2013 1 commit
  4. 29 May, 2013 1 commit
  5. 24 May, 2013 1 commit
    • Johannes Berg's avatar
      cfg80211/mac80211: use cfg80211 wdev mutex in mac80211 · 8d61ffa5
      Johannes Berg authored
      
      
      Using separate locks in cfg80211 and mac80211 has always
      caused issues, for example having to unlock in places in
      mac80211 to call cfg80211, which even needed a framework
      to make cfg80211 calls after some functions returned etc.
      
      Additionally, I suspect some issues people have reported
      with the cfg80211 state getting confused could be due to
      such issues, when cfg80211 is asking mac80211 to change
      state but mac80211 is in the process of telling cfg80211
      that the state changed (in another way.)
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      8d61ffa5
  6. 16 May, 2013 3 commits
  7. 22 Apr, 2013 1 commit
  8. 16 Apr, 2013 1 commit
  9. 10 Apr, 2013 1 commit
  10. 08 Apr, 2013 1 commit
  11. 25 Mar, 2013 2 commits
  12. 22 Mar, 2013 1 commit
  13. 11 Mar, 2013 2 commits
  14. 07 Mar, 2013 1 commit
  15. 06 Mar, 2013 8 commits
  16. 28 Feb, 2013 1 commit
  17. 26 Feb, 2013 1 commit
  18. 15 Feb, 2013 7 commits
    • Johannes Berg's avatar
      mac80211: clean up mesh code · bf7cd94d
      Johannes Berg authored
      
      
      There's various code with strange indentation,
      questionable loop and locking constructs, etc.
      
      The bigger change is moving the "sdata" argument
      to the first argument of all functions, like all
      other mac80211 functions that have one.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      bf7cd94d
    • Jouni Malinen's avatar
      cfg80211: Pass TDLS peer's QoS/HT/VHT information during set_station · df881293
      Jouni Malinen authored
      
      
      The information of the peer's capabilities is required for the driver
      to perform TDLS Peer UAPSD operations. This information of the peer is
      passed by the supplicant using NL80211_CMD_SET_STATION command. This
      commit enhances the function nl80211_set_station to pass this
      information of the peer to the driver in case this command is used
      with the TDLS peer STA.
      
      In addition, make the HT/VHT capability configuration handled more
      consistently for other STA cases (reject both instead of just HT).
      Signed-off-by: default avatarJouni Malinen <jouni@qca.qualcomm.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      df881293
    • Thomas Pedersen's avatar
      mac80211: cache mesh beacon · 2b5e1967
      Thomas Pedersen authored
      
      
      Previously, the entire mesh beacon would be generated each
      time the beacon timer fired. Instead generate a beacon
      head and tail (so the TIM can easily be inserted when mesh
      power save is on) when starting a mesh or the MBSS
      parameters change.
      
      Also add a mutex for protecting beacon updates and
      preventing leaks.
      Signed-off-by: default avatarThomas Pedersen <thomas@cozybit.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      2b5e1967
    • Johannes Berg's avatar
      mac80211: stop toggling IEEE80211_HT_CAP_SUP_WIDTH_20_40 · e1a0c6b3
      Johannes Berg authored
      
      
      For VHT, many more bandwidth changes are possible. As a first
      step, stop toggling the IEEE80211_HT_CAP_SUP_WIDTH_20_40 flag
      in the HT capabilities and instead introduce a bandwidth field
      indicating the currently usable bandwidth to transmit to the
      station. Of course, make all drivers use it.
      
      To achieve this, make ieee80211_ht_cap_ie_to_sta_ht_cap() get
      the station as an argument, rather than the new capabilities,
      so it can set up the new bandwidth field.
      
      If the station is a VHT station and VHT bandwidth is in use,
      also set the bandwidth accordingly.
      
      Doing this allows us to get rid of the supports_40mhz flag as
      the HT capabilities now reflect the true capability instead of
      the current setting.
      
      While at it, also fix ieee80211_ht_cap_ie_to_sta_ht_cap() to not
      ignore HT cap overrides when MCS TX isn't supported (not that it
      really happens...)
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      e1a0c6b3
    • Johannes Berg's avatar
      mac80211: pass station to ieee80211_vht_cap_ie_to_sta_vht_cap · 4a34215e
      Johannes Berg authored
      
      
      Like with HT, make things a bit simpler in future patches by
      passing the station to ieee80211_vht_cap_ie_to_sta_vht_cap()
      instead of the vht_cap pointer. Also disable VHT here if HT
      isn't supported.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      4a34215e
    • Thomas Pedersen's avatar
      mac80211: consolidate MBSS change notification · 39886b61
      Thomas Pedersen authored
      
      
      A few mesh utility functions will call
      ieee80211_bss_info_change_notify(), and then the caller
      might notify the driver of the same change again. Avoid
      this redundancy by propagating the BSS changes and
      generally calling bss_info_change_notify() once per
      change.
      Signed-off-by: default avatarThomas Pedersen <thomas@cozybit.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      39886b61
    • Simon Wunderlich's avatar
      mac80211: add radar detection command/event · 164eb02d
      Simon Wunderlich authored
      
      
      Add command to trigger radar detection in the driver/FW.
      Once radar detection is started it should continuously
      monitor for radars as long as the channel active.
      If radar is detected usermode notified with 'radar
      detected' event.
      
      Scanning and remain on channel functionality must be disabled
      while doing radar detection/scanning, and vice versa.
      
      Based on original patch by Victor Goldenshtein <victorg@ti.com>
      Signed-off-by: default avatarSimon Wunderlich <siwu@hrz.tu-chemnitz.de>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      164eb02d
  19. 11 Feb, 2013 2 commits
    • Seth Forshee's avatar
      mac80211: Fix tx queue handling during scans · 6c17b77b
      Seth Forshee authored
      
      
      Scans currently work by stopping the netdev tx queues but leaving the
      mac80211 queues active. This stops the flow of incoming packets while
      still allowing mac80211 to transmit nullfunc and probe request frames to
      facilitate scanning. However, the driver may try to wake the mac80211
      queues while in this state, which will also wake the netdev queues.
      
      To prevent this, add a new queue stop reason,
      IEEE80211_QUEUE_STOP_REASON_OFFCHANNEL, to be used when stopping the tx
      queues for off-channel operation. This prevents the netdev queues from
      waking when a driver wakes the mac80211 queues.
      
      This also stops all frames from being transmitted, even those meant to
      be sent off-channel. Add a new tx control flag,
      IEEE80211_TX_CTL_OFFCHAN_TX_OK, which allows frames to be transmitted
      when the queues are stopped only for the off-channel stop reason. Update
      all locations transmitting off-channel frames to use this flag.
      Signed-off-by: default avatarSeth Forshee <seth.forshee@canonical.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      6c17b77b
    • Johannes Berg's avatar
      mac80211: explicitly copy channels to VLANs where needed · 1f4ac5a6
      Johannes Berg authored
      
      
      Currently the code assigns channel contexts to VLANs
      (for use by the TX/RX code) when the AP master gets
      its channel context assigned. This works fine, but
      in the upcoming radar detection work the VLANs don't
      require a channel context (during radar detection)
      and assigning one to them anyway causes issues with
      locking and also inconsistencies -- a VLAN interface
      that is added before radar detection would get the
      channel context, while one added during it wouldn't.
      
      Fix these issues moving the channel context copying
      to a new explicit operation that will not be used
      in the radar detection code.
      Acked-by: default avatarSimon Wunderlich <siwu@hrz.tu-chemnitz.de>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      1f4ac5a6
  20. 06 Feb, 2013 1 commit