aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/trace.h
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211/trace.h')
-rw-r--r--net/mac80211/trace.h97
1 files changed, 61 insertions, 36 deletions
diff --git a/net/mac80211/trace.h b/net/mac80211/trace.h
index 3d7cd2a0582f..c215fafd7a2f 100644
--- a/net/mac80211/trace.h
+++ b/net/mac80211/trace.h
@@ -28,27 +28,27 @@
28#define VIF_PR_FMT " vif:%s(%d%s)" 28#define VIF_PR_FMT " vif:%s(%d%s)"
29#define VIF_PR_ARG __get_str(vif_name), __entry->vif_type, __entry->p2p ? "/p2p" : "" 29#define VIF_PR_ARG __get_str(vif_name), __entry->vif_type, __entry->p2p ? "/p2p" : ""
30 30
31#define CHANDEF_ENTRY __field(u32, control_freq) \ 31#define CHANDEF_ENTRY __field(u32, control_freq) \
32 __field(u32, chan_width) \ 32 __field(u32, chan_width) \
33 __field(u32, center_freq1) \ 33 __field(u32, center_freq1) \
34 __field(u32, center_freq2) 34 __field(u32, center_freq2)
35#define CHANDEF_ASSIGN(c) \ 35#define CHANDEF_ASSIGN(c) \
36 __entry->control_freq = (c)->chan->center_freq; \ 36 __entry->control_freq = (c)->chan ? (c)->chan->center_freq : 0; \
37 __entry->chan_width = (c)->width; \ 37 __entry->chan_width = (c)->width; \
38 __entry->center_freq1 = (c)->center_freq1; \ 38 __entry->center_freq1 = (c)->center_freq1; \
39 __entry->center_freq2 = (c)->center_freq2; 39 __entry->center_freq2 = (c)->center_freq2;
40#define CHANDEF_PR_FMT " control:%d MHz width:%d center: %d/%d MHz" 40#define CHANDEF_PR_FMT " control:%d MHz width:%d center: %d/%d MHz"
41#define CHANDEF_PR_ARG __entry->control_freq, __entry->chan_width, \ 41#define CHANDEF_PR_ARG __entry->control_freq, __entry->chan_width, \
42 __entry->center_freq1, __entry->center_freq2 42 __entry->center_freq1, __entry->center_freq2
43 43
44#define CHANCTX_ENTRY CHANDEF_ENTRY \ 44#define CHANCTX_ENTRY CHANDEF_ENTRY \
45 __field(u8, rx_chains_static) \ 45 __field(u8, rx_chains_static) \
46 __field(u8, rx_chains_dynamic) 46 __field(u8, rx_chains_dynamic)
47#define CHANCTX_ASSIGN CHANDEF_ASSIGN(&ctx->conf.def) \ 47#define CHANCTX_ASSIGN CHANDEF_ASSIGN(&ctx->conf.def) \
48 __entry->rx_chains_static = ctx->conf.rx_chains_static; \ 48 __entry->rx_chains_static = ctx->conf.rx_chains_static; \
49 __entry->rx_chains_dynamic = ctx->conf.rx_chains_dynamic 49 __entry->rx_chains_dynamic = ctx->conf.rx_chains_dynamic
50#define CHANCTX_PR_FMT CHANDEF_PR_FMT " chains:%d/%d" 50#define CHANCTX_PR_FMT CHANDEF_PR_FMT " chains:%d/%d"
51#define CHANCTX_PR_ARG CHANDEF_PR_ARG, \ 51#define CHANCTX_PR_ARG CHANDEF_PR_ARG, \
52 __entry->rx_chains_static, __entry->rx_chains_dynamic 52 __entry->rx_chains_static, __entry->rx_chains_dynamic
53 53
54 54
@@ -286,8 +286,7 @@ TRACE_EVENT(drv_config,
286 __field(u16, listen_interval) 286 __field(u16, listen_interval)
287 __field(u8, long_frame_max_tx_count) 287 __field(u8, long_frame_max_tx_count)
288 __field(u8, short_frame_max_tx_count) 288 __field(u8, short_frame_max_tx_count)
289 __field(int, center_freq) 289 CHANDEF_ENTRY
290 __field(int, channel_type)
291 __field(int, smps) 290 __field(int, smps)
292 ), 291 ),
293 292
@@ -303,15 +302,13 @@ TRACE_EVENT(drv_config,
303 local->hw.conf.long_frame_max_tx_count; 302 local->hw.conf.long_frame_max_tx_count;
304 __entry->short_frame_max_tx_count = 303 __entry->short_frame_max_tx_count =
305 local->hw.conf.short_frame_max_tx_count; 304 local->hw.conf.short_frame_max_tx_count;
306 __entry->center_freq = local->hw.conf.channel ? 305 CHANDEF_ASSIGN(&local->hw.conf.chandef)
307 local->hw.conf.channel->center_freq : 0;
308 __entry->channel_type = local->hw.conf.channel_type;
309 __entry->smps = local->hw.conf.smps_mode; 306 __entry->smps = local->hw.conf.smps_mode;
310 ), 307 ),
311 308
312 TP_printk( 309 TP_printk(
313 LOCAL_PR_FMT " ch:%#x freq:%d", 310 LOCAL_PR_FMT " ch:%#x" CHANDEF_PR_FMT,
314 LOCAL_PR_ARG, __entry->changed, __entry->center_freq 311 LOCAL_PR_ARG, __entry->changed, CHANDEF_PR_ARG
315 ) 312 )
316); 313);
317 314
@@ -359,8 +356,7 @@ TRACE_EVENT(drv_bss_info_changed,
359 __dynamic_array(u8, ssid, info->ssid_len); 356 __dynamic_array(u8, ssid, info->ssid_len);
360 __field(bool, hidden_ssid); 357 __field(bool, hidden_ssid);
361 __field(int, txpower) 358 __field(int, txpower)
362 __field(u8, p2p_ctwindow) 359 __field(u8, p2p_oppps_ctwindow)
363 __field(bool, p2p_oppps)
364 ), 360 ),
365 361
366 TP_fast_assign( 362 TP_fast_assign(
@@ -400,8 +396,7 @@ TRACE_EVENT(drv_bss_info_changed,
400 memcpy(__get_dynamic_array(ssid), info->ssid, info->ssid_len); 396 memcpy(__get_dynamic_array(ssid), info->ssid, info->ssid_len);
401 __entry->hidden_ssid = info->hidden_ssid; 397 __entry->hidden_ssid = info->hidden_ssid;
402 __entry->txpower = info->txpower; 398 __entry->txpower = info->txpower;
403 __entry->p2p_ctwindow = info->p2p_ctwindow; 399 __entry->p2p_oppps_ctwindow = info->p2p_noa_attr.oppps_ctwindow;
404 __entry->p2p_oppps = info->p2p_oppps;
405 ), 400 ),
406 401
407 TP_printk( 402 TP_printk(
@@ -431,6 +426,30 @@ TRACE_EVENT(drv_prepare_multicast,
431 ) 426 )
432); 427);
433 428
429TRACE_EVENT(drv_set_multicast_list,
430 TP_PROTO(struct ieee80211_local *local,
431 struct ieee80211_sub_if_data *sdata, int mc_count),
432
433 TP_ARGS(local, sdata, mc_count),
434
435 TP_STRUCT__entry(
436 LOCAL_ENTRY
437 __field(bool, allmulti)
438 __field(int, mc_count)
439 ),
440
441 TP_fast_assign(
442 LOCAL_ASSIGN;
443 __entry->allmulti = sdata->flags & IEEE80211_SDATA_ALLMULTI;
444 __entry->mc_count = mc_count;
445 ),
446
447 TP_printk(
448 LOCAL_PR_FMT " configure mc filter, count=%d, allmulti=%d",
449 LOCAL_PR_ARG, __entry->mc_count, __entry->allmulti
450 )
451);
452
434TRACE_EVENT(drv_configure_filter, 453TRACE_EVENT(drv_configure_filter,
435 TP_PROTO(struct ieee80211_local *local, 454 TP_PROTO(struct ieee80211_local *local,
436 unsigned int changed_flags, 455 unsigned int changed_flags,
@@ -940,23 +959,26 @@ TRACE_EVENT(drv_get_survey,
940); 959);
941 960
942TRACE_EVENT(drv_flush, 961TRACE_EVENT(drv_flush,
943 TP_PROTO(struct ieee80211_local *local, bool drop), 962 TP_PROTO(struct ieee80211_local *local,
963 u32 queues, bool drop),
944 964
945 TP_ARGS(local, drop), 965 TP_ARGS(local, queues, drop),
946 966
947 TP_STRUCT__entry( 967 TP_STRUCT__entry(
948 LOCAL_ENTRY 968 LOCAL_ENTRY
949 __field(bool, drop) 969 __field(bool, drop)
970 __field(u32, queues)
950 ), 971 ),
951 972
952 TP_fast_assign( 973 TP_fast_assign(
953 LOCAL_ASSIGN; 974 LOCAL_ASSIGN;
954 __entry->drop = drop; 975 __entry->drop = drop;
976 __entry->queues = queues;
955 ), 977 ),
956 978
957 TP_printk( 979 TP_printk(
958 LOCAL_PR_FMT " drop:%d", 980 LOCAL_PR_FMT " queues:0x%x drop:%d",
959 LOCAL_PR_ARG, __entry->drop 981 LOCAL_PR_ARG, __entry->queues, __entry->drop
960 ) 982 )
961); 983);
962 984
@@ -968,23 +990,23 @@ TRACE_EVENT(drv_channel_switch,
968 990
969 TP_STRUCT__entry( 991 TP_STRUCT__entry(
970 LOCAL_ENTRY 992 LOCAL_ENTRY
993 CHANDEF_ENTRY
971 __field(u64, timestamp) 994 __field(u64, timestamp)
972 __field(bool, block_tx) 995 __field(bool, block_tx)
973 __field(u16, freq)
974 __field(u8, count) 996 __field(u8, count)
975 ), 997 ),
976 998
977 TP_fast_assign( 999 TP_fast_assign(
978 LOCAL_ASSIGN; 1000 LOCAL_ASSIGN;
1001 CHANDEF_ASSIGN(&ch_switch->chandef)
979 __entry->timestamp = ch_switch->timestamp; 1002 __entry->timestamp = ch_switch->timestamp;
980 __entry->block_tx = ch_switch->block_tx; 1003 __entry->block_tx = ch_switch->block_tx;
981 __entry->freq = ch_switch->channel->center_freq;
982 __entry->count = ch_switch->count; 1004 __entry->count = ch_switch->count;
983 ), 1005 ),
984 1006
985 TP_printk( 1007 TP_printk(
986 LOCAL_PR_FMT " new freq:%u count:%d", 1008 LOCAL_PR_FMT " new " CHANDEF_PR_FMT " count:%d",
987 LOCAL_PR_ARG, __entry->freq, __entry->count 1009 LOCAL_PR_ARG, CHANDEF_PR_ARG, __entry->count
988 ) 1010 )
989); 1011);
990 1012
@@ -1042,15 +1064,17 @@ TRACE_EVENT(drv_remain_on_channel,
1042 TP_PROTO(struct ieee80211_local *local, 1064 TP_PROTO(struct ieee80211_local *local,
1043 struct ieee80211_sub_if_data *sdata, 1065 struct ieee80211_sub_if_data *sdata,
1044 struct ieee80211_channel *chan, 1066 struct ieee80211_channel *chan,
1045 unsigned int duration), 1067 unsigned int duration,
1068 enum ieee80211_roc_type type),
1046 1069
1047 TP_ARGS(local, sdata, chan, duration), 1070 TP_ARGS(local, sdata, chan, duration, type),
1048 1071
1049 TP_STRUCT__entry( 1072 TP_STRUCT__entry(
1050 LOCAL_ENTRY 1073 LOCAL_ENTRY
1051 VIF_ENTRY 1074 VIF_ENTRY
1052 __field(int, center_freq) 1075 __field(int, center_freq)
1053 __field(unsigned int, duration) 1076 __field(unsigned int, duration)
1077 __field(u32, type)
1054 ), 1078 ),
1055 1079
1056 TP_fast_assign( 1080 TP_fast_assign(
@@ -1058,12 +1082,13 @@ TRACE_EVENT(drv_remain_on_channel,
1058 VIF_ASSIGN; 1082 VIF_ASSIGN;
1059 __entry->center_freq = chan->center_freq; 1083 __entry->center_freq = chan->center_freq;
1060 __entry->duration = duration; 1084 __entry->duration = duration;
1085 __entry->type = type;
1061 ), 1086 ),
1062 1087
1063 TP_printk( 1088 TP_printk(
1064 LOCAL_PR_FMT VIF_PR_FMT " freq:%dMHz duration:%dms", 1089 LOCAL_PR_FMT VIF_PR_FMT " freq:%dMHz duration:%dms type=%d",
1065 LOCAL_PR_ARG, VIF_PR_ARG, 1090 LOCAL_PR_ARG, VIF_PR_ARG,
1066 __entry->center_freq, __entry->duration 1091 __entry->center_freq, __entry->duration, __entry->type
1067 ) 1092 )
1068); 1093);
1069 1094