aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/driver-trace.h
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211/driver-trace.h')
-rw-r--r--net/mac80211/driver-trace.h207
1 files changed, 155 insertions, 52 deletions
diff --git a/net/mac80211/driver-trace.h b/net/mac80211/driver-trace.h
index 37b9051afcf3..41baf730a5c7 100644
--- a/net/mac80211/driver-trace.h
+++ b/net/mac80211/driver-trace.h
@@ -25,10 +25,12 @@ static inline void trace_ ## name(proto) {}
25#define STA_PR_FMT " sta:%pM" 25#define STA_PR_FMT " sta:%pM"
26#define STA_PR_ARG __entry->sta_addr 26#define STA_PR_ARG __entry->sta_addr
27 27
28#define VIF_ENTRY __field(enum nl80211_iftype, vif_type) __field(void *, vif) 28#define VIF_ENTRY __field(enum nl80211_iftype, vif_type) __field(void *, sdata) \
29#define VIF_ASSIGN __entry->vif_type = vif ? vif->type : 0; __entry->vif = vif 29 __string(vif_name, sdata->dev ? sdata->dev->name : "<nodev>")
30#define VIF_PR_FMT " vif:%p(%d)" 30#define VIF_ASSIGN __entry->vif_type = sdata->vif.type; __entry->sdata = sdata; \
31#define VIF_PR_ARG __entry->vif, __entry->vif_type 31 __assign_str(vif_name, sdata->dev ? sdata->dev->name : "<nodev>")
32#define VIF_PR_FMT " vif:%s(%d)"
33#define VIF_PR_ARG __get_str(vif_name), __entry->vif_type
32 34
33TRACE_EVENT(drv_start, 35TRACE_EVENT(drv_start,
34 TP_PROTO(struct ieee80211_local *local, int ret), 36 TP_PROTO(struct ieee80211_local *local, int ret),
@@ -70,11 +72,10 @@ TRACE_EVENT(drv_stop,
70 72
71TRACE_EVENT(drv_add_interface, 73TRACE_EVENT(drv_add_interface,
72 TP_PROTO(struct ieee80211_local *local, 74 TP_PROTO(struct ieee80211_local *local,
73 const u8 *addr, 75 struct ieee80211_sub_if_data *sdata,
74 struct ieee80211_vif *vif,
75 int ret), 76 int ret),
76 77
77 TP_ARGS(local, addr, vif, ret), 78 TP_ARGS(local, sdata, ret),
78 79
79 TP_STRUCT__entry( 80 TP_STRUCT__entry(
80 LOCAL_ENTRY 81 LOCAL_ENTRY
@@ -86,7 +87,7 @@ TRACE_EVENT(drv_add_interface,
86 TP_fast_assign( 87 TP_fast_assign(
87 LOCAL_ASSIGN; 88 LOCAL_ASSIGN;
88 VIF_ASSIGN; 89 VIF_ASSIGN;
89 memcpy(__entry->addr, addr, 6); 90 memcpy(__entry->addr, sdata->vif.addr, 6);
90 __entry->ret = ret; 91 __entry->ret = ret;
91 ), 92 ),
92 93
@@ -97,10 +98,9 @@ TRACE_EVENT(drv_add_interface,
97); 98);
98 99
99TRACE_EVENT(drv_remove_interface, 100TRACE_EVENT(drv_remove_interface,
100 TP_PROTO(struct ieee80211_local *local, 101 TP_PROTO(struct ieee80211_local *local, struct ieee80211_sub_if_data *sdata),
101 const u8 *addr, struct ieee80211_vif *vif),
102 102
103 TP_ARGS(local, addr, vif), 103 TP_ARGS(local, sdata),
104 104
105 TP_STRUCT__entry( 105 TP_STRUCT__entry(
106 LOCAL_ENTRY 106 LOCAL_ENTRY
@@ -111,7 +111,7 @@ TRACE_EVENT(drv_remove_interface,
111 TP_fast_assign( 111 TP_fast_assign(
112 LOCAL_ASSIGN; 112 LOCAL_ASSIGN;
113 VIF_ASSIGN; 113 VIF_ASSIGN;
114 memcpy(__entry->addr, addr, 6); 114 memcpy(__entry->addr, sdata->vif.addr, 6);
115 ), 115 ),
116 116
117 TP_printk( 117 TP_printk(
@@ -131,27 +131,47 @@ TRACE_EVENT(drv_config,
131 LOCAL_ENTRY 131 LOCAL_ENTRY
132 __field(u32, changed) 132 __field(u32, changed)
133 __field(int, ret) 133 __field(int, ret)
134 __field(u32, flags)
135 __field(int, power_level)
136 __field(int, dynamic_ps_timeout)
137 __field(int, max_sleep_period)
138 __field(u16, listen_interval)
139 __field(u8, long_frame_max_tx_count)
140 __field(u8, short_frame_max_tx_count)
141 __field(int, center_freq)
142 __field(int, channel_type)
143 __field(int, smps)
134 ), 144 ),
135 145
136 TP_fast_assign( 146 TP_fast_assign(
137 LOCAL_ASSIGN; 147 LOCAL_ASSIGN;
138 __entry->changed = changed; 148 __entry->changed = changed;
139 __entry->ret = ret; 149 __entry->ret = ret;
150 __entry->flags = local->hw.conf.flags;
151 __entry->power_level = local->hw.conf.power_level;
152 __entry->dynamic_ps_timeout = local->hw.conf.dynamic_ps_timeout;
153 __entry->max_sleep_period = local->hw.conf.max_sleep_period;
154 __entry->listen_interval = local->hw.conf.listen_interval;
155 __entry->long_frame_max_tx_count = local->hw.conf.long_frame_max_tx_count;
156 __entry->short_frame_max_tx_count = local->hw.conf.short_frame_max_tx_count;
157 __entry->center_freq = local->hw.conf.channel->center_freq;
158 __entry->channel_type = local->hw.conf.channel_type;
159 __entry->smps = local->hw.conf.smps_mode;
140 ), 160 ),
141 161
142 TP_printk( 162 TP_printk(
143 LOCAL_PR_FMT " ch:%#x ret:%d", 163 LOCAL_PR_FMT " ch:%#x freq:%d ret:%d",
144 LOCAL_PR_ARG, __entry->changed, __entry->ret 164 LOCAL_PR_ARG, __entry->changed, __entry->center_freq, __entry->ret
145 ) 165 )
146); 166);
147 167
148TRACE_EVENT(drv_bss_info_changed, 168TRACE_EVENT(drv_bss_info_changed,
149 TP_PROTO(struct ieee80211_local *local, 169 TP_PROTO(struct ieee80211_local *local,
150 struct ieee80211_vif *vif, 170 struct ieee80211_sub_if_data *sdata,
151 struct ieee80211_bss_conf *info, 171 struct ieee80211_bss_conf *info,
152 u32 changed), 172 u32 changed),
153 173
154 TP_ARGS(local, vif, info, changed), 174 TP_ARGS(local, sdata, info, changed),
155 175
156 TP_STRUCT__entry( 176 TP_STRUCT__entry(
157 LOCAL_ENTRY 177 LOCAL_ENTRY
@@ -167,6 +187,8 @@ TRACE_EVENT(drv_bss_info_changed,
167 __field(u64, timestamp) 187 __field(u64, timestamp)
168 __field(u32, basic_rates) 188 __field(u32, basic_rates)
169 __field(u32, changed) 189 __field(u32, changed)
190 __field(bool, enable_beacon)
191 __field(u16, ht_operation_mode)
170 ), 192 ),
171 193
172 TP_fast_assign( 194 TP_fast_assign(
@@ -183,6 +205,8 @@ TRACE_EVENT(drv_bss_info_changed,
183 __entry->assoc_cap = info->assoc_capability; 205 __entry->assoc_cap = info->assoc_capability;
184 __entry->timestamp = info->timestamp; 206 __entry->timestamp = info->timestamp;
185 __entry->basic_rates = info->basic_rates; 207 __entry->basic_rates = info->basic_rates;
208 __entry->enable_beacon = info->enable_beacon;
209 __entry->ht_operation_mode = info->ht_operation_mode;
186 ), 210 ),
187 211
188 TP_printk( 212 TP_printk(
@@ -271,11 +295,11 @@ TRACE_EVENT(drv_set_tim,
271 295
272TRACE_EVENT(drv_set_key, 296TRACE_EVENT(drv_set_key,
273 TP_PROTO(struct ieee80211_local *local, 297 TP_PROTO(struct ieee80211_local *local,
274 enum set_key_cmd cmd, struct ieee80211_vif *vif, 298 enum set_key_cmd cmd, struct ieee80211_sub_if_data *sdata,
275 struct ieee80211_sta *sta, 299 struct ieee80211_sta *sta,
276 struct ieee80211_key_conf *key, int ret), 300 struct ieee80211_key_conf *key, int ret),
277 301
278 TP_ARGS(local, cmd, vif, sta, key, ret), 302 TP_ARGS(local, cmd, sdata, sta, key, ret),
279 303
280 TP_STRUCT__entry( 304 TP_STRUCT__entry(
281 LOCAL_ENTRY 305 LOCAL_ENTRY
@@ -307,26 +331,29 @@ TRACE_EVENT(drv_set_key,
307 331
308TRACE_EVENT(drv_update_tkip_key, 332TRACE_EVENT(drv_update_tkip_key,
309 TP_PROTO(struct ieee80211_local *local, 333 TP_PROTO(struct ieee80211_local *local,
334 struct ieee80211_sub_if_data *sdata,
310 struct ieee80211_key_conf *conf, 335 struct ieee80211_key_conf *conf,
311 const u8 *address, u32 iv32), 336 struct ieee80211_sta *sta, u32 iv32),
312 337
313 TP_ARGS(local, conf, address, iv32), 338 TP_ARGS(local, sdata, conf, sta, iv32),
314 339
315 TP_STRUCT__entry( 340 TP_STRUCT__entry(
316 LOCAL_ENTRY 341 LOCAL_ENTRY
317 __array(u8, addr, 6) 342 VIF_ENTRY
343 STA_ENTRY
318 __field(u32, iv32) 344 __field(u32, iv32)
319 ), 345 ),
320 346
321 TP_fast_assign( 347 TP_fast_assign(
322 LOCAL_ASSIGN; 348 LOCAL_ASSIGN;
323 memcpy(__entry->addr, address, 6); 349 VIF_ASSIGN;
350 STA_ASSIGN;
324 __entry->iv32 = iv32; 351 __entry->iv32 = iv32;
325 ), 352 ),
326 353
327 TP_printk( 354 TP_printk(
328 LOCAL_PR_FMT " addr:%pM iv32:%#x", 355 LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " iv32:%#x",
329 LOCAL_PR_ARG, __entry->addr, __entry->iv32 356 LOCAL_PR_ARG,VIF_PR_ARG,STA_PR_ARG, __entry->iv32
330 ) 357 )
331); 358);
332 359
@@ -467,13 +494,36 @@ TRACE_EVENT(drv_set_rts_threshold,
467 ) 494 )
468); 495);
469 496
497TRACE_EVENT(drv_set_coverage_class,
498 TP_PROTO(struct ieee80211_local *local, u8 value, int ret),
499
500 TP_ARGS(local, value, ret),
501
502 TP_STRUCT__entry(
503 LOCAL_ENTRY
504 __field(u8, value)
505 __field(int, ret)
506 ),
507
508 TP_fast_assign(
509 LOCAL_ASSIGN;
510 __entry->ret = ret;
511 __entry->value = value;
512 ),
513
514 TP_printk(
515 LOCAL_PR_FMT " value:%d ret:%d",
516 LOCAL_PR_ARG, __entry->value, __entry->ret
517 )
518);
519
470TRACE_EVENT(drv_sta_notify, 520TRACE_EVENT(drv_sta_notify,
471 TP_PROTO(struct ieee80211_local *local, 521 TP_PROTO(struct ieee80211_local *local,
472 struct ieee80211_vif *vif, 522 struct ieee80211_sub_if_data *sdata,
473 enum sta_notify_cmd cmd, 523 enum sta_notify_cmd cmd,
474 struct ieee80211_sta *sta), 524 struct ieee80211_sta *sta),
475 525
476 TP_ARGS(local, vif, cmd, sta), 526 TP_ARGS(local, sdata, cmd, sta),
477 527
478 TP_STRUCT__entry( 528 TP_STRUCT__entry(
479 LOCAL_ENTRY 529 LOCAL_ENTRY
@@ -495,59 +545,88 @@ TRACE_EVENT(drv_sta_notify,
495 ) 545 )
496); 546);
497 547
498TRACE_EVENT(drv_conf_tx, 548TRACE_EVENT(drv_sta_add,
499 TP_PROTO(struct ieee80211_local *local, u16 queue, 549 TP_PROTO(struct ieee80211_local *local,
500 const struct ieee80211_tx_queue_params *params, 550 struct ieee80211_sub_if_data *sdata,
501 int ret), 551 struct ieee80211_sta *sta, int ret),
502 552
503 TP_ARGS(local, queue, params, ret), 553 TP_ARGS(local, sdata, sta, ret),
504 554
505 TP_STRUCT__entry( 555 TP_STRUCT__entry(
506 LOCAL_ENTRY 556 LOCAL_ENTRY
507 __field(u16, queue) 557 VIF_ENTRY
508 __field(u16, txop) 558 STA_ENTRY
509 __field(u16, cw_min)
510 __field(u16, cw_max)
511 __field(u8, aifs)
512 __field(int, ret) 559 __field(int, ret)
513 ), 560 ),
514 561
515 TP_fast_assign( 562 TP_fast_assign(
516 LOCAL_ASSIGN; 563 LOCAL_ASSIGN;
517 __entry->queue = queue; 564 VIF_ASSIGN;
565 STA_ASSIGN;
518 __entry->ret = ret; 566 __entry->ret = ret;
519 __entry->txop = params->txop;
520 __entry->cw_max = params->cw_max;
521 __entry->cw_min = params->cw_min;
522 __entry->aifs = params->aifs;
523 ), 567 ),
524 568
525 TP_printk( 569 TP_printk(
526 LOCAL_PR_FMT " queue:%d ret:%d", 570 LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " ret:%d",
527 LOCAL_PR_ARG, __entry->queue, __entry->ret 571 LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG, __entry->ret
528 ) 572 )
529); 573);
530 574
531TRACE_EVENT(drv_get_tx_stats, 575TRACE_EVENT(drv_sta_remove,
532 TP_PROTO(struct ieee80211_local *local, 576 TP_PROTO(struct ieee80211_local *local,
533 struct ieee80211_tx_queue_stats *stats, 577 struct ieee80211_sub_if_data *sdata,
578 struct ieee80211_sta *sta),
579
580 TP_ARGS(local, sdata, sta),
581
582 TP_STRUCT__entry(
583 LOCAL_ENTRY
584 VIF_ENTRY
585 STA_ENTRY
586 ),
587
588 TP_fast_assign(
589 LOCAL_ASSIGN;
590 VIF_ASSIGN;
591 STA_ASSIGN;
592 ),
593
594 TP_printk(
595 LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT,
596 LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG
597 )
598);
599
600TRACE_EVENT(drv_conf_tx,
601 TP_PROTO(struct ieee80211_local *local, u16 queue,
602 const struct ieee80211_tx_queue_params *params,
534 int ret), 603 int ret),
535 604
536 TP_ARGS(local, stats, ret), 605 TP_ARGS(local, queue, params, ret),
537 606
538 TP_STRUCT__entry( 607 TP_STRUCT__entry(
539 LOCAL_ENTRY 608 LOCAL_ENTRY
609 __field(u16, queue)
610 __field(u16, txop)
611 __field(u16, cw_min)
612 __field(u16, cw_max)
613 __field(u8, aifs)
540 __field(int, ret) 614 __field(int, ret)
541 ), 615 ),
542 616
543 TP_fast_assign( 617 TP_fast_assign(
544 LOCAL_ASSIGN; 618 LOCAL_ASSIGN;
619 __entry->queue = queue;
545 __entry->ret = ret; 620 __entry->ret = ret;
621 __entry->txop = params->txop;
622 __entry->cw_max = params->cw_max;
623 __entry->cw_min = params->cw_min;
624 __entry->aifs = params->aifs;
546 ), 625 ),
547 626
548 TP_printk( 627 TP_printk(
549 LOCAL_PR_FMT " ret:%d", 628 LOCAL_PR_FMT " queue:%d ret:%d",
550 LOCAL_PR_ARG, __entry->ret 629 LOCAL_PR_ARG, __entry->queue, __entry->ret
551 ) 630 )
552); 631);
553 632
@@ -634,11 +713,12 @@ TRACE_EVENT(drv_tx_last_beacon,
634 713
635TRACE_EVENT(drv_ampdu_action, 714TRACE_EVENT(drv_ampdu_action,
636 TP_PROTO(struct ieee80211_local *local, 715 TP_PROTO(struct ieee80211_local *local,
716 struct ieee80211_sub_if_data *sdata,
637 enum ieee80211_ampdu_mlme_action action, 717 enum ieee80211_ampdu_mlme_action action,
638 struct ieee80211_sta *sta, u16 tid, 718 struct ieee80211_sta *sta, u16 tid,
639 u16 *ssn, int ret), 719 u16 *ssn, int ret),
640 720
641 TP_ARGS(local, action, sta, tid, ssn, ret), 721 TP_ARGS(local, sdata, action, sta, tid, ssn, ret),
642 722
643 TP_STRUCT__entry( 723 TP_STRUCT__entry(
644 LOCAL_ENTRY 724 LOCAL_ENTRY
@@ -647,20 +727,43 @@ TRACE_EVENT(drv_ampdu_action,
647 __field(u16, tid) 727 __field(u16, tid)
648 __field(u16, ssn) 728 __field(u16, ssn)
649 __field(int, ret) 729 __field(int, ret)
730 VIF_ENTRY
650 ), 731 ),
651 732
652 TP_fast_assign( 733 TP_fast_assign(
653 LOCAL_ASSIGN; 734 LOCAL_ASSIGN;
735 VIF_ASSIGN;
654 STA_ASSIGN; 736 STA_ASSIGN;
655 __entry->ret = ret; 737 __entry->ret = ret;
656 __entry->action = action; 738 __entry->action = action;
657 __entry->tid = tid; 739 __entry->tid = tid;
658 __entry->ssn = *ssn; 740 __entry->ssn = ssn ? *ssn : 0;
741 ),
742
743 TP_printk(
744 LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " action:%d tid:%d ret:%d",
745 LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG, __entry->action, __entry->tid, __entry->ret
746 )
747);
748
749TRACE_EVENT(drv_flush,
750 TP_PROTO(struct ieee80211_local *local, bool drop),
751
752 TP_ARGS(local, drop),
753
754 TP_STRUCT__entry(
755 LOCAL_ENTRY
756 __field(bool, drop)
757 ),
758
759 TP_fast_assign(
760 LOCAL_ASSIGN;
761 __entry->drop = drop;
659 ), 762 ),
660 763
661 TP_printk( 764 TP_printk(
662 LOCAL_PR_FMT STA_PR_FMT " action:%d tid:%d ret:%d", 765 LOCAL_PR_FMT " drop:%d",
663 LOCAL_PR_ARG, STA_PR_ARG, __entry->action, __entry->tid, __entry->ret 766 LOCAL_PR_ARG, __entry->drop
664 ) 767 )
665); 768);
666#endif /* !__MAC80211_DRIVER_TRACE || TRACE_HEADER_MULTI_READ */ 769#endif /* !__MAC80211_DRIVER_TRACE || TRACE_HEADER_MULTI_READ */