1. 05 Apr, 2016 1 commit
    • Jouni Malinen's avatar
      cfg80211: Allow a scan request for a specific BSSID · 818965d3
      Jouni Malinen authored
      This allows scans for a specific BSSID to be optimized by the user space
      application by requesting the driver to set the Probe Request frame
      BSSID field (Address 3) to the specified BSSID instead of the wildcard
      BSSID. This prevents other APs from replying which reduces airtime need
      and latency in getting the response from the target AP through.
      This is an optimization and as such, it is acceptable for some of the
      drivers not to support the mechanism. If not supported, the wildcard
      BSSID will be used and more responses may be received.
      Signed-off-by: default avatarJouni Malinen <jouni@qca.qualcomm.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
  2. 24 Feb, 2016 2 commits
    • Beni Lev's avatar
      cfg80211: Add global RRM capability · 0c9ca11b
      Beni Lev authored
      Today, the supplicant will add the RRM capabilities
      Information Element in the association request only if
      Quiet period is supported (NL80211_FEATURE_QUIET).
      Quiet is one of many RRM features, and there are other RRM
      features that are not related to Quiet (e.g. neighbor
      report). Therefore, requiring Quiet to enable RRM is too
      Some of the features, like neighbor report, can be
      supported by user space without any help from the kernel.
      Hence adding the RRM capabilities IE to association request
      should be the sole user space's decision.
      Removing the RRM dependency on Quiet in the driver solves
      this problem, but using an old driver with a user space
      tool that would not require Quiet feature would be
      problematic: the user space would add NL80211_ATTR_USE_RRM
      in the association request even if the kernel doesn't
      advertize NL80211_FEATURE_QUIET and the association would
      be denied by the kernel.
      This solution adds a global RRM capability, that tells user
      space that it can request RRM capabilities IE publishment
      without any specific feature support in the kernel.
      Signed-off-by: default avatarBeni Lev <beni.lev@intel.com>
      Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    • Lior David's avatar
      cfg80211: basic support for PBSS network type · 34d50519
      Lior David authored
      PBSS (Personal Basic Service Set) is a new BSS type for DMG
      networks. It is similar to infrastructure BSS, having an AP-like
      entity called PCP (PBSS Control Point), but it has few differences.
      PBSS support is mandatory for 11ad devices.
      Add support for PBSS by introducing a new PBSS flag attribute.
      The PBSS flag is used in the START_AP command to request starting
      a PCP instead of an AP, and in the CONNECT command to request
      connecting to a PCP instead of an AP.
      Signed-off-by: default avatarLior David <liord@codeaurora.org>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
  3. 23 Feb, 2016 1 commit
  4. 15 Dec, 2015 2 commits
  5. 04 Dec, 2015 4 commits
  6. 03 Nov, 2015 2 commits
  7. 16 Oct, 2015 1 commit
  8. 13 Oct, 2015 2 commits
    • Avraham Stern's avatar
      cfg80211: Add multiple scan plans for scheduled scan · 3b06d277
      Avraham Stern authored
      Add the option to configure multiple 'scan plans' for scheduled scan.
      Each 'scan plan' defines the number of scan cycles and the interval
      between scans. The scan plans are executed in the order they were
      configured. The last scan plan will always run infinitely and thus
      defines only the interval between scans.
      The maximum number of scan plans supported by the device and the
      maximum number of iterations in a single scan plan are advertised
      to userspace so it can configure the scan plans appropriately.
      When scheduled scan results are received there is no way to know which
      scan plan is being currently executed, so there is no way to know when
      the next scan iteration will start. This is not a problem, however.
      The scan start timestamp is only used for flushing old scan results,
      and there is no difference between flushing all results received until
      the end of the previous iteration or the start of the current one,
      since no results will be received in between.
      Signed-off-by: default avatarAvraham Stern <avraham.stern@intel.com>
      Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    • Dmitry Shmidt's avatar
      nl80211: allow BSS data to include CLOCK_BOOTTIME timestamp · 6e19bc4b
      Dmitry Shmidt authored
      For location and connectivity services, userspace would often like
      to know the time when the BSS was last seen. The current "last seen"
      value is calculated in a way that makes it less useful, especially
      if the system suspended in the meantime.
      Add the ability for the driver to report a real CLOCK_BOOTTIME stamp
      that can then be reported to userspace (if present).
      Drivers wishing to use this must be converted to the new API to call
      cfg80211_inform_bss_data() or cfg80211_inform_bss_frame_data(). They
      need to ensure the reported value is accurate enough even when the
      frame might have been buffered in the device (e.g. firmware.)
      Signed-off-by: default avatarDmitry Shmidt <dimitrysh@google.com>
      [modified to use struct, inlines]
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
  9. 29 Sep, 2015 1 commit
  10. 22 Sep, 2015 2 commits
  11. 14 Aug, 2015 2 commits
  12. 17 Jul, 2015 1 commit
  13. 06 May, 2015 1 commit
  14. 24 Apr, 2015 1 commit
  15. 01 Apr, 2015 1 commit
  16. 31 Mar, 2015 2 commits
  17. 30 Mar, 2015 2 commits
  18. 16 Mar, 2015 1 commit
    • Johannes Berg's avatar
      nl80211: ignore HT/VHT capabilities without QoS/WMM · 496fcc29
      Johannes Berg authored
      As HT/VHT depend heavily on QoS/WMM, it's not a good idea to
      let userspace add clients that have HT/VHT but not QoS/WMM.
      Since it does so in certain cases we've observed (client is
      using HT IEs but not QoS/WMM) just ignore the HT/VHT info at
      this point and don't pass it down to the drivers which might
      unconditionally use it.
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
  19. 06 Mar, 2015 1 commit
    • Ilan peer's avatar
      cfg80211: Add API to change the indoor regulatory setting · 05050753
      Ilan peer authored
      Previously, the indoor setting configuration assumed that as
      long as a station interface is connected, the indoor environment
      setting does not change. However, this assumption is problematic
      - It is possible that a station interface is connected to a mobile
        AP, e.g., softAP or a P2P GO, where it is possible that both the
        station and the mobile AP move out of the indoor environment making
        the indoor setting invalid. In such a case, user space has no way to
        invalidate the setting.
      - A station interface disconnection does not necessarily imply that
        the device is no longer operating in an indoor environment, e.g.,
        it is possible that the station interface is roaming but is still
        stays indoor.
      To handle the above, extend the indoor configuration API to allow
      user space to indicate a change of indoor settings, and allow it to
      indicate weather it controls the indoor setting, such that:
      1. If the user space process explicitly indicates that it is going
         to control the indoor setting, do not clear the indoor setting
         internally, unless the socket is released. The user space process
         should use the NL80211_ATTR_SOCKET_OWNER attribute in the command
         to state that it is going to control the indoor setting.
      2. Reset the indoor setting when restoring the regulatory settings in
         case it is not owned by a user space process.
      Based on the above, a user space tool that continuously monitors the
      indoor settings, i.e., tracking power setting, location etc., can
      indicate environment changes to the regulatory core.
      It should be noted that currently user space is the only provided mechanism
      used to hint to the regulatory core over the indoor/outdoor environment --
      while the country IEs do have an environment setting this has been completely
      ignored by the regulatory core by design for a while now since country IEs
      typically can contain bogus data.
      Acked-by: default avatarLuis R. Rodriguez <mcgrof@suse.com>
      Signed-off-by: default avatarArikX Nemtsov <arik@wizery.com>
      Signed-off-by: default avatarIlan Peer <ilan.peer@intel.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
  20. 04 Mar, 2015 1 commit
    • Johannes Berg's avatar
      nl80211: prohibit mixing 'any' and regular wowlan triggers · 98fc4386
      Johannes Berg authored
      If the device supports waking up on 'any' signal - i.e. it continues
      operating as usual and wakes up the host on pretty much anything that
      happens, then it makes no sense to also configure the more restricted
      WoWLAN mode where the device operates more autonomously but also in a
      more restricted fashion.
      Currently only cw2100 supports both 'any' and other triggers, but it
      seems to be broken as it doesn't configure anything to the device, so
      we can't currently get into a situation where both even can correctly
      be configured. This is about to change (Intel devices are going to
      support both and have different behaviour depending on configuration)
      so make sure the conflicting modes cannot be configured.
      (It seems that cw2100 advertises 'any' and 'disconnect' as a means of
      saying that's what it will always do, but that isn't really the way
      this API was meant to be used nor does it actually mean anything as
      'any' always implies 'disconnect' already, and the driver doesn't
      change device configuration in any way depending on the settings.)
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
  21. 03 Mar, 2015 3 commits
  22. 28 Feb, 2015 1 commit
    • Masashi Honma's avatar
      nl/mac80211: allow zero plink timeout to disable STA expiration · 31f909a2
      Masashi Honma authored
      Both wpa_supplicant and mac80211 have and inactivity timer. By default
      wpa_supplicant will be timed out in 5 minutes and mac80211's it is 30
      minutes. If wpa_supplicant uses a longer timer than mac80211, it will
      get unexpected disconnection by mac80211.
      Using 0xffffffff instead as the configured value could solve this w/o
      changing the code, but due to integer overflow in the expression used
      this doesn't work. The expression is:
      (current jiffies) > (frame Rx jiffies + NL80211_MESHCONF_PLINK_TIMEOUT * 250)
      On 32bit system, the right side would overflow and be a very small
      value if NL80211_MESHCONF_PLINK_TIMEOUT is sufficiently large,
      causing unexpectedly early disconnections.
      Instead allow disabling the inactivity timer to avoid this situation,
      by passing the (previously invalid and useless) value 0.
      Signed-off-by: default avatarMasashi Honma <masashi.honma@gmail.com>
      [reword/rewrap commit log]
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
  23. 24 Feb, 2015 2 commits
  24. 23 Jan, 2015 3 commits
    • Johannes Berg's avatar
      nl80211: suppress smatch warnings · 13874e4b
      Johannes Berg authored
      smatch warns that we once checked request->ssids in two functions
      and then unconditionally used it later again.
      This is actually fine, because the code has a relationship between
      attrs[NL80211_ATTR_SCAN_SSIDS], n_ssids and request->ssids, but
      smatch isn't smart enough to realize that.
      Suppress the warnings by always checking just n_ssids - that way
      smatch won't know that request->ssids could be NULL, and since it
      is only NULL when n_ssids is 0 we still check everything correctly.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    • Johannes Berg's avatar
      nl80211: fix per-station group key get/del and memory leak · 0fa7b391
      Johannes Berg authored
      In case userspace attempts to obtain key information for or delete a
      unicast key, this is currently erroneously rejected unless the driver
      sets the WIPHY_FLAG_IBSS_RSN flag. Apparently enough drivers do so it
      was never noticed.
      Fix that, and while at it fix a potential memory leak: the error path
      in the get_key() function was placed after allocating a message but
      didn't free it - move it to a better place. Luckily admin permissions
      are needed to call this operation.
      Cc: stable@vger.kernel.org
      Fixes: e31b8213
       ("cfg80211/mac80211: allow per-station GTKs")
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    • Luciano Coelho's avatar
      nl80211: add an attribute to allow delaying the first scheduled scan cycle · 9c748934
      Luciano Coelho authored
      The userspace may want to delay the the first scheduled scan or
      net-detect cycle.  Add an optional attribute to the scheduled scan
      configuration to pass the delay to be (optionally) used by the driver.
      Signed-off-by: default avatarLuciano Coelho <luciano.coelho@intel.com>
      [add the attribute to the policy to validate it]
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>