diff options
author | Andrei Otcheretianski <andrei.otcheretianski@intel.com> | 2015-08-15 21:39:50 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2015-09-22 15:21:22 +0200 |
commit | 1b09b5568e5f46c6dfb781d7c1dfad431a6d8ec1 (patch) | |
tree | 1e437f5a6693228d1d5d4f122d0ef0ad99edc734 /net/mac80211/trace.h | |
parent | nl80211: support vendor dumpit commands (diff) | |
download | linux-1b09b5568e5f46c6dfb781d7c1dfad431a6d8ec1.tar.xz linux-1b09b5568e5f46c6dfb781d7c1dfad431a6d8ec1.zip |
mac80211: introduce per vif frame registration API
Currently the cfg80211's frame registration api receives wdev, however
mac80211 assumes per device filter configuration and ignores wdev.
Per device filtering is too wasteful, especially for multi-channel
devices.
Introduce new per vif frame registration API and use it for probe
request registrations in ieee80211_mgmt_frame_register()
Also call directly to ieee80211_configure_filter instead of using a work
since it is now allowed to sleep in ieee80211_mgmt_frame_register.
Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/trace.h')
-rw-r--r-- | net/mac80211/trace.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/net/mac80211/trace.h b/net/mac80211/trace.h index 6f14591d8ca9..b5960b948f60 100644 --- a/net/mac80211/trace.h +++ b/net/mac80211/trace.h @@ -497,6 +497,36 @@ TRACE_EVENT(drv_configure_filter, ) ); +TRACE_EVENT(drv_config_iface_filter, + TP_PROTO(struct ieee80211_local *local, + struct ieee80211_sub_if_data *sdata, + unsigned int filter_flags, + unsigned int changed_flags), + + TP_ARGS(local, sdata, filter_flags, changed_flags), + + TP_STRUCT__entry( + LOCAL_ENTRY + VIF_ENTRY + __field(unsigned int, filter_flags) + __field(unsigned int, changed_flags) + ), + + TP_fast_assign( + LOCAL_ASSIGN; + VIF_ASSIGN; + __entry->filter_flags = filter_flags; + __entry->changed_flags = changed_flags; + ), + + TP_printk( + LOCAL_PR_FMT VIF_PR_FMT + " filter_flags: %#x changed_flags: %#x", + LOCAL_PR_ARG, VIF_PR_ARG, __entry->filter_flags, + __entry->changed_flags + ) +); + TRACE_EVENT(drv_set_tim, TP_PROTO(struct ieee80211_local *local, struct ieee80211_sta *sta, bool set), |