1. 11 Feb, 2013 3 commits
  2. 04 Feb, 2013 2 commits
  3. 31 Jan, 2013 2 commits
  4. 25 Jan, 2013 2 commits
  5. 16 Jan, 2013 6 commits
    • Simon Wunderlich's avatar
      cfg80211: check radar interface combinations · 11c4a075
      Simon Wunderlich authored
      To ease further DFS development regarding interface combinations, use
      the interface combinations structure to test for radar capabilities.
      Drivers can specify which channel widths they support, and in which
      modes. Right now only a single AP interface is allowed, but as the
      DFS code evolves other combinations can be enabled.
      Signed-off-by: default avatarSimon Wunderlich <siwu@hrz.tu-chemnitz.de>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      11c4a075
    • Jouni Malinen's avatar
      cfg80211: Allow use_mfp to be specified with the connect command · cee00a95
      Jouni Malinen authored
      The NL80211_ATTR_USE_MFP attribute was originally added for
      NL80211_CMD_ASSOCIATE, but it is actually as useful (if not even more
      useful) with NL80211_CMD_CONNECT, so process that attribute with the
      connect command, too.
      Signed-off-by: default avatarJouni Malinen <jouni@qca.qualcomm.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      cee00a95
    • Arend van Spriel's avatar
      nl80211: allow user-space to set address for P2P_DEVICE · 1c18f145
      Arend van Spriel authored
      As per email discussion Jouni Malinen pointed out that:
      
      "P2P message exchanges can be executed on the current operating channel
      of any operation (both P2P and non-P2P station). These can be on 5 GHz
      and even on 60 GHz (so yes, you _can_ do GO Negotiation on 60 GHz).
      
      As an example, it would be possible to receive a GO Negotiation Request
      frame on a 5 GHz only radio and then to complete GO Negotiation on that
      band. This can happen both when connected to a P2P group (through client
      discoverability mechanism) and when connected to a legacy AP (assuming
      the station receive Probe Request frame from full scan in the beginning
      of P2P device discovery)."
      
      This means that P2P messages can be sent over different radio devices.
      However, these should use the same P2P device address so it should be
      able to provision this from user-space. This patch adds a parameter for
      this to struct vif_params which should only be used during creation of
      the P2P device interface.
      
      Cc: Jouni Malinen <j@w1.fi>
      Cc: Greg Goldman <ggoldman@broadcom.com>
      Cc: Jithu Jance <jithu@broadcom.com>
      Signed-off-by: default avatarArend van Spriel <arend@broadcom.com>
      [add error checking]
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      1c18f145
    • Marco Porsch's avatar
      {cfg,nl}80211: mesh power mode primitives and userspace access · 3b1c5a53
      Marco Porsch authored
      Add the nl80211_mesh_power_mode enumeration which holds possible
      values for the mesh power mode. These modes are unknown, active,
      light sleep and deep sleep.
      
      Add power_mode entry to the mesh config structure to hold the
      user-configured default mesh power mode. This value will be used
      for new peer links.
      
      Add the dot11MeshAwakeWindowDuration value to the mesh config.
      The awake window is a duration in TU describing how long the STA
      will stay awake after transmitting its beacon in PS mode.
      
      Add access routines to:
       - get/set local link-specific power mode (STA)
       - get remote STA's link-specific power mode (STA)
       - get remote STA's non-peer power mode (STA)
       - get/set default mesh power mode (mesh config)
       - get/set mesh awake window duration (mesh config)
      
      All config changes may be done at mesh runtime and take effect
      immediately.
      Signed-off-by: default avatarMarco Porsch <marco@cozybit.com>
      Signed-off-by: default avatarIvan Bezyazychnyy <ivan.bezyazychnyy@gmail.com>
      Signed-off-by: default avatarMike Krinkin <krinkin.m.u@gmail.com>
      [fix commit message line length, error handling in set station]
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      3b1c5a53
    • Marco Porsch's avatar
      {cfg,nl,mac}80211: set beacon interval and DTIM period on mesh join · 9bdbf04d
      Marco Porsch authored
      Move the default mesh beacon interval and DTIM period to cfg80211
      and make them accessible to nl80211. This enables setting both
      values when joining an MBSS.
      
      Previously the DTIM parameter was not set by mac80211 so the
      driver's default value was used.
      Signed-off-by: default avatarMarco Porsch <marco@cozybit.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      9bdbf04d
    • Yacine Belkadi's avatar
      {cfg,mac}80211.h: fix some kernel-doc warnings · 0ae997dc
      Yacine Belkadi authored
      When building the 80211 DocBook, scripts/kernel-doc reports
      the following type of warnings:
      
      Warning(include/net/cfg80211.h:334): No description found for return value of 'cfg80211_get_chandef_type'
      
      These warnings are only reported when scripts/kernel-doc
      runs in verbose mode.
      
      To fix these use "Return:" to describe function return values.
      Signed-off-by: default avatarYacine Belkadi <yacine.belkadi.1@gmail.com>
      [adjust for freq_reg_info() change]
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      0ae997dc
  6. 14 Jan, 2013 1 commit
  7. 03 Jan, 2013 4 commits
  8. 30 Nov, 2012 1 commit
    • Johannes Berg's avatar
      cfg80211: fix BSS struct IE access races · 9caf0364
      Johannes Berg authored
      When a BSS struct is updated, the IEs are currently
      overwritten or freed. This can lead to races if some
      other CPU is accessing the BSS struct and using the
      IEs concurrently.
      
      Fix this by always allocating the IEs in a new struct
      that holds the data and length and protecting access
      to this new struct with RCU.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      9caf0364
  9. 27 Nov, 2012 2 commits
  10. 26 Nov, 2012 5 commits
    • Johannes Berg's avatar
      nl80211/cfg80211: add VHT MCS support · db9c64cf
      Johannes Berg authored
      Add support for reporting and calculating VHT MCSes.
      
      Note that I'm not completely sure that the bitrate
      calculations are correct, nor that they can't be
      simplified.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      db9c64cf
    • Johannes Berg's avatar
      nl80211/cfg80211: support VHT channel configuration · 3d9d1d66
      Johannes Berg authored
      Change nl80211 to support specifying a VHT (or HT)
      using the control channel frequency (as before) and
      new attributes for the channel width and first and
      second center frequency. The old channel type is of
      course still supported for HT.
      
      Also change the cfg80211 channel definition struct
      to support these by adding the relevant fields to
      it (and removing the _type field.)
      
      This also adds new helper functions:
       - cfg80211_chandef_create to create a channel def
         struct given the control channel and channel type,
       - cfg80211_chandef_identical to check if two channel
         definitions are identical
       - cfg80211_chandef_compatible to check if the given
         channel definitions are compatible, and return the
         wider of the two
      
      This isn't entirely complete, but that doesn't matter
      until we have a driver using it. In particular, it's
      missing
       - regulatory checks on the usable bandwidth (if that
         even makes sense)
       - regulatory TX power (database can't deal with it)
       - a proper channel compatibility calculation for the
         new channel types
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      3d9d1d66
    • 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>
      683b6d3b
    • 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>
      42d97a59
    • Arend van Spriel's avatar
      cfg80211: change function signature of cfg80211_get_p2p_attr() · c216e641
      Arend van Spriel authored
      The function cfg80211_get_p2p_attr() can fail and returns
      a negative error code. However, the return type is unsigned
      int. The largest positive number is determined by desired_len
      variable in the function, which is u16. So changing the return
      type to int to allow easy error checking. Also change the type
      for the attribute to enum for improved type checking.
      Signed-off-by: default avatarArend van Spriel <arend@broadcom.com>
      [fix indentation, don't use u8 attr variable]
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      c216e641
  11. 19 Nov, 2012 1 commit
    • Jouni Malinen's avatar
      cfg80211: Add TDLS event to allow drivers to request operations · 3475b094
      Jouni Malinen authored
      The NL80211_CMD_TDLS_OPER command was previously used only for userspace
      request for the kernel code to perform TDLS operations. However, there
      are also cases where the driver may need to request operations from
      userspace, e.g., when using security on the AP path. Add a new cfg80211
      function for generating a TDLS operation event for drivers to request a
      new link to be set up (NL80211_TDLS_SETUP) or an existing link to be
      torn down (NL80211_TDLS_TEARDOWN). Drivers can optionally use these
      events, e.g., based on noticing data traffic being sent to a peer
      station that is seen with good signal strength.
      Signed-off-by: default avatarJouni Malinen <jouni@qca.qualcomm.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      3475b094
  12. 06 Nov, 2012 1 commit
    • Johannes Berg's avatar
      wireless: add utility function to get P2P attribute · 0ee45355
      Johannes Berg authored
      Parsing the P2P attributes can be tricky as their
      contents can be split across multiple (vendor) IEs.
      Thus, it's not possible to parse them like IEs (by
      returning a pointer to the data.) Instead, provide
      a function that copies the attribute data into a
      caller-provided buffer and returns the size needed
      (useful in case the buffer was too small.)
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      0ee45355
  13. 05 Nov, 2012 2 commits
  14. 30 Oct, 2012 1 commit
    • Johannes Berg's avatar
      cfg80211: allow per interface TX power setting · c8442118
      Johannes Berg authored
      The TX power setting is currently per wiphy (hardware
      device) but with multi-channel capabilities that doesn't
      make much sense any more.
      
      Allow drivers (and mac80211) to advertise support for
      per-interface TX power configuration. When the TX power
      is configured for the wiphy, the wdev will be NULL and
      the driver can still handle that, but when a wdev is
      given the TX power can be set only for that wdev now.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      c8442118
  15. 26 Oct, 2012 1 commit
    • Johannes Berg's avatar
      mac80211: verify that skb data is present · 9b395bc3
      Johannes Berg authored
      A number of places in the mesh code don't check that
      the frame data is present and in the skb header when
      trying to access. Add those checks and the necessary
      pskb_may_pull() calls. This prevents accessing data
      that doesn't actually exist.
      
      To do this, export ieee80211_get_mesh_hdrlen() to be
      able to use it in mac80211.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      9b395bc3
  16. 18 Oct, 2012 2 commits
  17. 17 Oct, 2012 2 commits
  18. 15 Oct, 2012 1 commit
  19. 19 Sep, 2012 1 commit