1. 06 Mar, 2017 1 commit
    • Andrew Zaborowski's avatar
      cfg80211: Accept multiple RSSI thresholds for CQM · 4a4b8169
      Andrew Zaborowski authored
      Change the SET CQM command's RSSI threshold attribute to accept any
      number of thresholds as a sorted array.  The API should be backwards
      compatible so that if one s32 threshold value is passed, the old
      mechanism is enabled.  The netlink event generated is the same in both
      cfg80211 handles an arbitrary number of RSSI thresholds but drivers have
      to provide a method (set_cqm_rssi_range_config) that configures a range
      set by a high and a low value.  Drivers have to call back when the RSSI
      goes out of that range and there's no additional event for each time the
      range is reconfigured as there was with the current one-threshold API.
      This method doesn't have a hysteresis parameter because there's no
      benefit to the cfg80211 code from having the hysteresis be handled by
      hardware/driver in terms of the number of wakeups.  At the same time
      it would likely be less consistent between drivers if offloaded or
      done in the drivers.
      Signed-off-by: default avatarAndrew Zaborowski <andrew.zaborowski@intel.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
  2. 09 Feb, 2017 1 commit
    • Luca Coelho's avatar
      cfg80211: fix NAN bands definition · 8585989d
      Luca Coelho authored
      The nl80211_nan_dual_band_conf enumeration doesn't make much sense.
      The default value is assigned to a bit, which makes it weird if the
      default bit and other bits are set at the same time.
      To improve this, get rid of NL80211_NAN_BAND_DEFAULT and add a wiphy
      configuration to let the drivers define which bands are supported.
      This is exposed to the userspace, which then can make a decision on
      which band(s) to use.  Additionally, rename all "dual_band" elements
      to "bands", to make things clearer.
      Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
  3. 08 Feb, 2017 4 commits
  4. 06 Feb, 2017 1 commit
  5. 13 Jan, 2017 2 commits
  6. 11 Jan, 2017 1 commit
    • Beni Lev's avatar
      cfg80211: consider VHT opmode on station update · 06f7c88c
      Beni Lev authored
      Currently, this attribute is only fetched on station addition, but
      not on station change. Since this info is only present in the assoc
      request, with full station state support in the driver it cannot be
      present when the station is added.
      Thus, add support for changing the VHT opmode on station update if
      done before (or while) the station is marked as associated. After
      this, ignore it, since it used to be ignored.
      Signed-off-by: default avatarBeni Lev <beni.lev@intel.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
  7. 09 Jan, 2017 2 commits
    • Andrzej Zaborowski's avatar
      cfg80211: NL80211_ATTR_SOCKET_OWNER support for CMD_CONNECT · bd2522b1
      Andrzej Zaborowski authored
      Disconnect or deauthenticate when the owning socket is closed if this
      flag is supplied to CMD_CONNECT or CMD_ASSOCIATE.  This may be used
      to ensure userspace daemon doesn't leave an unmanaged connection behind.
      In some situations it would be possible to account for that, to some
      degree, in the deamon restart code or in the up/down scripts without
      the use of this attribute.  But there will be systems where the daemon
      can go away for varying periods without a warning due to local resource
      Signed-off-by: default avatarAndrew Zaborowski <andrew.zaborowski@intel.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    • Johannes Berg's avatar
      cfg80211: size various nl80211 messages correctly · 4ef8c1c9
      Johannes Berg authored
      Ilan reported that sometimes nl80211 messages weren't working if
      the frames being transported got very large, which was really a
      problem for userspace-to-kernel messages, but prompted me to look
      at the code.
      Upon review, I found various places where variable-length data is
      transported in an nl80211 message but the message isn't allocated
      taking that into account. This shouldn't cause any problems since
      the frames aren't really that long, apart in one place where two
      (possibly very long frames) might not fit.
      Fix all the places (that I found) that get variable length data
      from the driver and put it into a message to take the length of
      the variable data into account. The 100 there is just a safe
      constant for the remaining message overhead (it's usually around
      50 for most messages.)
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
  8. 05 Jan, 2017 1 commit
    • Johannes Berg's avatar
      nl80211: fix sched scan netlink socket owner destruction · 753aacfd
      Johannes Berg authored
      A single netlink socket might own multiple interfaces *and* a
      scheduled scan request (which might belong to another interface),
      so when it goes away both may need to be destroyed.
      Remove the schedule_scan_stop indirection to fix this - it's only
      needed for interface destruction because of the way this works
      right now, with a single work taking care of all interfaces.
      Cc: stable@vger.kernel.org
      Fixes: 93a1e86c
       ("nl80211: Stop scheduled scan if netlink client disappears")
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
  9. 16 Dec, 2016 1 commit
  10. 13 Dec, 2016 2 commits
  11. 09 Dec, 2016 2 commits
    • Vamsi Krishna's avatar
      nl80211: Use different attrs for BSSID and random MAC addr in scan req · 2fa436b3
      Vamsi Krishna authored
      NL80211_ATTR_MAC was used to set both the specific BSSID to be scanned
      and the random MAC address to be used when privacy is enabled. When both
      the features are enabled, both the BSSID and the local MAC address were
      getting same value causing Probe Request frames to go with unintended
      DA. Hence, this has been fixed by using a different NL80211_ATTR_BSSID
      attribute to set the specific BSSID (which was the more recent addition
      in cfg80211) for a scan.
      Backwards compatibility with old userspace software is maintained to
      some extent by allowing NL80211_ATTR_MAC to be used to set the specific
      BSSID when scanning without enabling random MAC address use.
      Scanning with random source MAC address was introduced by commit
      ad2b26ab ("cfg80211: allow drivers to support random MAC addresses
      for scan") and the issue was introduced with the addition of the second
      user for the same attribute in commit 818965d3 ("cfg80211: Allow a
      scan request for a specific BSSID").
      Fixes: 818965d3
       ("cfg80211: Allow a scan request for a specific BSSID")
      Signed-off-by: default avatarVamsi Krishna <vamsin@qti.qualcomm.com>
      Signed-off-by: default avatarJouni Malinen <jouni@qca.qualcomm.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    • Johannes Berg's avatar
      nl80211: fix logic inversion in start_nan() · eeb04a96
      Johannes Berg authored
      Arend inadvertently inverted the logic while converting to
      wdev_running(), fix that.
      Fixes: 73c7da3d
       ("cfg80211: add generic helper to check interface is running")
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
  12. 29 Oct, 2016 1 commit
  13. 27 Oct, 2016 12 commits
  14. 19 Oct, 2016 1 commit
  15. 17 Oct, 2016 2 commits
  16. 13 Oct, 2016 1 commit
    • Purushottam Kushwaha's avatar
      cfg80211: support virtual interfaces with different beacon intervals · 0c317a02
      Purushottam Kushwaha authored
      This commit provides a mechanism for the host drivers to advertise the
      support for different beacon intervals among the respective interface
      combinations in a group, through NL80211_IFACE_COMB_BI_MIN_GCD (u32).
      This value will be compared against GCD of all beaconing interfaces of
      matching combinations.
      If the driver doesn't advertise this value, the old behaviour where
      all beacon intervals must be identical is retained.
      If it is specified, then any beacon interval for an interface in the
      interface combination as well as the GCD of all active beacon intervals
      in the combination must be greater or equal to this value.
      Signed-off-by: default avatarPurushottam Kushwaha <pkushwah@qti.qualcomm.com>
      [change commit message, some variable names, small other things]
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
  17. 30 Sep, 2016 5 commits