2009-07-07 15:46:22 +04:00
# if !defined(__MAC80211_DRIVER_TRACE) || defined(TRACE_HEADER_MULTI_READ)
# define __MAC80211_DRIVER_TRACE
# include <linux/tracepoint.h>
# include <net/mac80211.h>
# include "ieee80211_i.h"
# undef TRACE_SYSTEM
# define TRACE_SYSTEM mac80211
# define MAXNAME 32
# define LOCAL_ENTRY __array(char, wiphy_name, 32)
# define LOCAL_ASSIGN strlcpy(__entry->wiphy_name, wiphy_name(local->hw.wiphy), MAXNAME)
# define LOCAL_PR_FMT "%s"
# define LOCAL_PR_ARG __entry->wiphy_name
# define STA_ENTRY __array(char, sta_addr, ETH_ALEN)
# define STA_ASSIGN (sta ? memcpy(__entry->sta_addr, sta->addr, ETH_ALEN) : memset(__entry->sta_addr, 0, ETH_ALEN))
2014-11-09 19:50:20 +03:00
# define STA_NAMED_ASSIGN(s) memcpy(__entry->sta_addr, (s)->addr, ETH_ALEN)
2009-07-07 15:46:22 +04:00
# define STA_PR_FMT " sta:%pM"
# define STA_PR_ARG __entry->sta_addr
2010-09-16 16:58:23 +04:00
# define VIF_ENTRY __field(enum nl80211_iftype, vif_type) __field(void *, sdata) \
__field ( bool , p2p ) \
2014-02-26 16:46:35 +04:00
__string ( vif_name , sdata - > name )
2010-09-16 16:58:23 +04:00
# define VIF_ASSIGN __entry->vif_type = sdata->vif.type; __entry->sdata = sdata; \
__entry - > p2p = sdata - > vif . p2p ; \
2014-02-26 16:46:35 +04:00
__assign_str ( vif_name , sdata - > name )
2010-09-16 16:58:23 +04:00
# define VIF_PR_FMT " vif:%s(%d%s)"
# define VIF_PR_ARG __get_str(vif_name), __entry->vif_type, __entry->p2p ? " / p2p" : ""
2009-07-07 15:46:22 +04:00
2013-03-25 19:26:57 +04:00
# define CHANDEF_ENTRY __field(u32, control_freq) \
__field ( u32 , chan_width ) \
__field ( u32 , center_freq1 ) \
2012-12-21 15:36:33 +04:00
__field ( u32 , center_freq2 )
2013-03-25 19:26:57 +04:00
# define CHANDEF_ASSIGN(c) \
__entry - > control_freq = ( c ) - > chan ? ( c ) - > chan - > center_freq : 0 ; \
__entry - > chan_width = ( c ) - > width ; \
__entry - > center_freq1 = ( c ) - > center_freq1 ; \
2013-02-09 00:29:59 +04:00
__entry - > center_freq2 = ( c ) - > center_freq2 ;
2012-12-21 15:36:33 +04:00
# define CHANDEF_PR_FMT " control:%d MHz width:%d center: %d / %d MHz"
2013-03-25 19:26:57 +04:00
# define CHANDEF_PR_ARG __entry->control_freq, __entry->chan_width, \
2012-12-21 15:36:33 +04:00
__entry - > center_freq1 , __entry - > center_freq2
2013-11-11 22:14:01 +04:00
# define MIN_CHANDEF_ENTRY \
__field ( u32 , min_control_freq ) \
__field ( u32 , min_chan_width ) \
__field ( u32 , min_center_freq1 ) \
__field ( u32 , min_center_freq2 )
# define MIN_CHANDEF_ASSIGN(c) \
__entry - > min_control_freq = ( c ) - > chan ? ( c ) - > chan - > center_freq : 0 ; \
__entry - > min_chan_width = ( c ) - > width ; \
__entry - > min_center_freq1 = ( c ) - > center_freq1 ; \
__entry - > min_center_freq2 = ( c ) - > center_freq2 ;
# define MIN_CHANDEF_PR_FMT " min_control:%d MHz min_width:%d min_center: %d / %d MHz"
# define MIN_CHANDEF_PR_ARG __entry->min_control_freq, __entry->min_chan_width, \
__entry - > min_center_freq1 , __entry - > min_center_freq2
2013-03-25 19:26:57 +04:00
# define CHANCTX_ENTRY CHANDEF_ENTRY \
2013-11-11 22:14:01 +04:00
MIN_CHANDEF_ENTRY \
2013-03-25 19:26:57 +04:00
__field ( u8 , rx_chains_static ) \
2012-09-11 16:34:12 +04:00
__field ( u8 , rx_chains_dynamic )
2013-03-25 19:26:57 +04:00
# define CHANCTX_ASSIGN CHANDEF_ASSIGN(&ctx->conf.def) \
2013-11-11 22:14:01 +04:00
MIN_CHANDEF_ASSIGN ( & ctx - > conf . min_def ) \
2013-03-25 19:26:57 +04:00
__entry - > rx_chains_static = ctx - > conf . rx_chains_static ; \
2012-09-11 16:34:12 +04:00
__entry - > rx_chains_dynamic = ctx - > conf . rx_chains_dynamic
2013-11-11 22:14:01 +04:00
# define CHANCTX_PR_FMT CHANDEF_PR_FMT MIN_CHANDEF_PR_FMT " chains:%d / %d"
# define CHANCTX_PR_ARG CHANDEF_PR_ARG, MIN_CHANDEF_PR_ARG, \
2012-09-11 16:34:12 +04:00
__entry - > rx_chains_static , __entry - > rx_chains_dynamic
2012-06-26 16:37:17 +04:00
2010-04-07 18:48:40 +04:00
/*
* Tracing for driver callbacks .
*/
2011-01-26 11:22:15 +03:00
DECLARE_EVENT_CLASS ( local_only_evt ,
2010-06-10 12:56:20 +04:00
TP_PROTO ( struct ieee80211_local * local ) ,
TP_ARGS ( local ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
) ,
TP_printk ( LOCAL_PR_FMT , LOCAL_PR_ARG )
) ;
2009-07-07 15:46:22 +04:00
2011-05-09 15:40:06 +04:00
DECLARE_EVENT_CLASS ( local_sdata_addr_evt ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ) ,
TP_ARGS ( local , sdata ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
VIF_ENTRY
2013-10-02 06:04:40 +04:00
__array ( char , addr , ETH_ALEN )
2011-05-09 15:40:06 +04:00
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
VIF_ASSIGN ;
2013-10-02 06:04:40 +04:00
memcpy ( __entry - > addr , sdata - > vif . addr , ETH_ALEN ) ;
2011-05-09 15:40:06 +04:00
) ,
TP_printk (
LOCAL_PR_FMT VIF_PR_FMT " addr:%pM " ,
LOCAL_PR_ARG , VIF_PR_ARG , __entry - > addr
)
) ;
DECLARE_EVENT_CLASS ( local_u32_evt ,
TP_PROTO ( struct ieee80211_local * local , u32 value ) ,
TP_ARGS ( local , value ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
__field ( u32 , value )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
__entry - > value = value ;
) ,
TP_printk (
LOCAL_PR_FMT " value:%d " ,
LOCAL_PR_ARG , __entry - > value
)
) ;
2011-05-11 18:09:36 +04:00
DECLARE_EVENT_CLASS ( local_sdata_evt ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ) ,
TP_ARGS ( local , sdata ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
VIF_ENTRY
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
VIF_ASSIGN ;
) ,
TP_printk (
LOCAL_PR_FMT VIF_PR_FMT ,
LOCAL_PR_ARG , VIF_PR_ARG
)
) ;
2011-01-26 11:22:15 +03:00
DEFINE_EVENT ( local_only_evt , drv_return_void ,
TP_PROTO ( struct ieee80211_local * local ) ,
TP_ARGS ( local )
) ;
2010-06-10 12:56:20 +04:00
TRACE_EVENT ( drv_return_int ,
TP_PROTO ( struct ieee80211_local * local , int ret ) ,
2009-07-07 15:46:22 +04:00
TP_ARGS ( local , ret ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
__field ( int , ret )
) ,
2010-06-10 12:56:20 +04:00
TP_fast_assign (
LOCAL_ASSIGN ;
__entry - > ret = ret ;
) ,
TP_printk ( LOCAL_PR_FMT " - %d " , LOCAL_PR_ARG , __entry - > ret )
) ;
2009-07-07 15:46:22 +04:00
2011-04-06 10:11:10 +04:00
TRACE_EVENT ( drv_return_bool ,
TP_PROTO ( struct ieee80211_local * local , bool ret ) ,
TP_ARGS ( local , ret ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
__field ( bool , ret )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
__entry - > ret = ret ;
) ,
TP_printk ( LOCAL_PR_FMT " - %s " , LOCAL_PR_ARG , ( __entry - > ret ) ?
" true " : " false " )
) ;
2014-05-19 23:53:20 +04:00
TRACE_EVENT ( drv_return_u32 ,
TP_PROTO ( struct ieee80211_local * local , u32 ret ) ,
TP_ARGS ( local , ret ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
__field ( u32 , ret )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
__entry - > ret = ret ;
) ,
TP_printk ( LOCAL_PR_FMT " - %u " , LOCAL_PR_ARG , __entry - > ret )
) ;
2010-06-10 12:56:20 +04:00
TRACE_EVENT ( drv_return_u64 ,
TP_PROTO ( struct ieee80211_local * local , u64 ret ) ,
TP_ARGS ( local , ret ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
__field ( u64 , ret )
) ,
2009-07-07 15:46:22 +04:00
TP_fast_assign (
LOCAL_ASSIGN ;
__entry - > ret = ret ;
) ,
2010-06-10 12:56:20 +04:00
TP_printk ( LOCAL_PR_FMT " - %llu " , LOCAL_PR_ARG , __entry - > ret )
) ;
2011-01-26 11:22:15 +03:00
DEFINE_EVENT ( local_only_evt , drv_start ,
2010-06-10 12:56:20 +04:00
TP_PROTO ( struct ieee80211_local * local ) ,
2011-01-26 11:22:15 +03:00
TP_ARGS ( local )
2009-07-07 15:46:22 +04:00
) ;
2012-04-23 23:50:31 +04:00
DEFINE_EVENT ( local_u32_evt , drv_get_et_strings ,
TP_PROTO ( struct ieee80211_local * local , u32 sset ) ,
TP_ARGS ( local , sset )
) ;
DEFINE_EVENT ( local_u32_evt , drv_get_et_sset_count ,
TP_PROTO ( struct ieee80211_local * local , u32 sset ) ,
TP_ARGS ( local , sset )
) ;
DEFINE_EVENT ( local_only_evt , drv_get_et_stats ,
TP_PROTO ( struct ieee80211_local * local ) ,
TP_ARGS ( local )
) ;
2011-05-04 17:37:29 +04:00
DEFINE_EVENT ( local_only_evt , drv_suspend ,
TP_PROTO ( struct ieee80211_local * local ) ,
TP_ARGS ( local )
) ;
DEFINE_EVENT ( local_only_evt , drv_resume ,
TP_PROTO ( struct ieee80211_local * local ) ,
TP_ARGS ( local )
) ;
2012-04-04 17:05:25 +04:00
TRACE_EVENT ( drv_set_wakeup ,
TP_PROTO ( struct ieee80211_local * local , bool enabled ) ,
TP_ARGS ( local , enabled ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
__field ( bool , enabled )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
__entry - > enabled = enabled ;
) ,
TP_printk ( LOCAL_PR_FMT " enabled:%d " , LOCAL_PR_ARG , __entry - > enabled )
) ;
2011-01-26 11:22:15 +03:00
DEFINE_EVENT ( local_only_evt , drv_stop ,
2009-07-07 15:46:22 +04:00
TP_PROTO ( struct ieee80211_local * local ) ,
2011-01-26 11:22:15 +03:00
TP_ARGS ( local )
2009-07-07 15:46:22 +04:00
) ;
2011-05-09 15:40:06 +04:00
DEFINE_EVENT ( local_sdata_addr_evt , drv_add_interface ,
2009-07-07 15:46:22 +04:00
TP_PROTO ( struct ieee80211_local * local ,
2010-06-10 12:56:20 +04:00
struct ieee80211_sub_if_data * sdata ) ,
2011-05-09 15:40:06 +04:00
TP_ARGS ( local , sdata )
2009-07-07 15:46:22 +04:00
) ;
2010-08-27 14:35:58 +04:00
TRACE_EVENT ( drv_change_interface ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ,
2010-09-16 16:58:23 +04:00
enum nl80211_iftype type , bool p2p ) ,
2010-08-27 14:35:58 +04:00
2010-09-16 16:58:23 +04:00
TP_ARGS ( local , sdata , type , p2p ) ,
2010-08-27 14:35:58 +04:00
TP_STRUCT__entry (
LOCAL_ENTRY
VIF_ENTRY
__field ( u32 , new_type )
2010-09-16 16:58:23 +04:00
__field ( bool , new_p2p )
2010-08-27 14:35:58 +04:00
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
VIF_ASSIGN ;
__entry - > new_type = type ;
2010-09-16 16:58:23 +04:00
__entry - > new_p2p = p2p ;
2010-08-27 14:35:58 +04:00
) ,
TP_printk (
2010-09-16 16:58:23 +04:00
LOCAL_PR_FMT VIF_PR_FMT " new type:%d%s " ,
LOCAL_PR_ARG , VIF_PR_ARG , __entry - > new_type ,
__entry - > new_p2p ? " /p2p " : " "
2010-08-27 14:35:58 +04:00
)
) ;
2011-05-09 15:40:06 +04:00
DEFINE_EVENT ( local_sdata_addr_evt , drv_remove_interface ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ) ,
TP_ARGS ( local , sdata )
2009-07-07 15:46:22 +04:00
) ;
TRACE_EVENT ( drv_config ,
TP_PROTO ( struct ieee80211_local * local ,
2010-06-10 12:56:20 +04:00
u32 changed ) ,
2009-07-07 15:46:22 +04:00
2010-06-10 12:56:20 +04:00
TP_ARGS ( local , changed ) ,
2009-07-07 15:46:22 +04:00
TP_STRUCT__entry (
LOCAL_ENTRY
__field ( u32 , changed )
2009-11-25 21:07:20 +03:00
__field ( u32 , flags )
__field ( int , power_level )
__field ( int , dynamic_ps_timeout )
__field ( int , max_sleep_period )
__field ( u16 , listen_interval )
__field ( u8 , long_frame_max_tx_count )
__field ( u8 , short_frame_max_tx_count )
2013-03-25 19:26:57 +04:00
CHANDEF_ENTRY
2009-12-01 15:37:02 +03:00
__field ( int , smps )
2009-07-07 15:46:22 +04:00
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
__entry - > changed = changed ;
2009-11-25 21:07:20 +03:00
__entry - > flags = local - > hw . conf . flags ;
__entry - > power_level = local - > hw . conf . power_level ;
__entry - > dynamic_ps_timeout = local - > hw . conf . dynamic_ps_timeout ;
__entry - > max_sleep_period = local - > hw . conf . max_sleep_period ;
__entry - > listen_interval = local - > hw . conf . listen_interval ;
2012-07-26 16:27:39 +04:00
__entry - > long_frame_max_tx_count =
local - > hw . conf . long_frame_max_tx_count ;
__entry - > short_frame_max_tx_count =
local - > hw . conf . short_frame_max_tx_count ;
2013-03-25 19:26:57 +04:00
CHANDEF_ASSIGN ( & local - > hw . conf . chandef )
2009-12-01 15:37:02 +03:00
__entry - > smps = local - > hw . conf . smps_mode ;
2009-07-07 15:46:22 +04:00
) ,
TP_printk (
2013-03-25 19:26:57 +04:00
LOCAL_PR_FMT " ch:%#x " CHANDEF_PR_FMT ,
LOCAL_PR_ARG , __entry - > changed , CHANDEF_PR_ARG
2009-07-07 15:46:22 +04:00
)
) ;
TRACE_EVENT ( drv_bss_info_changed ,
TP_PROTO ( struct ieee80211_local * local ,
2009-11-25 22:30:31 +03:00
struct ieee80211_sub_if_data * sdata ,
2009-07-07 15:46:22 +04:00
struct ieee80211_bss_conf * info ,
u32 changed ) ,
2009-11-25 22:30:31 +03:00
TP_ARGS ( local , sdata , info , changed ) ,
2009-07-07 15:46:22 +04:00
TP_STRUCT__entry (
LOCAL_ENTRY
VIF_ENTRY
2012-10-24 13:38:30 +04:00
__field ( u32 , changed )
2009-07-07 15:46:22 +04:00
__field ( bool , assoc )
2012-10-24 13:38:30 +04:00
__field ( bool , ibss_joined )
__field ( bool , ibss_creator )
2009-07-07 15:46:22 +04:00
__field ( u16 , aid )
__field ( bool , cts )
__field ( bool , shortpre )
__field ( bool , shortslot )
2012-10-24 13:38:30 +04:00
__field ( bool , enable_beacon )
2009-07-07 15:46:22 +04:00
__field ( u8 , dtimper )
__field ( u16 , bcnint )
__field ( u16 , assoc_cap )
2012-05-23 00:13:05 +04:00
__field ( u64 , sync_tsf )
__field ( u32 , sync_device_ts )
2013-02-05 20:48:40 +04:00
__field ( u8 , sync_dtim_count )
2009-07-07 15:46:22 +04:00
__field ( u32 , basic_rates )
2012-10-24 13:38:30 +04:00
__array ( int , mcast_rate , IEEE80211_NUM_BANDS )
2009-11-25 21:07:20 +03:00
__field ( u16 , ht_operation_mode )
2012-10-24 13:38:30 +04:00
__field ( s32 , cqm_rssi_thold ) ;
__field ( s32 , cqm_rssi_hyst ) ;
2012-11-09 14:39:59 +04:00
__field ( u32 , channel_width ) ;
__field ( u32 , channel_cfreq1 ) ;
2013-01-14 19:39:07 +04:00
__dynamic_array ( u32 , arp_addr_list ,
info - > arp_addr_cnt > IEEE80211_BSS_ARP_ADDR_LIST_LEN ?
IEEE80211_BSS_ARP_ADDR_LIST_LEN :
info - > arp_addr_cnt ) ;
__field ( int , arp_addr_cnt ) ;
2012-10-24 13:38:30 +04:00
__field ( bool , qos ) ;
__field ( bool , idle ) ;
__field ( bool , ps ) ;
__dynamic_array ( u8 , ssid , info - > ssid_len ) ;
__field ( bool , hidden_ssid ) ;
2012-10-24 12:59:25 +04:00
__field ( int , txpower )
2013-03-21 18:47:56 +04:00
__field ( u8 , p2p_oppps_ctwindow )
2009-07-07 15:46:22 +04:00
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
VIF_ASSIGN ;
__entry - > changed = changed ;
__entry - > aid = info - > aid ;
__entry - > assoc = info - > assoc ;
2012-10-24 13:38:30 +04:00
__entry - > ibss_joined = info - > ibss_joined ;
__entry - > ibss_creator = info - > ibss_creator ;
2009-07-07 15:46:22 +04:00
__entry - > shortpre = info - > use_short_preamble ;
__entry - > cts = info - > use_cts_prot ;
__entry - > shortslot = info - > use_short_slot ;
2012-10-24 13:38:30 +04:00
__entry - > enable_beacon = info - > enable_beacon ;
2009-07-07 15:46:22 +04:00
__entry - > dtimper = info - > dtim_period ;
__entry - > bcnint = info - > beacon_int ;
__entry - > assoc_cap = info - > assoc_capability ;
2012-05-23 00:13:05 +04:00
__entry - > sync_tsf = info - > sync_tsf ;
__entry - > sync_device_ts = info - > sync_device_ts ;
2013-02-05 20:48:40 +04:00
__entry - > sync_dtim_count = info - > sync_dtim_count ;
2009-07-07 15:46:22 +04:00
__entry - > basic_rates = info - > basic_rates ;
2012-10-24 13:38:30 +04:00
memcpy ( __entry - > mcast_rate , info - > mcast_rate ,
sizeof ( __entry - > mcast_rate ) ) ;
2009-11-25 21:07:20 +03:00
__entry - > ht_operation_mode = info - > ht_operation_mode ;
2012-10-24 13:38:30 +04:00
__entry - > cqm_rssi_thold = info - > cqm_rssi_thold ;
__entry - > cqm_rssi_hyst = info - > cqm_rssi_hyst ;
2012-11-09 14:39:59 +04:00
__entry - > channel_width = info - > chandef . width ;
__entry - > channel_cfreq1 = info - > chandef . center_freq1 ;
2013-01-14 19:39:07 +04:00
__entry - > arp_addr_cnt = info - > arp_addr_cnt ;
2012-10-24 13:38:30 +04:00
memcpy ( __get_dynamic_array ( arp_addr_list ) , info - > arp_addr_list ,
2013-01-14 19:39:07 +04:00
sizeof ( u32 ) * ( info - > arp_addr_cnt > IEEE80211_BSS_ARP_ADDR_LIST_LEN ?
IEEE80211_BSS_ARP_ADDR_LIST_LEN :
info - > arp_addr_cnt ) ) ;
2012-10-24 13:38:30 +04:00
__entry - > qos = info - > qos ;
__entry - > idle = info - > idle ;
__entry - > ps = info - > ps ;
memcpy ( __get_dynamic_array ( ssid ) , info - > ssid , info - > ssid_len ) ;
__entry - > hidden_ssid = info - > hidden_ssid ;
2012-10-24 12:59:25 +04:00
__entry - > txpower = info - > txpower ;
2013-03-21 18:47:56 +04:00
__entry - > p2p_oppps_ctwindow = info - > p2p_noa_attr . oppps_ctwindow ;
2009-07-07 15:46:22 +04:00
) ,
TP_printk (
LOCAL_PR_FMT VIF_PR_FMT " changed:%#x " ,
LOCAL_PR_ARG , VIF_PR_ARG , __entry - > changed
)
) ;
2009-08-17 18:16:53 +04:00
TRACE_EVENT ( drv_prepare_multicast ,
2010-06-10 12:56:20 +04:00
TP_PROTO ( struct ieee80211_local * local , int mc_count ) ,
2009-08-17 18:16:53 +04:00
2010-06-10 12:56:20 +04:00
TP_ARGS ( local , mc_count ) ,
2009-08-17 18:16:53 +04:00
TP_STRUCT__entry (
LOCAL_ENTRY
__field ( int , mc_count )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
__entry - > mc_count = mc_count ;
) ,
TP_printk (
2010-06-10 12:56:20 +04:00
LOCAL_PR_FMT " prepare mc (%d) " ,
LOCAL_PR_ARG , __entry - > mc_count
2009-08-17 18:16:53 +04:00
)
) ;
2009-07-07 15:46:22 +04:00
TRACE_EVENT ( drv_configure_filter ,
TP_PROTO ( struct ieee80211_local * local ,
unsigned int changed_flags ,
unsigned int * total_flags ,
2009-08-17 18:16:53 +04:00
u64 multicast ) ,
2009-07-07 15:46:22 +04:00
2009-08-17 18:16:53 +04:00
TP_ARGS ( local , changed_flags , total_flags , multicast ) ,
2009-07-07 15:46:22 +04:00
TP_STRUCT__entry (
LOCAL_ENTRY
__field ( unsigned int , changed )
__field ( unsigned int , total )
2009-08-17 18:16:53 +04:00
__field ( u64 , multicast )
2009-07-07 15:46:22 +04:00
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
__entry - > changed = changed_flags ;
__entry - > total = * total_flags ;
2009-08-17 18:16:53 +04:00
__entry - > multicast = multicast ;
2009-07-07 15:46:22 +04:00
) ,
TP_printk (
2009-08-17 18:16:53 +04:00
LOCAL_PR_FMT " changed:%#x total:%#x " ,
LOCAL_PR_ARG , __entry - > changed , __entry - > total
2009-07-07 15:46:22 +04:00
)
) ;
TRACE_EVENT ( drv_set_tim ,
TP_PROTO ( struct ieee80211_local * local ,
2010-06-10 12:56:20 +04:00
struct ieee80211_sta * sta , bool set ) ,
2009-07-07 15:46:22 +04:00
2010-06-10 12:56:20 +04:00
TP_ARGS ( local , sta , set ) ,
2009-07-07 15:46:22 +04:00
TP_STRUCT__entry (
LOCAL_ENTRY
STA_ENTRY
__field ( bool , set )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
STA_ASSIGN ;
__entry - > set = set ;
) ,
TP_printk (
2010-06-10 12:56:20 +04:00
LOCAL_PR_FMT STA_PR_FMT " set:%d " ,
2013-02-15 23:15:48 +04:00
LOCAL_PR_ARG , STA_PR_ARG , __entry - > set
2009-07-07 15:46:22 +04:00
)
) ;
TRACE_EVENT ( drv_set_key ,
TP_PROTO ( struct ieee80211_local * local ,
2009-11-25 22:30:31 +03:00
enum set_key_cmd cmd , struct ieee80211_sub_if_data * sdata ,
2009-07-07 15:46:22 +04:00
struct ieee80211_sta * sta ,
2010-06-10 12:56:20 +04:00
struct ieee80211_key_conf * key ) ,
2009-07-07 15:46:22 +04:00
2010-06-10 12:56:20 +04:00
TP_ARGS ( local , cmd , sdata , sta , key ) ,
2009-07-07 15:46:22 +04:00
TP_STRUCT__entry (
LOCAL_ENTRY
VIF_ENTRY
STA_ENTRY
2010-08-10 11:46:38 +04:00
__field ( u32 , cipher )
2009-07-07 15:46:22 +04:00
__field ( u8 , hw_key_idx )
__field ( u8 , flags )
__field ( s8 , keyidx )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
VIF_ASSIGN ;
STA_ASSIGN ;
2010-08-10 11:46:38 +04:00
__entry - > cipher = key - > cipher ;
2009-07-07 15:46:22 +04:00
__entry - > flags = key - > flags ;
__entry - > keyidx = key - > keyidx ;
__entry - > hw_key_idx = key - > hw_key_idx ;
) ,
TP_printk (
2010-06-10 12:56:20 +04:00
LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT ,
LOCAL_PR_ARG , VIF_PR_ARG , STA_PR_ARG
2009-07-07 15:46:22 +04:00
)
) ;
TRACE_EVENT ( drv_update_tkip_key ,
TP_PROTO ( struct ieee80211_local * local ,
2010-01-21 13:40:47 +03:00
struct ieee80211_sub_if_data * sdata ,
2009-07-07 15:46:22 +04:00
struct ieee80211_key_conf * conf ,
2010-01-21 13:40:47 +03:00
struct ieee80211_sta * sta , u32 iv32 ) ,
2009-07-07 15:46:22 +04:00
2010-01-21 13:40:47 +03:00
TP_ARGS ( local , sdata , conf , sta , iv32 ) ,
2009-07-07 15:46:22 +04:00
TP_STRUCT__entry (
LOCAL_ENTRY
2010-01-21 13:40:47 +03:00
VIF_ENTRY
STA_ENTRY
2009-07-07 15:46:22 +04:00
__field ( u32 , iv32 )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
2010-01-21 13:40:47 +03:00
VIF_ASSIGN ;
STA_ASSIGN ;
2009-07-07 15:46:22 +04:00
__entry - > iv32 = iv32 ;
) ,
TP_printk (
2010-01-21 13:40:47 +03:00
LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " iv32:%#x " ,
2013-12-18 11:44:16 +04:00
LOCAL_PR_ARG , VIF_PR_ARG , STA_PR_ARG , __entry - > iv32
2009-07-07 15:46:22 +04:00
)
) ;
2011-05-11 18:09:36 +04:00
DEFINE_EVENT ( local_sdata_evt , drv_hw_scan ,
2009-07-07 15:46:22 +04:00
TP_PROTO ( struct ieee80211_local * local ,
2011-05-11 18:09:36 +04:00
struct ieee80211_sub_if_data * sdata ) ,
TP_ARGS ( local , sdata )
) ;
2009-07-07 15:46:22 +04:00
2011-06-13 13:47:30 +04:00
DEFINE_EVENT ( local_sdata_evt , drv_cancel_hw_scan ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ) ,
TP_ARGS ( local , sdata )
) ;
2011-05-11 18:09:36 +04:00
DEFINE_EVENT ( local_sdata_evt , drv_sched_scan_start ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ) ,
TP_ARGS ( local , sdata )
) ;
2009-07-07 15:46:22 +04:00
2011-05-11 18:09:36 +04:00
DEFINE_EVENT ( local_sdata_evt , drv_sched_scan_stop ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ) ,
TP_ARGS ( local , sdata )
2009-07-07 15:46:22 +04:00
) ;
2014-06-13 00:24:31 +04:00
TRACE_EVENT ( drv_sw_scan_start ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ,
const u8 * mac_addr ) ,
TP_ARGS ( local , sdata , mac_addr ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
VIF_ENTRY
__array ( char , mac_addr , ETH_ALEN )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
VIF_ASSIGN ;
memcpy ( __entry - > mac_addr , mac_addr , ETH_ALEN ) ;
) ,
TP_printk ( LOCAL_PR_FMT " , " VIF_PR_FMT " , addr:%pM " ,
LOCAL_PR_ARG , VIF_PR_ARG , __entry - > mac_addr )
2009-07-07 15:46:22 +04:00
) ;
2014-06-13 00:24:31 +04:00
DEFINE_EVENT ( local_sdata_evt , drv_sw_scan_complete ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ) ,
TP_ARGS ( local , sdata )
2009-07-07 15:46:22 +04:00
) ;
TRACE_EVENT ( drv_get_stats ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_low_level_stats * stats ,
int ret ) ,
TP_ARGS ( local , stats , ret ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
__field ( int , ret )
__field ( unsigned int , ackfail )
__field ( unsigned int , rtsfail )
__field ( unsigned int , fcserr )
__field ( unsigned int , rtssucc )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
__entry - > ret = ret ;
__entry - > ackfail = stats - > dot11ACKFailureCount ;
__entry - > rtsfail = stats - > dot11RTSFailureCount ;
__entry - > fcserr = stats - > dot11FCSErrorCount ;
__entry - > rtssucc = stats - > dot11RTSSuccessCount ;
) ,
TP_printk (
LOCAL_PR_FMT " ret:%d " ,
LOCAL_PR_ARG , __entry - > ret
)
) ;
TRACE_EVENT ( drv_get_tkip_seq ,
TP_PROTO ( struct ieee80211_local * local ,
u8 hw_key_idx , u32 * iv32 , u16 * iv16 ) ,
TP_ARGS ( local , hw_key_idx , iv32 , iv16 ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
__field ( u8 , hw_key_idx )
__field ( u32 , iv32 )
__field ( u16 , iv16 )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
__entry - > hw_key_idx = hw_key_idx ;
__entry - > iv32 = * iv32 ;
__entry - > iv16 = * iv16 ;
) ,
TP_printk (
LOCAL_PR_FMT , LOCAL_PR_ARG
)
) ;
2011-05-09 15:40:06 +04:00
DEFINE_EVENT ( local_u32_evt , drv_set_frag_threshold ,
2010-11-08 12:51:06 +03:00
TP_PROTO ( struct ieee80211_local * local , u32 value ) ,
2011-05-09 15:40:06 +04:00
TP_ARGS ( local , value )
2010-11-08 12:51:06 +03:00
) ;
2011-05-09 15:40:06 +04:00
DEFINE_EVENT ( local_u32_evt , drv_set_rts_threshold ,
2010-06-10 12:56:20 +04:00
TP_PROTO ( struct ieee80211_local * local , u32 value ) ,
2011-05-09 15:40:06 +04:00
TP_ARGS ( local , value )
2009-12-22 00:50:48 +03:00
) ;
TRACE_EVENT ( drv_set_coverage_class ,
2014-09-05 01:57:41 +04:00
TP_PROTO ( struct ieee80211_local * local , s16 value ) ,
2009-12-22 00:50:48 +03:00
2010-06-10 12:56:20 +04:00
TP_ARGS ( local , value ) ,
2009-12-22 00:50:48 +03:00
TP_STRUCT__entry (
LOCAL_ENTRY
2014-09-05 01:57:41 +04:00
__field ( s16 , value )
2009-12-22 00:50:48 +03:00
) ,
TP_fast_assign (
2009-07-07 15:46:22 +04:00
LOCAL_ASSIGN ;
__entry - > value = value ;
) ,
TP_printk (
2010-06-10 12:56:20 +04:00
LOCAL_PR_FMT " value:%d " ,
LOCAL_PR_ARG , __entry - > value
2009-07-07 15:46:22 +04:00
)
) ;
TRACE_EVENT ( drv_sta_notify ,
TP_PROTO ( struct ieee80211_local * local ,
2009-11-25 22:30:31 +03:00
struct ieee80211_sub_if_data * sdata ,
2009-07-07 15:46:22 +04:00
enum sta_notify_cmd cmd ,
struct ieee80211_sta * sta ) ,
2009-11-25 22:30:31 +03:00
TP_ARGS ( local , sdata , cmd , sta ) ,
2009-07-07 15:46:22 +04:00
TP_STRUCT__entry (
LOCAL_ENTRY
VIF_ENTRY
STA_ENTRY
__field ( u32 , cmd )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
VIF_ASSIGN ;
STA_ASSIGN ;
__entry - > cmd = cmd ;
) ,
TP_printk (
LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " cmd:%d " ,
LOCAL_PR_ARG , VIF_PR_ARG , STA_PR_ARG , __entry - > cmd
)
) ;
2012-01-20 16:55:21 +04:00
TRACE_EVENT ( drv_sta_state ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ,
struct ieee80211_sta * sta ,
enum ieee80211_sta_state old_state ,
enum ieee80211_sta_state new_state ) ,
TP_ARGS ( local , sdata , sta , old_state , new_state ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
VIF_ENTRY
STA_ENTRY
__field ( u32 , old_state )
__field ( u32 , new_state )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
VIF_ASSIGN ;
STA_ASSIGN ;
__entry - > old_state = old_state ;
__entry - > new_state = new_state ;
) ,
TP_printk (
LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " state: %d->%d " ,
LOCAL_PR_ARG , VIF_PR_ARG , STA_PR_ARG ,
__entry - > old_state , __entry - > new_state
)
) ;
2012-03-30 10:43:32 +04:00
TRACE_EVENT ( drv_sta_rc_update ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ,
struct ieee80211_sta * sta ,
u32 changed ) ,
TP_ARGS ( local , sdata , sta , changed ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
VIF_ENTRY
STA_ENTRY
__field ( u32 , changed )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
VIF_ASSIGN ;
STA_ASSIGN ;
__entry - > changed = changed ;
) ,
TP_printk (
LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " changed: 0x%x " ,
LOCAL_PR_ARG , VIF_PR_ARG , STA_PR_ARG , __entry - > changed
)
) ;
2013-12-05 01:39:17 +04:00
DECLARE_EVENT_CLASS ( sta_event ,
2010-02-03 15:59:58 +03:00
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ,
2010-06-10 12:56:20 +04:00
struct ieee80211_sta * sta ) ,
2010-02-03 15:59:58 +03:00
2010-06-10 12:56:20 +04:00
TP_ARGS ( local , sdata , sta ) ,
2010-02-03 15:59:58 +03:00
TP_STRUCT__entry (
LOCAL_ENTRY
VIF_ENTRY
STA_ENTRY
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
VIF_ASSIGN ;
STA_ASSIGN ;
) ,
TP_printk (
2010-06-10 12:56:20 +04:00
LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT ,
LOCAL_PR_ARG , VIF_PR_ARG , STA_PR_ARG
2010-02-03 15:59:58 +03:00
)
) ;
2014-11-17 13:35:23 +03:00
DEFINE_EVENT ( sta_event , drv_sta_statistics ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ,
struct ieee80211_sta * sta ) ,
TP_ARGS ( local , sdata , sta )
) ;
2013-12-05 01:39:17 +04:00
DEFINE_EVENT ( sta_event , drv_sta_add ,
2010-02-03 15:59:58 +03:00
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ,
struct ieee80211_sta * sta ) ,
2013-12-05 01:39:17 +04:00
TP_ARGS ( local , sdata , sta )
) ;
2010-02-03 15:59:58 +03:00
2013-12-05 01:39:17 +04:00
DEFINE_EVENT ( sta_event , drv_sta_remove ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ,
struct ieee80211_sta * sta ) ,
TP_ARGS ( local , sdata , sta )
) ;
2010-02-03 15:59:58 +03:00
2013-12-05 01:39:17 +04:00
DEFINE_EVENT ( sta_event , drv_sta_pre_rcu_remove ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ,
struct ieee80211_sta * sta ) ,
TP_ARGS ( local , sdata , sta )
2010-02-03 15:59:58 +03:00
) ;
2014-11-19 02:10:42 +03:00
DEFINE_EVENT ( sta_event , drv_sta_rate_tbl_update ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ,
struct ieee80211_sta * sta ) ,
TP_ARGS ( local , sdata , sta )
) ;
2009-07-07 15:46:22 +04:00
TRACE_EVENT ( drv_conf_tx ,
2011-09-25 21:06:54 +04:00
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ,
2012-03-28 13:04:24 +04:00
u16 ac , const struct ieee80211_tx_queue_params * params ) ,
2009-07-07 15:46:22 +04:00
2012-03-28 13:04:24 +04:00
TP_ARGS ( local , sdata , ac , params ) ,
2009-07-07 15:46:22 +04:00
TP_STRUCT__entry (
LOCAL_ENTRY
2011-09-25 21:06:54 +04:00
VIF_ENTRY
2012-03-28 13:04:24 +04:00
__field ( u16 , ac )
2009-07-07 15:46:22 +04:00
__field ( u16 , txop )
__field ( u16 , cw_min )
__field ( u16 , cw_max )
__field ( u8 , aifs )
2011-09-25 21:06:54 +04:00
__field ( bool , uapsd )
2009-07-07 15:46:22 +04:00
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
2011-09-25 21:06:54 +04:00
VIF_ASSIGN ;
2012-03-28 13:04:24 +04:00
__entry - > ac = ac ;
2009-07-07 15:46:22 +04:00
__entry - > txop = params - > txop ;
__entry - > cw_max = params - > cw_max ;
__entry - > cw_min = params - > cw_min ;
__entry - > aifs = params - > aifs ;
2011-09-25 21:06:54 +04:00
__entry - > uapsd = params - > uapsd ;
2009-07-07 15:46:22 +04:00
) ,
TP_printk (
2012-03-28 13:04:24 +04:00
LOCAL_PR_FMT VIF_PR_FMT " AC:%d " ,
LOCAL_PR_ARG , VIF_PR_ARG , __entry - > ac
2009-07-07 15:46:22 +04:00
)
) ;
2011-09-21 15:06:11 +04:00
DEFINE_EVENT ( local_sdata_evt , drv_get_tsf ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ) ,
TP_ARGS ( local , sdata )
2009-07-07 15:46:22 +04:00
) ;
TRACE_EVENT ( drv_set_tsf ,
2011-09-21 15:06:11 +04:00
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ,
u64 tsf ) ,
2009-07-07 15:46:22 +04:00
2011-09-21 15:06:11 +04:00
TP_ARGS ( local , sdata , tsf ) ,
2009-07-07 15:46:22 +04:00
TP_STRUCT__entry (
LOCAL_ENTRY
2011-09-21 15:06:11 +04:00
VIF_ENTRY
2009-07-07 15:46:22 +04:00
__field ( u64 , tsf )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
2011-09-21 15:06:11 +04:00
VIF_ASSIGN ;
2009-07-07 15:46:22 +04:00
__entry - > tsf = tsf ;
) ,
TP_printk (
2011-09-21 15:06:11 +04:00
LOCAL_PR_FMT VIF_PR_FMT " tsf:%llu " ,
LOCAL_PR_ARG , VIF_PR_ARG , ( unsigned long long ) __entry - > tsf
2009-07-07 15:46:22 +04:00
)
) ;
2011-09-21 15:06:11 +04:00
DEFINE_EVENT ( local_sdata_evt , drv_reset_tsf ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ) ,
TP_ARGS ( local , sdata )
2009-07-07 15:46:22 +04:00
) ;
2011-01-26 11:22:15 +03:00
DEFINE_EVENT ( local_only_evt , drv_tx_last_beacon ,
2010-06-10 12:56:20 +04:00
TP_PROTO ( struct ieee80211_local * local ) ,
2011-01-26 11:22:15 +03:00
TP_ARGS ( local )
2009-07-07 15:46:22 +04:00
) ;
TRACE_EVENT ( drv_ampdu_action ,
TP_PROTO ( struct ieee80211_local * local ,
2009-11-25 22:30:31 +03:00
struct ieee80211_sub_if_data * sdata ,
2009-07-07 15:46:22 +04:00
enum ieee80211_ampdu_mlme_action action ,
struct ieee80211_sta * sta , u16 tid ,
2011-01-18 15:51:05 +03:00
u16 * ssn , u8 buf_size ) ,
2009-07-07 15:46:22 +04:00
2011-01-18 15:51:05 +03:00
TP_ARGS ( local , sdata , action , sta , tid , ssn , buf_size ) ,
2009-07-07 15:46:22 +04:00
TP_STRUCT__entry (
LOCAL_ENTRY
STA_ENTRY
__field ( u32 , action )
__field ( u16 , tid )
__field ( u16 , ssn )
2011-01-18 15:51:05 +03:00
__field ( u8 , buf_size )
2009-11-16 14:00:38 +03:00
VIF_ENTRY
2009-07-07 15:46:22 +04:00
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
2009-11-16 14:00:38 +03:00
VIF_ASSIGN ;
2009-07-07 15:46:22 +04:00
STA_ASSIGN ;
__entry - > action = action ;
__entry - > tid = tid ;
2010-01-26 10:58:57 +03:00
__entry - > ssn = ssn ? * ssn : 0 ;
2011-01-18 15:51:05 +03:00
__entry - > buf_size = buf_size ;
2009-07-07 15:46:22 +04:00
) ,
TP_printk (
2011-01-18 15:51:05 +03:00
LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " action:%d tid:%d buf:%d " ,
LOCAL_PR_ARG , VIF_PR_ARG , STA_PR_ARG , __entry - > action ,
__entry - > tid , __entry - > buf_size
2009-07-07 15:46:22 +04:00
)
) ;
2009-12-23 15:15:32 +03:00
2010-06-29 22:51:23 +04:00
TRACE_EVENT ( drv_get_survey ,
TP_PROTO ( struct ieee80211_local * local , int idx ,
struct survey_info * survey ) ,
TP_ARGS ( local , idx , survey ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
__field ( int , idx )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
__entry - > idx = idx ;
) ,
TP_printk (
LOCAL_PR_FMT " idx:%d " ,
LOCAL_PR_ARG , __entry - > idx
)
) ;
2009-12-23 15:15:32 +03:00
TRACE_EVENT ( drv_flush ,
2013-02-13 15:11:00 +04:00
TP_PROTO ( struct ieee80211_local * local ,
u32 queues , bool drop ) ,
2009-12-23 15:15:32 +03:00
2013-02-13 15:11:00 +04:00
TP_ARGS ( local , queues , drop ) ,
2009-12-23 15:15:32 +03:00
TP_STRUCT__entry (
LOCAL_ENTRY
__field ( bool , drop )
2013-02-13 15:11:00 +04:00
__field ( u32 , queues )
2009-12-23 15:15:32 +03:00
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
__entry - > drop = drop ;
2013-02-13 15:11:00 +04:00
__entry - > queues = queues ;
2009-12-23 15:15:32 +03:00
) ,
TP_printk (
2013-02-13 15:11:00 +04:00
LOCAL_PR_FMT " queues:0x%x drop:%d " ,
LOCAL_PR_ARG , __entry - > queues , __entry - > drop
2009-12-23 15:15:32 +03:00
)
) ;
2010-04-07 18:48:40 +04:00
2010-05-11 18:20:57 +04:00
TRACE_EVENT ( drv_channel_switch ,
TP_PROTO ( struct ieee80211_local * local ,
2014-10-08 10:48:40 +04:00
struct ieee80211_sub_if_data * sdata ,
2010-05-11 18:20:57 +04:00
struct ieee80211_channel_switch * ch_switch ) ,
2014-10-08 10:48:40 +04:00
TP_ARGS ( local , sdata , ch_switch ) ,
2010-05-11 18:20:57 +04:00
TP_STRUCT__entry (
LOCAL_ENTRY
2014-10-08 10:48:40 +04:00
VIF_ENTRY
2013-03-25 21:29:27 +04:00
CHANDEF_ENTRY
2010-05-11 18:20:57 +04:00
__field ( u64 , timestamp )
2014-10-08 10:48:35 +04:00
__field ( u32 , device_timestamp )
2010-05-11 18:20:57 +04:00
__field ( bool , block_tx )
__field ( u8 , count )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
2014-10-08 10:48:40 +04:00
VIF_ASSIGN ;
2013-03-25 21:29:27 +04:00
CHANDEF_ASSIGN ( & ch_switch - > chandef )
2010-05-11 18:20:57 +04:00
__entry - > timestamp = ch_switch - > timestamp ;
2014-10-08 10:48:35 +04:00
__entry - > device_timestamp = ch_switch - > device_timestamp ;
2010-05-11 18:20:57 +04:00
__entry - > block_tx = ch_switch - > block_tx ;
__entry - > count = ch_switch - > count ;
) ,
TP_printk (
2014-10-08 10:48:40 +04:00
LOCAL_PR_FMT VIF_PR_FMT " new " CHANDEF_PR_FMT " count:%d " ,
LOCAL_PR_ARG , VIF_PR_ARG , CHANDEF_PR_ARG , __entry - > count
2010-05-11 18:20:57 +04:00
)
) ;
2010-11-10 06:50:56 +03:00
TRACE_EVENT ( drv_set_antenna ,
TP_PROTO ( struct ieee80211_local * local , u32 tx_ant , u32 rx_ant , int ret ) ,
TP_ARGS ( local , tx_ant , rx_ant , ret ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
__field ( u32 , tx_ant )
__field ( u32 , rx_ant )
__field ( int , ret )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
__entry - > tx_ant = tx_ant ;
__entry - > rx_ant = rx_ant ;
__entry - > ret = ret ;
) ,
TP_printk (
LOCAL_PR_FMT " tx_ant:%d rx_ant:%d ret:%d " ,
LOCAL_PR_ARG , __entry - > tx_ant , __entry - > rx_ant , __entry - > ret
)
) ;
TRACE_EVENT ( drv_get_antenna ,
TP_PROTO ( struct ieee80211_local * local , u32 tx_ant , u32 rx_ant , int ret ) ,
TP_ARGS ( local , tx_ant , rx_ant , ret ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
__field ( u32 , tx_ant )
__field ( u32 , rx_ant )
__field ( int , ret )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
__entry - > tx_ant = tx_ant ;
__entry - > rx_ant = rx_ant ;
__entry - > ret = ret ;
) ,
TP_printk (
LOCAL_PR_FMT " tx_ant:%d rx_ant:%d ret:%d " ,
LOCAL_PR_ARG , __entry - > tx_ant , __entry - > rx_ant , __entry - > ret
)
) ;
2010-12-18 19:20:47 +03:00
TRACE_EVENT ( drv_remain_on_channel ,
2012-11-19 19:05:09 +04:00
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ,
struct ieee80211_channel * chan ,
2013-02-12 11:34:13 +04:00
unsigned int duration ,
enum ieee80211_roc_type type ) ,
2010-12-18 19:20:47 +03:00
2013-02-12 11:34:13 +04:00
TP_ARGS ( local , sdata , chan , duration , type ) ,
2010-12-18 19:20:47 +03:00
TP_STRUCT__entry (
LOCAL_ENTRY
2012-11-19 19:05:09 +04:00
VIF_ENTRY
2010-12-18 19:20:47 +03:00
__field ( int , center_freq )
__field ( unsigned int , duration )
2013-02-12 11:34:13 +04:00
__field ( u32 , type )
2010-12-18 19:20:47 +03:00
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
2012-11-19 19:05:09 +04:00
VIF_ASSIGN ;
2010-12-18 19:20:47 +03:00
__entry - > center_freq = chan - > center_freq ;
__entry - > duration = duration ;
2013-02-12 11:34:13 +04:00
__entry - > type = type ;
2010-12-18 19:20:47 +03:00
) ,
TP_printk (
2013-02-12 11:34:13 +04:00
LOCAL_PR_FMT VIF_PR_FMT " freq:%dMHz duration:%dms type=%d " ,
2012-11-19 19:05:09 +04:00
LOCAL_PR_ARG , VIF_PR_ARG ,
2013-02-12 11:34:13 +04:00
__entry - > center_freq , __entry - > duration , __entry - > type
2010-12-18 19:20:47 +03:00
)
) ;
2011-01-26 11:22:15 +03:00
DEFINE_EVENT ( local_only_evt , drv_cancel_remain_on_channel ,
2010-12-18 19:20:47 +03:00
TP_PROTO ( struct ieee80211_local * local ) ,
2011-01-26 11:22:15 +03:00
TP_ARGS ( local )
2010-12-18 19:20:47 +03:00
) ;
2011-03-08 00:19:18 +03:00
TRACE_EVENT ( drv_set_ringparam ,
TP_PROTO ( struct ieee80211_local * local , u32 tx , u32 rx ) ,
TP_ARGS ( local , tx , rx ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
__field ( u32 , tx )
__field ( u32 , rx )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
__entry - > tx = tx ;
__entry - > rx = rx ;
) ,
TP_printk (
LOCAL_PR_FMT " tx:%d rx %d " ,
LOCAL_PR_ARG , __entry - > tx , __entry - > rx
)
) ;
TRACE_EVENT ( drv_get_ringparam ,
TP_PROTO ( struct ieee80211_local * local , u32 * tx , u32 * tx_max ,
u32 * rx , u32 * rx_max ) ,
TP_ARGS ( local , tx , tx_max , rx , rx_max ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
__field ( u32 , tx )
__field ( u32 , tx_max )
__field ( u32 , rx )
__field ( u32 , rx_max )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
__entry - > tx = * tx ;
__entry - > tx_max = * tx_max ;
__entry - > rx = * rx ;
__entry - > rx_max = * rx_max ;
) ,
TP_printk (
LOCAL_PR_FMT " tx:%d tx_max %d rx %d rx_max %d " ,
LOCAL_PR_ARG ,
__entry - > tx , __entry - > tx_max , __entry - > rx , __entry - > rx_max
)
) ;
2011-04-06 10:11:10 +04:00
DEFINE_EVENT ( local_only_evt , drv_tx_frames_pending ,
TP_PROTO ( struct ieee80211_local * local ) ,
TP_ARGS ( local )
) ;
2011-02-25 17:36:57 +03:00
DEFINE_EVENT ( local_only_evt , drv_offchannel_tx_cancel_wait ,
TP_PROTO ( struct ieee80211_local * local ) ,
TP_ARGS ( local )
) ;
2011-04-27 15:26:51 +04:00
TRACE_EVENT ( drv_set_bitrate_mask ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ,
const struct cfg80211_bitrate_mask * mask ) ,
TP_ARGS ( local , sdata , mask ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
VIF_ENTRY
__field ( u32 , legacy_2g )
__field ( u32 , legacy_5g )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
VIF_ASSIGN ;
__entry - > legacy_2g = mask - > control [ IEEE80211_BAND_2GHZ ] . legacy ;
__entry - > legacy_5g = mask - > control [ IEEE80211_BAND_5GHZ ] . legacy ;
) ,
TP_printk (
LOCAL_PR_FMT VIF_PR_FMT " 2G Mask:0x%x 5G Mask:0x%x " ,
LOCAL_PR_ARG , VIF_PR_ARG , __entry - > legacy_2g , __entry - > legacy_5g
)
) ;
2011-07-05 18:35:41 +04:00
TRACE_EVENT ( drv_set_rekey_data ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ,
struct cfg80211_gtk_rekey_data * data ) ,
TP_ARGS ( local , sdata , data ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
VIF_ENTRY
__array ( u8 , kek , NL80211_KEK_LEN )
__array ( u8 , kck , NL80211_KCK_LEN )
__array ( u8 , replay_ctr , NL80211_REPLAY_CTR_LEN )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
VIF_ASSIGN ;
memcpy ( __entry - > kek , data - > kek , NL80211_KEK_LEN ) ;
memcpy ( __entry - > kck , data - > kck , NL80211_KCK_LEN ) ;
memcpy ( __entry - > replay_ctr , data - > replay_ctr ,
NL80211_REPLAY_CTR_LEN ) ;
) ,
TP_printk ( LOCAL_PR_FMT VIF_PR_FMT ,
LOCAL_PR_ARG , VIF_PR_ARG )
) ;
2011-07-08 19:46:22 +04:00
TRACE_EVENT ( drv_rssi_callback ,
TP_PROTO ( struct ieee80211_local * local ,
2013-01-20 19:32:41 +04:00
struct ieee80211_sub_if_data * sdata ,
2011-07-08 19:46:22 +04:00
enum ieee80211_rssi_event rssi_event ) ,
2013-01-20 19:32:41 +04:00
TP_ARGS ( local , sdata , rssi_event ) ,
2011-07-08 19:46:22 +04:00
TP_STRUCT__entry (
LOCAL_ENTRY
2013-01-20 19:32:41 +04:00
VIF_ENTRY
2011-07-08 19:46:22 +04:00
__field ( u32 , rssi_event )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
2013-01-20 19:32:41 +04:00
VIF_ASSIGN ;
2011-07-08 19:46:22 +04:00
__entry - > rssi_event = rssi_event ;
) ,
TP_printk (
2013-01-20 19:32:41 +04:00
LOCAL_PR_FMT VIF_PR_FMT " rssi_event:%d " ,
LOCAL_PR_ARG , VIF_PR_ARG , __entry - > rssi_event
2011-07-08 19:46:22 +04:00
)
) ;
2011-09-29 18:04:38 +04:00
DECLARE_EVENT_CLASS ( release_evt ,
2011-09-29 18:04:32 +04:00
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sta * sta ,
u16 tids , int num_frames ,
enum ieee80211_frame_release_type reason ,
bool more_data ) ,
TP_ARGS ( local , sta , tids , num_frames , reason , more_data ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
STA_ENTRY
__field ( u16 , tids )
__field ( int , num_frames )
__field ( int , reason )
__field ( bool , more_data )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
STA_ASSIGN ;
__entry - > tids = tids ;
__entry - > num_frames = num_frames ;
__entry - > reason = reason ;
__entry - > more_data = more_data ;
) ,
TP_printk (
LOCAL_PR_FMT STA_PR_FMT
" TIDs:0x%.4x frames:%d reason:%d more:%d " ,
LOCAL_PR_ARG , STA_PR_ARG , __entry - > tids , __entry - > num_frames ,
__entry - > reason , __entry - > more_data
)
) ;
2011-09-29 18:04:38 +04:00
DEFINE_EVENT ( release_evt , drv_release_buffered_frames ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sta * sta ,
u16 tids , int num_frames ,
enum ieee80211_frame_release_type reason ,
bool more_data ) ,
TP_ARGS ( local , sta , tids , num_frames , reason , more_data )
) ;
DEFINE_EVENT ( release_evt , drv_allow_buffered_frames ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sta * sta ,
u16 tids , int num_frames ,
enum ieee80211_frame_release_type reason ,
bool more_data ) ,
TP_ARGS ( local , sta , tids , num_frames , reason , more_data )
) ;
2012-06-27 15:18:36 +04:00
DEFINE_EVENT ( local_sdata_evt , drv_mgd_prepare_tx ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ) ,
TP_ARGS ( local , sdata )
) ;
2014-06-11 18:18:27 +04:00
DEFINE_EVENT ( local_sdata_evt , drv_mgd_protect_tdls_discover ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ) ,
TP_ARGS ( local , sdata )
) ;
2012-06-26 16:37:17 +04:00
DECLARE_EVENT_CLASS ( local_chanctx ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_chanctx * ctx ) ,
TP_ARGS ( local , ctx ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
CHANCTX_ENTRY
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
CHANCTX_ASSIGN ;
) ,
TP_printk (
LOCAL_PR_FMT CHANCTX_PR_FMT ,
LOCAL_PR_ARG , CHANCTX_PR_ARG
)
) ;
DEFINE_EVENT ( local_chanctx , drv_add_chanctx ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_chanctx * ctx ) ,
TP_ARGS ( local , ctx )
) ;
DEFINE_EVENT ( local_chanctx , drv_remove_chanctx ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_chanctx * ctx ) ,
TP_ARGS ( local , ctx )
) ;
TRACE_EVENT ( drv_change_chanctx ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_chanctx * ctx ,
u32 changed ) ,
TP_ARGS ( local , ctx , changed ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
CHANCTX_ENTRY
__field ( u32 , changed )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
CHANCTX_ASSIGN ;
__entry - > changed = changed ;
) ,
TP_printk (
LOCAL_PR_FMT CHANCTX_PR_FMT " changed:%#x " ,
LOCAL_PR_ARG , CHANCTX_PR_ARG , __entry - > changed
)
) ;
2014-05-23 15:33:12 +04:00
# if !defined(__TRACE_VIF_ENTRY)
# define __TRACE_VIF_ENTRY
struct trace_vif_entry {
enum nl80211_iftype vif_type ;
bool p2p ;
char vif_name [ IFNAMSIZ ] ;
} __packed ;
struct trace_chandef_entry {
u32 control_freq ;
u32 chan_width ;
u32 center_freq1 ;
u32 center_freq2 ;
} __packed ;
struct trace_switch_entry {
struct trace_vif_entry vif ;
struct trace_chandef_entry old_chandef ;
struct trace_chandef_entry new_chandef ;
} __packed ;
# define SWITCH_ENTRY_ASSIGN(to, from) local_vifs[i].to = vifs[i].from
# endif
TRACE_EVENT ( drv_switch_vif_chanctx ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_vif_chanctx_switch * vifs ,
int n_vifs , enum ieee80211_chanctx_switch_mode mode ) ,
TP_ARGS ( local , vifs , n_vifs , mode ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
__field ( int , n_vifs )
__field ( u32 , mode )
__dynamic_array ( u8 , vifs ,
sizeof ( struct trace_switch_entry ) * n_vifs )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
__entry - > n_vifs = n_vifs ;
__entry - > mode = mode ;
{
struct trace_switch_entry * local_vifs =
__get_dynamic_array ( vifs ) ;
int i ;
for ( i = 0 ; i < n_vifs ; i + + ) {
struct ieee80211_sub_if_data * sdata ;
sdata = container_of ( vifs [ i ] . vif ,
struct ieee80211_sub_if_data ,
vif ) ;
SWITCH_ENTRY_ASSIGN ( vif . vif_type , vif - > type ) ;
SWITCH_ENTRY_ASSIGN ( vif . p2p , vif - > p2p ) ;
strncpy ( local_vifs [ i ] . vif . vif_name ,
sdata - > name ,
sizeof ( local_vifs [ i ] . vif . vif_name ) ) ;
SWITCH_ENTRY_ASSIGN ( old_chandef . control_freq ,
old_ctx - > def . chan - > center_freq ) ;
SWITCH_ENTRY_ASSIGN ( old_chandef . chan_width ,
old_ctx - > def . width ) ;
SWITCH_ENTRY_ASSIGN ( old_chandef . center_freq1 ,
old_ctx - > def . center_freq1 ) ;
SWITCH_ENTRY_ASSIGN ( old_chandef . center_freq2 ,
old_ctx - > def . center_freq2 ) ;
SWITCH_ENTRY_ASSIGN ( new_chandef . control_freq ,
new_ctx - > def . chan - > center_freq ) ;
SWITCH_ENTRY_ASSIGN ( new_chandef . chan_width ,
new_ctx - > def . width ) ;
SWITCH_ENTRY_ASSIGN ( new_chandef . center_freq1 ,
new_ctx - > def . center_freq1 ) ;
SWITCH_ENTRY_ASSIGN ( new_chandef . center_freq2 ,
new_ctx - > def . center_freq2 ) ;
}
}
) ,
TP_printk (
LOCAL_PR_FMT " n_vifs:%d mode:%d " ,
LOCAL_PR_ARG , __entry - > n_vifs , __entry - > mode
)
) ;
2012-06-26 16:37:17 +04:00
DECLARE_EVENT_CLASS ( local_sdata_chanctx ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ,
struct ieee80211_chanctx * ctx ) ,
TP_ARGS ( local , sdata , ctx ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
VIF_ENTRY
CHANCTX_ENTRY
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
VIF_ASSIGN ;
CHANCTX_ASSIGN ;
) ,
TP_printk (
LOCAL_PR_FMT VIF_PR_FMT CHANCTX_PR_FMT ,
LOCAL_PR_ARG , VIF_PR_ARG , CHANCTX_PR_ARG
)
) ;
DEFINE_EVENT ( local_sdata_chanctx , drv_assign_vif_chanctx ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ,
struct ieee80211_chanctx * ctx ) ,
TP_ARGS ( local , sdata , ctx )
) ;
DEFINE_EVENT ( local_sdata_chanctx , drv_unassign_vif_chanctx ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ,
struct ieee80211_chanctx * ctx ) ,
TP_ARGS ( local , sdata , ctx )
) ;
2012-10-19 17:44:42 +04:00
TRACE_EVENT ( drv_start_ap ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ,
struct ieee80211_bss_conf * info ) ,
TP_ARGS ( local , sdata , info ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
VIF_ENTRY
__field ( u8 , dtimper )
__field ( u16 , bcnint )
__dynamic_array ( u8 , ssid , info - > ssid_len ) ;
__field ( bool , hidden_ssid ) ;
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
VIF_ASSIGN ;
__entry - > dtimper = info - > dtim_period ;
__entry - > bcnint = info - > beacon_int ;
memcpy ( __get_dynamic_array ( ssid ) , info - > ssid , info - > ssid_len ) ;
__entry - > hidden_ssid = info - > hidden_ssid ;
) ,
TP_printk (
LOCAL_PR_FMT VIF_PR_FMT ,
LOCAL_PR_ARG , VIF_PR_ARG
)
) ;
DEFINE_EVENT ( local_sdata_evt , drv_stop_ap ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ) ,
TP_ARGS ( local , sdata )
) ;
2014-11-04 12:43:54 +03:00
TRACE_EVENT ( drv_reconfig_complete ,
TP_PROTO ( struct ieee80211_local * local ,
enum ieee80211_reconfig_type reconfig_type ) ,
TP_ARGS ( local , reconfig_type ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
__field ( u8 , reconfig_type )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
__entry - > reconfig_type = reconfig_type ;
) ,
TP_printk (
LOCAL_PR_FMT " reconfig_type:%d " ,
LOCAL_PR_ARG , __entry - > reconfig_type
)
2012-11-06 22:18:13 +04:00
) ;
2013-01-14 18:14:34 +04:00
# if IS_ENABLED(CONFIG_IPV6)
DEFINE_EVENT ( local_sdata_evt , drv_ipv6_addr_change ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ) ,
TP_ARGS ( local , sdata )
) ;
# endif
2013-08-19 20:48:41 +04:00
TRACE_EVENT ( drv_join_ibss ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ,
struct ieee80211_bss_conf * info ) ,
TP_ARGS ( local , sdata , info ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
VIF_ENTRY
__field ( u8 , dtimper )
__field ( u16 , bcnint )
__dynamic_array ( u8 , ssid , info - > ssid_len ) ;
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
VIF_ASSIGN ;
__entry - > dtimper = info - > dtim_period ;
__entry - > bcnint = info - > beacon_int ;
memcpy ( __get_dynamic_array ( ssid ) , info - > ssid , info - > ssid_len ) ;
) ,
TP_printk (
LOCAL_PR_FMT VIF_PR_FMT ,
LOCAL_PR_ARG , VIF_PR_ARG
)
) ;
DEFINE_EVENT ( local_sdata_evt , drv_leave_ibss ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ) ,
TP_ARGS ( local , sdata )
) ;
2014-05-19 23:53:20 +04:00
TRACE_EVENT ( drv_get_expected_throughput ,
TP_PROTO ( struct ieee80211_sta * sta ) ,
TP_ARGS ( sta ) ,
TP_STRUCT__entry (
STA_ENTRY
) ,
TP_fast_assign (
STA_ASSIGN ;
) ,
TP_printk (
STA_PR_FMT , STA_PR_ARG
)
) ;
2010-04-07 18:48:40 +04:00
/*
* Tracing for API calls that drivers call .
*/
TRACE_EVENT ( api_start_tx_ba_session ,
TP_PROTO ( struct ieee80211_sta * sta , u16 tid ) ,
TP_ARGS ( sta , tid ) ,
TP_STRUCT__entry (
STA_ENTRY
__field ( u16 , tid )
) ,
TP_fast_assign (
STA_ASSIGN ;
__entry - > tid = tid ;
) ,
TP_printk (
STA_PR_FMT " tid:%d " ,
STA_PR_ARG , __entry - > tid
)
) ;
TRACE_EVENT ( api_start_tx_ba_cb ,
TP_PROTO ( struct ieee80211_sub_if_data * sdata , const u8 * ra , u16 tid ) ,
TP_ARGS ( sdata , ra , tid ) ,
TP_STRUCT__entry (
VIF_ENTRY
__array ( u8 , ra , ETH_ALEN )
__field ( u16 , tid )
) ,
TP_fast_assign (
VIF_ASSIGN ;
memcpy ( __entry - > ra , ra , ETH_ALEN ) ;
__entry - > tid = tid ;
) ,
TP_printk (
VIF_PR_FMT " ra:%pM tid:%d " ,
VIF_PR_ARG , __entry - > ra , __entry - > tid
)
) ;
TRACE_EVENT ( api_stop_tx_ba_session ,
2010-05-27 16:41:07 +04:00
TP_PROTO ( struct ieee80211_sta * sta , u16 tid ) ,
2010-04-07 18:48:40 +04:00
2010-05-27 16:41:07 +04:00
TP_ARGS ( sta , tid ) ,
2010-04-07 18:48:40 +04:00
TP_STRUCT__entry (
STA_ENTRY
__field ( u16 , tid )
) ,
TP_fast_assign (
STA_ASSIGN ;
__entry - > tid = tid ;
) ,
TP_printk (
2010-05-27 16:41:07 +04:00
STA_PR_FMT " tid:%d " ,
STA_PR_ARG , __entry - > tid
2010-04-07 18:48:40 +04:00
)
) ;
TRACE_EVENT ( api_stop_tx_ba_cb ,
TP_PROTO ( struct ieee80211_sub_if_data * sdata , const u8 * ra , u16 tid ) ,
TP_ARGS ( sdata , ra , tid ) ,
TP_STRUCT__entry (
VIF_ENTRY
__array ( u8 , ra , ETH_ALEN )
__field ( u16 , tid )
) ,
TP_fast_assign (
VIF_ASSIGN ;
memcpy ( __entry - > ra , ra , ETH_ALEN ) ;
__entry - > tid = tid ;
) ,
TP_printk (
VIF_PR_FMT " ra:%pM tid:%d " ,
VIF_PR_ARG , __entry - > ra , __entry - > tid
)
) ;
2011-01-26 11:22:15 +03:00
DEFINE_EVENT ( local_only_evt , api_restart_hw ,
2010-04-07 18:48:40 +04:00
TP_PROTO ( struct ieee80211_local * local ) ,
2011-01-26 11:22:15 +03:00
TP_ARGS ( local )
2010-04-07 18:48:40 +04:00
) ;
TRACE_EVENT ( api_beacon_loss ,
TP_PROTO ( struct ieee80211_sub_if_data * sdata ) ,
TP_ARGS ( sdata ) ,
TP_STRUCT__entry (
VIF_ENTRY
) ,
TP_fast_assign (
VIF_ASSIGN ;
) ,
TP_printk (
VIF_PR_FMT ,
VIF_PR_ARG
)
) ;
TRACE_EVENT ( api_connection_loss ,
TP_PROTO ( struct ieee80211_sub_if_data * sdata ) ,
TP_ARGS ( sdata ) ,
TP_STRUCT__entry (
VIF_ENTRY
) ,
TP_fast_assign (
VIF_ASSIGN ;
) ,
TP_printk (
VIF_PR_FMT ,
VIF_PR_ARG
)
) ;
TRACE_EVENT ( api_cqm_rssi_notify ,
TP_PROTO ( struct ieee80211_sub_if_data * sdata ,
enum nl80211_cqm_rssi_threshold_event rssi_event ) ,
TP_ARGS ( sdata , rssi_event ) ,
TP_STRUCT__entry (
VIF_ENTRY
__field ( u32 , rssi_event )
) ,
TP_fast_assign (
VIF_ASSIGN ;
__entry - > rssi_event = rssi_event ;
) ,
TP_printk (
VIF_PR_FMT " event:%d " ,
VIF_PR_ARG , __entry - > rssi_event
)
) ;
2014-11-26 14:42:02 +03:00
DEFINE_EVENT ( local_sdata_evt , api_cqm_beacon_loss_notify ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ) ,
TP_ARGS ( local , sdata )
) ;
2010-04-07 18:48:40 +04:00
TRACE_EVENT ( api_scan_completed ,
TP_PROTO ( struct ieee80211_local * local , bool aborted ) ,
TP_ARGS ( local , aborted ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
__field ( bool , aborted )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
__entry - > aborted = aborted ;
) ,
TP_printk (
LOCAL_PR_FMT " aborted:%d " ,
LOCAL_PR_ARG , __entry - > aborted
)
) ;
2011-05-11 18:09:36 +04:00
TRACE_EVENT ( api_sched_scan_results ,
TP_PROTO ( struct ieee80211_local * local ) ,
TP_ARGS ( local ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
) ,
TP_printk (
LOCAL_PR_FMT , LOCAL_PR_ARG
)
) ;
TRACE_EVENT ( api_sched_scan_stopped ,
TP_PROTO ( struct ieee80211_local * local ) ,
TP_ARGS ( local ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
) ,
TP_printk (
LOCAL_PR_FMT , LOCAL_PR_ARG
)
) ;
2010-04-07 18:48:40 +04:00
TRACE_EVENT ( api_sta_block_awake ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sta * sta , bool block ) ,
TP_ARGS ( local , sta , block ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
STA_ENTRY
__field ( bool , block )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
STA_ASSIGN ;
__entry - > block = block ;
) ,
TP_printk (
LOCAL_PR_FMT STA_PR_FMT " block:%d " ,
2013-02-15 23:15:48 +04:00
LOCAL_PR_ARG , STA_PR_ARG , __entry - > block
2010-04-07 18:48:40 +04:00
)
) ;
2010-05-11 18:20:57 +04:00
TRACE_EVENT ( api_chswitch_done ,
TP_PROTO ( struct ieee80211_sub_if_data * sdata , bool success ) ,
TP_ARGS ( sdata , success ) ,
TP_STRUCT__entry (
VIF_ENTRY
__field ( bool , success )
) ,
TP_fast_assign (
VIF_ASSIGN ;
__entry - > success = success ;
) ,
TP_printk (
VIF_PR_FMT " success=%d " ,
VIF_PR_ARG , __entry - > success
)
) ;
2011-01-26 11:22:15 +03:00
DEFINE_EVENT ( local_only_evt , api_ready_on_channel ,
2010-12-18 19:20:47 +03:00
TP_PROTO ( struct ieee80211_local * local ) ,
2011-01-26 11:22:15 +03:00
TP_ARGS ( local )
2010-12-18 19:20:47 +03:00
) ;
2011-01-26 11:22:15 +03:00
DEFINE_EVENT ( local_only_evt , api_remain_on_channel_expired ,
2010-12-18 19:20:47 +03:00
TP_PROTO ( struct ieee80211_local * local ) ,
2011-01-26 11:22:15 +03:00
TP_ARGS ( local )
2010-12-18 19:20:47 +03:00
) ;
2011-07-05 18:35:41 +04:00
TRACE_EVENT ( api_gtk_rekey_notify ,
TP_PROTO ( struct ieee80211_sub_if_data * sdata ,
const u8 * bssid , const u8 * replay_ctr ) ,
TP_ARGS ( sdata , bssid , replay_ctr ) ,
TP_STRUCT__entry (
VIF_ENTRY
__array ( u8 , bssid , ETH_ALEN )
__array ( u8 , replay_ctr , NL80211_REPLAY_CTR_LEN )
) ,
TP_fast_assign (
VIF_ASSIGN ;
memcpy ( __entry - > bssid , bssid , ETH_ALEN ) ;
memcpy ( __entry - > replay_ctr , replay_ctr , NL80211_REPLAY_CTR_LEN ) ;
) ,
TP_printk ( VIF_PR_FMT , VIF_PR_ARG )
) ;
2011-07-08 19:46:22 +04:00
TRACE_EVENT ( api_enable_rssi_reports ,
TP_PROTO ( struct ieee80211_sub_if_data * sdata ,
int rssi_min_thold , int rssi_max_thold ) ,
TP_ARGS ( sdata , rssi_min_thold , rssi_max_thold ) ,
TP_STRUCT__entry (
VIF_ENTRY
__field ( int , rssi_min_thold )
__field ( int , rssi_max_thold )
) ,
TP_fast_assign (
VIF_ASSIGN ;
__entry - > rssi_min_thold = rssi_min_thold ;
__entry - > rssi_max_thold = rssi_max_thold ;
) ,
TP_printk (
VIF_PR_FMT " rssi_min_thold =%d, rssi_max_thold = %d " ,
VIF_PR_ARG , __entry - > rssi_min_thold , __entry - > rssi_max_thold
)
) ;
2011-09-29 18:04:39 +04:00
TRACE_EVENT ( api_eosp ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sta * sta ) ,
TP_ARGS ( local , sta ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
STA_ENTRY
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
STA_ASSIGN ;
) ,
TP_printk (
LOCAL_PR_FMT STA_PR_FMT ,
2013-02-15 23:15:48 +04:00
LOCAL_PR_ARG , STA_PR_ARG
2011-09-29 18:04:39 +04:00
)
) ;
2013-12-19 13:47:48 +04:00
TRACE_EVENT ( api_sta_set_buffered ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sta * sta ,
u8 tid , bool buffered ) ,
TP_ARGS ( local , sta , tid , buffered ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
STA_ENTRY
__field ( u8 , tid )
__field ( bool , buffered )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
STA_ASSIGN ;
__entry - > tid = tid ;
__entry - > buffered = buffered ;
) ,
TP_printk (
LOCAL_PR_FMT STA_PR_FMT " tid:%d buffered:%d " ,
LOCAL_PR_ARG , STA_PR_ARG , __entry - > tid , __entry - > buffered
)
) ;
2010-04-07 18:48:40 +04:00
/*
* Tracing for internal functions
* ( which may also be called in response to driver calls )
*/
TRACE_EVENT ( wake_queue ,
TP_PROTO ( struct ieee80211_local * local , u16 queue ,
enum queue_stop_reason reason ) ,
TP_ARGS ( local , queue , reason ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
__field ( u16 , queue )
__field ( u32 , reason )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
__entry - > queue = queue ;
__entry - > reason = reason ;
) ,
TP_printk (
LOCAL_PR_FMT " queue:%d, reason:%d " ,
LOCAL_PR_ARG , __entry - > queue , __entry - > reason
)
) ;
TRACE_EVENT ( stop_queue ,
TP_PROTO ( struct ieee80211_local * local , u16 queue ,
enum queue_stop_reason reason ) ,
TP_ARGS ( local , queue , reason ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
__field ( u16 , queue )
__field ( u32 , reason )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
__entry - > queue = queue ;
__entry - > reason = reason ;
) ,
TP_printk (
LOCAL_PR_FMT " queue:%d, reason:%d " ,
LOCAL_PR_ARG , __entry - > queue , __entry - > reason
)
) ;
2012-06-22 15:36:25 +04:00
2012-05-30 12:36:39 +04:00
TRACE_EVENT ( drv_set_default_unicast_key ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ,
int key_idx ) ,
TP_ARGS ( local , sdata , key_idx ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
VIF_ENTRY
__field ( int , key_idx )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
VIF_ASSIGN ;
__entry - > key_idx = key_idx ;
) ,
TP_printk ( LOCAL_PR_FMT VIF_PR_FMT " key_idx:%d " ,
LOCAL_PR_ARG , VIF_PR_ARG , __entry - > key_idx )
) ;
2013-02-08 21:16:20 +04:00
TRACE_EVENT ( api_radar_detected ,
TP_PROTO ( struct ieee80211_local * local ) ,
TP_ARGS ( local ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
) ,
TP_printk (
LOCAL_PR_FMT " radar detected " ,
LOCAL_PR_ARG
)
) ;
2013-07-11 18:09:06 +04:00
TRACE_EVENT ( drv_channel_switch_beacon ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ,
struct cfg80211_chan_def * chandef ) ,
TP_ARGS ( local , sdata , chandef ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
VIF_ENTRY
CHANDEF_ENTRY
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
VIF_ASSIGN ;
CHANDEF_ASSIGN ( chandef ) ;
) ,
TP_printk (
LOCAL_PR_FMT VIF_PR_FMT " channel switch to " CHANDEF_PR_FMT ,
LOCAL_PR_ARG , VIF_PR_ARG , CHANDEF_PR_ARG
)
) ;
2014-10-08 10:48:37 +04:00
TRACE_EVENT ( drv_pre_channel_switch ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ,
struct ieee80211_channel_switch * ch_switch ) ,
TP_ARGS ( local , sdata , ch_switch ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
VIF_ENTRY
CHANDEF_ENTRY
__field ( u64 , timestamp )
2014-11-07 16:28:34 +03:00
__field ( u32 , device_timestamp )
2014-10-08 10:48:37 +04:00
__field ( bool , block_tx )
__field ( u8 , count )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
VIF_ASSIGN ;
CHANDEF_ASSIGN ( & ch_switch - > chandef )
__entry - > timestamp = ch_switch - > timestamp ;
2014-11-07 16:28:34 +03:00
__entry - > device_timestamp = ch_switch - > device_timestamp ;
2014-10-08 10:48:37 +04:00
__entry - > block_tx = ch_switch - > block_tx ;
__entry - > count = ch_switch - > count ;
) ,
TP_printk (
LOCAL_PR_FMT VIF_PR_FMT " prepare channel switch to "
CHANDEF_PR_FMT " count:%d block_tx:%d timestamp:%llu " ,
LOCAL_PR_ARG , VIF_PR_ARG , CHANDEF_PR_ARG , __entry - > count ,
__entry - > block_tx , __entry - > timestamp
)
) ;
2014-10-08 10:48:38 +04:00
DEFINE_EVENT ( local_sdata_evt , drv_post_channel_switch ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ) ,
TP_ARGS ( local , sdata )
) ;
2014-10-26 01:32:53 +03:00
TRACE_EVENT ( drv_get_txpower ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ,
int dbm , int ret ) ,
TP_ARGS ( local , sdata , dbm , ret ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
VIF_ENTRY
__field ( int , dbm )
__field ( int , ret )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
VIF_ASSIGN ;
__entry - > dbm = dbm ;
__entry - > ret = ret ;
) ,
TP_printk (
LOCAL_PR_FMT VIF_PR_FMT " dbm:%d ret:%d " ,
LOCAL_PR_ARG , VIF_PR_ARG , __entry - > dbm , __entry - > ret
)
) ;
2014-11-09 19:50:19 +03:00
TRACE_EVENT ( drv_tdls_channel_switch ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ,
struct ieee80211_sta * sta , u8 oper_class ,
struct cfg80211_chan_def * chandef ) ,
TP_ARGS ( local , sdata , sta , oper_class , chandef ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
VIF_ENTRY
STA_ENTRY
__field ( u8 , oper_class )
CHANDEF_ENTRY
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
VIF_ASSIGN ;
STA_ASSIGN ;
__entry - > oper_class = oper_class ;
CHANDEF_ASSIGN ( chandef )
) ,
TP_printk (
LOCAL_PR_FMT VIF_PR_FMT " tdls channel switch to "
CHANDEF_PR_FMT " oper_class:%d " STA_PR_FMT ,
LOCAL_PR_ARG , VIF_PR_ARG , CHANDEF_PR_ARG , __entry - > oper_class ,
STA_PR_ARG
)
) ;
TRACE_EVENT ( drv_tdls_cancel_channel_switch ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ,
struct ieee80211_sta * sta ) ,
TP_ARGS ( local , sdata , sta ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
VIF_ENTRY
STA_ENTRY
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
VIF_ASSIGN ;
STA_ASSIGN ;
) ,
TP_printk (
LOCAL_PR_FMT VIF_PR_FMT
" tdls cancel channel switch with " STA_PR_FMT ,
LOCAL_PR_ARG , VIF_PR_ARG , STA_PR_ARG
)
) ;
2013-07-11 18:09:06 +04:00
2014-11-09 19:50:20 +03:00
TRACE_EVENT ( drv_tdls_recv_channel_switch ,
TP_PROTO ( struct ieee80211_local * local ,
struct ieee80211_sub_if_data * sdata ,
struct ieee80211_tdls_ch_sw_params * params ) ,
TP_ARGS ( local , sdata , params ) ,
TP_STRUCT__entry (
LOCAL_ENTRY
VIF_ENTRY
__field ( u8 , action_code )
STA_ENTRY
CHANDEF_ENTRY
__field ( u32 , status )
__field ( bool , peer_initiator )
__field ( u32 , timestamp )
__field ( u16 , switch_time )
__field ( u16 , switch_timeout )
) ,
TP_fast_assign (
LOCAL_ASSIGN ;
VIF_ASSIGN ;
STA_NAMED_ASSIGN ( params - > sta ) ;
CHANDEF_ASSIGN ( params - > chandef )
__entry - > peer_initiator = params - > sta - > tdls_initiator ;
__entry - > action_code = params - > action_code ;
__entry - > status = params - > status ;
__entry - > timestamp = params - > timestamp ;
__entry - > switch_time = params - > switch_time ;
__entry - > switch_timeout = params - > switch_timeout ;
) ,
TP_printk (
LOCAL_PR_FMT VIF_PR_FMT " received tdls channel switch packet "
" action:%d status:%d time:%d switch time:%d switch "
" timeout:%d initiator: %d chan: " CHANDEF_PR_FMT STA_PR_FMT ,
LOCAL_PR_ARG , VIF_PR_ARG , __entry - > action_code , __entry - > status ,
__entry - > timestamp , __entry - > switch_time ,
__entry - > switch_timeout , __entry - > peer_initiator ,
CHANDEF_PR_ARG , STA_PR_ARG
)
) ;
2012-06-22 15:36:25 +04:00
# ifdef CONFIG_MAC80211_MESSAGE_TRACING
# undef TRACE_SYSTEM
# define TRACE_SYSTEM mac80211_msg
# define MAX_MSG_LEN 100
DECLARE_EVENT_CLASS ( mac80211_msg_event ,
TP_PROTO ( struct va_format * vaf ) ,
TP_ARGS ( vaf ) ,
TP_STRUCT__entry (
__dynamic_array ( char , msg , MAX_MSG_LEN )
) ,
TP_fast_assign (
WARN_ON_ONCE ( vsnprintf ( __get_dynamic_array ( msg ) ,
MAX_MSG_LEN , vaf - > fmt ,
* vaf - > va ) > = MAX_MSG_LEN ) ;
) ,
TP_printk ( " %s " , __get_str ( msg ) )
) ;
DEFINE_EVENT ( mac80211_msg_event , mac80211_info ,
TP_PROTO ( struct va_format * vaf ) ,
TP_ARGS ( vaf )
) ;
DEFINE_EVENT ( mac80211_msg_event , mac80211_dbg ,
TP_PROTO ( struct va_format * vaf ) ,
TP_ARGS ( vaf )
) ;
DEFINE_EVENT ( mac80211_msg_event , mac80211_err ,
TP_PROTO ( struct va_format * vaf ) ,
TP_ARGS ( vaf )
) ;
# endif
2009-07-20 01:21:07 +04:00
# endif /* !__MAC80211_DRIVER_TRACE || TRACE_HEADER_MULTI_READ */
2009-07-07 15:46:22 +04:00
# undef TRACE_INCLUDE_PATH
# define TRACE_INCLUDE_PATH .
# undef TRACE_INCLUDE_FILE
2012-06-22 14:55:52 +04:00
# define TRACE_INCLUDE_FILE trace
2009-07-07 15:46:22 +04:00
# include <trace/define_trace.h>