1. 09 7月, 2012 1 次提交
    • J
      cfg80211: use wdev in mgmt-tx/ROC APIs · 71bbc994
      Johannes Berg 提交于
      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: NJohannes Berg <johannes.berg@intel.com>
      71bbc994
  2. 29 6月, 2012 2 次提交
  3. 07 6月, 2012 1 次提交
  4. 10 5月, 2012 1 次提交
    • J
      wireless: Convert compare_ether_addr to ether_addr_equal · ac422d3c
      Joe Perches 提交于
      Use the new bool function ether_addr_equal to add
      some clarity and reduce the likelihood for misuse
      of compare_ether_addr for sorting.
      
      I removed a conversion from scan.c/cmp_bss_core
      that appears to be a sorting function.
      
      Done via cocci script:
      
      $ cat compare_ether_addr.cocci
      @@
      expression a,b;
      @@
      -	!compare_ether_addr(a, b)
      +	ether_addr_equal(a, b)
      
      @@
      expression a,b;
      @@
      -	compare_ether_addr(a, b)
      +	!ether_addr_equal(a, b)
      
      @@
      expression a,b;
      @@
      -	!ether_addr_equal(a, b) == 0
      +	ether_addr_equal(a, b)
      
      @@
      expression a,b;
      @@
      -	!ether_addr_equal(a, b) != 0
      +	!ether_addr_equal(a, b)
      
      @@
      expression a,b;
      @@
      -	ether_addr_equal(a, b) == 0
      +	!ether_addr_equal(a, b)
      
      @@
      expression a,b;
      @@
      -	ether_addr_equal(a, b) != 0
      +	ether_addr_equal(a, b)
      
      @@
      expression a,b;
      @@
      -	!!ether_addr_equal(a, b)
      +	ether_addr_equal(a, b)
      Signed-off-by: NJoe Perches <joe@perches.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ac422d3c
  5. 12 4月, 2012 1 次提交
  6. 10 4月, 2012 1 次提交
  7. 07 3月, 2012 1 次提交
  8. 01 3月, 2012 1 次提交
  9. 07 2月, 2012 1 次提交
    • J
      cfg80211: stop tracking authenticated state · 95de817b
      Johannes Berg 提交于
      To track authenticated state seems to have been
      a design mistake in cfg80211. It is possible to
      have out of band authentication (FT), tracking
      multiple authentications caused more problems
      than it ever helped, and the implementation in
      mac80211 is too complex.
      
      Remove all this complexity, and let userspace
      do whatever it wants to, mac80211 can deal with
      that just fine. Association is still tracked of
      course, but authentication no longer is. Local
      auth state changes are thus no longer of value,
      so ignore them completely.
      
      This will also help implement SAE -- asking the
      driver to do an authentication is now almost
      equivalent to sending an authentication frame,
      with the exception of shared key authentication
      which is still handled completely.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      95de817b
  10. 22 11月, 2011 1 次提交
    • B
      wireless: Support ht-capabilities over-rides. · 7e7c8926
      Ben Greear 提交于
      This allows users to disable features such as HT, HT40,
      and to modify the MCS, AMPDU, and AMSDU settings for
      drivers that support it.
      
      The MCS, AMPDU, and AMSDU features that may be disabled are
      are reported in the phy-info netlink message as a mask.
      
      Attemping to disable features that are not supported will
      take no affect, but will not return errors.  This is to aid
      backwards compatibility in user-space apps that may not be
      clever enough to deal with parsing the the capabilities mask.
      
      This patch only enables the infrastructure.  An additional
      patch will enable the feature in mac80211.
      Signed-off-by: NBen Greear <greearb@candelatech.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      7e7c8926
  11. 10 11月, 2011 3 次提交
  12. 28 9月, 2011 1 次提交
  13. 20 9月, 2011 1 次提交
  14. 07 7月, 2011 1 次提交
    • J
      cfg80211/nl80211: support GTK rekey offload · e5497d76
      Johannes Berg 提交于
      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: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      e5497d76
  15. 11 6月, 2011 1 次提交
  16. 12 5月, 2011 1 次提交
  17. 31 3月, 2011 1 次提交
  18. 17 12月, 2010 1 次提交
    • J
      nl80211: Add notification for dropped Deauth/Disassoc · cf4e594e
      Jouni Malinen 提交于
      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: NJouni Malinen <j@w1.fi>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      cf4e594e
  19. 30 11月, 2010 1 次提交
  20. 25 11月, 2010 1 次提交
  21. 14 10月, 2010 1 次提交
  22. 06 10月, 2010 1 次提交
  23. 17 9月, 2010 1 次提交
  24. 25 8月, 2010 1 次提交
  25. 17 8月, 2010 1 次提交
  26. 10 8月, 2010 1 次提交
  27. 13 7月, 2010 1 次提交
  28. 15 6月, 2010 1 次提交
  29. 03 6月, 2010 1 次提交
  30. 08 4月, 2010 1 次提交
    • J
      cfg80211: Add local-state-change-only auth/deauth/disassoc · d5cdfacb
      Jouni Malinen 提交于
      cfg80211 is quite strict on allowing authentication and association
      commands only in certain states. In order to meet these requirements,
      user space applications may need to clear authentication or
      association state in some cases. Currently, this can be done with
      deauth/disassoc command, but that ends up sending out Deauthentication
      or Disassociation frame unnecessarily. Add a new nl80211 attribute to
      allow this sending of the frame be skipped, but with all other
      deauth/disassoc operations being completed.
      
      Similar state change is also needed for IEEE 802.11r FT protocol in
      the FT-over-DS case which does not use Authentication frame exchange
      in a transition to another BSS. For this to work with cfg80211, an
      authentication entry needs to be created for the target BSS without
      sending out an Authentication frame. The nl80211 authentication
      command can be used for this purpose, too, with the new attribute to
      indicate that the command is only for changing local state. This
      enables wpa_supplicant to complete FT-over-DS transition successfully.
      Signed-off-by: NJouni Malinen <j@w1.fi>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      d5cdfacb
  31. 30 3月, 2010 1 次提交
    • T
      include cleanup: Update gfp.h and slab.h includes to prepare for breaking... · 5a0e3ad6
      Tejun Heo 提交于
      include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
      
      percpu.h is included by sched.h and module.h and thus ends up being
      included when building most .c files.  percpu.h includes slab.h which
      in turn includes gfp.h making everything defined by the two files
      universally available and complicating inclusion dependencies.
      
      percpu.h -> slab.h dependency is about to be removed.  Prepare for
      this change by updating users of gfp and slab facilities include those
      headers directly instead of assuming availability.  As this conversion
      needs to touch large number of source files, the following script is
      used as the basis of conversion.
      
        http://userweb.kernel.org/~tj/misc/slabh-sweep.py
      
      The script does the followings.
      
      * Scan files for gfp and slab usages and update includes such that
        only the necessary includes are there.  ie. if only gfp is used,
        gfp.h, if slab is used, slab.h.
      
      * When the script inserts a new include, it looks at the include
        blocks and try to put the new include such that its order conforms
        to its surrounding.  It's put in the include block which contains
        core kernel includes, in the same order that the rest are ordered -
        alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
        doesn't seem to be any matching order.
      
      * If the script can't find a place to put a new include (mostly
        because the file doesn't have fitting include block), it prints out
        an error message indicating which .h file needs to be added to the
        file.
      
      The conversion was done in the following steps.
      
      1. The initial automatic conversion of all .c files updated slightly
         over 4000 files, deleting around 700 includes and adding ~480 gfp.h
         and ~3000 slab.h inclusions.  The script emitted errors for ~400
         files.
      
      2. Each error was manually checked.  Some didn't need the inclusion,
         some needed manual addition while adding it to implementation .h or
         embedding .c file was more appropriate for others.  This step added
         inclusions to around 150 files.
      
      3. The script was run again and the output was compared to the edits
         from #2 to make sure no file was left behind.
      
      4. Several build tests were done and a couple of problems were fixed.
         e.g. lib/decompress_*.c used malloc/free() wrappers around slab
         APIs requiring slab.h to be added manually.
      
      5. The script was run on all .h files but without automatically
         editing them as sprinkling gfp.h and slab.h inclusions around .h
         files could easily lead to inclusion dependency hell.  Most gfp.h
         inclusion directives were ignored as stuff from gfp.h was usually
         wildly available and often used in preprocessor macros.  Each
         slab.h inclusion directive was examined and added manually as
         necessary.
      
      6. percpu.h was updated not to include slab.h.
      
      7. Build test were done on the following configurations and failures
         were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my
         distributed build env didn't work with gcov compiles) and a few
         more options had to be turned off depending on archs to make things
         build (like ipr on powerpc/64 which failed due to missing writeq).
      
         * x86 and x86_64 UP and SMP allmodconfig and a custom test config.
         * powerpc and powerpc64 SMP allmodconfig
         * sparc and sparc64 SMP allmodconfig
         * ia64 SMP allmodconfig
         * s390 SMP allmodconfig
         * alpha SMP allmodconfig
         * um on x86_64 SMP allmodconfig
      
      8. percpu.h modifications were reverted so that it could be applied as
         a separate patch and serve as bisection point.
      
      Given the fact that I had only a couple of failures from tests on step
      6, I'm fairly confident about the coverage of this conversion patch.
      If there is a breakage, it's likely to be something in one of the arch
      headers which should be easily discoverable easily on most builds of
      the specific arch.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Guess-its-ok-by: NChristoph Lameter <cl@linux-foundation.org>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
      5a0e3ad6
  32. 25 3月, 2010 1 次提交
    • J
      cfg80211: Add connection quality monitoring support to nl80211 · d6dc1a38
      Juuso Oikarinen 提交于
      Add support for basic configuration of a connection quality monitoring to the
      nl80211 interface, and basic support for notifying about triggered monitoring
      events.
      
      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
      arises.
      Signed-off-by: NJuuso Oikarinen <juuso.oikarinen@nokia.com>
      Reviewed-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      d6dc1a38
  33. 16 2月, 2010 1 次提交
    • J
      cfg80211/mac80211: allow registering for and sending action frames · 026331c4
      Jouni Malinen 提交于
      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: NJouni Malinen <jouni.malinen@atheros.com>
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      026331c4
  34. 29 12月, 2009 3 次提交
    • J
      mac80211/cfg80211: add station events · 98b62183
      Johannes Berg 提交于
      When, for instance, a new IBSS peer is found, userspace
      wants to be notified. Add events for all new stations
      that mac80211 learns about.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      98b62183
    • J
      cfg80211: add remain-on-channel command · 9588bbd5
      Jouni Malinen 提交于
      Add new commands for requesting the driver to remain awake
      on a specified channel for the specified amount of time
      (and another command to cancel such an operation). This
      can be used to implement userspace-controlled off-channel
      operations, like Public Action frame exchange on another
      channel than the operation channel.
      
      The off-channel operation should behave similarly to scan,
      i.e. the local station (if associated) moves into power
      save mode to request the AP to buffer frames for it and
      then moves to the other channel to allow the off-channel
      operation to be completed. The duration parameter can be
      used to request enough time to receive a response from
      the target station.
      Signed-off-by: NJouni Malinen <jouni.malinen@atheros.com>
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      9588bbd5
    • J
      cfg80211: fix race between deauth and assoc response · 3bdb2d48
      Johannes Berg 提交于
      Joseph Nahmias reported, in http://bugs.debian.org/562016,
      that he was getting the following warning (with some log
      around the issue):
      
        ath0: direct probe to AP 00:11:95:77:e0:b0 (try 1)
        ath0: direct probe responded
        ath0: authenticate with AP 00:11:95:77:e0:b0 (try 1)
        ath0: authenticated
        ath0: associate with AP 00:11:95:77:e0:b0 (try 1)
        ath0: deauthenticating from 00:11:95:77:e0:b0 by local choice (reason=3)
        ath0: direct probe to AP 00:11:95:77:e0:b0 (try 1)
        ath0: RX AssocResp from 00:11:95:77:e0:b0 (capab=0x421 status=0 aid=2)
        ath0: associated
        ------------[ cut here ]------------
        WARNING: at net/wireless/mlme.c:97 cfg80211_send_rx_assoc+0x14d/0x152 [cfg80211]()
        Hardware name: 7658CTO
        ...
        Pid: 761, comm: phy0 Not tainted 2.6.32-trunk-686 #1
        Call Trace:
         [<c1030a5d>] ? warn_slowpath_common+0x5e/0x8a
         [<c1030a93>] ? warn_slowpath_null+0xa/0xc
         [<f86cafc7>] ? cfg80211_send_rx_assoc+0x14d/0x152
        ...
        ath0: link becomes ready
        ath0: deauthenticating from 00:11:95:77:e0:b0 by local choice (reason=3)
        ath0: no IPv6 routers present
        ath0: link is not ready
        ath0: direct probe to AP 00:11:95:77:e0:b0 (try 1)
        ath0: direct probe responded
        ath0: authenticate with AP 00:11:95:77:e0:b0 (try 1)
        ath0: authenticated
        ath0: associate with AP 00:11:95:77:e0:b0 (try 1)
        ath0: RX ReassocResp from 00:11:95:77:e0:b0 (capab=0x421 status=0 aid=2)
        ath0: associated
      
      It is not clear to me how the first "direct probe" here
      happens, but this seems to be a race condition, if the
      user requests to deauth after requesting assoc, but before
      the assoc response is received. In that case, it may
      happen that mac80211 tries to report the assoc success to
      cfg80211, but gets blocked on the wdev lock that is held
      because the user is requesting the deauth.
      
      The result is that we run into a warning. This is mostly
      harmless, but maybe cause an unexpected event to be sent
      to userspace; we'd send an assoc success event although
      userspace was no longer expecting that.
      
      To fix this, remove the warning and check whether the
      race happened and in that case abort processing.
      Reported-by: NJoseph Nahmias <joe@nahmias.net>
      Cc: stable@kernel.org
      Cc: 562016-quiet@bugs.debian.org
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      3bdb2d48
  35. 23 12月, 2009 1 次提交
    • J
      cfg80211: avoid sending spurious deauth to userspace · 5fba4af3
      Johannes Berg 提交于
      Before
        commit ca9034592823e8179511e48a78731f95bfdd766c
        Author: Holger Schurig <hs4233@mail.mn-solutions.de>
        Date:   Tue Oct 13 13:45:28 2009 +0200
      
            cfg80211: remove warning in deauth case
      
      we assumed that drivers never give us spurious deauth
      frames because they filter them out based on the auth
      state they keep track of. This turned out to be racy,
      because userspace might deauth while the AP is also
      sending a deauth frame, so the warning was removed.
      
      However, in that case we should not tell userspace
      about the AP's frame if it requested deauth "first",
      where "first" means it came to cfg80211 first.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      5fba4af3