1. 26 Apr, 2019 33 commits
  2. 08 Apr, 2019 7 commits
    • Sunil Dutt's avatar
      cfg80211/nl80211: Offload OWE processing to user space in AP mode · cb74e977
      Sunil Dutt authored
      This interface allows the host driver to offload OWE processing
      to user space. This intends to support OWE (Opportunistic Wireless
      Encryption) AKM by the drivers that implement SME but rely on the
      user space for the cryptographic/OWE processing in AP mode. Such
      drivers are not capable of processing/deriving the DH IE.
      
      A new NL80211 command - NL80211_CMD_UPDATE_OWE_INFO is introduced
      to send the request/event between the host driver and user space.
      
      Driver shall provide the OWE info (MAC address and DH IE) of
      the peer to user space for cryptographic processing of the DH IE
      through the event. Accordingly, the user space shall update the
      OWE info/DH IE to the driver.
      
      Following is the sequence in AP mode for OWE authentication.
      
      Driver passes the OWE info obtained from the peer in the
      Association Request to the user space through the event
      cfg80211_update_owe_info_event. User space shall process the
      OWE info received and generate new OWE info. This OWE info is
      passed to the driver through NL80211_CMD_UPDATE_OWE_INFO
      request. Driver eventually uses this OWE info to send the
      Association Response to the peer.
      
      This OWE info in the command interface carries the IEs that include
      PMKID of the peer if the PMKSA is still valid or an updated DH IE
      for generating a new PMKSA with the peer.
      Signed-off-by: default avatarLiangwei Dong <liangwei@codeaurora.org>
      Signed-off-by: default avatarSunil Dutt <usdutt@codeaurora.org>
      Signed-off-by: default avatarSrinivas Dasari <dasaris@codeaurora.org>
      [remove policy initialization - no longer exists]
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      cb74e977
    • Narayanraddi Masti's avatar
      mac80211: Add support for NL80211_STA_INFO_AIRTIME_LINK_METRIC · ab60633c
      Narayanraddi Masti authored
      Add support for mesh airtime link metric attribute
      NL80211_STA_INFO_AIRTIME_LINK_METRIC.
      Signed-off-by: default avatarNarayanraddi Masti <team.nmasti@gmail.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      ab60633c
    • vamsi krishna's avatar
      nl80211/cfg80211: Specify band specific min RSSI thresholds with sched scan · 1e1b11b6
      vamsi krishna authored
      This commit adds the support to specify the RSSI thresholds per
      band for each match set. This enhances the current behavior which
      specifies a single rssi_threshold across all the bands by
      introducing the rssi_threshold_per_band. These per band rssi
      thresholds are referred through NL80211_BAND_* (enum nl80211_band)
      variables  as attribute types. Such attributes/values per each
      band are nested through NL80211_ATTR_SCHED_SCAN_MIN_RSSI.
      These band specific rssi thresholds shall take precedence over
      the current rssi_thold per match set.
      Drivers indicate this support through
      %NL80211_EXT_FEATURE_SCHED_SCAN_BAND_SPECIFIC_RSSI_THOLD.
      These per band rssi attributes/values does not specify
      "default RSSI filter" as done by
      NL80211_SCHED_SCAN_MATCH_ATTR_RSSI to stay backward compatible.
      That said, these per band rssi values have to be specified for
      the corresponding matchset.
      Signed-off-by: default avatarvamsi krishna <vamsin@codeaurora.org>
      Signed-off-by: default avatarSrinivas Dasari <dasaris@codeaurora.org>
      [rebase on refactoring, add policy]
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      1e1b11b6
    • Johannes Berg's avatar
      nl80211: reindent some sched scan code · d39f3b4f
      Johannes Berg authored
      The sched scan code here is really deep - avoid one level
      of indentation by short-circuiting the loop instead of
      putting everything into the if block.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      d39f3b4f
    • Vlad Buslov's avatar
      net: sched: flower: insert filter to ht before offloading it to hw · 1f17f774
      Vlad Buslov authored
      John reports:
      
      Recent refactoring of fl_change aims to use the classifier spinlock to
      avoid the need for rtnl lock. In doing so, the fl_hw_replace_filer()
      function was moved to before the lock is taken. This can create problems
      for drivers if duplicate filters are created (commmon in ovs tc offload
      due to filters being triggered by user-space matches).
      
      Drivers registered for such filters will now receive multiple copies of
      the same rule, each with a different cookie value. This means that the
      drivers would need to do a full match field lookup to determine
      duplicates, repeating work that will happen in flower __fl_lookup().
      Currently, drivers do not expect to receive duplicate filters.
      
      To fix this, verify that filter with same key is not present in flower
      classifier hash table and insert the new filter to the flower hash table
      before offloading it to hardware. Implement helper function
      fl_ht_insert_unique() to atomically verify/insert a filter.
      
      This change makes filter visible to fast path at the beginning of
      fl_change() function, which means it can no longer be freed directly in
      case of error. Refactor fl_change() error handling code to deallocate the
      filter with rcu timeout.
      
      Fixes: 620da486 ("net: sched: flower: refactor fl_change")
      Reported-by: default avatarJohn Hurley <john.hurley@netronome.com>
      Signed-off-by: default avatarVlad Buslov <vladbu@mellanox.com>
      Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1f17f774
    • David S. Miller's avatar
      Merge branch 'rhashtable-bitlocks' · 9186c90b
      David S. Miller authored
      NeilBrown says:
      
      ====================
      Convert rhashtable to use bitlocks
      
      This series converts rhashtable to use a per-bucket bitlock
      rather than a separate array of spinlocks.
      This:
        reduces memory usage
        results in slightly fewer memory accesses
        slightly improves parallelism
        makes a configuration option unnecessary
      
      The main change from previous version is to use a distinct type for
      the pointer in the bucket which has a bit-lock in it.  This
      helped find two places where rht_ptr() was missed, one
      in  rhashtable_free_and_destroy() in print_ht in the test code.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9186c90b
    • NeilBrown's avatar
      rhashtable: add lockdep tracking to bucket bit-spin-locks. · 149212f0
      NeilBrown authored
      Native bit_spin_locks are not tracked by lockdep.
      
      The bit_spin_locks used for rhashtable buckets are local
      to the rhashtable implementation, so there is little opportunity
      for the sort of misuse that lockdep might detect.
      However locks are held while a hash function or compare
      function is called, and if one of these took a lock,
      a misbehaviour is possible.
      
      As it is quite easy to add lockdep support this unlikely
      possibility seems to be enough justification.
      
      So create a lockdep class for bucket bit_spin_lock and attach
      through a lockdep_map in each bucket_table.
      
      Without the 'nested' annotation in rhashtable_rehash_one(), lockdep
      correctly reports a possible problem as this lock is taken
      while another bucket lock (in another table) is held.  This
      confirms that the added support works.
      With the correct nested annotation in place, lockdep reports
      no problems.
      Signed-off-by: default avatarNeilBrown <neilb@suse.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      149212f0