1. 13 May, 2009 2 commits
    • Jouni Malinen's avatar
      nl80211: Add IEEE 802.1X PAE control for station mode · 3f77316c
      Jouni Malinen authored
      
      
      Add a new NL80211_ATTR_CONTROL_PORT flag for NL80211_CMD_ASSOCIATE to
      allow user space to indicate that it will control the IEEE 802.1X port
      in station mode. Previously, mac80211 was always marking the port
      authorized in station mode. This was enough when drop_unencrypted flag
      was set. However, drop_unencrypted can currently be controlled only
      with WEXT and the current nl80211 design does not allow fully secure
      configuration. Fix this by providing a mechanism for user space to
      control the IEEE 802.1X port in station mode (i.e., do the same that
      we are already doing in AP mode).
      Signed-off-by: default avatarJouni Malinen <jouni.malinen@atheros.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      3f77316c
    • Johannes Berg's avatar
      cfg80211: implement wext key handling · 08645126
      Johannes Berg authored
      
      
      Move key handling wireless extension ioctls from mac80211 to cfg80211
      so that all drivers that implement the cfg80211 operations get wext
      compatibility.
      
      Note that this drops the SIOCGIWENCODE ioctl support for getting
      IW_ENCODE_RESTRICTED/IW_ENCODE_OPEN. This means that iwconfig will
      no longer report "Security mode:open" or "Security mode:restricted"
      for mac80211. However, what we displayed there (the authentication
      algo used) was actually wrong -- linux/wireless.h states that this
      setting is meant to differentiate between "Refuse non-encoded packets"
      and "Accept non-encoded packets".
      
      (Combined with "cfg80211: fix a couple of bugs with key ioctls". -- JWL)
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      08645126
  2. 06 May, 2009 1 commit
  3. 22 Apr, 2009 7 commits
  4. 16 Apr, 2009 2 commits
  5. 27 Mar, 2009 3 commits
    • Johannes Berg's avatar
      mac80211: remove mixed-cell and userspace MLME code · 7986cf95
      Johannes Berg authored
      
      
      Neither can currently be set from userspace, so there's no
      regression potential, and neither will be supported from
      userspace since the new userspace APIs allow the SME, which
      is in userspace, to control all we need.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      7986cf95
    • Jouni Malinen's avatar
      nl80211: Add MLME primitives to support external SME · 636a5d36
      Jouni Malinen authored
      
      
      This patch adds new nl80211 commands to allow user space to request
      authentication and association (and also deauthentication and
      disassociation). The commands are structured to allow separate
      authentication and association steps, i.e., the interface between
      kernel and user space is similar to the MLME SAP interface in IEEE
      802.11 standard and an user space application takes the role of the
      SME.
      
      The patch introduces MLME-AUTHENTICATE.request,
      MLME-{,RE}ASSOCIATE.request, MLME-DEAUTHENTICATE.request, and
      MLME-DISASSOCIATE.request primitives. The authentication and
      association commands request the actual operations in two steps
      (assuming the driver supports this; if not, separate authentication
      step is skipped; this could end up being a separate "connect"
      command).
      
      The initial implementation for mac80211 uses the current
      net/mac80211/mlme.c for actual sending and processing of management
      frames and the new nl80211 commands will just stop the current state
      machine from moving automatically from authentication to association.
      Future cleanup may move more of the MLME operations into cfg80211.
      
      The goal of this design is to provide more control of authentication and
      association process to user space without having to move the full MLME
      implementation. This should be enough to allow IEEE 802.11r FT protocol
      and 802.11s SAE authentication to be implemented. Obviously, this will
      also bring the extra benefit of not having to use WEXT for association
      requests with mac80211. An example implementation of a user space SME
      using the new nl80211 commands is available for wpa_supplicant.
      
      This patch is enough to get IEEE 802.11r FT protocol working with
      over-the-air mechanism (over-the-DS will need additional MLME
      primitives for handling the FT Action frames).
      Signed-off-by: default avatarJouni Malinen <j@w1.fi>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      636a5d36
    • Vasanthakumar Thiagarajan's avatar
  6. 05 Mar, 2009 1 commit
  7. 27 Feb, 2009 3 commits
    • Johannes Berg's avatar
      mac80211/cfg80211: move iwrange handler to cfg80211 · 4aa188e1
      Johannes Berg authored
      
      
      The previous patch made cfg80211 generally aware of the signal
      type a given hardware will give, so now it can implement
      SIOCGIWRANGE itself, removing more wext stuff from mac80211.
      Might need to be a little more parametrized once we have
      more hardware using cfg80211 and new hardware capabilities.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      4aa188e1
    • Johannes Berg's avatar
      cfg80211/mac80211: fill qual.qual value/adjust max_qual.qual · a77b8552
      Johannes Berg authored
      
      
      Due to various bugs in the software stack we end up having
      to fill qual.qual; level should be used, but wpa_supplicant
      doesn't properly ignore qual.qual, NM should use qual.level
      regardless of that because qual.qual is 0 but doesn't handle
      IW_QUAL_DBM right now.
      
      So fill qual.qual with the qual.level value clamped to
      -110..-40 dBm or just the regular 'unspecified' signal level.
      This requires a mac80211 change to properly announce the
      max_qual.qual and avg_qual.qual values.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      a77b8552
    • Johannes Berg's avatar
      mac80211: split IBSS/managed code · 46900298
      Johannes Berg authored
      
      
      This patch splits out the ibss code and data from managed (station) mode.
      The reason to do this is to better separate the state machines, and have
      the code be contained better so it gets easier to determine what exactly
      a given change will affect, that in turn makes it easier to understand.
      
      This is quite some churn, especially because I split sdata->u.sta into
      sdata->u.mgd and sdata->u.ibss, but I think it's easier to maintain that
      way. I've also shuffled around some code -- null function sending is only
      applicable to managed interfaces so put that into that file, some other
      functions are needed from various places so put them into util, and also
      rearranged the prototypes in ieee80211_i.h accordingly.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      46900298
  8. 13 Feb, 2009 3 commits
  9. 09 Feb, 2009 1 commit
  10. 30 Jan, 2009 1 commit
  11. 29 Jan, 2009 13 commits
  12. 19 Dec, 2008 2 commits
    • Kalle Valo's avatar
      mac80211: implement dynamic power save · 520eb820
      Kalle Valo authored
      
      
      This patch implements dynamic power save for mac80211. Basically it
      means enabling power save mode after an idle period. Implementing it
      dynamically gives a good compromise of low power consumption and low
      latency. Some hardware have support for this in firmware, but some
      require the host to do it.
      
      The dynamic power save is implemented by adding an timeout to
      ieee80211_subif_start_xmit(). The timeout can be enabled from userspace
      with Wireless Extensions. For example, the command below enables the
      dynamic power save and sets the time timeout to 500 ms:
      
      iwconfig wlan0 power timeout 500m
      
      Power save now only works with devices which handle power save in firmware.
      It's also disabled by default and the heuristics when and how to enable is
      considered as a policy decision and will be left for the userspace to handle.
      In case the firmware has support for this, drivers can disable this feature
      with IEEE80211_HW_NO_STACK_DYNAMIC_PS.
      
      Big thanks to Johannes Berg for the help with the design and code.
      Signed-off-by: default avatarKalle Valo <kalle.valo@nokia.com>
      Acked-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      520eb820
    • Kalle Valo's avatar
      mac80211: enable IEEE80211_CONF_PS only when associated · e0cb686f
      Kalle Valo authored
      
      
      Also disable power save when disassociated. It makes no sense to have
      power save enabled while disassociated.
      
      iwlwifi seems to have this check in the driver, but it's better to do this
      in mac80211 instead.
      Signed-off-by: default avatarKalle Valo <kalle.valo@nokia.com>
      Acked-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      e0cb686f
  13. 12 Dec, 2008 1 commit
    • Jouni Malinen's avatar
      mac80211: Disable requests for new scans in AP mode · b7a530d8
      Jouni Malinen authored
      
      
      AP mode operations are seriously affected if mac80211 runs through a
      multi-second scan while the AP is trying to send Beacon frames on the
      operation channel. While this could be implemented in a way that does
      not cause too many problems, it is not very simple and will require
      synchronization with Beacon frame scheduling in the drivers (scan one
      channel at a time between Beacon frames). Furthermore, such scanning
      takes quite a bit longer time and existing userspace applications
      would be likely to timeout while waiting for the results.
      
      For now, just refuse requests for new scans (SIOCSIWSCAN) when in AP
      mode. In practice, this moves the rejection from iwl* drivers into
      mac80211 to make it apply to every mac80211-based driver.
      
      This issue shows up in associated stations getting disconnected when
      something (e.g., Network Manager) requests a scan while the interface
      is in AP mode. When doing this continuously (e.g., NM does it every 120
      seconds), the network gets close to useless.
      Signed-off-by: default avatarJouni Malinen <jouni.malinen@atheros.com>
      Acked-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      b7a530d8