hc
2024-01-04 1543e317f1da31b75942316931e8f491a8920811
kernel/net/mac80211/trace.h
....@@ -1,8 +1,8 @@
11 /* SPDX-License-Identifier: GPL-2.0 */
22 /*
33 * Portions of this file
4
-* Copyright(c) 2016 Intel Deutschland GmbH
5
-* Copyright (C) 2018 Intel Corporation
4
+* Copyright(c) 2016-2017 Intel Deutschland GmbH
5
+* Copyright (C) 2018 - 2019 Intel Corporation
66 */
77
88 #if !defined(__MAC80211_DRIVER_TRACE) || defined(TRACE_HEADER_MULTI_READ)
....@@ -22,7 +22,8 @@
2222 #define LOCAL_PR_ARG __entry->wiphy_name
2323
2424 #define STA_ENTRY __array(char, sta_addr, ETH_ALEN)
25
-#define STA_ASSIGN (sta ? memcpy(__entry->sta_addr, sta->addr, ETH_ALEN) : memset(__entry->sta_addr, 0, ETH_ALEN))
25
+#define STA_ASSIGN (sta ? memcpy(__entry->sta_addr, sta->addr, ETH_ALEN) : \
26
+ eth_zero_addr(__entry->sta_addr))
2627 #define STA_NAMED_ASSIGN(s) memcpy(__entry->sta_addr, (s)->addr, ETH_ALEN)
2728 #define STA_PR_FMT " sta:%pM"
2829 #define STA_PR_ARG __entry->sta_addr
....@@ -37,32 +38,42 @@
3738 #define VIF_PR_ARG __get_str(vif_name), __entry->vif_type, __entry->p2p ? "/p2p" : ""
3839
3940 #define CHANDEF_ENTRY __field(u32, control_freq) \
41
+ __field(u32, freq_offset) \
4042 __field(u32, chan_width) \
4143 __field(u32, center_freq1) \
44
+ __field(u32, freq1_offset) \
4245 __field(u32, center_freq2)
4346 #define CHANDEF_ASSIGN(c) \
4447 __entry->control_freq = (c) ? ((c)->chan ? (c)->chan->center_freq : 0) : 0; \
48
+ __entry->freq_offset = (c) ? ((c)->chan ? (c)->chan->freq_offset : 0) : 0; \
4549 __entry->chan_width = (c) ? (c)->width : 0; \
4650 __entry->center_freq1 = (c) ? (c)->center_freq1 : 0; \
51
+ __entry->freq1_offset = (c) ? (c)->freq1_offset : 0; \
4752 __entry->center_freq2 = (c) ? (c)->center_freq2 : 0;
48
-#define CHANDEF_PR_FMT " control:%d MHz width:%d center: %d/%d MHz"
49
-#define CHANDEF_PR_ARG __entry->control_freq, __entry->chan_width, \
50
- __entry->center_freq1, __entry->center_freq2
53
+#define CHANDEF_PR_FMT " control:%d.%03d MHz width:%d center: %d.%03d/%d MHz"
54
+#define CHANDEF_PR_ARG __entry->control_freq, __entry->freq_offset, __entry->chan_width, \
55
+ __entry->center_freq1, __entry->freq1_offset, __entry->center_freq2
5156
5257 #define MIN_CHANDEF_ENTRY \
5358 __field(u32, min_control_freq) \
59
+ __field(u32, min_freq_offset) \
5460 __field(u32, min_chan_width) \
5561 __field(u32, min_center_freq1) \
62
+ __field(u32, min_freq1_offset) \
5663 __field(u32, min_center_freq2)
5764
5865 #define MIN_CHANDEF_ASSIGN(c) \
5966 __entry->min_control_freq = (c)->chan ? (c)->chan->center_freq : 0; \
67
+ __entry->min_freq_offset = (c)->chan ? (c)->chan->freq_offset : 0; \
6068 __entry->min_chan_width = (c)->width; \
6169 __entry->min_center_freq1 = (c)->center_freq1; \
70
+ __entry->min_freq1_offset = (c)->freq1_offset; \
6271 __entry->min_center_freq2 = (c)->center_freq2;
63
-#define MIN_CHANDEF_PR_FMT " min_control:%d MHz min_width:%d min_center: %d/%d MHz"
64
-#define MIN_CHANDEF_PR_ARG __entry->min_control_freq, __entry->min_chan_width, \
65
- __entry->min_center_freq1, __entry->min_center_freq2
72
+#define MIN_CHANDEF_PR_FMT " min_control:%d.%03d MHz min_width:%d min_center: %d.%03d/%d MHz"
73
+#define MIN_CHANDEF_PR_ARG __entry->min_control_freq, __entry->min_freq_offset, \
74
+ __entry->min_chan_width, \
75
+ __entry->min_center_freq1, __entry->min_freq1_offset, \
76
+ __entry->min_center_freq2
6677
6778 #define CHANCTX_ENTRY CHANDEF_ENTRY \
6879 MIN_CHANDEF_ENTRY \
....@@ -408,20 +419,21 @@
408419 __field(u32, basic_rates)
409420 __array(int, mcast_rate, NUM_NL80211_BANDS)
410421 __field(u16, ht_operation_mode)
411
- __field(s32, cqm_rssi_thold);
412
- __field(s32, cqm_rssi_hyst);
413
- __field(u32, channel_width);
414
- __field(u32, channel_cfreq1);
422
+ __field(s32, cqm_rssi_thold)
423
+ __field(s32, cqm_rssi_hyst)
424
+ __field(u32, channel_width)
425
+ __field(u32, channel_cfreq1)
426
+ __field(u32, channel_cfreq1_offset)
415427 __dynamic_array(u32, arp_addr_list,
416428 info->arp_addr_cnt > IEEE80211_BSS_ARP_ADDR_LIST_LEN ?
417429 IEEE80211_BSS_ARP_ADDR_LIST_LEN :
418
- info->arp_addr_cnt);
419
- __field(int, arp_addr_cnt);
420
- __field(bool, qos);
421
- __field(bool, idle);
422
- __field(bool, ps);
423
- __dynamic_array(u8, ssid, info->ssid_len);
424
- __field(bool, hidden_ssid);
430
+ info->arp_addr_cnt)
431
+ __field(int, arp_addr_cnt)
432
+ __field(bool, qos)
433
+ __field(bool, idle)
434
+ __field(bool, ps)
435
+ __dynamic_array(u8, ssid, info->ssid_len)
436
+ __field(bool, hidden_ssid)
425437 __field(int, txpower)
426438 __field(u8, p2p_oppps_ctwindow)
427439 ),
....@@ -452,6 +464,7 @@
452464 __entry->cqm_rssi_hyst = info->cqm_rssi_hyst;
453465 __entry->channel_width = info->chandef.width;
454466 __entry->channel_cfreq1 = info->chandef.center_freq1;
467
+ __entry->channel_cfreq1_offset = info->chandef.freq1_offset;
455468 __entry->arp_addr_cnt = info->arp_addr_cnt;
456469 memcpy(__get_dynamic_array(arp_addr_list), info->arp_addr_list,
457470 sizeof(u32) * (info->arp_addr_cnt > IEEE80211_BSS_ARP_ADDR_LIST_LEN ?
....@@ -828,6 +841,36 @@
828841 )
829842 );
830843
844
+TRACE_EVENT(drv_sta_set_txpwr,
845
+ TP_PROTO(struct ieee80211_local *local,
846
+ struct ieee80211_sub_if_data *sdata,
847
+ struct ieee80211_sta *sta),
848
+
849
+ TP_ARGS(local, sdata, sta),
850
+
851
+ TP_STRUCT__entry(
852
+ LOCAL_ENTRY
853
+ VIF_ENTRY
854
+ STA_ENTRY
855
+ __field(s16, txpwr)
856
+ __field(u8, type)
857
+ ),
858
+
859
+ TP_fast_assign(
860
+ LOCAL_ASSIGN;
861
+ VIF_ASSIGN;
862
+ STA_ASSIGN;
863
+ __entry->txpwr = sta->txpwr.power;
864
+ __entry->type = sta->txpwr.type;
865
+ ),
866
+
867
+ TP_printk(
868
+ LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " txpwr: %d type %d",
869
+ LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG,
870
+ __entry->txpwr, __entry->type
871
+ )
872
+);
873
+
831874 TRACE_EVENT(drv_sta_rc_update,
832875 TP_PROTO(struct ieee80211_local *local,
833876 struct ieee80211_sub_if_data *sdata,
....@@ -1052,10 +1095,10 @@
10521095 );
10531096
10541097 TRACE_EVENT(drv_get_survey,
1055
- TP_PROTO(struct ieee80211_local *local, int idx,
1098
+ TP_PROTO(struct ieee80211_local *local, int _idx,
10561099 struct survey_info *survey),
10571100
1058
- TP_ARGS(local, idx, survey),
1101
+ TP_ARGS(local, _idx, survey),
10591102
10601103 TP_STRUCT__entry(
10611104 LOCAL_ENTRY
....@@ -1064,7 +1107,7 @@
10641107
10651108 TP_fast_assign(
10661109 LOCAL_ASSIGN;
1067
- __entry->idx = idx;
1110
+ __entry->idx = _idx;
10681111 ),
10691112
10701113 TP_printk(
....@@ -1193,6 +1236,7 @@
11931236 LOCAL_ENTRY
11941237 VIF_ENTRY
11951238 __field(int, center_freq)
1239
+ __field(int, freq_offset)
11961240 __field(unsigned int, duration)
11971241 __field(u32, type)
11981242 ),
....@@ -1201,20 +1245,23 @@
12011245 LOCAL_ASSIGN;
12021246 VIF_ASSIGN;
12031247 __entry->center_freq = chan->center_freq;
1248
+ __entry->freq_offset = chan->freq_offset;
12041249 __entry->duration = duration;
12051250 __entry->type = type;
12061251 ),
12071252
12081253 TP_printk(
1209
- LOCAL_PR_FMT VIF_PR_FMT " freq:%dMHz duration:%dms type=%d",
1254
+ LOCAL_PR_FMT VIF_PR_FMT " freq:%d.%03dMHz duration:%dms type=%d",
12101255 LOCAL_PR_ARG, VIF_PR_ARG,
1211
- __entry->center_freq, __entry->duration, __entry->type
1256
+ __entry->center_freq, __entry->freq_offset,
1257
+ __entry->duration, __entry->type
12121258 )
12131259 );
12141260
1215
-DEFINE_EVENT(local_only_evt, drv_cancel_remain_on_channel,
1216
- TP_PROTO(struct ieee80211_local *local),
1217
- TP_ARGS(local)
1261
+DEFINE_EVENT(local_sdata_evt, drv_cancel_remain_on_channel,
1262
+ TP_PROTO(struct ieee80211_local *local,
1263
+ struct ieee80211_sub_if_data *sdata),
1264
+ TP_ARGS(local, sdata)
12181265 );
12191266
12201267 TRACE_EVENT(drv_set_ringparam,
....@@ -1515,8 +1562,10 @@
15151562
15161563 struct trace_chandef_entry {
15171564 u32 control_freq;
1565
+ u32 freq_offset;
15181566 u32 chan_width;
15191567 u32 center_freq1;
1568
+ u32 freq1_offset;
15201569 u32 center_freq2;
15211570 } __packed;
15221571
....@@ -1566,18 +1615,26 @@
15661615 sizeof(local_vifs[i].vif.vif_name));
15671616 SWITCH_ENTRY_ASSIGN(old_chandef.control_freq,
15681617 old_ctx->def.chan->center_freq);
1618
+ SWITCH_ENTRY_ASSIGN(old_chandef.freq_offset,
1619
+ old_ctx->def.chan->freq_offset);
15691620 SWITCH_ENTRY_ASSIGN(old_chandef.chan_width,
15701621 old_ctx->def.width);
15711622 SWITCH_ENTRY_ASSIGN(old_chandef.center_freq1,
15721623 old_ctx->def.center_freq1);
1624
+ SWITCH_ENTRY_ASSIGN(old_chandef.freq1_offset,
1625
+ old_ctx->def.freq1_offset);
15731626 SWITCH_ENTRY_ASSIGN(old_chandef.center_freq2,
15741627 old_ctx->def.center_freq2);
15751628 SWITCH_ENTRY_ASSIGN(new_chandef.control_freq,
15761629 new_ctx->def.chan->center_freq);
1630
+ SWITCH_ENTRY_ASSIGN(new_chandef.freq_offset,
1631
+ new_ctx->def.chan->freq_offset);
15771632 SWITCH_ENTRY_ASSIGN(new_chandef.chan_width,
15781633 new_ctx->def.width);
15791634 SWITCH_ENTRY_ASSIGN(new_chandef.center_freq1,
15801635 new_ctx->def.center_freq1);
1636
+ SWITCH_ENTRY_ASSIGN(new_chandef.freq1_offset,
1637
+ new_ctx->def.freq1_offset);
15811638 SWITCH_ENTRY_ASSIGN(new_chandef.center_freq2,
15821639 new_ctx->def.center_freq2);
15831640 }
....@@ -1641,8 +1698,8 @@
16411698 VIF_ENTRY
16421699 __field(u8, dtimper)
16431700 __field(u16, bcnint)
1644
- __dynamic_array(u8, ssid, info->ssid_len);
1645
- __field(bool, hidden_ssid);
1701
+ __dynamic_array(u8, ssid, info->ssid_len)
1702
+ __field(bool, hidden_ssid)
16461703 ),
16471704
16481705 TP_fast_assign(
....@@ -1708,7 +1765,7 @@
17081765 VIF_ENTRY
17091766 __field(u8, dtimper)
17101767 __field(u16, bcnint)
1711
- __dynamic_array(u8, ssid, info->ssid_len);
1768
+ __dynamic_array(u8, ssid, info->ssid_len)
17121769 ),
17131770
17141771 TP_fast_assign(
....@@ -1880,6 +1937,18 @@
18801937 ", instance_id: %u",
18811938 LOCAL_PR_ARG, VIF_PR_ARG, __entry->instance_id
18821939 )
1940
+);
1941
+
1942
+DEFINE_EVENT(local_sdata_evt, drv_start_pmsr,
1943
+ TP_PROTO(struct ieee80211_local *local,
1944
+ struct ieee80211_sub_if_data *sdata),
1945
+ TP_ARGS(local, sdata)
1946
+);
1947
+
1948
+DEFINE_EVENT(local_sdata_evt, drv_abort_pmsr,
1949
+ TP_PROTO(struct ieee80211_local *local,
1950
+ struct ieee80211_sub_if_data *sdata),
1951
+ TP_ARGS(local, sdata)
18831952 );
18841953
18851954 /*
....@@ -2440,6 +2509,48 @@
24402509 TP_ARGS(local, sdata)
24412510 );
24422511
2512
+DEFINE_EVENT(local_sdata_evt, drv_abort_channel_switch,
2513
+ TP_PROTO(struct ieee80211_local *local,
2514
+ struct ieee80211_sub_if_data *sdata),
2515
+ TP_ARGS(local, sdata)
2516
+);
2517
+
2518
+TRACE_EVENT(drv_channel_switch_rx_beacon,
2519
+ TP_PROTO(struct ieee80211_local *local,
2520
+ struct ieee80211_sub_if_data *sdata,
2521
+ struct ieee80211_channel_switch *ch_switch),
2522
+
2523
+ TP_ARGS(local, sdata, ch_switch),
2524
+
2525
+ TP_STRUCT__entry(
2526
+ LOCAL_ENTRY
2527
+ VIF_ENTRY
2528
+ CHANDEF_ENTRY
2529
+ __field(u64, timestamp)
2530
+ __field(u32, device_timestamp)
2531
+ __field(bool, block_tx)
2532
+ __field(u8, count)
2533
+ ),
2534
+
2535
+ TP_fast_assign(
2536
+ LOCAL_ASSIGN;
2537
+ VIF_ASSIGN;
2538
+ CHANDEF_ASSIGN(&ch_switch->chandef)
2539
+ __entry->timestamp = ch_switch->timestamp;
2540
+ __entry->device_timestamp = ch_switch->device_timestamp;
2541
+ __entry->block_tx = ch_switch->block_tx;
2542
+ __entry->count = ch_switch->count;
2543
+ ),
2544
+
2545
+ TP_printk(
2546
+ LOCAL_PR_FMT VIF_PR_FMT
2547
+ " received a channel switch beacon to "
2548
+ CHANDEF_PR_FMT " count:%d block_tx:%d timestamp:%llu",
2549
+ LOCAL_PR_ARG, VIF_PR_ARG, CHANDEF_PR_ARG, __entry->count,
2550
+ __entry->block_tx, __entry->timestamp
2551
+ )
2552
+);
2553
+
24432554 TRACE_EVENT(drv_get_txpower,
24442555 TP_PROTO(struct ieee80211_local *local,
24452556 struct ieee80211_sub_if_data *sdata,
....@@ -2600,6 +2711,62 @@
26002711 )
26012712 );
26022713
2714
+TRACE_EVENT(drv_get_ftm_responder_stats,
2715
+ TP_PROTO(struct ieee80211_local *local,
2716
+ struct ieee80211_sub_if_data *sdata,
2717
+ struct cfg80211_ftm_responder_stats *ftm_stats),
2718
+
2719
+ TP_ARGS(local, sdata, ftm_stats),
2720
+
2721
+ TP_STRUCT__entry(
2722
+ LOCAL_ENTRY
2723
+ VIF_ENTRY
2724
+ ),
2725
+
2726
+ TP_fast_assign(
2727
+ LOCAL_ASSIGN;
2728
+ VIF_ASSIGN;
2729
+ ),
2730
+
2731
+ TP_printk(
2732
+ LOCAL_PR_FMT VIF_PR_FMT,
2733
+ LOCAL_PR_ARG, VIF_PR_ARG
2734
+ )
2735
+);
2736
+
2737
+DEFINE_EVENT(local_sdata_addr_evt, drv_update_vif_offload,
2738
+ TP_PROTO(struct ieee80211_local *local,
2739
+ struct ieee80211_sub_if_data *sdata),
2740
+ TP_ARGS(local, sdata)
2741
+);
2742
+
2743
+TRACE_EVENT(drv_sta_set_4addr,
2744
+ TP_PROTO(struct ieee80211_local *local,
2745
+ struct ieee80211_sub_if_data *sdata,
2746
+ struct ieee80211_sta *sta, bool enabled),
2747
+
2748
+ TP_ARGS(local, sdata, sta, enabled),
2749
+
2750
+ TP_STRUCT__entry(
2751
+ LOCAL_ENTRY
2752
+ VIF_ENTRY
2753
+ STA_ENTRY
2754
+ __field(bool, enabled)
2755
+ ),
2756
+
2757
+ TP_fast_assign(
2758
+ LOCAL_ASSIGN;
2759
+ VIF_ASSIGN;
2760
+ STA_ASSIGN;
2761
+ __entry->enabled = enabled;
2762
+ ),
2763
+
2764
+ TP_printk(
2765
+ LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " enabled:%d",
2766
+ LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG, __entry->enabled
2767
+ )
2768
+);
2769
+
26032770 #endif /* !__MAC80211_DRIVER_TRACE || TRACE_HEADER_MULTI_READ */
26042771
26052772 #undef TRACE_INCLUDE_PATH