diff options
Diffstat (limited to 'net/mac80211/trace.h')
-rw-r--r-- | net/mac80211/trace.h | 97 |
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 | ||
429 | TRACE_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 | |||
434 | TRACE_EVENT(drv_configure_filter, | 453 | TRACE_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 | ||
942 | TRACE_EVENT(drv_flush, | 961 | TRACE_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 | ||