1. 26 May, 2014 1 commit
  2. 06 Feb, 2014 1 commit
    • Johannes Berg's avatar
      cfg80211: send scan results from work queue · f9d15d16
      Johannes Berg authored
      Due to the previous commit, when a scan finishes, it is in theory
      possible to hit the following sequence:
       1. interface starts being removed
       2. scan is cancelled by driver and cfg80211 is notified
       3. scan done work is scheduled
       4. interface is removed completely, rdev->scan_req is freed,
          event sent to userspace but scan done work remains pending
       5. new scan is requested on another virtual interface
       6. scan done work runs, freeing the still-running scan
      To fix this situation, hang on to the scan done message and block
      new scans while that is the case, and only send the message from
      the work function, regardless of whether the scan_req is already
      freed from interface removal. This makes step 5 above impossible
      and changes step 6 to be
       5. scan done work runs, sending the scan done message
      As this can't work for wext, so we send the message immediately,
      but this shouldn't be an issue since we still return -EBUSY.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
  3. 04 Feb, 2014 1 commit
    • Johannes Berg's avatar
      nl80211: send event when AP operation is stopped · 348baf0e
      Johannes Berg authored
      There are a few cases, e.g. suspend, where an AP interface is
      stopped by the kernel rather than by userspace request, most
      commonly when suspending. To let userspace know about this,
      send the NL80211_CMD_STOP_AP command as an event every time
      an AP interface is stopped. This also happens when userspace
      did in fact request the AP stop, but that's not a problem.
      For full-MAC drivers this may need to be extended to also
      cover cases where the device stopped the AP operation for
      some reason, this a bit more complicated because then all
      cfg80211 state also needs to be reset; such API is not part
      of this patch.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
  4. 25 Nov, 2013 1 commit
  5. 23 Aug, 2013 1 commit
  6. 16 Jul, 2013 1 commit
    • Amitkumar Karwar's avatar
      cfg80211/nl80211: Add packet coalesce support · be29b99a
      Amitkumar Karwar authored
      In most cases, host that receives IPv4 and IPv6 multicast/broadcast
      packets does not do anything with these packets. Therefore the
      reception of these unwanted packets causes unnecessary processing
      and power consumption.
      Packet coalesce feature helps to reduce number of received
      interrupts to host by buffering these packets in firmware/hardware
      for some predefined time. Received interrupt will be generated when
      one of the following events occur.
      a) Expiration of hardware timer whose expiration time is set to
      maximum coalescing delay of matching coalesce rule.
      b) Coalescing buffer in hardware reaches it's limit.
      c) Packet doesn't match any of the configured coalesce rules.
      This patch adds set/get configuration support for packet coalesce.
      User needs to configure following parameters for creating a coalesce
      a) Maximum coalescing delay
      b) List of packet patterns which needs to be matched
      c) Condition for coalescence. pattern 'match' or 'no match'
      Multiple such rules can be created.
      This feature needs to be advertised during driver initialization.
      Drivers are supposed to do required firmware/hardware settings based
      on user configuration.
      Signed-off-by: default avatarAmitkumar Karwar <akarwar@marvell.com>
      Signed-off-by: default avatarBing Zhao <bzhao@marvell.com>
      [fix kernel-doc, change free function, fix copy/paste error]
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
  7. 06 Mar, 2013 1 commit
    • Johannes Berg's avatar
      cfg80211: move exported event functions into nl80211 · 947add36
      Johannes Berg authored
      This is the sort of thing gcc's LTO could do, but since
      we don't have that yet we can also do it manually. The
      advantage is reduced code, both source and binary, e.g.
      on x86-64
         text	   data	    bss	    dec	    hex	filename
       442825	  56230	    776	 499831	  7a077	cfg80211.ko (before)
       441585	  56230	    776	 498591	  79b9f	cfg80211.ko (after)
      a reduction of ~1k.
      But in order to not complicate the code move only those
      functions that are simple wrappers, not those that have
      functionality of their own.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
  8. 15 Feb, 2013 1 commit
    • Simon Wunderlich's avatar
      nl80211/cfg80211: add radar detection command/event · 04f39047
      Simon Wunderlich authored
      Add new NL80211_CMD_RADAR_DETECT, which starts the Channel
      Availability Check (CAC). This command will also notify the
      usermode about events (CAC finished, CAC aborted, radar
      detected, NOP finished).
      Once radar detection has started it should continuously
      monitor for radars as long as the channel is active.
      This patch enables DFS for AP mode in nl80211/cfg80211.
      Based on original patch by Victor Goldenshtein <victorg@ti.com>
      Signed-off-by: default avatarSimon Wunderlich <siwu@hrz.tu-chemnitz.de>
      [remove WIPHY_FLAG_HAS_RADAR_DETECT again -- my mistake]
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
  9. 26 Nov, 2012 2 commits
    • Johannes Berg's avatar
      cfg80211: pass a channel definition struct · 683b6d3b
      Johannes Berg authored
      Instead of passing a channel pointer and channel type
      to all functions and driver methods, pass a new channel
      definition struct. Right now, this struct contains just
      the control channel and channel type, but for VHT this
      will change.
      Also, add a small inline cfg80211_get_chandef_type() so
      that drivers don't need to use the _type field of the
      new structure all the time, which will change.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    • Johannes Berg's avatar
      cfg80211: remove remain-on-channel channel type · 42d97a59
      Johannes Berg authored
      As mwifiex (and mac80211 in the software case) are the
      only drivers actually implementing remain-on-channel
      with channel type, userspace can't be relying on it.
      This is the case, as it's used only for P2P operations
      right now.
      Rather than adding a flag to tell userspace whether or
      not it can actually rely on it, simplify all the code
      by removing the ability to use different channel types.
      Leave only the validation of the attribute, so that if
      we extend it again later (with the needed capability
      flag), it can't break userspace sending invalid data.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
  10. 18 Sep, 2012 1 commit
  11. 17 Jul, 2012 1 commit
  12. 12 Jul, 2012 1 commit
  13. 09 Jul, 2012 1 commit
    • Johannes Berg's avatar
      cfg80211: use wdev in mgmt-tx/ROC APIs · 71bbc994
      Johannes Berg authored
      The management frame and remain-on-channel APIs will be
      needed in the P2P device abstraction, so move them over
      to the new wdev-based APIs. Userspace can still use both
      the interface index and wdev identifier for them so it's
      backward compatible, but for the P2P Device wdev it will
      be able to use the wdev identifier only.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
  14. 11 Apr, 2012 1 commit
  15. 06 Mar, 2012 1 commit
  16. 09 Nov, 2011 2 commits
  17. 19 Sep, 2011 1 commit
  18. 06 Jul, 2011 1 commit
    • Johannes Berg's avatar
      cfg80211/nl80211: support GTK rekey offload · e5497d76
      Johannes Berg authored
      In certain circumstances, like WoWLAN scenarios,
      devices may implement (partial) GTK rekeying on
      the device to avoid waking up the host for it.
      In order to successfully go through GTK rekeying,
      the KEK, KCK and the replay counter are required.
      Add API to let the supplicant hand the parameters
      to the driver which may store it for future GTK
      rekey operations.
      Note that, of course, if GTK rekeying is done by
      the device, the EAP frame must not be passed up
      to userspace, instead a rekey event needs to be
      sent to let userspace update its replay counter.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
  19. 11 May, 2011 1 commit
    • Luciano Coelho's avatar
      cfg80211/nl80211: add support for scheduled scans · 807f8a8c
      Luciano Coelho authored
      Implement new functionality for scheduled scan offload.  With this feature we
      can scan automatically at certain intervals.
      The idea is that the hardware can perform scan automatically and filter on
      desired results without waking up the host unnecessarily.
      commands to the nl80211 interface.  When results are available they are
      reported by NL80211_CMD_SCHED_SCAN_RESULTS events.  The userspace is
      informed when the scheduled scan has stopped with a
      NL80211_CMD_SCHED_SCAN_STOPPED event, which can be triggered either by
      the driver or by a call to NL80211_CMD_STOP_SCHED_SCAN.
      Signed-off-by: default avatarLuciano Coelho <coelho@ti.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
  20. 12 Apr, 2011 1 commit
  21. 30 Mar, 2011 1 commit
  22. 16 Dec, 2010 1 commit
    • Jouni Malinen's avatar
      nl80211: Add notification for dropped Deauth/Disassoc · cf4e594e
      Jouni Malinen authored
      Add a new notification to indicate that a received, unprotected
      Deauthentication or Disassociation frame was dropped due to
      management frame protection being in use. This notification is
      needed to allow user space (e.g., wpa_supplicant) to implement
      SA Query procedure to recover from association state mismatch
      between an AP and STA.
      This is needed to avoid getting stuck in non-working state when MFP
      (IEEE 802.11w) is used and a protected Deauthentication or
      Disassociation frame is dropped for any reason. After that, the
      station would silently discard any unprotected Deauthentication or
      Disassociation frame that could be indicating that the AP does not
      have association for the STA (when the Reason Code would be 6 or 7).
      IEEE Std 802.11w-2009, 11.13 describes this recovery mechanism.
      Signed-off-by: default avatarJouni Malinen <j@w1.fi>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
  23. 24 Nov, 2010 1 commit
  24. 24 Aug, 2010 1 commit
  25. 24 Mar, 2010 1 commit
    • Juuso Oikarinen's avatar
      cfg80211: Add connection quality monitoring support to nl80211 · d6dc1a38
      Juuso Oikarinen authored
      Add support for basic configuration of a connection quality monitoring to the
      nl80211 interface, and basic support for notifying about triggered monitoring
      Via this interface a user-space connection manager may configure and receive
      pre-warning events of deteriorating WLAN connection quality, and start
      preparing for roaming in advance, before the connection is already lost.
      An example usage of such a trigger is starting scanning for nearby AP's in
      an attempt to find one with better connection quality, and associate to it
      before the connection characteristics of the existing connection become too bad
      or the association is even lost, leading in a prolonged delay in connectivity.
      The interface currently supports only RSSI, but it could be later extended
      to include other parameters, such as signal-to-noise ratio, if need for that
      Signed-off-by: default avatarJuuso Oikarinen <juuso.oikarinen@nokia.com>
      Reviewed-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
  26. 15 Feb, 2010 1 commit
    • Jouni Malinen's avatar
      cfg80211/mac80211: allow registering for and sending action frames · 026331c4
      Jouni Malinen authored
      This implements a new command to register for action frames
      that userspace wants to handle instead of the in-kernel
      rejection. It is then responsible for rejecting ones that
      it decided not to handle. There is no unregistration, but
      the socket can be closed for that.
      Frames that are not registered for will not be forwarded
      to userspace and will be rejected by the kernel, the
      cfg80211 API helps implementing that.
      Additionally, this patch adds a new command that allows
      doing action frame transmission from userspace. It can be
      used either to exchange action frames on the current
      operational channel (e.g., with the AP with which we are
      currently associated) or to exchange off-channel Public
      Action frames with the remain-on-channel command.
      Signed-off-by: default avatarJouni Malinen <jouni.malinen@atheros.com>
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
  27. 28 Dec, 2009 2 commits
  28. 10 Jul, 2009 5 commits
  29. 22 Apr, 2009 5 commits