1. 20 3月, 2015 4 次提交
    • J
      mac80211: mesh: avoid pointless station lookup · e33f5569
      Johannes Berg 提交于
      In ieee80211_build_hdr(), the station is looked up to build the
      header correctly (QoS field) and to check for authorization. For
      mesh, authorization isn't checked here, and QoS capability is
      mandatory, so the station lookup can be avoided.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      e33f5569
    • J
      mac80211: drop 4-addr VLAN frames earlier if not connected · a8d15ff0
      Johannes Berg 提交于
      If there's no station on the 4-addr VLAN interface, then frames
      cannot be transmitted. Drop such frames earlier, before setting
      up all the information for them.
      
      We should keep the old check though since that code might be used
      for other internally-generated frames.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      a8d15ff0
    • J
      mac80211: don't look up destination station twice · 5041006c
      Johannes Berg 提交于
      There's no need to look up the destination station twice while
      building the 802.11 header for a given frame if the frame will
      actually be transmitted to the station we initially looked up.
      
      This happens for 4-addr VLAN interfaces and TDLS connections, which
      both directly send the frame to the station they looked up, though
      in the case of TDLS some station conditions need to be checked.
      
      To avoid that, add a variable indicating that we've looked up the
      station that the frame is going to be transmitted to, and avoid the
      lookup/flag checking if it already has been done.
      
      In the TDLS case, also move the authorized/wme_sta flag assignment
      to the correct place, i.e. only when that station is really used.
      Before this change, the new lookup should always have succeeded so
      that the potentially erroneous data would be overwritten.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      5041006c
    • J
      mac80211: remove drop_unencrypted code · e8f4fb7c
      Johannes Berg 提交于
      This mechanism was historic, and only ever used by IBSS, which
      also doesn't need to have it as it properly manages station's
      802.1X PAE state (or, with WEP, always has a key.)
      
      Remove the mechanism to clean up the code.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      e8f4fb7c
  2. 17 3月, 2015 4 次提交
  3. 16 3月, 2015 4 次提交
  4. 04 3月, 2015 10 次提交
  5. 03 3月, 2015 5 次提交
  6. 01 3月, 2015 4 次提交
    • J
      mac80211: remove TX latency measurement code · abfbc3af
      Johannes Berg 提交于
      Revert commit ad38bfc9 ("mac80211: Tx frame latency statistics")
      (along with some follow-up fixes).
      
      This code turned out not to be as useful in the current form as we
      thought, and we've internally hacked it up more, but that's not
      very suitable for upstream (for now), and we might just do that
      with tracing instead.
      
      Therefore, for now at least, remove this code. We might also need
      to use the skb->tstamp field for the TCP performance issue, which
      is more important than the debugging.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      abfbc3af
    • M
      nl/mac80211: allow zero plink timeout to disable STA expiration · 31f909a2
      Masashi Honma 提交于
      Both wpa_supplicant and mac80211 have and inactivity timer. By default
      wpa_supplicant will be timed out in 5 minutes and mac80211's it is 30
      minutes. If wpa_supplicant uses a longer timer than mac80211, it will
      get unexpected disconnection by mac80211.
      
      Using 0xffffffff instead as the configured value could solve this w/o
      changing the code, but due to integer overflow in the expression used
      this doesn't work. The expression is:
      
      (current jiffies) > (frame Rx jiffies + NL80211_MESHCONF_PLINK_TIMEOUT * 250)
      
      On 32bit system, the right side would overflow and be a very small
      value if NL80211_MESHCONF_PLINK_TIMEOUT is sufficiently large,
      causing unexpectedly early disconnections.
      
      Instead allow disabling the inactivity timer to avoid this situation,
      by passing the (previously invalid and useless) value 0.
      Signed-off-by: NMasashi Honma <masashi.honma@gmail.com>
      [reword/rewrap commit log]
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      31f909a2
    • J
      mac80211: iterate using station list in AP SMPS · 7d9bb2f0
      Johannes Berg 提交于
      When changing AP SMPS, we need to look up all the stations
      for this interface, so there's no reason to iterate over
      hash chains rather than doing the simpler iteration over
      the station list.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      7d9bb2f0
    • J
      mac80211: don't look up stations for multicast addresses · 9d6b106b
      Johannes Berg 提交于
      Since multicast addresses don't exist as stations, don't attempt
      to look them up in the hashtable on TX.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      9d6b106b
  7. 27 1月, 2015 5 次提交
  8. 23 1月, 2015 4 次提交
    • J
      mac80211: support beacon statistics · 225b8189
      Johannes Berg 提交于
      For drivers without beacon filtering, support beacon statistics
      entirely, i.e. report the number of beacons and average signal.
      
      For drivers with beacon filtering, give them the number of beacons
      received by mac80211 -- in case the device reports only the number
      of filtered beacons then driver doesn't have to count all beacons
      again as mac80211 already does.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      225b8189
    • J
      mac80211: fix per-TID RX-MSDU counter · 3d6dc343
      Johannes Berg 提交于
      In the case of non-QoS association, the counter was actually
      wrong. The right index isn't security_idx but seqno_idx, as
      security_idx will be 0 for data frames, while 16 is needed.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      3d6dc343
    • J
      mac80211: tdls: disentangle HT supported conditions · c5309ba7
      Johannes Berg 提交于
      These conditions are rather difficult to follow, for example
      because "!sta" only exists to not crash in the case that we
      don't have a station pointer (WLAN_TDLS_SETUP_REQUEST) in
      which the additional condition (peer supports HT) doesn't
      actually matter anyway.
      
      Cleaning this up only duplicates two lines of code but makes
      the rest far easier to read, so do that.
      
      As a side effect, smatch stops complaining about the lack of
      a sta pointer test after the !sta (since the !sta goes away)
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      c5309ba7
    • J
      mac80211: tdls: remove shadowing variable · d6f5cc09
      Johannes Berg 提交于
      There's no need to use another local 'sta' variable as the
      original (outer scope) one isn't needed any more and has
      become invalid anyway when exiting the RCU read section.
      
      Remove the inner scope one and along with it the useless NULL
      initialization.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      d6f5cc09