1. 23 1月, 2015 2 次提交
    • V
      nl80211: Allow set network namespace by fd · 4b681c82
      Vadim Kochan 提交于
      Added new NL80211_ATTR_NETNS_FD which allows to
      set namespace via nl80211 by fd.
      Signed-off-by: NVadim Kochan <vadim4j@gmail.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      4b681c82
    • J
      mac80211: allow drivers to control software crypto · fa7e1fbc
      Johannes Berg 提交于
      Some drivers unfortunately cannot support software crypto, but
      mac80211 currently assumes that they do.
      
      This has the issue that if the hardware enabling fails for some
      reason, the software fallback is used, which won't work. This
      clearly isn't desirable, the error should be reported and the
      key setting refused.
      
      Support this in mac80211 by allowing drivers to set a new HW
      flag IEEE80211_HW_SW_CRYPTO_CONTROL, in which case mac80211 will
      only allow software fallback if the set_key() method returns 1.
      The driver will also need to advertise supported cipher suites
      so that mac80211 doesn't advertise any (future) software ciphers
      that the driver can't actually do.
      
      While at it, to make it easier to support this, refactor the
      ieee80211_init_cipher_suites() code.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      fa7e1fbc
  2. 22 1月, 2015 1 次提交
    • J
      mac80211: fix HW registration error paths · 54330bf6
      Johannes Berg 提交于
      Station info state is started in allocation, so should be
      destroyed on free (it's just a timer); rate control must
      be freed if anything afterwards fails to initialize.
      
      LED exit should be later, no need for locking there, but
      it needs to be done also when rate init failed.
      
      Also clean up the code by moving a label so the locking
      doesn't have to be done separately.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      54330bf6
  3. 20 1月, 2015 2 次提交
    • E
      mac80211: delete the assoc/auth timer upon suspend · c1e140bf
      Emmanuel Grumbach 提交于
      While suspending, we destroy the authentication /
      association that might be taking place. While doing so, we
      forgot to delete the timer which can be firing after
      local->suspended is already set, producing the warning below.
      
      Fix that by deleting the timer.
      
      [66722.825487] WARNING: CPU: 2 PID: 5612 at net/mac80211/util.c:755 ieee80211_can_queue_work.isra.18+0x32/0x40 [mac80211]()
      [66722.825487] queueing ieee80211 work while going to suspend
      [66722.825529] CPU: 2 PID: 5612 Comm: kworker/u16:69 Tainted: G        W  O  3.16.1+ #24
      [66722.825537] Workqueue: events_unbound async_run_entry_fn
      [66722.825545] Call Trace:
      [66722.825552]  <IRQ>  [<ffffffff817edbb2>] dump_stack+0x4d/0x66
      [66722.825556]  [<ffffffff81075cad>] warn_slowpath_common+0x7d/0xa0
      [66722.825572]  [<ffffffffa06b5b90>] ? ieee80211_sta_bcn_mon_timer+0x50/0x50 [mac80211]
      [66722.825573]  [<ffffffff81075d1c>] warn_slowpath_fmt+0x4c/0x50
      [66722.825586]  [<ffffffffa06977a2>] ieee80211_can_queue_work.isra.18+0x32/0x40 [mac80211]
      [66722.825598]  [<ffffffffa06977d5>] ieee80211_queue_work+0x25/0x50 [mac80211]
      [66722.825611]  [<ffffffffa06b5bac>] ieee80211_sta_timer+0x1c/0x20 [mac80211]
      [66722.825614]  [<ffffffff8108655a>] call_timer_fn+0x8a/0x300
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      c1e140bf
    • J
      Revert "wireless: Support of IFLA_INFO_KIND rtnl attribute" · 6e9f3fa4
      Johannes Berg 提交于
      This reverts commit ba1debdf.
      
      Oliver reported that it breaks network-manager, for some reason with
      this patch NM decides that the device isn't wireless but "generic"
      (ethernet), sees no carrier (as expected with wifi) and fails to do
      anything else with it.
      
      Revert this to unbreak userspace.
      Reported-by: NOliver Hartkopp <socketcan@hartkopp.net>
      Tested-by: NOliver Hartkopp <socketcan@hartkopp.net>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      6e9f3fa4
  4. 17 1月, 2015 1 次提交
  5. 16 1月, 2015 2 次提交
  6. 15 1月, 2015 2 次提交
  7. 14 1月, 2015 8 次提交
  8. 09 1月, 2015 1 次提交
    • J
      mac80211: fix handling TIM IE when stations disconnect · 9b7a86f3
      Johannes Berg 提交于
      When a station disconnects with frames still pending, we clear
      the TIM bit, but too late - it's only cleared when the station
      is already removed from the driver, and thus the driver can get
      confused (and hwsim will loudly complain.)
      
      Fix this by clearing the TIM bit earlier, when the station has
      been unlinked but not removed from the driver yet. To do this,
      refactor the TIM recalculation to in that case ignore traffic
      and simply assume no pending traffic - this is correct for the
      disconnected station even though the frames haven't been freed
      yet at that point.
      
      This patch isn't needed for current drivers though as they don't
      check the station argument to the set_tim() operation and thus
      don't really run into the possible confusion.
      Reported-by: NJouni Malinen <j@w1.fi>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      9b7a86f3
  9. 08 1月, 2015 10 次提交
    • J
      mac80211: provide per-TID RX/TX MSDU counters · 79c892b8
      Johannes Berg 提交于
      Implement the new counters cfg80211 can now advertise to userspace.
      The TX code is in the sequence number handler, which is a bit odd,
      but that place already knows the TID and frame type, so it was
      easiest and least impact there.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      79c892b8
    • J
      nl80211: support per-TID station statistics · 6de39808
      Johannes Berg 提交于
      The base for the current statistics is pretty mixed up, support
      exporting RX/TX statistics for MSDUs per TID. This (currently)
      covers received MSDUs, transmitted MSDUs and retries/failures
      thereof.
      
      Doing it per TID for MSDUs makes more sense than say only per AC
      because it's symmetric - we could export per-AC statistics for all
      frames (which AC we used for transmission can be determined also
      for management frames) but per TID is better and usually data
      frames are really the ones we care about. Also, on RX we can't
      determine the AC - but we do know the TID for any QoS MPDU we
      received.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      6de39808
    • J
      cfg80211: add nl80211 beacon-only statistics · a76b1942
      Johannes Berg 提交于
      Add these two values:
       * BEACON_RX: number of beacons received from this peer
       * BEACON_SIGNAL_AVG: signal strength average for beacons only
      
      These can then be used for Android Lollipop's statistics request.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      a76b1942
    • J
      cfg80211: remove enum station_info_flags · 319090bf
      Johannes Berg 提交于
      This is really just duplicating the list of information that's
      already available in the nl80211 attribute, so remove the list.
      Two small changes are needed:
       * remove STATION_INFO_ASSOC_REQ_IES complete, but the length
         (assoc_req_ies_len) can be used instead
       * add NL80211_STA_INFO_RX_DROP_MISC which exists internally
         but not in nl80211 yet
      
      This gets rid of the duplicate maintenance of the two lists.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      319090bf
    • J
      mac80211: allow drivers to provide most station statistics · 2b9a7e1b
      Johannes Berg 提交于
      In many cases, drivers can filter things like beacons that will
      skew statistics reported by mac80211. To get correct statistics
      in these cases, call drivers to obtain statistics and let them
      override all values, filling values from mac80211 if the driver
      didn't provide them. Not all of them make sense for the driver
      to fill, so some are still always done by mac80211.
      
      Note that this doesn't currently allow a driver to say "I know
      this value is wrong, don't report it at all", or to sum it up
      with a mac80211 value (as could be useful for "dropped misc"),
      that can be added if it turns out to be needed.
      
      This also gets rid of the get_rssi() method as is can now be
      implemented using sta_statistics().
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      2b9a7e1b
    • J
      mac80211: send statistics with delete station event · 6f7a8d26
      Johannes Berg 提交于
      Use the new cfg80211_del_sta_sinfo() function to send the
      statistics about the deleted station with the delete event.
      This lets userspace see how much traffic etc. the deleted
      station used.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      6f7a8d26
    • J
      cfg80211: allow including station info in delete event · cf5ead82
      Johannes Berg 提交于
      When a station is removed, its statistics may be interesting to
      userspace, for example for further aggregation of statistics of
      all stations that ever connected to an AP.
      
      Introduce a new cfg80211_del_sta_sinfo() function (and make the
      cfg80211_del_sta() a static inline calling it) to allow passing
      a struct station_info along with this, and send the data in the
      nl80211 event message.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      cf5ead82
    • J
      cfg80211: add scan time to survey data · 052536ab
      Johannes Berg 提交于
      Add the time spent scanning to the survey data so it can be
      reported by drivers that collect such information.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      052536ab
    • J
      cfg80211: allow survey data to return global data · 11f78ac3
      Johannes Berg 提交于
      Not all devices are able to report survey data (particularly
      time spent for various operations) per channel. As all these
      statistics already exist in survey data, allow such devices
      to report them (if userspace requested it)
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      11f78ac3
    • J
      cfg80211: remove "channel" from survey names · 4ed20beb
      Johannes Berg 提交于
      All of the survey data is (currently) per channel anyway,
      so having the word "channel" in the name does nothing. In
      the next patch I'll introduce global data to the survey,
      where the word "channel" is actually confusing.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      4ed20beb
  10. 07 1月, 2015 1 次提交
    • I
      mac80211: Re-fix accounting of the tailroom-needed counter · db12847c
      Ido Yariv 提交于
      When hw acceleration is enabled, the GENERATE_IV or PUT_IV_SPACE flags
      only require headroom space. Therefore, the tailroom-needed counter can
      safely be decremented for most drivers.
      
      The older incarnation of this patch (ca34e3b5) assumed that the above
      holds true for all drivers. As reported by Christopher Chavez and
      researched by Christian Lamparter and Larry Finger, this isn't a valid
      assumption for p54 and cw1200.
      
      Drivers that still require tailroom for ICV/MIC even when HW encryption
      is enabled can use IEEE80211_KEY_FLAG_RESERVE_TAILROOM to indicate it.
      Signed-off-by: NIdo Yariv <idox.yariv@intel.com>
      Cc: Christopher Chavez <chrischavez@gmx.us>
      Cc: Christian Lamparter <chunkeey@googlemail.com>
      Cc: Larry Finger <Larry.Finger@lwfinger.net>
      Cc: Solomon Peachy <pizza@shaftnet.org>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      db12847c
  11. 06 1月, 2015 3 次提交
  12. 05 1月, 2015 1 次提交
  13. 23 12月, 2014 1 次提交
  14. 20 12月, 2014 1 次提交
  15. 18 12月, 2014 2 次提交
  16. 17 12月, 2014 2 次提交