wifi: mac80211: ethtool: always hold wiphy mutex
[linux-block.git] / net / wireless / trace.h
CommitLineData
b2441318 1/* SPDX-License-Identifier: GPL-2.0 */
14e8a3c4
BL
2#undef TRACE_SYSTEM
3#define TRACE_SYSTEM cfg80211
4
5#if !defined(__RDEV_OPS_TRACE) || defined(TRACE_HEADER_MULTI_READ)
6#define __RDEV_OPS_TRACE
7
8#include <linux/tracepoint.h>
9
10#include <linux/rtnetlink.h>
d2beae10 11#include <linux/etherdevice.h>
14e8a3c4
BL
12#include <net/cfg80211.h>
13#include "core.h"
14
15#define MAC_ENTRY(entry_mac) __array(u8, entry_mac, ETH_ALEN)
16#define MAC_ASSIGN(entry_mac, given_mac) do { \
17 if (given_mac) \
18 memcpy(__entry->entry_mac, given_mac, ETH_ALEN); \
19 else \
d2beae10 20 eth_zero_addr(__entry->entry_mac); \
14e8a3c4 21 } while (0)
14e8a3c4 22
ec816087
JB
23#define MAXNAME 32
24#define WIPHY_ENTRY __array(char, wiphy_name, 32)
0ffe8588 25#define WIPHY_ASSIGN strscpy(__entry->wiphy_name, wiphy_name(wiphy), MAXNAME)
ec816087
JB
26#define WIPHY_PR_FMT "%s"
27#define WIPHY_PR_ARG __entry->wiphy_name
28
29#define WDEV_ENTRY __field(u32, id)
ce1eadda
JB
30#define WDEV_ASSIGN (__entry->id) = (!IS_ERR_OR_NULL(wdev) \
31 ? wdev->identifier : 0)
ec816087
JB
32#define WDEV_PR_FMT "wdev(%u)"
33#define WDEV_PR_ARG (__entry->id)
34
35#define NETDEV_ENTRY __array(char, name, IFNAMSIZ) \
36 __field(int, ifindex)
14e8a3c4
BL
37#define NETDEV_ASSIGN \
38 do { \
39 memcpy(__entry->name, netdev->name, IFNAMSIZ); \
14e8a3c4
BL
40 (__entry->ifindex) = (netdev->ifindex); \
41 } while (0)
ec816087
JB
42#define NETDEV_PR_FMT "netdev:%s(%d)"
43#define NETDEV_PR_ARG __entry->name, __entry->ifindex
14e8a3c4
BL
44
45#define MESH_CFG_ENTRY __field(u16, dot11MeshRetryTimeout) \
46 __field(u16, dot11MeshConfirmTimeout) \
47 __field(u16, dot11MeshHoldingTimeout) \
48 __field(u16, dot11MeshMaxPeerLinks) \
49 __field(u8, dot11MeshMaxRetries) \
50 __field(u8, dot11MeshTTL) \
51 __field(u8, element_ttl) \
52 __field(bool, auto_open_plinks) \
53 __field(u32, dot11MeshNbrOffsetMaxNeighbor) \
54 __field(u8, dot11MeshHWMPmaxPREQretries) \
55 __field(u32, path_refresh_time) \
56 __field(u32, dot11MeshHWMPactivePathTimeout) \
57 __field(u16, min_discovery_timeout) \
58 __field(u16, dot11MeshHWMPpreqMinInterval) \
59 __field(u16, dot11MeshHWMPperrMinInterval) \
60 __field(u16, dot11MeshHWMPnetDiameterTraversalTime) \
61 __field(u8, dot11MeshHWMPRootMode) \
62 __field(u16, dot11MeshHWMPRannInterval) \
63 __field(bool, dot11MeshGateAnnouncementProtocol) \
64 __field(bool, dot11MeshForwarding) \
65 __field(s32, rssi_threshold) \
66 __field(u16, ht_opmode) \
67 __field(u32, dot11MeshHWMPactivePathToRootTimeout) \
68 __field(u16, dot11MeshHWMProotInterval) \
e3718a61
LL
69 __field(u16, dot11MeshHWMPconfirmationInterval) \
70 __field(bool, dot11MeshNolearn)
14e8a3c4
BL
71#define MESH_CFG_ASSIGN \
72 do { \
73 __entry->dot11MeshRetryTimeout = conf->dot11MeshRetryTimeout; \
74 __entry->dot11MeshConfirmTimeout = \
75 conf->dot11MeshConfirmTimeout; \
76 __entry->dot11MeshHoldingTimeout = \
77 conf->dot11MeshHoldingTimeout; \
78 __entry->dot11MeshMaxPeerLinks = conf->dot11MeshMaxPeerLinks; \
79 __entry->dot11MeshMaxRetries = conf->dot11MeshMaxRetries; \
80 __entry->dot11MeshTTL = conf->dot11MeshTTL; \
81 __entry->element_ttl = conf->element_ttl; \
82 __entry->auto_open_plinks = conf->auto_open_plinks; \
83 __entry->dot11MeshNbrOffsetMaxNeighbor = \
84 conf->dot11MeshNbrOffsetMaxNeighbor; \
85 __entry->dot11MeshHWMPmaxPREQretries = \
86 conf->dot11MeshHWMPmaxPREQretries; \
87 __entry->path_refresh_time = conf->path_refresh_time; \
88 __entry->dot11MeshHWMPactivePathTimeout = \
89 conf->dot11MeshHWMPactivePathTimeout; \
90 __entry->min_discovery_timeout = conf->min_discovery_timeout; \
91 __entry->dot11MeshHWMPpreqMinInterval = \
92 conf->dot11MeshHWMPpreqMinInterval; \
93 __entry->dot11MeshHWMPperrMinInterval = \
94 conf->dot11MeshHWMPperrMinInterval; \
95 __entry->dot11MeshHWMPnetDiameterTraversalTime = \
96 conf->dot11MeshHWMPnetDiameterTraversalTime; \
97 __entry->dot11MeshHWMPRootMode = conf->dot11MeshHWMPRootMode; \
98 __entry->dot11MeshHWMPRannInterval = \
99 conf->dot11MeshHWMPRannInterval; \
100 __entry->dot11MeshGateAnnouncementProtocol = \
101 conf->dot11MeshGateAnnouncementProtocol; \
102 __entry->dot11MeshForwarding = conf->dot11MeshForwarding; \
103 __entry->rssi_threshold = conf->rssi_threshold; \
104 __entry->ht_opmode = conf->ht_opmode; \
105 __entry->dot11MeshHWMPactivePathToRootTimeout = \
106 conf->dot11MeshHWMPactivePathToRootTimeout; \
107 __entry->dot11MeshHWMProotInterval = \
108 conf->dot11MeshHWMProotInterval; \
109 __entry->dot11MeshHWMPconfirmationInterval = \
110 conf->dot11MeshHWMPconfirmationInterval; \
e3718a61 111 __entry->dot11MeshNolearn = conf->dot11MeshNolearn; \
14e8a3c4
BL
112 } while (0)
113
57fbcce3 114#define CHAN_ENTRY __field(enum nl80211_band, band) \
934f4c7d
TP
115 __field(u32, center_freq) \
116 __field(u16, freq_offset)
14e8a3c4
BL
117#define CHAN_ASSIGN(chan) \
118 do { \
119 if (chan) { \
120 __entry->band = chan->band; \
121 __entry->center_freq = chan->center_freq; \
934f4c7d 122 __entry->freq_offset = chan->freq_offset; \
14e8a3c4
BL
123 } else { \
124 __entry->band = 0; \
125 __entry->center_freq = 0; \
934f4c7d 126 __entry->freq_offset = 0; \
14e8a3c4
BL
127 } \
128 } while (0)
934f4c7d
TP
129#define CHAN_PR_FMT "band: %d, freq: %u.%03u"
130#define CHAN_PR_ARG __entry->band, __entry->center_freq, __entry->freq_offset
14e8a3c4 131
57fbcce3 132#define CHAN_DEF_ENTRY __field(enum nl80211_band, band) \
3d9d1d66 133 __field(u32, control_freq) \
934f4c7d 134 __field(u32, freq_offset) \
3d9d1d66
JB
135 __field(u32, width) \
136 __field(u32, center_freq1) \
934f4c7d 137 __field(u32, freq1_offset) \
3d9d1d66 138 __field(u32, center_freq2)
683b6d3b
JB
139#define CHAN_DEF_ASSIGN(chandef) \
140 do { \
141 if ((chandef) && (chandef)->chan) { \
142 __entry->band = (chandef)->chan->band; \
3d9d1d66 143 __entry->control_freq = \
683b6d3b 144 (chandef)->chan->center_freq; \
934f4c7d
TP
145 __entry->freq_offset = \
146 (chandef)->chan->freq_offset; \
3d9d1d66
JB
147 __entry->width = (chandef)->width; \
148 __entry->center_freq1 = (chandef)->center_freq1;\
934f4c7d 149 __entry->freq1_offset = (chandef)->freq1_offset;\
3d9d1d66 150 __entry->center_freq2 = (chandef)->center_freq2;\
683b6d3b
JB
151 } else { \
152 __entry->band = 0; \
3d9d1d66 153 __entry->control_freq = 0; \
934f4c7d 154 __entry->freq_offset = 0; \
3d9d1d66
JB
155 __entry->width = 0; \
156 __entry->center_freq1 = 0; \
934f4c7d 157 __entry->freq1_offset = 0; \
3d9d1d66 158 __entry->center_freq2 = 0; \
683b6d3b
JB
159 } \
160 } while (0)
3d9d1d66 161#define CHAN_DEF_PR_FMT \
934f4c7d 162 "band: %d, control freq: %u.%03u, width: %d, cf1: %u.%03u, cf2: %u"
3d9d1d66 163#define CHAN_DEF_PR_ARG __entry->band, __entry->control_freq, \
934f4c7d
TP
164 __entry->freq_offset, __entry->width, \
165 __entry->center_freq1, __entry->freq1_offset, \
3d9d1d66 166 __entry->center_freq2
683b6d3b 167
e306784a
SM
168#define FILS_AAD_ASSIGN(fa) \
169 do { \
170 if (fa) { \
171 ether_addr_copy(__entry->macaddr, fa->macaddr); \
172 __entry->kek_len = fa->kek_len; \
173 } else { \
174 eth_zero_addr(__entry->macaddr); \
175 __entry->kek_len = 0; \
176 } \
177 } while (0)
178#define FILS_AAD_PR_FMT \
179 "macaddr: %pM, kek_len: %d"
180
14e8a3c4
BL
181#define SINFO_ENTRY __field(int, generation) \
182 __field(u32, connected_time) \
183 __field(u32, inactive_time) \
184 __field(u32, rx_bytes) \
185 __field(u32, tx_bytes) \
186 __field(u32, rx_packets) \
187 __field(u32, tx_packets) \
188 __field(u32, tx_retries) \
189 __field(u32, tx_failed) \
190 __field(u32, rx_dropped_misc) \
191 __field(u32, beacon_loss_count) \
192 __field(u16, llid) \
193 __field(u16, plid) \
194 __field(u8, plink_state)
195#define SINFO_ASSIGN \
196 do { \
197 __entry->generation = sinfo->generation; \
198 __entry->connected_time = sinfo->connected_time; \
199 __entry->inactive_time = sinfo->inactive_time; \
200 __entry->rx_bytes = sinfo->rx_bytes; \
201 __entry->tx_bytes = sinfo->tx_bytes; \
202 __entry->rx_packets = sinfo->rx_packets; \
203 __entry->tx_packets = sinfo->tx_packets; \
204 __entry->tx_retries = sinfo->tx_retries; \
205 __entry->tx_failed = sinfo->tx_failed; \
206 __entry->rx_dropped_misc = sinfo->rx_dropped_misc; \
207 __entry->beacon_loss_count = sinfo->beacon_loss_count; \
208 __entry->llid = sinfo->llid; \
209 __entry->plid = sinfo->plid; \
210 __entry->plink_state = sinfo->plink_state; \
211 } while (0)
212
213#define BOOL_TO_STR(bo) (bo) ? "true" : "false"
214
fa9ffc74
KP
215#define QOS_MAP_ENTRY __field(u8, num_des) \
216 __array(u8, dscp_exception, \
217 2 * IEEE80211_QOS_MAP_MAX_EX) \
218 __array(u8, up, IEEE80211_QOS_MAP_LEN_MIN)
219#define QOS_MAP_ASSIGN(qos_map) \
220 do { \
221 if ((qos_map)) { \
222 __entry->num_des = (qos_map)->num_des; \
223 memcpy(__entry->dscp_exception, \
224 &(qos_map)->dscp_exception, \
225 2 * IEEE80211_QOS_MAP_MAX_EX); \
226 memcpy(__entry->up, &(qos_map)->up, \
227 IEEE80211_QOS_MAP_LEN_MIN); \
228 } else { \
229 __entry->num_des = 0; \
230 memset(__entry->dscp_exception, 0, \
231 2 * IEEE80211_QOS_MAP_MAX_EX); \
232 memset(__entry->up, 0, \
233 IEEE80211_QOS_MAP_LEN_MIN); \
234 } \
235 } while (0)
236
14e8a3c4
BL
237/*************************************************************
238 * rdev->ops traces *
239 *************************************************************/
240
241TRACE_EVENT(rdev_suspend,
242 TP_PROTO(struct wiphy *wiphy, struct cfg80211_wowlan *wow),
243 TP_ARGS(wiphy, wow),
244 TP_STRUCT__entry(
245 WIPHY_ENTRY
246 __field(bool, any)
247 __field(bool, disconnect)
248 __field(bool, magic_pkt)
249 __field(bool, gtk_rekey_failure)
250 __field(bool, eap_identity_req)
251 __field(bool, four_way_handshake)
252 __field(bool, rfkill_release)
253 __field(bool, valid_wow)
254 ),
255 TP_fast_assign(
256 WIPHY_ASSIGN;
257 if (wow) {
258 __entry->any = wow->any;
259 __entry->disconnect = wow->disconnect;
260 __entry->magic_pkt = wow->magic_pkt;
261 __entry->gtk_rekey_failure = wow->gtk_rekey_failure;
262 __entry->eap_identity_req = wow->eap_identity_req;
263 __entry->four_way_handshake = wow->four_way_handshake;
264 __entry->rfkill_release = wow->rfkill_release;
265 __entry->valid_wow = true;
266 } else {
267 __entry->valid_wow = false;
268 }
269 ),
270 TP_printk(WIPHY_PR_FMT ", wow%s - any: %d, disconnect: %d, "
271 "magic pkt: %d, gtk rekey failure: %d, eap identify req: %d, "
272 "four way handshake: %d, rfkill release: %d.",
273 WIPHY_PR_ARG, __entry->valid_wow ? "" : "(Not configured!)",
274 __entry->any, __entry->disconnect, __entry->magic_pkt,
275 __entry->gtk_rekey_failure, __entry->eap_identity_req,
276 __entry->four_way_handshake, __entry->rfkill_release)
277);
278
279TRACE_EVENT(rdev_return_int,
280 TP_PROTO(struct wiphy *wiphy, int ret),
281 TP_ARGS(wiphy, ret),
282 TP_STRUCT__entry(
283 WIPHY_ENTRY
284 __field(int, ret)
285 ),
286 TP_fast_assign(
287 WIPHY_ASSIGN;
288 __entry->ret = ret;
289 ),
290 TP_printk(WIPHY_PR_FMT ", returned: %d", WIPHY_PR_ARG, __entry->ret)
291);
292
293TRACE_EVENT(rdev_scan,
294 TP_PROTO(struct wiphy *wiphy, struct cfg80211_scan_request *request),
295 TP_ARGS(wiphy, request),
296 TP_STRUCT__entry(
297 WIPHY_ENTRY
298 ),
299 TP_fast_assign(
300 WIPHY_ASSIGN;
301 ),
302 TP_printk(WIPHY_PR_FMT, WIPHY_PR_ARG)
303);
304
305DECLARE_EVENT_CLASS(wiphy_only_evt,
306 TP_PROTO(struct wiphy *wiphy),
307 TP_ARGS(wiphy),
308 TP_STRUCT__entry(
309 WIPHY_ENTRY
310 ),
311 TP_fast_assign(
312 WIPHY_ASSIGN;
313 ),
314 TP_printk(WIPHY_PR_FMT, WIPHY_PR_ARG)
315);
316
317DEFINE_EVENT(wiphy_only_evt, rdev_resume,
318 TP_PROTO(struct wiphy *wiphy),
319 TP_ARGS(wiphy)
320);
321
322DEFINE_EVENT(wiphy_only_evt, rdev_return_void,
323 TP_PROTO(struct wiphy *wiphy),
324 TP_ARGS(wiphy)
325);
326
14e8a3c4
BL
327DEFINE_EVENT(wiphy_only_evt, rdev_get_antenna,
328 TP_PROTO(struct wiphy *wiphy),
329 TP_ARGS(wiphy)
330);
331
14e8a3c4
BL
332DEFINE_EVENT(wiphy_only_evt, rdev_rfkill_poll,
333 TP_PROTO(struct wiphy *wiphy),
334 TP_ARGS(wiphy)
335);
336
337DECLARE_EVENT_CLASS(wiphy_enabled_evt,
338 TP_PROTO(struct wiphy *wiphy, bool enabled),
339 TP_ARGS(wiphy, enabled),
340 TP_STRUCT__entry(
341 WIPHY_ENTRY
342 __field(bool, enabled)
343 ),
344 TP_fast_assign(
345 WIPHY_ASSIGN;
346 __entry->enabled = enabled;
347 ),
348 TP_printk(WIPHY_PR_FMT ", %senabled ",
349 WIPHY_PR_ARG, __entry->enabled ? "" : "not ")
350);
351
352DEFINE_EVENT(wiphy_enabled_evt, rdev_set_wakeup,
353 TP_PROTO(struct wiphy *wiphy, bool enabled),
354 TP_ARGS(wiphy, enabled)
355);
356
357TRACE_EVENT(rdev_add_virtual_intf,
358 TP_PROTO(struct wiphy *wiphy, char *name, enum nl80211_iftype type),
359 TP_ARGS(wiphy, name, type),
360 TP_STRUCT__entry(
361 WIPHY_ENTRY
362 __string(vir_intf_name, name ? name : "<noname>")
363 __field(enum nl80211_iftype, type)
364 ),
365 TP_fast_assign(
366 WIPHY_ASSIGN;
367 __assign_str(vir_intf_name, name ? name : "<noname>");
368 __entry->type = type;
369 ),
370 TP_printk(WIPHY_PR_FMT ", virtual intf name: %s, type: %d",
371 WIPHY_PR_ARG, __get_str(vir_intf_name), __entry->type)
372);
373
374DECLARE_EVENT_CLASS(wiphy_wdev_evt,
375 TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev),
376 TP_ARGS(wiphy, wdev),
377 TP_STRUCT__entry(
378 WIPHY_ENTRY
379 WDEV_ENTRY
380 ),
381 TP_fast_assign(
382 WIPHY_ASSIGN;
383 WDEV_ASSIGN;
384 ),
ec816087 385 TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, WIPHY_PR_ARG, WDEV_PR_ARG)
14e8a3c4
BL
386);
387
9bb7e0f2
JB
388DECLARE_EVENT_CLASS(wiphy_wdev_cookie_evt,
389 TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie),
390 TP_ARGS(wiphy, wdev, cookie),
391 TP_STRUCT__entry(
392 WIPHY_ENTRY
393 WDEV_ENTRY
394 __field(u64, cookie)
395 ),
396 TP_fast_assign(
397 WIPHY_ASSIGN;
398 WDEV_ASSIGN;
399 __entry->cookie = cookie;
400 ),
401 TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie: %lld",
402 WIPHY_PR_ARG, WDEV_PR_ARG,
403 (unsigned long long)__entry->cookie)
404);
405
14e8a3c4
BL
406DEFINE_EVENT(wiphy_wdev_evt, rdev_return_wdev,
407 TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev),
408 TP_ARGS(wiphy, wdev)
409);
410
411DEFINE_EVENT(wiphy_wdev_evt, rdev_del_virtual_intf,
412 TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev),
413 TP_ARGS(wiphy, wdev)
414);
415
416TRACE_EVENT(rdev_change_virtual_intf,
417 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
418 enum nl80211_iftype type),
419 TP_ARGS(wiphy, netdev, type),
420 TP_STRUCT__entry(
421 WIPHY_ENTRY
422 NETDEV_ENTRY
423 __field(enum nl80211_iftype, type)
424 ),
425 TP_fast_assign(
426 WIPHY_ASSIGN;
427 NETDEV_ASSIGN;
428 __entry->type = type;
429 ),
ec816087 430 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", type: %d",
14e8a3c4
BL
431 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->type)
432);
433
434DECLARE_EVENT_CLASS(key_handle,
e7a7b84e
VJ
435 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id,
436 u8 key_index, bool pairwise, const u8 *mac_addr),
437 TP_ARGS(wiphy, netdev, link_id, key_index, pairwise, mac_addr),
14e8a3c4
BL
438 TP_STRUCT__entry(
439 WIPHY_ENTRY
440 NETDEV_ENTRY
441 MAC_ENTRY(mac_addr)
e7a7b84e 442 __field(int, link_id)
14e8a3c4
BL
443 __field(u8, key_index)
444 __field(bool, pairwise)
445 ),
446 TP_fast_assign(
447 WIPHY_ASSIGN;
448 NETDEV_ASSIGN;
449 MAC_ASSIGN(mac_addr, mac_addr);
e7a7b84e 450 __entry->link_id = link_id;
14e8a3c4
BL
451 __entry->key_index = key_index;
452 __entry->pairwise = pairwise;
453 ),
e7a7b84e 454 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, "
3d9c3617 455 "key_index: %u, pairwise: %s, mac addr: %pM",
e7a7b84e
VJ
456 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id,
457 __entry->key_index, BOOL_TO_STR(__entry->pairwise),
3d9c3617 458 __entry->mac_addr)
14e8a3c4
BL
459);
460
6cdd3979 461DEFINE_EVENT(key_handle, rdev_get_key,
e7a7b84e
VJ
462 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id,
463 u8 key_index, bool pairwise, const u8 *mac_addr),
464 TP_ARGS(wiphy, netdev, link_id, key_index, pairwise, mac_addr)
14e8a3c4
BL
465);
466
6cdd3979 467DEFINE_EVENT(key_handle, rdev_del_key,
e7a7b84e
VJ
468 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id,
469 u8 key_index, bool pairwise, const u8 *mac_addr),
470 TP_ARGS(wiphy, netdev, link_id, key_index, pairwise, mac_addr)
14e8a3c4
BL
471);
472
6cdd3979 473TRACE_EVENT(rdev_add_key,
e7a7b84e
VJ
474 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id,
475 u8 key_index, bool pairwise, const u8 *mac_addr, u8 mode),
476 TP_ARGS(wiphy, netdev, link_id, key_index, pairwise, mac_addr, mode),
6cdd3979
AW
477 TP_STRUCT__entry(
478 WIPHY_ENTRY
479 NETDEV_ENTRY
480 MAC_ENTRY(mac_addr)
e7a7b84e 481 __field(int, link_id)
6cdd3979
AW
482 __field(u8, key_index)
483 __field(bool, pairwise)
484 __field(u8, mode)
485 ),
486 TP_fast_assign(
487 WIPHY_ASSIGN;
488 NETDEV_ASSIGN;
489 MAC_ASSIGN(mac_addr, mac_addr);
e7a7b84e 490 __entry->link_id = link_id;
6cdd3979
AW
491 __entry->key_index = key_index;
492 __entry->pairwise = pairwise;
493 __entry->mode = mode;
494 ),
e7a7b84e
VJ
495 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, "
496 "key_index: %u, mode: %u, pairwise: %s, "
3d9c3617 497 "mac addr: %pM",
e7a7b84e
VJ
498 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id,
499 __entry->key_index, __entry->mode,
3d9c3617 500 BOOL_TO_STR(__entry->pairwise), __entry->mac_addr)
14e8a3c4
BL
501);
502
503TRACE_EVENT(rdev_set_default_key,
e7a7b84e
VJ
504 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id,
505 u8 key_index, bool unicast, bool multicast),
506 TP_ARGS(wiphy, netdev, link_id, key_index, unicast, multicast),
14e8a3c4
BL
507 TP_STRUCT__entry(
508 WIPHY_ENTRY
509 NETDEV_ENTRY
e7a7b84e 510 __field(int, link_id)
14e8a3c4
BL
511 __field(u8, key_index)
512 __field(bool, unicast)
513 __field(bool, multicast)
514 ),
515 TP_fast_assign(
516 WIPHY_ASSIGN;
517 NETDEV_ASSIGN;
e7a7b84e 518 __entry->link_id = link_id;
14e8a3c4
BL
519 __entry->key_index = key_index;
520 __entry->unicast = unicast;
521 __entry->multicast = multicast;
522 ),
e7a7b84e
VJ
523 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, "
524 "key index: %u, unicast: %s, multicast: %s",
525 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id,
526 __entry->key_index, BOOL_TO_STR(__entry->unicast),
14e8a3c4
BL
527 BOOL_TO_STR(__entry->multicast))
528);
529
530TRACE_EVENT(rdev_set_default_mgmt_key,
e7a7b84e
VJ
531 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id,
532 u8 key_index),
533 TP_ARGS(wiphy, netdev, link_id, key_index),
56be393f
JM
534 TP_STRUCT__entry(
535 WIPHY_ENTRY
536 NETDEV_ENTRY
e7a7b84e 537 __field(int, link_id)
56be393f
JM
538 __field(u8, key_index)
539 ),
540 TP_fast_assign(
541 WIPHY_ASSIGN;
542 NETDEV_ASSIGN;
e7a7b84e 543 __entry->link_id = link_id;
56be393f
JM
544 __entry->key_index = key_index;
545 ),
e7a7b84e
VJ
546 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, "
547 "key index: %u", WIPHY_PR_ARG, NETDEV_PR_ARG,
548 __entry->link_id, __entry->key_index)
56be393f
JM
549);
550
551TRACE_EVENT(rdev_set_default_beacon_key,
e7a7b84e
VJ
552 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id,
553 u8 key_index),
554 TP_ARGS(wiphy, netdev, link_id, key_index),
14e8a3c4
BL
555 TP_STRUCT__entry(
556 WIPHY_ENTRY
557 NETDEV_ENTRY
e7a7b84e 558 __field(int, link_id)
14e8a3c4
BL
559 __field(u8, key_index)
560 ),
561 TP_fast_assign(
562 WIPHY_ASSIGN;
563 NETDEV_ASSIGN;
e7a7b84e 564 __entry->link_id = link_id;
14e8a3c4
BL
565 __entry->key_index = key_index;
566 ),
e7a7b84e
VJ
567 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, "
568 "key index: %u", WIPHY_PR_ARG, NETDEV_PR_ARG,
569 __entry->link_id, __entry->key_index)
14e8a3c4
BL
570);
571
572TRACE_EVENT(rdev_start_ap,
573 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
574 struct cfg80211_ap_settings *settings),
575 TP_ARGS(wiphy, netdev, settings),
576 TP_STRUCT__entry(
577 WIPHY_ENTRY
578 NETDEV_ENTRY
683b6d3b 579 CHAN_DEF_ENTRY
14e8a3c4
BL
580 __field(int, beacon_interval)
581 __field(int, dtim_period)
582 __array(char, ssid, IEEE80211_MAX_SSID_LEN + 1)
583 __field(enum nl80211_hidden_ssid, hidden_ssid)
584 __field(u32, wpa_ver)
585 __field(bool, privacy)
586 __field(enum nl80211_auth_type, auth_type)
587 __field(int, inactivity_timeout)
7b0a0e3c 588 __field(unsigned int, link_id)
14e8a3c4
BL
589 ),
590 TP_fast_assign(
591 WIPHY_ASSIGN;
592 NETDEV_ASSIGN;
683b6d3b 593 CHAN_DEF_ASSIGN(&settings->chandef);
14e8a3c4
BL
594 __entry->beacon_interval = settings->beacon_interval;
595 __entry->dtim_period = settings->dtim_period;
596 __entry->hidden_ssid = settings->hidden_ssid;
597 __entry->wpa_ver = settings->crypto.wpa_versions;
598 __entry->privacy = settings->privacy;
599 __entry->auth_type = settings->auth_type;
600 __entry->inactivity_timeout = settings->inactivity_timeout;
601 memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1);
602 memcpy(__entry->ssid, settings->ssid, settings->ssid_len);
7b0a0e3c 603 __entry->link_id = settings->beacon.link_id;
14e8a3c4 604 ),
ec816087 605 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", AP settings - ssid: %s, "
683b6d3b 606 CHAN_DEF_PR_FMT ", beacon interval: %d, dtim period: %d, "
14e8a3c4 607 "hidden ssid: %d, wpa versions: %u, privacy: %s, "
7b0a0e3c 608 "auth type: %d, inactivity timeout: %d, link_id: %d",
683b6d3b 609 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->ssid, CHAN_DEF_PR_ARG,
14e8a3c4
BL
610 __entry->beacon_interval, __entry->dtim_period,
611 __entry->hidden_ssid, __entry->wpa_ver,
612 BOOL_TO_STR(__entry->privacy), __entry->auth_type,
7b0a0e3c 613 __entry->inactivity_timeout, __entry->link_id)
14e8a3c4
BL
614);
615
616TRACE_EVENT(rdev_change_beacon,
617 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
66f85d57 618 struct cfg80211_ap_settings *info),
14e8a3c4
BL
619 TP_ARGS(wiphy, netdev, info),
620 TP_STRUCT__entry(
621 WIPHY_ENTRY
622 NETDEV_ENTRY
7b0a0e3c 623 __field(int, link_id)
66f85d57
AD
624 __dynamic_array(u8, head, info->beacon.head_len)
625 __dynamic_array(u8, tail, info->beacon.tail_len)
626 __dynamic_array(u8, beacon_ies, info->beacon.beacon_ies_len)
627 __dynamic_array(u8, proberesp_ies, info->beacon.proberesp_ies_len)
628 __dynamic_array(u8, assocresp_ies, info->beacon.assocresp_ies_len)
629 __dynamic_array(u8, probe_resp, info->beacon.probe_resp_len)
14e8a3c4
BL
630 ),
631 TP_fast_assign(
632 WIPHY_ASSIGN;
633 NETDEV_ASSIGN;
66f85d57
AD
634 __entry->link_id = info->beacon.link_id;
635 if (info->beacon.head)
636 memcpy(__get_dynamic_array(head),
637 info->beacon.head,
638 info->beacon.head_len);
639 if (info->beacon.tail)
640 memcpy(__get_dynamic_array(tail),
641 info->beacon.tail,
642 info->beacon.tail_len);
643 if (info->beacon.beacon_ies)
644 memcpy(__get_dynamic_array(beacon_ies),
645 info->beacon.beacon_ies,
646 info->beacon.beacon_ies_len);
647 if (info->beacon.proberesp_ies)
648 memcpy(__get_dynamic_array(proberesp_ies),
649 info->beacon.proberesp_ies,
650 info->beacon.proberesp_ies_len);
651 if (info->beacon.assocresp_ies)
652 memcpy(__get_dynamic_array(assocresp_ies),
653 info->beacon.assocresp_ies,
654 info->beacon.assocresp_ies_len);
655 if (info->beacon.probe_resp)
656 memcpy(__get_dynamic_array(probe_resp),
657 info->beacon.probe_resp,
658 info->beacon.probe_resp_len);
14e8a3c4 659 ),
7b0a0e3c
JB
660 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id:%d",
661 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id)
662);
663
664TRACE_EVENT(rdev_stop_ap,
665 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
666 unsigned int link_id),
667 TP_ARGS(wiphy, netdev, link_id),
668 TP_STRUCT__entry(
669 WIPHY_ENTRY
670 NETDEV_ENTRY
671 __field(unsigned int, link_id)
672 ),
673 TP_fast_assign(
674 WIPHY_ASSIGN;
675 NETDEV_ASSIGN;
676 __entry->link_id = link_id;
677 ),
678 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d",
679 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id)
14e8a3c4
BL
680);
681
682DECLARE_EVENT_CLASS(wiphy_netdev_evt,
683 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev),
684 TP_ARGS(wiphy, netdev),
685 TP_STRUCT__entry(
686 WIPHY_ENTRY
687 NETDEV_ENTRY
688 ),
689 TP_fast_assign(
690 WIPHY_ASSIGN;
691 NETDEV_ASSIGN;
692 ),
ec816087 693 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, WIPHY_PR_ARG, NETDEV_PR_ARG)
14e8a3c4
BL
694);
695
14e8a3c4
BL
696DEFINE_EVENT(wiphy_netdev_evt, rdev_set_rekey_data,
697 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev),
698 TP_ARGS(wiphy, netdev)
699);
700
701DEFINE_EVENT(wiphy_netdev_evt, rdev_get_mesh_config,
702 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev),
703 TP_ARGS(wiphy, netdev)
704);
705
706DEFINE_EVENT(wiphy_netdev_evt, rdev_leave_mesh,
707 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev),
708 TP_ARGS(wiphy, netdev)
709);
710
711DEFINE_EVENT(wiphy_netdev_evt, rdev_leave_ibss,
712 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev),
713 TP_ARGS(wiphy, netdev)
714);
715
6e0bd6c3
RL
716DEFINE_EVENT(wiphy_netdev_evt, rdev_leave_ocb,
717 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev),
718 TP_ARGS(wiphy, netdev)
719);
720
14e8a3c4
BL
721DEFINE_EVENT(wiphy_netdev_evt, rdev_flush_pmksa,
722 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev),
723 TP_ARGS(wiphy, netdev)
724);
725
26ec17a1
OM
726DEFINE_EVENT(wiphy_netdev_evt, rdev_end_cac,
727 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev),
728 TP_ARGS(wiphy, netdev)
729);
730
14e8a3c4
BL
731DECLARE_EVENT_CLASS(station_add_change,
732 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *mac,
733 struct station_parameters *params),
734 TP_ARGS(wiphy, netdev, mac, params),
735 TP_STRUCT__entry(
736 WIPHY_ENTRY
737 NETDEV_ENTRY
738 MAC_ENTRY(sta_mac)
739 __field(u32, sta_flags_mask)
740 __field(u32, sta_flags_set)
741 __field(u32, sta_modify_mask)
742 __field(int, listen_interval)
6e045905 743 __field(u16, capability)
14e8a3c4
BL
744 __field(u16, aid)
745 __field(u8, plink_action)
746 __field(u8, plink_state)
747 __field(u8, uapsd_queues)
6e045905
JB
748 __field(u8, max_sp)
749 __field(u8, opmode_notif)
750 __field(bool, opmode_notif_used)
14e8a3c4 751 __array(u8, ht_capa, (int)sizeof(struct ieee80211_ht_cap))
6e045905 752 __array(u8, vht_capa, (int)sizeof(struct ieee80211_vht_cap))
5d8325ec 753 __array(char, vlan, IFNAMSIZ)
6e045905 754 __dynamic_array(u8, supported_rates,
b95eb7f0 755 params->link_sta_params.supported_rates_len)
6e045905
JB
756 __dynamic_array(u8, ext_capab, params->ext_capab_len)
757 __dynamic_array(u8, supported_channels,
758 params->supported_channels_len)
759 __dynamic_array(u8, supported_oper_classes,
760 params->supported_oper_classes_len)
14e8a3c4
BL
761 ),
762 TP_fast_assign(
763 WIPHY_ASSIGN;
764 NETDEV_ASSIGN;
765 MAC_ASSIGN(sta_mac, mac);
766 __entry->sta_flags_mask = params->sta_flags_mask;
767 __entry->sta_flags_set = params->sta_flags_set;
768 __entry->sta_modify_mask = params->sta_modify_mask;
769 __entry->listen_interval = params->listen_interval;
770 __entry->aid = params->aid;
771 __entry->plink_action = params->plink_action;
772 __entry->plink_state = params->plink_state;
773 __entry->uapsd_queues = params->uapsd_queues;
774 memset(__entry->ht_capa, 0, sizeof(struct ieee80211_ht_cap));
b95eb7f0
ST
775 if (params->link_sta_params.ht_capa)
776 memcpy(__entry->ht_capa,
777 params->link_sta_params.ht_capa,
14e8a3c4 778 sizeof(struct ieee80211_ht_cap));
6e045905 779 memset(__entry->vht_capa, 0, sizeof(struct ieee80211_vht_cap));
b95eb7f0
ST
780 if (params->link_sta_params.vht_capa)
781 memcpy(__entry->vht_capa,
782 params->link_sta_params.vht_capa,
6e045905 783 sizeof(struct ieee80211_vht_cap));
5d8325ec
JB
784 memset(__entry->vlan, 0, sizeof(__entry->vlan));
785 if (params->vlan)
786 memcpy(__entry->vlan, params->vlan->name, IFNAMSIZ);
b95eb7f0
ST
787 if (params->link_sta_params.supported_rates &&
788 params->link_sta_params.supported_rates_len)
6e045905 789 memcpy(__get_dynamic_array(supported_rates),
b95eb7f0
ST
790 params->link_sta_params.supported_rates,
791 params->link_sta_params.supported_rates_len);
6e045905
JB
792 if (params->ext_capab && params->ext_capab_len)
793 memcpy(__get_dynamic_array(ext_capab),
794 params->ext_capab,
795 params->ext_capab_len);
796 if (params->supported_channels &&
797 params->supported_channels_len)
798 memcpy(__get_dynamic_array(supported_channels),
799 params->supported_channels,
800 params->supported_channels_len);
801 if (params->supported_oper_classes &&
802 params->supported_oper_classes_len)
803 memcpy(__get_dynamic_array(supported_oper_classes),
804 params->supported_oper_classes,
805 params->supported_oper_classes_len);
806 __entry->max_sp = params->max_sp;
807 __entry->capability = params->capability;
b95eb7f0
ST
808 __entry->opmode_notif = params->link_sta_params.opmode_notif;
809 __entry->opmode_notif_used =
810 params->link_sta_params.opmode_notif_used;
14e8a3c4 811 ),
3d9c3617 812 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM"
14e8a3c4
BL
813 ", station flags mask: %u, station flags set: %u, "
814 "station modify mask: %u, listen interval: %d, aid: %u, "
5d8325ec 815 "plink action: %u, plink state: %u, uapsd queues: %u, vlan:%s",
3d9c3617 816 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->sta_mac,
14e8a3c4
BL
817 __entry->sta_flags_mask, __entry->sta_flags_set,
818 __entry->sta_modify_mask, __entry->listen_interval,
819 __entry->aid, __entry->plink_action, __entry->plink_state,
5d8325ec 820 __entry->uapsd_queues, __entry->vlan)
14e8a3c4
BL
821);
822
823DEFINE_EVENT(station_add_change, rdev_add_station,
824 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *mac,
825 struct station_parameters *params),
826 TP_ARGS(wiphy, netdev, mac, params)
827);
828
829DEFINE_EVENT(station_add_change, rdev_change_station,
830 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *mac,
831 struct station_parameters *params),
832 TP_ARGS(wiphy, netdev, mac, params)
833);
834
835DECLARE_EVENT_CLASS(wiphy_netdev_mac_evt,
836 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *mac),
837 TP_ARGS(wiphy, netdev, mac),
838 TP_STRUCT__entry(
839 WIPHY_ENTRY
840 NETDEV_ENTRY
841 MAC_ENTRY(sta_mac)
842 ),
843 TP_fast_assign(
844 WIPHY_ASSIGN;
845 NETDEV_ASSIGN;
846 MAC_ASSIGN(sta_mac, mac);
847 ),
3d9c3617
JB
848 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", mac: %pM",
849 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->sta_mac)
14e8a3c4
BL
850);
851
89c771e5
JM
852DECLARE_EVENT_CLASS(station_del,
853 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
854 struct station_del_parameters *params),
855 TP_ARGS(wiphy, netdev, params),
856 TP_STRUCT__entry(
857 WIPHY_ENTRY
858 NETDEV_ENTRY
859 MAC_ENTRY(sta_mac)
98856866
JM
860 __field(u8, subtype)
861 __field(u16, reason_code)
89c771e5
JM
862 ),
863 TP_fast_assign(
864 WIPHY_ASSIGN;
865 NETDEV_ASSIGN;
866 MAC_ASSIGN(sta_mac, params->mac);
98856866
JM
867 __entry->subtype = params->subtype;
868 __entry->reason_code = params->reason_code;
89c771e5 869 ),
3d9c3617 870 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM"
98856866 871 ", subtype: %u, reason_code: %u",
3d9c3617 872 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->sta_mac,
98856866 873 __entry->subtype, __entry->reason_code)
89c771e5
JM
874);
875
876DEFINE_EVENT(station_del, rdev_del_station,
877 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
878 struct station_del_parameters *params),
879 TP_ARGS(wiphy, netdev, params)
14e8a3c4
BL
880);
881
882DEFINE_EVENT(wiphy_netdev_mac_evt, rdev_get_station,
883 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *mac),
884 TP_ARGS(wiphy, netdev, mac)
885);
886
887DEFINE_EVENT(wiphy_netdev_mac_evt, rdev_del_mpath,
888 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *mac),
889 TP_ARGS(wiphy, netdev, mac)
890);
891
14e8a3c4 892TRACE_EVENT(rdev_dump_station,
aaaa10e0 893 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int _idx,
14e8a3c4 894 u8 *mac),
aaaa10e0 895 TP_ARGS(wiphy, netdev, _idx, mac),
14e8a3c4
BL
896 TP_STRUCT__entry(
897 WIPHY_ENTRY
898 NETDEV_ENTRY
899 MAC_ENTRY(sta_mac)
900 __field(int, idx)
901 ),
902 TP_fast_assign(
903 WIPHY_ASSIGN;
904 NETDEV_ASSIGN;
905 MAC_ASSIGN(sta_mac, mac);
aaaa10e0 906 __entry->idx = _idx;
14e8a3c4 907 ),
3d9c3617
JB
908 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM, idx: %d",
909 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->sta_mac,
14e8a3c4
BL
910 __entry->idx)
911);
912
913TRACE_EVENT(rdev_return_int_station_info,
914 TP_PROTO(struct wiphy *wiphy, int ret, struct station_info *sinfo),
915 TP_ARGS(wiphy, ret, sinfo),
916 TP_STRUCT__entry(
917 WIPHY_ENTRY
918 __field(int, ret)
919 SINFO_ENTRY
920 ),
921 TP_fast_assign(
922 WIPHY_ASSIGN;
923 __entry->ret = ret;
924 SINFO_ASSIGN;
925 ),
926 TP_printk(WIPHY_PR_FMT ", returned %d" ,
927 WIPHY_PR_ARG, __entry->ret)
928);
929
930DECLARE_EVENT_CLASS(mpath_evt,
931 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst,
932 u8 *next_hop),
933 TP_ARGS(wiphy, netdev, dst, next_hop),
934 TP_STRUCT__entry(
935 WIPHY_ENTRY
936 NETDEV_ENTRY
937 MAC_ENTRY(dst)
938 MAC_ENTRY(next_hop)
939 ),
940 TP_fast_assign(
941 WIPHY_ASSIGN;
942 NETDEV_ASSIGN;
943 MAC_ASSIGN(dst, dst);
944 MAC_ASSIGN(next_hop, next_hop);
945 ),
3d9c3617
JB
946 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", destination: %pM, next hop: %pM",
947 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->dst,
948 __entry->next_hop)
14e8a3c4
BL
949);
950
951DEFINE_EVENT(mpath_evt, rdev_add_mpath,
952 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst,
953 u8 *next_hop),
954 TP_ARGS(wiphy, netdev, dst, next_hop)
955);
956
957DEFINE_EVENT(mpath_evt, rdev_change_mpath,
958 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst,
959 u8 *next_hop),
960 TP_ARGS(wiphy, netdev, dst, next_hop)
961);
962
963DEFINE_EVENT(mpath_evt, rdev_get_mpath,
964 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst,
965 u8 *next_hop),
966 TP_ARGS(wiphy, netdev, dst, next_hop)
967);
968
969TRACE_EVENT(rdev_dump_mpath,
aaaa10e0 970 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int _idx,
14e8a3c4 971 u8 *dst, u8 *next_hop),
aaaa10e0 972 TP_ARGS(wiphy, netdev, _idx, dst, next_hop),
14e8a3c4
BL
973 TP_STRUCT__entry(
974 WIPHY_ENTRY
975 NETDEV_ENTRY
976 MAC_ENTRY(dst)
977 MAC_ENTRY(next_hop)
978 __field(int, idx)
979 ),
980 TP_fast_assign(
981 WIPHY_ASSIGN;
982 NETDEV_ASSIGN;
983 MAC_ASSIGN(dst, dst);
984 MAC_ASSIGN(next_hop, next_hop);
aaaa10e0 985 __entry->idx = _idx;
14e8a3c4 986 ),
3d9c3617
JB
987 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d, destination: %pM, next hop: %pM",
988 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx, __entry->dst,
989 __entry->next_hop)
14e8a3c4
BL
990);
991
66be7d2b
HR
992TRACE_EVENT(rdev_get_mpp,
993 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
994 u8 *dst, u8 *mpp),
995 TP_ARGS(wiphy, netdev, dst, mpp),
996 TP_STRUCT__entry(
997 WIPHY_ENTRY
998 NETDEV_ENTRY
999 MAC_ENTRY(dst)
1000 MAC_ENTRY(mpp)
1001 ),
1002 TP_fast_assign(
1003 WIPHY_ASSIGN;
1004 NETDEV_ASSIGN;
1005 MAC_ASSIGN(dst, dst);
1006 MAC_ASSIGN(mpp, mpp);
1007 ),
3d9c3617
JB
1008 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", destination: %pM"
1009 ", mpp: %pM", WIPHY_PR_ARG, NETDEV_PR_ARG,
1010 __entry->dst, __entry->mpp)
66be7d2b
HR
1011);
1012
1013TRACE_EVENT(rdev_dump_mpp,
aaaa10e0 1014 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int _idx,
66be7d2b 1015 u8 *dst, u8 *mpp),
aaaa10e0 1016 TP_ARGS(wiphy, netdev, _idx, mpp, dst),
66be7d2b
HR
1017 TP_STRUCT__entry(
1018 WIPHY_ENTRY
1019 NETDEV_ENTRY
1020 MAC_ENTRY(dst)
1021 MAC_ENTRY(mpp)
1022 __field(int, idx)
1023 ),
1024 TP_fast_assign(
1025 WIPHY_ASSIGN;
1026 NETDEV_ASSIGN;
1027 MAC_ASSIGN(dst, dst);
1028 MAC_ASSIGN(mpp, mpp);
aaaa10e0 1029 __entry->idx = _idx;
66be7d2b 1030 ),
3d9c3617
JB
1031 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d, destination: %pM, mpp: %pM",
1032 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx, __entry->dst,
1033 __entry->mpp)
66be7d2b
HR
1034);
1035
14e8a3c4
BL
1036TRACE_EVENT(rdev_return_int_mpath_info,
1037 TP_PROTO(struct wiphy *wiphy, int ret, struct mpath_info *pinfo),
1038 TP_ARGS(wiphy, ret, pinfo),
1039 TP_STRUCT__entry(
1040 WIPHY_ENTRY
1041 __field(int, ret)
1042 __field(int, generation)
1043 __field(u32, filled)
1044 __field(u32, frame_qlen)
1045 __field(u32, sn)
1046 __field(u32, metric)
1047 __field(u32, exptime)
1048 __field(u32, discovery_timeout)
1049 __field(u8, discovery_retries)
1050 __field(u8, flags)
1051 ),
1052 TP_fast_assign(
1053 WIPHY_ASSIGN;
1054 __entry->ret = ret;
1055 __entry->generation = pinfo->generation;
1056 __entry->filled = pinfo->filled;
1057 __entry->frame_qlen = pinfo->frame_qlen;
1058 __entry->sn = pinfo->sn;
1059 __entry->metric = pinfo->metric;
1060 __entry->exptime = pinfo->exptime;
1061 __entry->discovery_timeout = pinfo->discovery_timeout;
1062 __entry->discovery_retries = pinfo->discovery_retries;
1063 __entry->flags = pinfo->flags;
1064 ),
1065 TP_printk(WIPHY_PR_FMT ", returned %d. mpath info - generation: %d, "
1066 "filled: %u, frame qlen: %u, sn: %u, metric: %u, exptime: %u,"
1067 " discovery timeout: %u, discovery retries: %u, flags: %u",
1068 WIPHY_PR_ARG, __entry->ret, __entry->generation,
1069 __entry->filled, __entry->frame_qlen, __entry->sn,
1070 __entry->metric, __entry->exptime, __entry->discovery_timeout,
1071 __entry->discovery_retries, __entry->flags)
1072);
1073
1074TRACE_EVENT(rdev_return_int_mesh_config,
1075 TP_PROTO(struct wiphy *wiphy, int ret, struct mesh_config *conf),
1076 TP_ARGS(wiphy, ret, conf),
1077 TP_STRUCT__entry(
1078 WIPHY_ENTRY
1079 MESH_CFG_ENTRY
1080 __field(int, ret)
1081 ),
1082 TP_fast_assign(
1083 WIPHY_ASSIGN;
1084 MESH_CFG_ASSIGN;
1085 __entry->ret = ret;
1086 ),
1087 TP_printk(WIPHY_PR_FMT ", returned: %d",
1088 WIPHY_PR_ARG, __entry->ret)
1089);
1090
1091TRACE_EVENT(rdev_update_mesh_config,
1092 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u32 mask,
1093 const struct mesh_config *conf),
1094 TP_ARGS(wiphy, netdev, mask, conf),
1095 TP_STRUCT__entry(
1096 WIPHY_ENTRY
1097 NETDEV_ENTRY
1098 MESH_CFG_ENTRY
1099 __field(u32, mask)
1100 ),
1101 TP_fast_assign(
1102 WIPHY_ASSIGN;
1103 NETDEV_ASSIGN;
1104 MESH_CFG_ASSIGN;
1105 __entry->mask = mask;
1106 ),
ec816087 1107 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", mask: %u",
14e8a3c4
BL
1108 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->mask)
1109);
1110
1111TRACE_EVENT(rdev_join_mesh,
1112 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
1113 const struct mesh_config *conf,
1114 const struct mesh_setup *setup),
1115 TP_ARGS(wiphy, netdev, conf, setup),
1116 TP_STRUCT__entry(
1117 WIPHY_ENTRY
1118 NETDEV_ENTRY
1119 MESH_CFG_ENTRY
1120 ),
1121 TP_fast_assign(
1122 WIPHY_ASSIGN;
1123 NETDEV_ASSIGN;
1124 MESH_CFG_ASSIGN;
1125 ),
ec816087 1126 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT,
14e8a3c4
BL
1127 WIPHY_PR_ARG, NETDEV_PR_ARG)
1128);
1129
1130TRACE_EVENT(rdev_change_bss,
1131 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
1132 struct bss_parameters *params),
1133 TP_ARGS(wiphy, netdev, params),
1134 TP_STRUCT__entry(
1135 WIPHY_ENTRY
1136 NETDEV_ENTRY
1137 __field(int, use_cts_prot)
1138 __field(int, use_short_preamble)
1139 __field(int, use_short_slot_time)
1140 __field(int, ap_isolate)
1141 __field(int, ht_opmode)
1142 ),
1143 TP_fast_assign(
1144 WIPHY_ASSIGN;
1145 NETDEV_ASSIGN;
1146 __entry->use_cts_prot = params->use_cts_prot;
1147 __entry->use_short_preamble = params->use_short_preamble;
1148 __entry->use_short_slot_time = params->use_short_slot_time;
1149 __entry->ap_isolate = params->ap_isolate;
1150 __entry->ht_opmode = params->ht_opmode;
1151 ),
ec816087 1152 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", use cts prot: %d, "
14e8a3c4
BL
1153 "use short preamble: %d, use short slot time: %d, "
1154 "ap isolate: %d, ht opmode: %d",
1155 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->use_cts_prot,
1156 __entry->use_short_preamble, __entry->use_short_slot_time,
1157 __entry->ap_isolate, __entry->ht_opmode)
1158);
1159
5db25290
BB
1160TRACE_EVENT(rdev_inform_bss,
1161 TP_PROTO(struct wiphy *wiphy, struct cfg80211_bss *bss),
1162 TP_ARGS(wiphy, bss),
1163 TP_STRUCT__entry(
1164 WIPHY_ENTRY
1165 MAC_ENTRY(bssid)
1166 CHAN_ENTRY
1167 ),
1168 TP_fast_assign(
1169 WIPHY_ASSIGN;
1170 MAC_ASSIGN(bssid, bss->bssid);
1171 CHAN_ASSIGN(bss->channel);
1172 ),
1173 TP_printk(WIPHY_PR_FMT ", %pM, " CHAN_PR_FMT,
1174 WIPHY_PR_ARG, __entry->bssid, CHAN_PR_ARG)
1175);
1176
14e8a3c4
BL
1177TRACE_EVENT(rdev_set_txq_params,
1178 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
1179 struct ieee80211_txq_params *params),
1180 TP_ARGS(wiphy, netdev, params),
1181 TP_STRUCT__entry(
1182 WIPHY_ENTRY
1183 NETDEV_ENTRY
1184 __field(enum nl80211_ac, ac)
1185 __field(u16, txop)
1186 __field(u16, cwmin)
1187 __field(u16, cwmax)
1188 __field(u8, aifs)
1189 ),
1190 TP_fast_assign(
1191 WIPHY_ASSIGN;
1192 NETDEV_ASSIGN;
1193 __entry->ac = params->ac;
1194 __entry->txop = params->txop;
1195 __entry->cwmin = params->cwmin;
1196 __entry->cwmax = params->cwmax;
1197 __entry->aifs = params->aifs;
1198 ),
ec816087 1199 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", ac: %d, txop: %u, cwmin: %u, cwmax: %u, aifs: %u",
14e8a3c4
BL
1200 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->ac, __entry->txop,
1201 __entry->cwmin, __entry->cwmax, __entry->aifs)
1202);
1203
1204TRACE_EVENT(rdev_libertas_set_mesh_channel,
1205 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
1206 struct ieee80211_channel *chan),
1207 TP_ARGS(wiphy, netdev, chan),
1208 TP_STRUCT__entry(
1209 WIPHY_ENTRY
1210 NETDEV_ENTRY
1211 CHAN_ENTRY
1212 ),
1213 TP_fast_assign(
1214 WIPHY_ASSIGN;
1215 NETDEV_ASSIGN;
1216 CHAN_ASSIGN(chan);
1217 ),
ec816087 1218 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_PR_FMT, WIPHY_PR_ARG,
14e8a3c4
BL
1219 NETDEV_PR_ARG, CHAN_PR_ARG)
1220);
1221
1222TRACE_EVENT(rdev_set_monitor_channel,
683b6d3b
JB
1223 TP_PROTO(struct wiphy *wiphy,
1224 struct cfg80211_chan_def *chandef),
1225 TP_ARGS(wiphy, chandef),
14e8a3c4
BL
1226 TP_STRUCT__entry(
1227 WIPHY_ENTRY
683b6d3b 1228 CHAN_DEF_ENTRY
14e8a3c4
BL
1229 ),
1230 TP_fast_assign(
1231 WIPHY_ASSIGN;
683b6d3b 1232 CHAN_DEF_ASSIGN(chandef);
14e8a3c4 1233 ),
ec816087 1234 TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT,
683b6d3b 1235 WIPHY_PR_ARG, CHAN_DEF_PR_ARG)
14e8a3c4
BL
1236);
1237
1238TRACE_EVENT(rdev_auth,
1239 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
1240 struct cfg80211_auth_request *req),
1241 TP_ARGS(wiphy, netdev, req),
1242 TP_STRUCT__entry(
1243 WIPHY_ENTRY
1244 NETDEV_ENTRY
1245 MAC_ENTRY(bssid)
1246 __field(enum nl80211_auth_type, auth_type)
1247 ),
1248 TP_fast_assign(
1249 WIPHY_ASSIGN;
1250 NETDEV_ASSIGN;
1251 if (req->bss)
1252 MAC_ASSIGN(bssid, req->bss->bssid);
1253 else
d2beae10 1254 eth_zero_addr(__entry->bssid);
14e8a3c4
BL
1255 __entry->auth_type = req->auth_type;
1256 ),
3d9c3617 1257 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", auth type: %d, bssid: %pM",
14e8a3c4 1258 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->auth_type,
3d9c3617 1259 __entry->bssid)
14e8a3c4
BL
1260);
1261
1262TRACE_EVENT(rdev_assoc,
1263 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
1d4c0f04
JB
1264 struct cfg80211_assoc_request *req),
1265 TP_ARGS(wiphy, netdev, req),
14e8a3c4
BL
1266 TP_STRUCT__entry(
1267 WIPHY_ENTRY
1268 NETDEV_ENTRY
1269 MAC_ENTRY(bssid)
1270 MAC_ENTRY(prev_bssid)
1271 __field(bool, use_mfp)
1272 __field(u32, flags)
64a87472
JB
1273 __dynamic_array(u8, elements, req->ie_len)
1274 __array(u8, ht_capa, sizeof(struct ieee80211_ht_cap))
1275 __array(u8, ht_capa_mask, sizeof(struct ieee80211_ht_cap))
1276 __array(u8, vht_capa, sizeof(struct ieee80211_vht_cap))
1277 __array(u8, vht_capa_mask, sizeof(struct ieee80211_vht_cap))
1278 __dynamic_array(u8, fils_kek, req->fils_kek_len)
1279 __dynamic_array(u8, fils_nonces,
1280 req->fils_nonces ? 2 * FILS_NONCE_LEN : 0)
14e8a3c4
BL
1281 ),
1282 TP_fast_assign(
1283 WIPHY_ASSIGN;
1284 NETDEV_ASSIGN;
1285 if (req->bss)
1286 MAC_ASSIGN(bssid, req->bss->bssid);
1287 else
d2beae10 1288 eth_zero_addr(__entry->bssid);
14e8a3c4
BL
1289 MAC_ASSIGN(prev_bssid, req->prev_bssid);
1290 __entry->use_mfp = req->use_mfp;
1291 __entry->flags = req->flags;
64a87472
JB
1292 if (req->ie)
1293 memcpy(__get_dynamic_array(elements),
1294 req->ie, req->ie_len);
1295 memcpy(__entry->ht_capa, &req->ht_capa, sizeof(req->ht_capa));
1296 memcpy(__entry->ht_capa_mask, &req->ht_capa_mask,
1297 sizeof(req->ht_capa_mask));
1298 memcpy(__entry->vht_capa, &req->vht_capa, sizeof(req->vht_capa));
1299 memcpy(__entry->vht_capa_mask, &req->vht_capa_mask,
1300 sizeof(req->vht_capa_mask));
1301 if (req->fils_kek)
1302 memcpy(__get_dynamic_array(fils_kek),
1303 req->fils_kek, req->fils_kek_len);
1304 if (req->fils_nonces)
1305 memcpy(__get_dynamic_array(fils_nonces),
1306 req->fils_nonces, 2 * FILS_NONCE_LEN);
14e8a3c4 1307 ),
3d9c3617
JB
1308 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM"
1309 ", previous bssid: %pM, use mfp: %s, flags: %u",
1310 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid,
1311 __entry->prev_bssid, BOOL_TO_STR(__entry->use_mfp),
14e8a3c4
BL
1312 __entry->flags)
1313);
1314
1315TRACE_EVENT(rdev_deauth,
1316 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
1317 struct cfg80211_deauth_request *req),
1318 TP_ARGS(wiphy, netdev, req),
1319 TP_STRUCT__entry(
1320 WIPHY_ENTRY
1321 NETDEV_ENTRY
1322 MAC_ENTRY(bssid)
1323 __field(u16, reason_code)
1324 ),
1325 TP_fast_assign(
1326 WIPHY_ASSIGN;
1327 NETDEV_ASSIGN;
1328 MAC_ASSIGN(bssid, req->bssid);
1329 __entry->reason_code = req->reason_code;
1330 ),
3d9c3617
JB
1331 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM, reason: %u",
1332 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid,
14e8a3c4
BL
1333 __entry->reason_code)
1334);
1335
1336TRACE_EVENT(rdev_disassoc,
1337 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
1338 struct cfg80211_disassoc_request *req),
1339 TP_ARGS(wiphy, netdev, req),
1340 TP_STRUCT__entry(
1341 WIPHY_ENTRY
1342 NETDEV_ENTRY
1343 MAC_ENTRY(bssid)
1344 __field(u16, reason_code)
1345 __field(bool, local_state_change)
1346 ),
1347 TP_fast_assign(
1348 WIPHY_ASSIGN;
1349 NETDEV_ASSIGN;
8f6e0dfc 1350 MAC_ASSIGN(bssid, req->ap_addr);
14e8a3c4
BL
1351 __entry->reason_code = req->reason_code;
1352 __entry->local_state_change = req->local_state_change;
1353 ),
3d9c3617 1354 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM"
14e8a3c4 1355 ", reason: %u, local state change: %s",
3d9c3617 1356 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid,
14e8a3c4
BL
1357 __entry->reason_code,
1358 BOOL_TO_STR(__entry->local_state_change))
1359);
1360
1361TRACE_EVENT(rdev_mgmt_tx_cancel_wait,
1362 TP_PROTO(struct wiphy *wiphy,
1363 struct wireless_dev *wdev, u64 cookie),
1364 TP_ARGS(wiphy, wdev, cookie),
1365 TP_STRUCT__entry(
1366 WIPHY_ENTRY
1367 WDEV_ENTRY
1368 __field(u64, cookie)
1369 ),
1370 TP_fast_assign(
1371 WIPHY_ASSIGN;
1372 WDEV_ASSIGN;
1373 __entry->cookie = cookie;
1374 ),
ec816087 1375 TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie: %llu ",
14e8a3c4
BL
1376 WIPHY_PR_ARG, WDEV_PR_ARG, __entry->cookie)
1377);
1378
1379TRACE_EVENT(rdev_set_power_mgmt,
1380 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
1381 bool enabled, int timeout),
1382 TP_ARGS(wiphy, netdev, enabled, timeout),
1383 TP_STRUCT__entry(
1384 WIPHY_ENTRY
1385 NETDEV_ENTRY
1386 __field(bool, enabled)
1387 __field(int, timeout)
1388 ),
1389 TP_fast_assign(
1390 WIPHY_ASSIGN;
1391 NETDEV_ASSIGN;
1392 __entry->enabled = enabled;
1393 __entry->timeout = timeout;
1394 ),
ec816087 1395 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %senabled, timeout: %d ",
14e8a3c4
BL
1396 WIPHY_PR_ARG, NETDEV_PR_ARG,
1397 __entry->enabled ? "" : "not ", __entry->timeout)
1398);
1399
1400TRACE_EVENT(rdev_connect,
1401 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
1402 struct cfg80211_connect_params *sme),
1403 TP_ARGS(wiphy, netdev, sme),
1404 TP_STRUCT__entry(
1405 WIPHY_ENTRY
1406 NETDEV_ENTRY
1407 MAC_ENTRY(bssid)
1408 __array(char, ssid, IEEE80211_MAX_SSID_LEN + 1)
1409 __field(enum nl80211_auth_type, auth_type)
1410 __field(bool, privacy)
1411 __field(u32, wpa_versions)
1412 __field(u32, flags)
ba6fbacf 1413 MAC_ENTRY(prev_bssid)
14e8a3c4
BL
1414 ),
1415 TP_fast_assign(
1416 WIPHY_ASSIGN;
1417 NETDEV_ASSIGN;
1418 MAC_ASSIGN(bssid, sme->bssid);
1419 memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1);
1420 memcpy(__entry->ssid, sme->ssid, sme->ssid_len);
1421 __entry->auth_type = sme->auth_type;
1422 __entry->privacy = sme->privacy;
1423 __entry->wpa_versions = sme->crypto.wpa_versions;
1424 __entry->flags = sme->flags;
ba6fbacf 1425 MAC_ASSIGN(prev_bssid, sme->prev_bssid);
14e8a3c4 1426 ),
3d9c3617 1427 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM"
14e8a3c4 1428 ", ssid: %s, auth type: %d, privacy: %s, wpa versions: %u, "
3d9c3617
JB
1429 "flags: %u, previous bssid: %pM",
1430 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid, __entry->ssid,
14e8a3c4 1431 __entry->auth_type, BOOL_TO_STR(__entry->privacy),
3d9c3617 1432 __entry->wpa_versions, __entry->flags, __entry->prev_bssid)
14e8a3c4
BL
1433);
1434
088e8df8 1435TRACE_EVENT(rdev_update_connect_params,
1436 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
1437 struct cfg80211_connect_params *sme, u32 changed),
1438 TP_ARGS(wiphy, netdev, sme, changed),
1439 TP_STRUCT__entry(
1440 WIPHY_ENTRY
1441 NETDEV_ENTRY
1442 __field(u32, changed)
1443 ),
1444 TP_fast_assign(
1445 WIPHY_ASSIGN;
1446 NETDEV_ASSIGN;
1447 __entry->changed = changed;
1448 ),
1449 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", parameters changed: %u",
1450 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->changed)
1451);
1452
14e8a3c4
BL
1453TRACE_EVENT(rdev_set_cqm_rssi_config,
1454 TP_PROTO(struct wiphy *wiphy,
1455 struct net_device *netdev, s32 rssi_thold,
1456 u32 rssi_hyst),
1457 TP_ARGS(wiphy, netdev, rssi_thold, rssi_hyst),
1458 TP_STRUCT__entry(
1459 WIPHY_ENTRY
1460 NETDEV_ENTRY
1461 __field(s32, rssi_thold)
1462 __field(u32, rssi_hyst)
1463 ),
1464 TP_fast_assign(
1465 WIPHY_ASSIGN;
1466 NETDEV_ASSIGN;
1467 __entry->rssi_thold = rssi_thold;
1468 __entry->rssi_hyst = rssi_hyst;
1469 ),
ec816087 1470 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT
14e8a3c4
BL
1471 ", rssi_thold: %d, rssi_hyst: %u ",
1472 WIPHY_PR_ARG, NETDEV_PR_ARG,
1473 __entry->rssi_thold, __entry->rssi_hyst)
1474);
1475
4a4b8169
AZ
1476TRACE_EVENT(rdev_set_cqm_rssi_range_config,
1477 TP_PROTO(struct wiphy *wiphy,
1478 struct net_device *netdev, s32 low, s32 high),
1479 TP_ARGS(wiphy, netdev, low, high),
1480 TP_STRUCT__entry(
1481 WIPHY_ENTRY
1482 NETDEV_ENTRY
1483 __field(s32, rssi_low)
1484 __field(s32, rssi_high)
1485 ),
1486 TP_fast_assign(
1487 WIPHY_ASSIGN;
1488 NETDEV_ASSIGN;
1489 __entry->rssi_low = low;
1490 __entry->rssi_high = high;
1491 ),
1492 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT
1493 ", range: %d - %d ",
1494 WIPHY_PR_ARG, NETDEV_PR_ARG,
1495 __entry->rssi_low, __entry->rssi_high)
1496);
1497
14e8a3c4
BL
1498TRACE_EVENT(rdev_set_cqm_txe_config,
1499 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u32 rate,
1500 u32 pkts, u32 intvl),
1501 TP_ARGS(wiphy, netdev, rate, pkts, intvl),
1502 TP_STRUCT__entry(
1503 WIPHY_ENTRY
1504 NETDEV_ENTRY
1505 __field(u32, rate)
1506 __field(u32, pkts)
1507 __field(u32, intvl)
1508 ),
1509 TP_fast_assign(
1510 WIPHY_ASSIGN;
1511 NETDEV_ASSIGN;
1512 __entry->rate = rate;
1513 __entry->pkts = pkts;
1514 __entry->intvl = intvl;
1515 ),
ec816087 1516 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", rate: %u, packets: %u, interval: %u",
14e8a3c4
BL
1517 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->rate, __entry->pkts,
1518 __entry->intvl)
1519);
1520
1521TRACE_EVENT(rdev_disconnect,
1522 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
1523 u16 reason_code),
1524 TP_ARGS(wiphy, netdev, reason_code),
1525 TP_STRUCT__entry(
1526 WIPHY_ENTRY
1527 NETDEV_ENTRY
1528 __field(u16, reason_code)
1529 ),
1530 TP_fast_assign(
1531 WIPHY_ASSIGN;
1532 NETDEV_ASSIGN;
1533 __entry->reason_code = reason_code;
1534 ),
ec816087 1535 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", reason code: %u", WIPHY_PR_ARG,
14e8a3c4
BL
1536 NETDEV_PR_ARG, __entry->reason_code)
1537);
1538
1539TRACE_EVENT(rdev_join_ibss,
1540 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
1541 struct cfg80211_ibss_params *params),
1542 TP_ARGS(wiphy, netdev, params),
1543 TP_STRUCT__entry(
1544 WIPHY_ENTRY
1545 NETDEV_ENTRY
1546 MAC_ENTRY(bssid)
1547 __array(char, ssid, IEEE80211_MAX_SSID_LEN + 1)
1548 ),
1549 TP_fast_assign(
1550 WIPHY_ASSIGN;
1551 NETDEV_ASSIGN;
1552 MAC_ASSIGN(bssid, params->bssid);
1553 memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1);
1554 memcpy(__entry->ssid, params->ssid, params->ssid_len);
1555 ),
3d9c3617
JB
1556 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM, ssid: %s",
1557 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid, __entry->ssid)
14e8a3c4
BL
1558);
1559
6e0bd6c3
RL
1560TRACE_EVENT(rdev_join_ocb,
1561 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
1562 const struct ocb_setup *setup),
1563 TP_ARGS(wiphy, netdev, setup),
1564 TP_STRUCT__entry(
1565 WIPHY_ENTRY
1566 NETDEV_ENTRY
1567 ),
1568 TP_fast_assign(
1569 WIPHY_ASSIGN;
1570 NETDEV_ASSIGN;
1571 ),
1572 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT,
1573 WIPHY_PR_ARG, NETDEV_PR_ARG)
1574);
1575
14e8a3c4
BL
1576TRACE_EVENT(rdev_set_wiphy_params,
1577 TP_PROTO(struct wiphy *wiphy, u32 changed),
1578 TP_ARGS(wiphy, changed),
1579 TP_STRUCT__entry(
1580 WIPHY_ENTRY
1581 __field(u32, changed)
1582 ),
1583 TP_fast_assign(
1584 WIPHY_ASSIGN;
1585 __entry->changed = changed;
1586 ),
1587 TP_printk(WIPHY_PR_FMT ", changed: %u",
1588 WIPHY_PR_ARG, __entry->changed)
1589);
1590
c8442118
JB
1591DEFINE_EVENT(wiphy_wdev_evt, rdev_get_tx_power,
1592 TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev),
1593 TP_ARGS(wiphy, wdev)
1594);
1595
14e8a3c4 1596TRACE_EVENT(rdev_set_tx_power,
c8442118
JB
1597 TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
1598 enum nl80211_tx_power_setting type, int mbm),
1599 TP_ARGS(wiphy, wdev, type, mbm),
14e8a3c4
BL
1600 TP_STRUCT__entry(
1601 WIPHY_ENTRY
c8442118 1602 WDEV_ENTRY
14e8a3c4
BL
1603 __field(enum nl80211_tx_power_setting, type)
1604 __field(int, mbm)
1605 ),
1606 TP_fast_assign(
1607 WIPHY_ASSIGN;
c8442118 1608 WDEV_ASSIGN;
14e8a3c4
BL
1609 __entry->type = type;
1610 __entry->mbm = mbm;
1611 ),
ec816087 1612 TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", type: %u, mbm: %d",
c8442118 1613 WIPHY_PR_ARG, WDEV_PR_ARG,__entry->type, __entry->mbm)
14e8a3c4
BL
1614);
1615
1616TRACE_EVENT(rdev_return_int_int,
1617 TP_PROTO(struct wiphy *wiphy, int func_ret, int func_fill),
1618 TP_ARGS(wiphy, func_ret, func_fill),
1619 TP_STRUCT__entry(
1620 WIPHY_ENTRY
1621 __field(int, func_ret)
1622 __field(int, func_fill)
1623 ),
1624 TP_fast_assign(
1625 WIPHY_ASSIGN;
1626 __entry->func_ret = func_ret;
1627 __entry->func_fill = func_fill;
1628 ),
1629 TP_printk(WIPHY_PR_FMT ", function returns: %d, function filled: %d",
1630 WIPHY_PR_ARG, __entry->func_ret, __entry->func_fill)
1631);
1632
1633#ifdef CONFIG_NL80211_TESTMODE
1634TRACE_EVENT(rdev_testmode_cmd,
fc73f11f
DS
1635 TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev),
1636 TP_ARGS(wiphy, wdev),
14e8a3c4
BL
1637 TP_STRUCT__entry(
1638 WIPHY_ENTRY
fc73f11f 1639 WDEV_ENTRY
14e8a3c4
BL
1640 ),
1641 TP_fast_assign(
1642 WIPHY_ASSIGN;
fc73f11f 1643 WDEV_ASSIGN;
14e8a3c4 1644 ),
fc73f11f 1645 TP_printk(WIPHY_PR_FMT WDEV_PR_FMT, WIPHY_PR_ARG, WDEV_PR_ARG)
14e8a3c4
BL
1646);
1647
1648TRACE_EVENT(rdev_testmode_dump,
1649 TP_PROTO(struct wiphy *wiphy),
1650 TP_ARGS(wiphy),
1651 TP_STRUCT__entry(
1652 WIPHY_ENTRY
1653 ),
1654 TP_fast_assign(
1655 WIPHY_ASSIGN;
1656 ),
1657 TP_printk(WIPHY_PR_FMT, WIPHY_PR_ARG)
1658);
1659#endif /* CONFIG_NL80211_TESTMODE */
1660
1661TRACE_EVENT(rdev_set_bitrate_mask,
1662 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
7b0a0e3c 1663 unsigned int link_id,
14e8a3c4 1664 const u8 *peer, const struct cfg80211_bitrate_mask *mask),
7b0a0e3c 1665 TP_ARGS(wiphy, netdev, link_id, peer, mask),
14e8a3c4
BL
1666 TP_STRUCT__entry(
1667 WIPHY_ENTRY
1668 NETDEV_ENTRY
7b0a0e3c 1669 __field(unsigned int, link_id)
14e8a3c4
BL
1670 MAC_ENTRY(peer)
1671 ),
1672 TP_fast_assign(
1673 WIPHY_ASSIGN;
1674 NETDEV_ASSIGN;
7b0a0e3c 1675 __entry->link_id = link_id;
14e8a3c4
BL
1676 MAC_ASSIGN(peer, peer);
1677 ),
3d9c3617 1678 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, peer: %pM",
7b0a0e3c 1679 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id,
3d9c3617 1680 __entry->peer)
14e8a3c4
BL
1681);
1682
6cd536fe 1683TRACE_EVENT(rdev_update_mgmt_frame_registrations,
14e8a3c4 1684 TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
6cd536fe
JB
1685 struct mgmt_frame_regs *upd),
1686 TP_ARGS(wiphy, wdev, upd),
14e8a3c4
BL
1687 TP_STRUCT__entry(
1688 WIPHY_ENTRY
1689 WDEV_ENTRY
6cd536fe
JB
1690 __field(u16, global_stypes)
1691 __field(u16, interface_stypes)
14e8a3c4
BL
1692 ),
1693 TP_fast_assign(
1694 WIPHY_ASSIGN;
1695 WDEV_ASSIGN;
6cd536fe
JB
1696 __entry->global_stypes = upd->global_stypes;
1697 __entry->interface_stypes = upd->interface_stypes;
14e8a3c4 1698 ),
6cd536fe
JB
1699 TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", global: 0x%.2x, intf: 0x%.2x",
1700 WIPHY_PR_ARG, WDEV_PR_ARG,
1701 __entry->global_stypes, __entry->interface_stypes)
14e8a3c4
BL
1702);
1703
1704TRACE_EVENT(rdev_return_int_tx_rx,
1705 TP_PROTO(struct wiphy *wiphy, int ret, u32 tx, u32 rx),
1706 TP_ARGS(wiphy, ret, tx, rx),
1707 TP_STRUCT__entry(
1708 WIPHY_ENTRY
1709 __field(int, ret)
1710 __field(u32, tx)
1711 __field(u32, rx)
1712 ),
1713 TP_fast_assign(
1714 WIPHY_ASSIGN;
1715 __entry->ret = ret;
1716 __entry->tx = tx;
1717 __entry->rx = rx;
1718 ),
1719 TP_printk(WIPHY_PR_FMT ", returned %d, tx: %u, rx: %u",
1720 WIPHY_PR_ARG, __entry->ret, __entry->tx, __entry->rx)
1721);
1722
1723TRACE_EVENT(rdev_return_void_tx_rx,
1724 TP_PROTO(struct wiphy *wiphy, u32 tx, u32 tx_max,
1725 u32 rx, u32 rx_max),
1726 TP_ARGS(wiphy, tx, tx_max, rx, rx_max),
1727 TP_STRUCT__entry(
1728 WIPHY_ENTRY
1729 __field(u32, tx)
1730 __field(u32, tx_max)
1731 __field(u32, rx)
1732 __field(u32, rx_max)
1733 ),
1734 TP_fast_assign(
1735 WIPHY_ASSIGN;
1736 __entry->tx = tx;
1737 __entry->tx_max = tx_max;
1738 __entry->rx = rx;
1739 __entry->rx_max = rx_max;
1740 ),
1741 TP_printk(WIPHY_PR_FMT ", tx: %u, tx_max: %u, rx: %u, rx_max: %u ",
1742 WIPHY_PR_ARG, __entry->tx, __entry->tx_max, __entry->rx,
1743 __entry->rx_max)
1744);
1745
1746DECLARE_EVENT_CLASS(tx_rx_evt,
1747 TP_PROTO(struct wiphy *wiphy, u32 tx, u32 rx),
1748 TP_ARGS(wiphy, rx, tx),
1749 TP_STRUCT__entry(
1750 WIPHY_ENTRY
1751 __field(u32, tx)
1752 __field(u32, rx)
1753 ),
1754 TP_fast_assign(
1755 WIPHY_ASSIGN;
1756 __entry->tx = tx;
1757 __entry->rx = rx;
1758 ),
1759 TP_printk(WIPHY_PR_FMT ", tx: %u, rx: %u ",
1760 WIPHY_PR_ARG, __entry->tx, __entry->rx)
1761);
1762
14e8a3c4
BL
1763DEFINE_EVENT(tx_rx_evt, rdev_set_antenna,
1764 TP_PROTO(struct wiphy *wiphy, u32 tx, u32 rx),
1765 TP_ARGS(wiphy, rx, tx)
1766);
1767
ca986ad9
AVS
1768DECLARE_EVENT_CLASS(wiphy_netdev_id_evt,
1769 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u64 id),
1770 TP_ARGS(wiphy, netdev, id),
14e8a3c4
BL
1771 TP_STRUCT__entry(
1772 WIPHY_ENTRY
1773 NETDEV_ENTRY
ca986ad9 1774 __field(u64, id)
14e8a3c4
BL
1775 ),
1776 TP_fast_assign(
1777 WIPHY_ASSIGN;
1778 NETDEV_ASSIGN;
ca986ad9 1779 __entry->id = id;
14e8a3c4 1780 ),
ca986ad9
AVS
1781 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", id: %llu",
1782 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->id)
1783);
1784
1785DEFINE_EVENT(wiphy_netdev_id_evt, rdev_sched_scan_start,
1786 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u64 id),
1787 TP_ARGS(wiphy, netdev, id)
14e8a3c4
BL
1788);
1789
3a3ecf1d
AVS
1790DEFINE_EVENT(wiphy_netdev_id_evt, rdev_sched_scan_stop,
1791 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u64 id),
1792 TP_ARGS(wiphy, netdev, id)
1793);
1794
14e8a3c4
BL
1795TRACE_EVENT(rdev_tdls_mgmt,
1796 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
c6112046 1797 u8 *peer, int link_id, u8 action_code, u8 dialog_token,
df942e7b 1798 u16 status_code, u32 peer_capability,
31fa97c5 1799 bool initiator, const u8 *buf, size_t len),
c6112046
MS
1800 TP_ARGS(wiphy, netdev, peer, link_id, action_code, dialog_token,
1801 status_code, peer_capability, initiator, buf, len),
14e8a3c4
BL
1802 TP_STRUCT__entry(
1803 WIPHY_ENTRY
1804 NETDEV_ENTRY
1805 MAC_ENTRY(peer)
c6112046 1806 __field(int, link_id)
14e8a3c4
BL
1807 __field(u8, action_code)
1808 __field(u8, dialog_token)
1809 __field(u16, status_code)
df942e7b 1810 __field(u32, peer_capability)
31fa97c5 1811 __field(bool, initiator)
14e8a3c4
BL
1812 __dynamic_array(u8, buf, len)
1813 ),
1814 TP_fast_assign(
1815 WIPHY_ASSIGN;
1816 NETDEV_ASSIGN;
1817 MAC_ASSIGN(peer, peer);
c6112046 1818 __entry->link_id = link_id;
14e8a3c4
BL
1819 __entry->action_code = action_code;
1820 __entry->dialog_token = dialog_token;
1821 __entry->status_code = status_code;
df942e7b 1822 __entry->peer_capability = peer_capability;
31fa97c5 1823 __entry->initiator = initiator;
14e8a3c4
BL
1824 memcpy(__get_dynamic_array(buf), buf, len);
1825 ),
c6112046
MS
1826 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM"
1827 ", link_id: %d, action_code: %u "
31fa97c5
AN
1828 "dialog_token: %u, status_code: %u, peer_capability: %u "
1829 "initiator: %s buf: %#.2x ",
3d9c3617 1830 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer,
c6112046 1831 __entry->link_id, __entry->action_code, __entry->dialog_token,
df942e7b 1832 __entry->status_code, __entry->peer_capability,
31fa97c5 1833 BOOL_TO_STR(__entry->initiator),
df942e7b 1834 ((u8 *)__get_dynamic_array(buf))[0])
14e8a3c4
BL
1835);
1836
1837TRACE_EVENT(rdev_dump_survey,
aaaa10e0
JB
1838 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int _idx),
1839 TP_ARGS(wiphy, netdev, _idx),
14e8a3c4
BL
1840 TP_STRUCT__entry(
1841 WIPHY_ENTRY
1842 NETDEV_ENTRY
1843 __field(int, idx)
1844 ),
1845 TP_fast_assign(
1846 WIPHY_ASSIGN;
1847 NETDEV_ASSIGN;
aaaa10e0 1848 __entry->idx = _idx;
14e8a3c4 1849 ),
ec816087 1850 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d",
14e8a3c4
BL
1851 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx)
1852);
1853
1854TRACE_EVENT(rdev_return_int_survey_info,
1855 TP_PROTO(struct wiphy *wiphy, int ret, struct survey_info *info),
1856 TP_ARGS(wiphy, ret, info),
1857 TP_STRUCT__entry(
1858 WIPHY_ENTRY
1859 CHAN_ENTRY
1860 __field(int, ret)
4ed20beb
JB
1861 __field(u64, time)
1862 __field(u64, time_busy)
1863 __field(u64, time_ext_busy)
1864 __field(u64, time_rx)
1865 __field(u64, time_tx)
052536ab 1866 __field(u64, time_scan)
14e8a3c4
BL
1867 __field(u32, filled)
1868 __field(s8, noise)
1869 ),
1870 TP_fast_assign(
1871 WIPHY_ASSIGN;
1872 CHAN_ASSIGN(info->channel);
1873 __entry->ret = ret;
4ed20beb
JB
1874 __entry->time = info->time;
1875 __entry->time_busy = info->time_busy;
1876 __entry->time_ext_busy = info->time_ext_busy;
1877 __entry->time_rx = info->time_rx;
1878 __entry->time_tx = info->time_tx;
052536ab 1879 __entry->time_scan = info->time_scan;
14e8a3c4
BL
1880 __entry->filled = info->filled;
1881 __entry->noise = info->noise;
1882 ),
1883 TP_printk(WIPHY_PR_FMT ", returned: %d, " CHAN_PR_FMT
1884 ", channel time: %llu, channel time busy: %llu, "
1885 "channel time extension busy: %llu, channel time rx: %llu, "
052536ab 1886 "channel time tx: %llu, scan time: %llu, filled: %u, noise: %d",
14e8a3c4 1887 WIPHY_PR_ARG, __entry->ret, CHAN_PR_ARG,
4ed20beb
JB
1888 __entry->time, __entry->time_busy,
1889 __entry->time_ext_busy, __entry->time_rx,
052536ab
JB
1890 __entry->time_tx, __entry->time_scan,
1891 __entry->filled, __entry->noise)
14e8a3c4
BL
1892);
1893
1894TRACE_EVENT(rdev_tdls_oper,
1895 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
1896 u8 *peer, enum nl80211_tdls_operation oper),
1897 TP_ARGS(wiphy, netdev, peer, oper),
1898 TP_STRUCT__entry(
1899 WIPHY_ENTRY
1900 NETDEV_ENTRY
1901 MAC_ENTRY(peer)
1902 __field(enum nl80211_tdls_operation, oper)
1903 ),
1904 TP_fast_assign(
1905 WIPHY_ASSIGN;
1906 NETDEV_ASSIGN;
1907 MAC_ASSIGN(peer, peer);
1908 __entry->oper = oper;
1909 ),
3d9c3617
JB
1910 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM, oper: %d",
1911 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, __entry->oper)
14e8a3c4
BL
1912);
1913
1914DECLARE_EVENT_CLASS(rdev_pmksa,
1915 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
1916 struct cfg80211_pmksa *pmksa),
1917 TP_ARGS(wiphy, netdev, pmksa),
1918 TP_STRUCT__entry(
1919 WIPHY_ENTRY
1920 NETDEV_ENTRY
1921 MAC_ENTRY(bssid)
1922 ),
1923 TP_fast_assign(
1924 WIPHY_ASSIGN;
1925 NETDEV_ASSIGN;
1926 MAC_ASSIGN(bssid, pmksa->bssid);
1927 ),
3d9c3617
JB
1928 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM",
1929 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid)
14e8a3c4
BL
1930);
1931
1932TRACE_EVENT(rdev_probe_client,
1933 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
1934 const u8 *peer),
1935 TP_ARGS(wiphy, netdev, peer),
1936 TP_STRUCT__entry(
1937 WIPHY_ENTRY
1938 NETDEV_ENTRY
1939 MAC_ENTRY(peer)
1940 ),
1941 TP_fast_assign(
1942 WIPHY_ASSIGN;
1943 NETDEV_ASSIGN;
1944 MAC_ASSIGN(peer, peer);
1945 ),
3d9c3617
JB
1946 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM",
1947 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer)
14e8a3c4
BL
1948);
1949
1950DEFINE_EVENT(rdev_pmksa, rdev_set_pmksa,
1951 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
1952 struct cfg80211_pmksa *pmksa),
1953 TP_ARGS(wiphy, netdev, pmksa)
1954);
1955
1956DEFINE_EVENT(rdev_pmksa, rdev_del_pmksa,
1957 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
1958 struct cfg80211_pmksa *pmksa),
1959 TP_ARGS(wiphy, netdev, pmksa)
1960);
1961
1962TRACE_EVENT(rdev_remain_on_channel,
1963 TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
1964 struct ieee80211_channel *chan,
42d97a59
JB
1965 unsigned int duration),
1966 TP_ARGS(wiphy, wdev, chan, duration),
14e8a3c4
BL
1967 TP_STRUCT__entry(
1968 WIPHY_ENTRY
1969 WDEV_ENTRY
1970 CHAN_ENTRY
14e8a3c4
BL
1971 __field(unsigned int, duration)
1972 ),
1973 TP_fast_assign(
1974 WIPHY_ASSIGN;
1975 WDEV_ASSIGN;
1976 CHAN_ASSIGN(chan);
14e8a3c4
BL
1977 __entry->duration = duration;
1978 ),
ec816087 1979 TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", " CHAN_PR_FMT ", duration: %u",
42d97a59 1980 WIPHY_PR_ARG, WDEV_PR_ARG, CHAN_PR_ARG, __entry->duration)
14e8a3c4
BL
1981);
1982
1983TRACE_EVENT(rdev_return_int_cookie,
1984 TP_PROTO(struct wiphy *wiphy, int ret, u64 cookie),
1985 TP_ARGS(wiphy, ret, cookie),
1986 TP_STRUCT__entry(
1987 WIPHY_ENTRY
1988 __field(int, ret)
1989 __field(u64, cookie)
1990 ),
1991 TP_fast_assign(
1992 WIPHY_ASSIGN;
1993 __entry->ret = ret;
1994 __entry->cookie = cookie;
1995 ),
1996 TP_printk(WIPHY_PR_FMT ", returned %d, cookie: %llu",
1997 WIPHY_PR_ARG, __entry->ret, __entry->cookie)
1998);
1999
2000TRACE_EVENT(rdev_cancel_remain_on_channel,
2001 TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie),
2002 TP_ARGS(wiphy, wdev, cookie),
2003 TP_STRUCT__entry(
2004 WIPHY_ENTRY
2005 WDEV_ENTRY
2006 __field(u64, cookie)
2007 ),
2008 TP_fast_assign(
2009 WIPHY_ASSIGN;
2010 WDEV_ASSIGN;
2011 __entry->cookie = cookie;
2012 ),
ec816087 2013 TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie: %llu",
14e8a3c4
BL
2014 WIPHY_PR_ARG, WDEV_PR_ARG, __entry->cookie)
2015);
2016
2017TRACE_EVENT(rdev_mgmt_tx,
2018 TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
b176e629
AO
2019 struct cfg80211_mgmt_tx_params *params),
2020 TP_ARGS(wiphy, wdev, params),
14e8a3c4
BL
2021 TP_STRUCT__entry(
2022 WIPHY_ENTRY
2023 WDEV_ENTRY
2024 CHAN_ENTRY
2025 __field(bool, offchan)
14e8a3c4
BL
2026 __field(unsigned int, wait)
2027 __field(bool, no_cck)
2028 __field(bool, dont_wait_for_ack)
2029 ),
2030 TP_fast_assign(
2031 WIPHY_ASSIGN;
2032 WDEV_ASSIGN;
b176e629
AO
2033 CHAN_ASSIGN(params->chan);
2034 __entry->offchan = params->offchan;
2035 __entry->wait = params->wait;
2036 __entry->no_cck = params->no_cck;
2037 __entry->dont_wait_for_ack = params->dont_wait_for_ack;
14e8a3c4 2038 ),
ec816087 2039 TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", " CHAN_PR_FMT ", offchan: %s,"
42d97a59 2040 " wait: %u, no cck: %s, dont wait for ack: %s",
14e8a3c4 2041 WIPHY_PR_ARG, WDEV_PR_ARG, CHAN_PR_ARG,
42d97a59 2042 BOOL_TO_STR(__entry->offchan), __entry->wait,
14e8a3c4
BL
2043 BOOL_TO_STR(__entry->no_cck),
2044 BOOL_TO_STR(__entry->dont_wait_for_ack))
2045);
2046
2576a9ac
DK
2047TRACE_EVENT(rdev_tx_control_port,
2048 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
8d74a623 2049 const u8 *buf, size_t len, const u8 *dest, __be16 proto,
67207bab
AO
2050 bool unencrypted, int link_id),
2051 TP_ARGS(wiphy, netdev, buf, len, dest, proto, unencrypted, link_id),
2576a9ac
DK
2052 TP_STRUCT__entry(
2053 WIPHY_ENTRY
2054 NETDEV_ENTRY
2055 MAC_ENTRY(dest)
8d74a623 2056 __field(__be16, proto)
2576a9ac 2057 __field(bool, unencrypted)
67207bab 2058 __field(int, link_id)
2576a9ac
DK
2059 ),
2060 TP_fast_assign(
2061 WIPHY_ASSIGN;
2062 NETDEV_ASSIGN;
2063 MAC_ASSIGN(dest, dest);
8d74a623 2064 __entry->proto = proto;
2576a9ac 2065 __entry->unencrypted = unencrypted;
67207bab 2066 __entry->link_id = link_id;
2576a9ac 2067 ),
3d9c3617 2068 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM,"
67207bab 2069 " proto: 0x%x, unencrypted: %s, link: %d",
3d9c3617 2070 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->dest,
8d74a623 2071 be16_to_cpu(__entry->proto),
67207bab
AO
2072 BOOL_TO_STR(__entry->unencrypted),
2073 __entry->link_id)
2576a9ac
DK
2074);
2075
14e8a3c4
BL
2076TRACE_EVENT(rdev_set_noack_map,
2077 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
2078 u16 noack_map),
2079 TP_ARGS(wiphy, netdev, noack_map),
2080 TP_STRUCT__entry(
2081 WIPHY_ENTRY
2082 NETDEV_ENTRY
2083 __field(u16, noack_map)
2084 ),
2085 TP_fast_assign(
2086 WIPHY_ASSIGN;
2087 NETDEV_ASSIGN;
2088 __entry->noack_map = noack_map;
2089 ),
ec816087 2090 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", noack_map: %u",
14e8a3c4
BL
2091 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->noack_map)
2092);
2093
f2a0290b 2094DECLARE_EVENT_CLASS(wiphy_wdev_link_evt,
7b0a0e3c
JB
2095 TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
2096 unsigned int link_id),
2097 TP_ARGS(wiphy, wdev, link_id),
2098 TP_STRUCT__entry(
2099 WIPHY_ENTRY
2100 WDEV_ENTRY
2101 __field(unsigned int, link_id)
2102 ),
2103 TP_fast_assign(
2104 WIPHY_ASSIGN;
2105 WDEV_ASSIGN;
2106 __entry->link_id = link_id;
2107 ),
2108 TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", link_id: %u",
2109 WIPHY_PR_ARG, WDEV_PR_ARG, __entry->link_id)
14e8a3c4
BL
2110);
2111
f2a0290b
JB
2112DEFINE_EVENT(wiphy_wdev_link_evt, rdev_get_channel,
2113 TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
2114 unsigned int link_id),
2115 TP_ARGS(wiphy, wdev, link_id)
2116);
2117
683b6d3b
JB
2118TRACE_EVENT(rdev_return_chandef,
2119 TP_PROTO(struct wiphy *wiphy, int ret,
2120 struct cfg80211_chan_def *chandef),
2121 TP_ARGS(wiphy, ret, chandef),
14e8a3c4
BL
2122 TP_STRUCT__entry(
2123 WIPHY_ENTRY
683b6d3b
JB
2124 __field(int, ret)
2125 CHAN_DEF_ENTRY
14e8a3c4
BL
2126 ),
2127 TP_fast_assign(
2128 WIPHY_ASSIGN;
683b6d3b
JB
2129 if (ret == 0)
2130 CHAN_DEF_ASSIGN(chandef);
2131 else
2132 CHAN_DEF_ASSIGN((struct cfg80211_chan_def *)NULL);
2133 __entry->ret = ret;
14e8a3c4 2134 ),
ec816087 2135 TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", ret: %d",
683b6d3b 2136 WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->ret)
14e8a3c4
BL
2137);
2138
eeb126e9
JB
2139DEFINE_EVENT(wiphy_wdev_evt, rdev_start_p2p_device,
2140 TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev),
2141 TP_ARGS(wiphy, wdev)
2142);
2143
2144DEFINE_EVENT(wiphy_wdev_evt, rdev_stop_p2p_device,
2145 TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev),
2146 TP_ARGS(wiphy, wdev)
2147);
2148
cb3b7d87
AB
2149TRACE_EVENT(rdev_start_nan,
2150 TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
2151 struct cfg80211_nan_conf *conf),
2152 TP_ARGS(wiphy, wdev, conf),
2153 TP_STRUCT__entry(
2154 WIPHY_ENTRY
2155 WDEV_ENTRY
2156 __field(u8, master_pref)
04ae87a5 2157 __field(u8, bands)
cb3b7d87
AB
2158 ),
2159 TP_fast_assign(
2160 WIPHY_ASSIGN;
2161 WDEV_ASSIGN;
2162 __entry->master_pref = conf->master_pref;
8585989d 2163 __entry->bands = conf->bands;
cb3b7d87
AB
2164 ),
2165 TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT
8585989d 2166 ", master preference: %u, bands: 0x%0x",
cb3b7d87 2167 WIPHY_PR_ARG, WDEV_PR_ARG, __entry->master_pref,
8585989d 2168 __entry->bands)
cb3b7d87
AB
2169);
2170
a5a9dcf2
AB
2171TRACE_EVENT(rdev_nan_change_conf,
2172 TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
2173 struct cfg80211_nan_conf *conf, u32 changes),
2174 TP_ARGS(wiphy, wdev, conf, changes),
2175 TP_STRUCT__entry(
2176 WIPHY_ENTRY
2177 WDEV_ENTRY
2178 __field(u8, master_pref)
04ae87a5
PZ
2179 __field(u8, bands)
2180 __field(u32, changes)
a5a9dcf2
AB
2181 ),
2182 TP_fast_assign(
2183 WIPHY_ASSIGN;
2184 WDEV_ASSIGN;
2185 __entry->master_pref = conf->master_pref;
8585989d 2186 __entry->bands = conf->bands;
a5a9dcf2
AB
2187 __entry->changes = changes;
2188 ),
2189 TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT
8585989d 2190 ", master preference: %u, bands: 0x%0x, changes: %x",
a5a9dcf2 2191 WIPHY_PR_ARG, WDEV_PR_ARG, __entry->master_pref,
8585989d 2192 __entry->bands, __entry->changes)
a5a9dcf2
AB
2193);
2194
cb3b7d87
AB
2195DEFINE_EVENT(wiphy_wdev_evt, rdev_stop_nan,
2196 TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev),
2197 TP_ARGS(wiphy, wdev)
2198);
2199
a442b761
AB
2200TRACE_EVENT(rdev_add_nan_func,
2201 TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
2202 const struct cfg80211_nan_func *func),
2203 TP_ARGS(wiphy, wdev, func),
2204 TP_STRUCT__entry(
2205 WIPHY_ENTRY
2206 WDEV_ENTRY
2207 __field(u8, func_type)
2208 __field(u64, cookie)
2209 ),
2210 TP_fast_assign(
2211 WIPHY_ASSIGN;
2212 WDEV_ASSIGN;
2213 __entry->func_type = func->type;
2214 __entry->cookie = func->cookie
2215 ),
2216 TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", type=%u, cookie=%llu",
2217 WIPHY_PR_ARG, WDEV_PR_ARG, __entry->func_type,
2218 __entry->cookie)
2219);
2220
2221TRACE_EVENT(rdev_del_nan_func,
2222 TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
2223 u64 cookie),
2224 TP_ARGS(wiphy, wdev, cookie),
2225 TP_STRUCT__entry(
2226 WIPHY_ENTRY
2227 WDEV_ENTRY
2228 __field(u64, cookie)
2229 ),
2230 TP_fast_assign(
2231 WIPHY_ASSIGN;
2232 WDEV_ASSIGN;
2233 __entry->cookie = cookie;
2234 ),
2235 TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie=%llu",
2236 WIPHY_PR_ARG, WDEV_PR_ARG, __entry->cookie)
2237);
2238
77765eaf
VT
2239TRACE_EVENT(rdev_set_mac_acl,
2240 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
2241 struct cfg80211_acl_data *params),
2242 TP_ARGS(wiphy, netdev, params),
2243 TP_STRUCT__entry(
2244 WIPHY_ENTRY
2245 NETDEV_ENTRY
2246 __field(u32, acl_policy)
2247 ),
2248 TP_fast_assign(
2249 WIPHY_ASSIGN;
021fcdc1 2250 NETDEV_ASSIGN;
77765eaf
VT
2251 __entry->acl_policy = params->acl_policy;
2252 ),
2253 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", acl policy: %d",
2254 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->acl_policy)
2255);
2256
355199e0
JM
2257TRACE_EVENT(rdev_update_ft_ies,
2258 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
2259 struct cfg80211_update_ft_ies_params *ftie),
2260 TP_ARGS(wiphy, netdev, ftie),
2261 TP_STRUCT__entry(
2262 WIPHY_ENTRY
2263 NETDEV_ENTRY
2264 __field(u16, md)
2265 __dynamic_array(u8, ie, ftie->ie_len)
2266 ),
2267 TP_fast_assign(
2268 WIPHY_ASSIGN;
2269 NETDEV_ASSIGN;
2270 __entry->md = ftie->md;
2271 memcpy(__get_dynamic_array(ie), ftie->ie, ftie->ie_len);
2272 ),
2273 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", md: 0x%x",
2274 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->md)
2275);
2276
5de17984
AS
2277TRACE_EVENT(rdev_crit_proto_start,
2278 TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
2279 enum nl80211_crit_proto_id protocol, u16 duration),
2280 TP_ARGS(wiphy, wdev, protocol, duration),
2281 TP_STRUCT__entry(
2282 WIPHY_ENTRY
2283 WDEV_ENTRY
2284 __field(u16, proto)
2285 __field(u16, duration)
2286 ),
2287 TP_fast_assign(
2288 WIPHY_ASSIGN;
2289 WDEV_ASSIGN;
2290 __entry->proto = protocol;
2291 __entry->duration = duration;
2292 ),
2293 TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", proto=%x, duration=%u",
2294 WIPHY_PR_ARG, WDEV_PR_ARG, __entry->proto, __entry->duration)
2295);
2296
2297TRACE_EVENT(rdev_crit_proto_stop,
2298 TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev),
2299 TP_ARGS(wiphy, wdev),
2300 TP_STRUCT__entry(
2301 WIPHY_ENTRY
2302 WDEV_ENTRY
2303 ),
2304 TP_fast_assign(
2305 WIPHY_ASSIGN;
2306 WDEV_ASSIGN;
2307 ),
2308 TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT,
2309 WIPHY_PR_ARG, WDEV_PR_ARG)
2310);
2311
16ef1fe2
SW
2312TRACE_EVENT(rdev_channel_switch,
2313 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
2314 struct cfg80211_csa_settings *params),
2315 TP_ARGS(wiphy, netdev, params),
2316 TP_STRUCT__entry(
2317 WIPHY_ENTRY
2318 NETDEV_ENTRY
2319 CHAN_DEF_ENTRY
16ef1fe2
SW
2320 __field(bool, radar_required)
2321 __field(bool, block_tx)
2322 __field(u8, count)
9a774c78
AO
2323 __dynamic_array(u16, bcn_ofs, params->n_counter_offsets_beacon)
2324 __dynamic_array(u16, pres_ofs, params->n_counter_offsets_presp)
16ef1fe2
SW
2325 ),
2326 TP_fast_assign(
2327 WIPHY_ASSIGN;
2328 NETDEV_ASSIGN;
2329 CHAN_DEF_ASSIGN(&params->chandef);
16ef1fe2
SW
2330 __entry->radar_required = params->radar_required;
2331 __entry->block_tx = params->block_tx;
2332 __entry->count = params->count;
9a774c78
AO
2333 memcpy(__get_dynamic_array(bcn_ofs),
2334 params->counter_offsets_beacon,
2335 params->n_counter_offsets_beacon * sizeof(u16));
2336
2337 /* probe response offsets are optional */
2338 if (params->n_counter_offsets_presp)
2339 memcpy(__get_dynamic_array(pres_ofs),
2340 params->counter_offsets_presp,
2341 params->n_counter_offsets_presp * sizeof(u16));
16ef1fe2
SW
2342 ),
2343 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT
9a774c78 2344 ", block_tx: %d, count: %u, radar_required: %d",
16ef1fe2 2345 WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG,
9a774c78 2346 __entry->block_tx, __entry->count, __entry->radar_required)
16ef1fe2
SW
2347);
2348
fa9ffc74
KP
2349TRACE_EVENT(rdev_set_qos_map,
2350 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
2351 struct cfg80211_qos_map *qos_map),
2352 TP_ARGS(wiphy, netdev, qos_map),
2353 TP_STRUCT__entry(
2354 WIPHY_ENTRY
2355 NETDEV_ENTRY
2356 QOS_MAP_ENTRY
2357 ),
2358 TP_fast_assign(
2359 WIPHY_ASSIGN;
2360 NETDEV_ASSIGN;
2361 QOS_MAP_ASSIGN(qos_map);
2362 ),
2363 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", num_des: %u",
2364 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->num_des)
2365);
2366
e16821bc
JM
2367TRACE_EVENT(rdev_set_ap_chanwidth,
2368 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
7b0a0e3c 2369 unsigned int link_id,
e16821bc 2370 struct cfg80211_chan_def *chandef),
7b0a0e3c 2371 TP_ARGS(wiphy, netdev, link_id, chandef),
e16821bc
JM
2372 TP_STRUCT__entry(
2373 WIPHY_ENTRY
2374 NETDEV_ENTRY
2375 CHAN_DEF_ENTRY
7b0a0e3c 2376 __field(unsigned int, link_id)
e16821bc
JM
2377 ),
2378 TP_fast_assign(
2379 WIPHY_ASSIGN;
2380 NETDEV_ASSIGN;
2381 CHAN_DEF_ASSIGN(chandef);
7b0a0e3c 2382 __entry->link_id = link_id;
e16821bc 2383 ),
7b0a0e3c
JB
2384 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d",
2385 WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG,
2386 __entry->link_id)
e16821bc
JM
2387);
2388
960d01ac
JB
2389TRACE_EVENT(rdev_add_tx_ts,
2390 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
2391 u8 tsid, const u8 *peer, u8 user_prio, u16 admitted_time),
2392 TP_ARGS(wiphy, netdev, tsid, peer, user_prio, admitted_time),
2393 TP_STRUCT__entry(
2394 WIPHY_ENTRY
2395 NETDEV_ENTRY
2396 MAC_ENTRY(peer)
2397 __field(u8, tsid)
2398 __field(u8, user_prio)
2399 __field(u16, admitted_time)
2400 ),
2401 TP_fast_assign(
2402 WIPHY_ASSIGN;
2403 NETDEV_ASSIGN;
2404 MAC_ASSIGN(peer, peer);
2405 __entry->tsid = tsid;
2406 __entry->user_prio = user_prio;
2407 __entry->admitted_time = admitted_time;
2408 ),
3d9c3617
JB
2409 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM, TSID %d, UP %d, time %d",
2410 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer,
960d01ac
JB
2411 __entry->tsid, __entry->user_prio, __entry->admitted_time)
2412);
2413
2414TRACE_EVENT(rdev_del_tx_ts,
2415 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
2416 u8 tsid, const u8 *peer),
2417 TP_ARGS(wiphy, netdev, tsid, peer),
2418 TP_STRUCT__entry(
2419 WIPHY_ENTRY
2420 NETDEV_ENTRY
2421 MAC_ENTRY(peer)
2422 __field(u8, tsid)
2423 ),
2424 TP_fast_assign(
2425 WIPHY_ASSIGN;
2426 NETDEV_ASSIGN;
2427 MAC_ASSIGN(peer, peer);
2428 __entry->tsid = tsid;
2429 ),
3d9c3617
JB
2430 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM, TSID %d",
2431 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, __entry->tsid)
960d01ac
JB
2432);
2433
1057d35e
AN
2434TRACE_EVENT(rdev_tdls_channel_switch,
2435 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
2436 const u8 *addr, u8 oper_class,
2437 struct cfg80211_chan_def *chandef),
2438 TP_ARGS(wiphy, netdev, addr, oper_class, chandef),
2439 TP_STRUCT__entry(
2440 WIPHY_ENTRY
2441 NETDEV_ENTRY
2442 MAC_ENTRY(addr)
2443 __field(u8, oper_class)
2444 CHAN_DEF_ENTRY
2445 ),
2446 TP_fast_assign(
2447 WIPHY_ASSIGN;
2448 NETDEV_ASSIGN;
2449 MAC_ASSIGN(addr, addr);
2450 CHAN_DEF_ASSIGN(chandef);
2451 ),
3d9c3617 2452 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM"
1057d35e 2453 " oper class %d, " CHAN_DEF_PR_FMT,
3d9c3617 2454 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->addr,
1057d35e
AN
2455 __entry->oper_class, CHAN_DEF_PR_ARG)
2456);
2457
2458TRACE_EVENT(rdev_tdls_cancel_channel_switch,
2459 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
2460 const u8 *addr),
2461 TP_ARGS(wiphy, netdev, addr),
2462 TP_STRUCT__entry(
2463 WIPHY_ENTRY
2464 NETDEV_ENTRY
2465 MAC_ENTRY(addr)
2466 ),
2467 TP_fast_assign(
2468 WIPHY_ASSIGN;
2469 NETDEV_ASSIGN;
2470 MAC_ASSIGN(addr, addr);
2471 ),
3d9c3617
JB
2472 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM",
2473 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->addr)
1057d35e
AN
2474);
2475
3a00df57
AS
2476TRACE_EVENT(rdev_set_pmk,
2477 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
2478 struct cfg80211_pmk_conf *pmk_conf),
2479
2480 TP_ARGS(wiphy, netdev, pmk_conf),
2481
2482 TP_STRUCT__entry(
2483 WIPHY_ENTRY
2484 NETDEV_ENTRY
2485 MAC_ENTRY(aa)
2486 __field(u8, pmk_len)
2487 __field(u8, pmk_r0_name_len)
2488 __dynamic_array(u8, pmk, pmk_conf->pmk_len)
2489 __dynamic_array(u8, pmk_r0_name, WLAN_PMK_NAME_LEN)
2490 ),
2491
2492 TP_fast_assign(
2493 WIPHY_ASSIGN;
2494 NETDEV_ASSIGN;
2495 MAC_ASSIGN(aa, pmk_conf->aa);
2496 __entry->pmk_len = pmk_conf->pmk_len;
2497 __entry->pmk_r0_name_len =
2498 pmk_conf->pmk_r0_name ? WLAN_PMK_NAME_LEN : 0;
2499 memcpy(__get_dynamic_array(pmk), pmk_conf->pmk,
2500 pmk_conf->pmk_len);
2501 memcpy(__get_dynamic_array(pmk_r0_name), pmk_conf->pmk_r0_name,
2502 pmk_conf->pmk_r0_name ? WLAN_PMK_NAME_LEN : 0);
2503 ),
2504
3d9c3617 2505 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM"
3a00df57 2506 "pmk_len=%u, pmk: %s pmk_r0_name: %s", WIPHY_PR_ARG,
3d9c3617 2507 NETDEV_PR_ARG, __entry->aa, __entry->pmk_len,
3a00df57
AS
2508 __print_array(__get_dynamic_array(pmk),
2509 __get_dynamic_array_len(pmk), 1),
2510 __entry->pmk_r0_name_len ?
2511 __print_array(__get_dynamic_array(pmk_r0_name),
2512 __get_dynamic_array_len(pmk_r0_name), 1) : "")
2513);
2514
2515TRACE_EVENT(rdev_del_pmk,
2516 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *aa),
2517
2518 TP_ARGS(wiphy, netdev, aa),
2519
2520 TP_STRUCT__entry(
2521 WIPHY_ENTRY
2522 NETDEV_ENTRY
2523 MAC_ENTRY(aa)
2524 ),
2525
2526 TP_fast_assign(
2527 WIPHY_ASSIGN;
2528 NETDEV_ASSIGN;
2529 MAC_ASSIGN(aa, aa);
2530 ),
2531
3d9c3617
JB
2532 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM",
2533 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->aa)
3a00df57
AS
2534);
2535
40cbfa90
SD
2536TRACE_EVENT(rdev_external_auth,
2537 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
2538 struct cfg80211_external_auth_params *params),
2539 TP_ARGS(wiphy, netdev, params),
2540 TP_STRUCT__entry(WIPHY_ENTRY
2541 NETDEV_ENTRY
2542 MAC_ENTRY(bssid)
2543 __array(u8, ssid, IEEE80211_MAX_SSID_LEN + 1)
2544 __field(u16, status)
9a47c1ef 2545 MAC_ENTRY(mld_addr)
40cbfa90
SD
2546 ),
2547 TP_fast_assign(WIPHY_ASSIGN;
2548 NETDEV_ASSIGN;
2549 MAC_ASSIGN(bssid, params->bssid);
2550 memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1);
2551 memcpy(__entry->ssid, params->ssid.ssid,
2552 params->ssid.ssid_len);
2553 __entry->status = params->status;
9a47c1ef 2554 MAC_ASSIGN(mld_addr, params->mld_addr);
40cbfa90 2555 ),
3d9c3617 2556 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM"
9a47c1ef
VJ
2557 ", ssid: %s, status: %u, mld_addr: %pM",
2558 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid,
2559 __entry->ssid, __entry->status, __entry->mld_addr)
40cbfa90
SD
2560);
2561
5207ca55
JB
2562TRACE_EVENT(rdev_start_radar_detection,
2563 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
2564 struct cfg80211_chan_def *chandef,
2565 u32 cac_time_ms),
2566 TP_ARGS(wiphy, netdev, chandef, cac_time_ms),
2567 TP_STRUCT__entry(
2568 WIPHY_ENTRY
2569 NETDEV_ENTRY
2570 CHAN_DEF_ENTRY
2571 __field(u32, cac_time_ms)
2572 ),
2573 TP_fast_assign(
2574 WIPHY_ASSIGN;
2575 NETDEV_ASSIGN;
2576 CHAN_DEF_ASSIGN(chandef);
2577 __entry->cac_time_ms = cac_time_ms;
2578 ),
2579 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT
2580 ", cac_time_ms=%u",
2581 WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG,
2582 __entry->cac_time_ms)
2583);
2584
2585TRACE_EVENT(rdev_set_mcast_rate,
2586 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
2587 int *mcast_rate),
2588 TP_ARGS(wiphy, netdev, mcast_rate),
2589 TP_STRUCT__entry(
2590 WIPHY_ENTRY
2591 NETDEV_ENTRY
2592 __array(int, mcast_rate, NUM_NL80211_BANDS)
2593 ),
2594 TP_fast_assign(
2595 WIPHY_ASSIGN;
2596 NETDEV_ASSIGN;
2597 memcpy(__entry->mcast_rate, mcast_rate,
2598 sizeof(int) * NUM_NL80211_BANDS);
2599 ),
2600 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", "
e548a1c3 2601 "mcast_rates [2.4GHz=0x%x, 5.2GHz=0x%x, 6GHz=0x%x, 60GHz=0x%x]",
5207ca55
JB
2602 WIPHY_PR_ARG, NETDEV_PR_ARG,
2603 __entry->mcast_rate[NL80211_BAND_2GHZ],
2604 __entry->mcast_rate[NL80211_BAND_5GHZ],
e548a1c3 2605 __entry->mcast_rate[NL80211_BAND_6GHZ],
5207ca55
JB
2606 __entry->mcast_rate[NL80211_BAND_60GHZ])
2607);
2608
2609TRACE_EVENT(rdev_set_coalesce,
2610 TP_PROTO(struct wiphy *wiphy, struct cfg80211_coalesce *coalesce),
2611 TP_ARGS(wiphy, coalesce),
2612 TP_STRUCT__entry(
2613 WIPHY_ENTRY
2614 __field(int, n_rules)
2615 ),
2616 TP_fast_assign(
2617 WIPHY_ASSIGN;
2618 __entry->n_rules = coalesce ? coalesce->n_rules : 0;
2619 ),
2620 TP_printk(WIPHY_PR_FMT ", n_rules=%d",
2621 WIPHY_PR_ARG, __entry->n_rules)
2622);
2623
2624DEFINE_EVENT(wiphy_wdev_evt, rdev_abort_scan,
2625 TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev),
2626 TP_ARGS(wiphy, wdev)
2627);
2628
2629TRACE_EVENT(rdev_set_multicast_to_unicast,
2630 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
2631 const bool enabled),
2632 TP_ARGS(wiphy, netdev, enabled),
2633 TP_STRUCT__entry(
2634 WIPHY_ENTRY
2635 NETDEV_ENTRY
2636 __field(bool, enabled)
2637 ),
2638 TP_fast_assign(
2639 WIPHY_ASSIGN;
2640 NETDEV_ASSIGN;
2641 __entry->enabled = enabled;
2642 ),
2643 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", unicast: %s",
2644 WIPHY_PR_ARG, NETDEV_PR_ARG,
2645 BOOL_TO_STR(__entry->enabled))
2646);
2647
2648DEFINE_EVENT(wiphy_wdev_evt, rdev_get_txq_stats,
2649 TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev),
2650 TP_ARGS(wiphy, wdev)
2651);
2652
2653TRACE_EVENT(rdev_get_ftm_responder_stats,
2654 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
2655 struct cfg80211_ftm_responder_stats *ftm_stats),
2656
2657 TP_ARGS(wiphy, netdev, ftm_stats),
2658
2659 TP_STRUCT__entry(
2660 WIPHY_ENTRY
2661 NETDEV_ENTRY
2662 __field(u64, timestamp)
2663 __field(u32, success_num)
2664 __field(u32, partial_num)
2665 __field(u32, failed_num)
2666 __field(u32, asap_num)
2667 __field(u32, non_asap_num)
2668 __field(u64, duration)
2669 __field(u32, unknown_triggers)
2670 __field(u32, reschedule)
2671 __field(u32, out_of_window)
2672 ),
2673
2674 TP_fast_assign(
2675 WIPHY_ASSIGN;
2676 NETDEV_ASSIGN;
2677 __entry->success_num = ftm_stats->success_num;
2678 __entry->partial_num = ftm_stats->partial_num;
2679 __entry->failed_num = ftm_stats->failed_num;
2680 __entry->asap_num = ftm_stats->asap_num;
2681 __entry->non_asap_num = ftm_stats->non_asap_num;
2682 __entry->duration = ftm_stats->total_duration_ms;
2683 __entry->unknown_triggers = ftm_stats->unknown_triggers_num;
2684 __entry->reschedule = ftm_stats->reschedule_requests_num;
2685 __entry->out_of_window = ftm_stats->out_of_window_triggers_num;
2686 ),
2687
2688 TP_printk(WIPHY_PR_FMT "Ftm responder stats: success %u, partial %u, "
2689 "failed %u, asap %u, non asap %u, total duration %llu, unknown "
2690 "triggers %u, rescheduled %u, out of window %u", WIPHY_PR_ARG,
2691 __entry->success_num, __entry->partial_num, __entry->failed_num,
2692 __entry->asap_num, __entry->non_asap_num, __entry->duration,
2693 __entry->unknown_triggers, __entry->reschedule,
2694 __entry->out_of_window)
2695);
2696
9bb7e0f2
JB
2697DEFINE_EVENT(wiphy_wdev_cookie_evt, rdev_start_pmsr,
2698 TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie),
2699 TP_ARGS(wiphy, wdev, cookie)
2700);
2701
2702DEFINE_EVENT(wiphy_wdev_cookie_evt, rdev_abort_pmsr,
2703 TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie),
2704 TP_ARGS(wiphy, wdev, cookie)
2705);
2706
e306784a
SM
2707TRACE_EVENT(rdev_set_fils_aad,
2708 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
2709 struct cfg80211_fils_aad *fils_aad),
2710 TP_ARGS(wiphy, netdev, fils_aad),
2711 TP_STRUCT__entry(WIPHY_ENTRY
2712 NETDEV_ENTRY
2713 __array(u8, macaddr, ETH_ALEN)
2714 __field(u8, kek_len)
2715 ),
2716 TP_fast_assign(WIPHY_ASSIGN;
2717 NETDEV_ASSIGN;
2718 FILS_AAD_ASSIGN(fils_aad);
2719 ),
2720 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " FILS_AAD_PR_FMT,
2721 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->macaddr,
2722 __entry->kek_len)
2723);
2724
c8a11ed5
JB
2725TRACE_EVENT(rdev_update_owe_info,
2726 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
2727 struct cfg80211_update_owe_info *owe_info),
2728 TP_ARGS(wiphy, netdev, owe_info),
2729 TP_STRUCT__entry(WIPHY_ENTRY
2730 NETDEV_ENTRY
2731 MAC_ENTRY(peer)
2732 __field(u16, status)
2733 __dynamic_array(u8, ie, owe_info->ie_len)),
2734 TP_fast_assign(WIPHY_ASSIGN;
2735 NETDEV_ASSIGN;
2736 MAC_ASSIGN(peer, owe_info->peer);
2737 __entry->status = owe_info->status;
2738 memcpy(__get_dynamic_array(ie),
2739 owe_info->ie, owe_info->ie_len);),
3d9c3617
JB
2740 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM"
2741 " status %d", WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer,
c8a11ed5
JB
2742 __entry->status)
2743);
2744
2745TRACE_EVENT(rdev_probe_mesh_link,
2746 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
2747 const u8 *dest, const u8 *buf, size_t len),
2748 TP_ARGS(wiphy, netdev, dest, buf, len),
2749 TP_STRUCT__entry(
2750 WIPHY_ENTRY
2751 NETDEV_ENTRY
2752 MAC_ENTRY(dest)
2753 ),
2754 TP_fast_assign(
2755 WIPHY_ASSIGN;
2756 NETDEV_ASSIGN;
2757 MAC_ASSIGN(dest, dest);
2758 ),
3d9c3617
JB
2759 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM",
2760 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->dest)
c8a11ed5
JB
2761);
2762
2763TRACE_EVENT(rdev_set_tid_config,
2764 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
2765 struct cfg80211_tid_config *tid_conf),
2766 TP_ARGS(wiphy, netdev, tid_conf),
2767 TP_STRUCT__entry(
2768 WIPHY_ENTRY
2769 NETDEV_ENTRY
2770 MAC_ENTRY(peer)
2771 ),
2772 TP_fast_assign(
2773 WIPHY_ASSIGN;
2774 NETDEV_ASSIGN;
2775 MAC_ASSIGN(peer, tid_conf->peer);
2776 ),
3d9c3617
JB
2777 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM",
2778 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer)
c8a11ed5
JB
2779);
2780
2781TRACE_EVENT(rdev_reset_tid_config,
2782 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
2783 const u8 *peer, u8 tids),
2784 TP_ARGS(wiphy, netdev, peer, tids),
2785 TP_STRUCT__entry(
2786 WIPHY_ENTRY
2787 NETDEV_ENTRY
2788 MAC_ENTRY(peer)
2789 __field(u8, tids)
2790 ),
2791 TP_fast_assign(
2792 WIPHY_ASSIGN;
2793 NETDEV_ASSIGN;
2794 MAC_ASSIGN(peer, peer);
2795 __entry->tids = tids;
2796 ),
3d9c3617
JB
2797 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM, tids: 0x%x",
2798 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, __entry->tids)
c8a11ed5
JB
2799);
2800
2801TRACE_EVENT(rdev_set_sar_specs,
2802 TP_PROTO(struct wiphy *wiphy, struct cfg80211_sar_specs *sar),
2803 TP_ARGS(wiphy, sar),
2804 TP_STRUCT__entry(
2805 WIPHY_ENTRY
2806 __field(u16, type)
2807 __field(u16, num)
2808 ),
2809 TP_fast_assign(
2810 WIPHY_ASSIGN;
2811 __entry->type = sar->type;
2812 __entry->num = sar->num_sub_specs;
2813
2814 ),
2815 TP_printk(WIPHY_PR_FMT ", Set type:%d, num_specs:%d",
2816 WIPHY_PR_ARG, __entry->type, __entry->num)
2817);
2818
2819TRACE_EVENT(rdev_color_change,
2820 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
2821 struct cfg80211_color_change_settings *params),
2822 TP_ARGS(wiphy, netdev, params),
2823 TP_STRUCT__entry(
2824 WIPHY_ENTRY
2825 NETDEV_ENTRY
2826 __field(u8, count)
2827 __field(u16, bcn_ofs)
2828 __field(u16, pres_ofs)
2829 ),
2830 TP_fast_assign(
2831 WIPHY_ASSIGN;
2832 NETDEV_ASSIGN;
2833 __entry->count = params->count;
2834 __entry->bcn_ofs = params->counter_offset_beacon;
2835 __entry->pres_ofs = params->counter_offset_presp;
2836 ),
2837 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT
2838 ", count: %u",
2839 WIPHY_PR_ARG, NETDEV_PR_ARG,
2840 __entry->count)
2841);
2842
2843TRACE_EVENT(rdev_set_radar_background,
2844 TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef),
2845
2846 TP_ARGS(wiphy, chandef),
2847
2848 TP_STRUCT__entry(
2849 WIPHY_ENTRY
2850 CHAN_DEF_ENTRY
2851 ),
2852
2853 TP_fast_assign(
2854 WIPHY_ASSIGN;
2855 CHAN_DEF_ASSIGN(chandef)
2856 ),
2857
2858 TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT,
2859 WIPHY_PR_ARG, CHAN_DEF_PR_ARG)
2860);
2861
f2a0290b
JB
2862DEFINE_EVENT(wiphy_wdev_link_evt, rdev_add_intf_link,
2863 TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
2864 unsigned int link_id),
2865 TP_ARGS(wiphy, wdev, link_id)
2866);
2867
2868DEFINE_EVENT(wiphy_wdev_link_evt, rdev_del_intf_link,
2869 TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
2870 unsigned int link_id),
2871 TP_ARGS(wiphy, wdev, link_id)
2872);
2873
4ee3e063
BL
2874/*************************************************************
2875 * cfg80211 exported functions traces *
2876 *************************************************************/
2877
2878TRACE_EVENT(cfg80211_return_bool,
2879 TP_PROTO(bool ret),
2880 TP_ARGS(ret),
2881 TP_STRUCT__entry(
2882 __field(bool, ret)
2883 ),
2884 TP_fast_assign(
2885 __entry->ret = ret;
2886 ),
2887 TP_printk("returned %s", BOOL_TO_STR(__entry->ret))
2888);
2889
2890DECLARE_EVENT_CLASS(cfg80211_netdev_mac_evt,
2891 TP_PROTO(struct net_device *netdev, const u8 *macaddr),
2892 TP_ARGS(netdev, macaddr),
2893 TP_STRUCT__entry(
2894 NETDEV_ENTRY
2895 MAC_ENTRY(macaddr)
2896 ),
2897 TP_fast_assign(
2898 NETDEV_ASSIGN;
2899 MAC_ASSIGN(macaddr, macaddr);
2900 ),
3d9c3617
JB
2901 TP_printk(NETDEV_PR_FMT ", mac: %pM",
2902 NETDEV_PR_ARG, __entry->macaddr)
4ee3e063
BL
2903);
2904
2905DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_notify_new_peer_candidate,
2906 TP_PROTO(struct net_device *netdev, const u8 *macaddr),
2907 TP_ARGS(netdev, macaddr)
2908);
2909
2910DECLARE_EVENT_CLASS(netdev_evt_only,
2911 TP_PROTO(struct net_device *netdev),
2912 TP_ARGS(netdev),
2913 TP_STRUCT__entry(
2914 NETDEV_ENTRY
2915 ),
2916 TP_fast_assign(
2917 NETDEV_ASSIGN;
2918 ),
2919 TP_printk(NETDEV_PR_FMT , NETDEV_PR_ARG)
2920);
2921
2922DEFINE_EVENT(netdev_evt_only, cfg80211_send_rx_auth,
2923 TP_PROTO(struct net_device *netdev),
2924 TP_ARGS(netdev)
2925);
2926
2927TRACE_EVENT(cfg80211_send_rx_assoc,
5cd212cb
JB
2928 TP_PROTO(struct net_device *netdev,
2929 struct cfg80211_rx_assoc_resp *data),
2930 TP_ARGS(netdev, data),
4ee3e063
BL
2931 TP_STRUCT__entry(
2932 NETDEV_ENTRY
5cd212cb 2933 MAC_ENTRY(ap_addr)
4ee3e063
BL
2934 ),
2935 TP_fast_assign(
2936 NETDEV_ASSIGN;
5cd212cb
JB
2937 MAC_ASSIGN(ap_addr,
2938 data->ap_mld_addr ?: data->links[0].bss->bssid);
4ee3e063 2939 ),
3d9c3617
JB
2940 TP_printk(NETDEV_PR_FMT ", %pM",
2941 NETDEV_PR_ARG, __entry->ap_addr)
4ee3e063
BL
2942);
2943
6ff57cf8
JB
2944DECLARE_EVENT_CLASS(netdev_frame_event,
2945 TP_PROTO(struct net_device *netdev, const u8 *buf, int len),
2946 TP_ARGS(netdev, buf, len),
2947 TP_STRUCT__entry(
2948 NETDEV_ENTRY
2949 __dynamic_array(u8, frame, len)
2950 ),
2951 TP_fast_assign(
2952 NETDEV_ASSIGN;
2953 memcpy(__get_dynamic_array(frame), buf, len);
2954 ),
2955 TP_printk(NETDEV_PR_FMT ", ftype:0x%.2x",
2956 NETDEV_PR_ARG,
2957 le16_to_cpup((__le16 *)__get_dynamic_array(frame)))
4ee3e063
BL
2958);
2959
6ff57cf8
JB
2960DEFINE_EVENT(netdev_frame_event, cfg80211_rx_unprot_mlme_mgmt,
2961 TP_PROTO(struct net_device *netdev, const u8 *buf, int len),
2962 TP_ARGS(netdev, buf, len)
4ee3e063
BL
2963);
2964
6ff57cf8
JB
2965DEFINE_EVENT(netdev_frame_event, cfg80211_rx_mlme_mgmt,
2966 TP_PROTO(struct net_device *netdev, const u8 *buf, int len),
2967 TP_ARGS(netdev, buf, len)
4ee3e063
BL
2968);
2969
6ff57cf8 2970TRACE_EVENT(cfg80211_tx_mlme_mgmt,
3bb02143
JB
2971 TP_PROTO(struct net_device *netdev, const u8 *buf, int len,
2972 bool reconnect),
2973 TP_ARGS(netdev, buf, len, reconnect),
6ff57cf8
JB
2974 TP_STRUCT__entry(
2975 NETDEV_ENTRY
2976 __dynamic_array(u8, frame, len)
3bb02143 2977 __field(int, reconnect)
6ff57cf8
JB
2978 ),
2979 TP_fast_assign(
2980 NETDEV_ASSIGN;
2981 memcpy(__get_dynamic_array(frame), buf, len);
3bb02143 2982 __entry->reconnect = reconnect;
6ff57cf8 2983 ),
3bb02143 2984 TP_printk(NETDEV_PR_FMT ", ftype:0x%.2x reconnect:%d",
6ff57cf8 2985 NETDEV_PR_ARG,
3bb02143
JB
2986 le16_to_cpup((__le16 *)__get_dynamic_array(frame)),
2987 __entry->reconnect)
4ee3e063
BL
2988);
2989
2990DECLARE_EVENT_CLASS(netdev_mac_evt,
2991 TP_PROTO(struct net_device *netdev, const u8 *mac),
2992 TP_ARGS(netdev, mac),
2993 TP_STRUCT__entry(
2994 NETDEV_ENTRY
2995 MAC_ENTRY(mac)
2996 ),
2997 TP_fast_assign(
2998 NETDEV_ASSIGN;
2999 MAC_ASSIGN(mac, mac)
3000 ),
3d9c3617
JB
3001 TP_printk(NETDEV_PR_FMT ", mac: %pM",
3002 NETDEV_PR_ARG, __entry->mac)
4ee3e063
BL
3003);
3004
3005DEFINE_EVENT(netdev_mac_evt, cfg80211_send_auth_timeout,
3006 TP_PROTO(struct net_device *netdev, const u8 *mac),
3007 TP_ARGS(netdev, mac)
3008);
3009
f662d2f4
JB
3010TRACE_EVENT(cfg80211_send_assoc_failure,
3011 TP_PROTO(struct net_device *netdev,
3012 struct cfg80211_assoc_failure *data),
3013 TP_ARGS(netdev, data),
3014 TP_STRUCT__entry(
3015 NETDEV_ENTRY
3016 MAC_ENTRY(ap_addr)
3017 __field(bool, timeout)
3018 ),
3019 TP_fast_assign(
3020 NETDEV_ASSIGN;
3021 MAC_ASSIGN(ap_addr, data->ap_mld_addr ?: data->bss[0]->bssid);
3022 __entry->timeout = data->timeout;
3023 ),
3d9c3617
JB
3024 TP_printk(NETDEV_PR_FMT ", mac: %pM, timeout: %d",
3025 NETDEV_PR_ARG, __entry->ap_addr, __entry->timeout)
4ee3e063
BL
3026);
3027
3028TRACE_EVENT(cfg80211_michael_mic_failure,
3029 TP_PROTO(struct net_device *netdev, const u8 *addr,
3030 enum nl80211_key_type key_type, int key_id, const u8 *tsc),
3031 TP_ARGS(netdev, addr, key_type, key_id, tsc),
3032 TP_STRUCT__entry(
3033 NETDEV_ENTRY
3034 MAC_ENTRY(addr)
3035 __field(enum nl80211_key_type, key_type)
3036 __field(int, key_id)
3037 __array(u8, tsc, 6)
3038 ),
3039 TP_fast_assign(
3040 NETDEV_ASSIGN;
3041 MAC_ASSIGN(addr, addr);
3042 __entry->key_type = key_type;
3043 __entry->key_id = key_id;
8c26d458
EP
3044 if (tsc)
3045 memcpy(__entry->tsc, tsc, 6);
4ee3e063 3046 ),
3d9c3617
JB
3047 TP_printk(NETDEV_PR_FMT ", %pM, key type: %d, key id: %d, tsc: %pm",
3048 NETDEV_PR_ARG, __entry->addr, __entry->key_type,
4ee3e063
BL
3049 __entry->key_id, __entry->tsc)
3050);
3051
3052TRACE_EVENT(cfg80211_ready_on_channel,
3053 TP_PROTO(struct wireless_dev *wdev, u64 cookie,
3054 struct ieee80211_channel *chan,
42d97a59
JB
3055 unsigned int duration),
3056 TP_ARGS(wdev, cookie, chan, duration),
4ee3e063
BL
3057 TP_STRUCT__entry(
3058 WDEV_ENTRY
3059 __field(u64, cookie)
3060 CHAN_ENTRY
4ee3e063
BL
3061 __field(unsigned int, duration)
3062 ),
3063 TP_fast_assign(
3064 WDEV_ASSIGN;
3065 __entry->cookie = cookie;
3066 CHAN_ASSIGN(chan);
4ee3e063
BL
3067 __entry->duration = duration;
3068 ),
42d97a59 3069 TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT ", duration: %u",
4ee3e063 3070 WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG,
42d97a59 3071 __entry->duration)
4ee3e063
BL
3072);
3073
3074TRACE_EVENT(cfg80211_ready_on_channel_expired,
3075 TP_PROTO(struct wireless_dev *wdev, u64 cookie,
42d97a59
JB
3076 struct ieee80211_channel *chan),
3077 TP_ARGS(wdev, cookie, chan),
4ee3e063
BL
3078 TP_STRUCT__entry(
3079 WDEV_ENTRY
3080 __field(u64, cookie)
3081 CHAN_ENTRY
4ee3e063
BL
3082 ),
3083 TP_fast_assign(
3084 WDEV_ASSIGN;
3085 __entry->cookie = cookie;
3086 CHAN_ASSIGN(chan);
4ee3e063 3087 ),
42d97a59
JB
3088 TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT,
3089 WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG)
4ee3e063
BL
3090);
3091
1c38c7f2
JP
3092TRACE_EVENT(cfg80211_tx_mgmt_expired,
3093 TP_PROTO(struct wireless_dev *wdev, u64 cookie,
3094 struct ieee80211_channel *chan),
3095 TP_ARGS(wdev, cookie, chan),
3096 TP_STRUCT__entry(
3097 WDEV_ENTRY
3098 __field(u64, cookie)
3099 CHAN_ENTRY
3100 ),
3101 TP_fast_assign(
3102 WDEV_ASSIGN;
3103 __entry->cookie = cookie;
3104 CHAN_ASSIGN(chan);
3105 ),
3106 TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT,
3107 WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG)
3108);
3109
4ee3e063
BL
3110TRACE_EVENT(cfg80211_new_sta,
3111 TP_PROTO(struct net_device *netdev, const u8 *mac_addr,
3112 struct station_info *sinfo),
3113 TP_ARGS(netdev, mac_addr, sinfo),
3114 TP_STRUCT__entry(
3115 NETDEV_ENTRY
3116 MAC_ENTRY(mac_addr)
3117 SINFO_ENTRY
3118 ),
3119 TP_fast_assign(
3120 NETDEV_ASSIGN;
3121 MAC_ASSIGN(mac_addr, mac_addr);
3122 SINFO_ASSIGN;
3123 ),
3d9c3617
JB
3124 TP_printk(NETDEV_PR_FMT ", %pM",
3125 NETDEV_PR_ARG, __entry->mac_addr)
4ee3e063
BL
3126);
3127
3128DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_del_sta,
3129 TP_PROTO(struct net_device *netdev, const u8 *macaddr),
3130 TP_ARGS(netdev, macaddr)
3131);
3132
3133TRACE_EVENT(cfg80211_rx_mgmt,
00b3d840
AS
3134 TP_PROTO(struct wireless_dev *wdev, struct cfg80211_rx_info *info),
3135 TP_ARGS(wdev, info),
4ee3e063
BL
3136 TP_STRUCT__entry(
3137 WDEV_ENTRY
3138 __field(int, freq)
6c2fb1e6 3139 __field(int, sig_dbm)
4ee3e063
BL
3140 ),
3141 TP_fast_assign(
3142 WDEV_ASSIGN;
00b3d840
AS
3143 __entry->freq = info->freq;
3144 __entry->sig_dbm = info->sig_dbm;
4ee3e063 3145 ),
e76fede8
TP
3146 TP_printk(WDEV_PR_FMT ", freq: "KHZ_F", sig dbm: %d",
3147 WDEV_PR_ARG, PR_KHZ(__entry->freq), __entry->sig_dbm)
4ee3e063
BL
3148);
3149
3150TRACE_EVENT(cfg80211_mgmt_tx_status,
3151 TP_PROTO(struct wireless_dev *wdev, u64 cookie, bool ack),
3152 TP_ARGS(wdev, cookie, ack),
3153 TP_STRUCT__entry(
3154 WDEV_ENTRY
3155 __field(u64, cookie)
3156 __field(bool, ack)
3157 ),
3158 TP_fast_assign(
3159 WDEV_ASSIGN;
3160 __entry->cookie = cookie;
3161 __entry->ack = ack;
3162 ),
3163 TP_printk(WDEV_PR_FMT", cookie: %llu, ack: %s",
3164 WDEV_PR_ARG, __entry->cookie, BOOL_TO_STR(__entry->ack))
dca9ca2d
MT
3165);
3166
3167TRACE_EVENT(cfg80211_control_port_tx_status,
3168 TP_PROTO(struct wireless_dev *wdev, u64 cookie, bool ack),
3169 TP_ARGS(wdev, cookie, ack),
3170 TP_STRUCT__entry(
3171 WDEV_ENTRY
3172 __field(u64, cookie)
3173 __field(bool, ack)
3174 ),
3175 TP_fast_assign(
3176 WDEV_ASSIGN;
3177 __entry->cookie = cookie;
3178 __entry->ack = ack;
3179 ),
3180 TP_printk(WDEV_PR_FMT", cookie: %llu, ack: %s",
3181 WDEV_PR_ARG, __entry->cookie, BOOL_TO_STR(__entry->ack))
4ee3e063
BL
3182);
3183
6a671a50 3184TRACE_EVENT(cfg80211_rx_control_port,
a948f713 3185 TP_PROTO(struct net_device *netdev, struct sk_buff *skb,
4c532321
JB
3186 bool unencrypted, int link_id),
3187 TP_ARGS(netdev, skb, unencrypted, link_id),
6a671a50
DK
3188 TP_STRUCT__entry(
3189 NETDEV_ENTRY
a948f713
DK
3190 __field(int, len)
3191 MAC_ENTRY(from)
6a671a50
DK
3192 __field(u16, proto)
3193 __field(bool, unencrypted)
4c532321 3194 __field(int, link_id)
6a671a50
DK
3195 ),
3196 TP_fast_assign(
3197 NETDEV_ASSIGN;
a948f713
DK
3198 __entry->len = skb->len;
3199 MAC_ASSIGN(from, eth_hdr(skb)->h_source);
3200 __entry->proto = be16_to_cpu(skb->protocol);
6a671a50 3201 __entry->unencrypted = unencrypted;
4c532321 3202 __entry->link_id = link_id;
6a671a50 3203 ),
4c532321 3204 TP_printk(NETDEV_PR_FMT ", len=%d, %pM, proto: 0x%x, unencrypted: %s, link: %d",
3d9c3617 3205 NETDEV_PR_ARG, __entry->len, __entry->from,
4c532321
JB
3206 __entry->proto, BOOL_TO_STR(__entry->unencrypted),
3207 __entry->link_id)
6a671a50
DK
3208);
3209
4ee3e063
BL
3210TRACE_EVENT(cfg80211_cqm_rssi_notify,
3211 TP_PROTO(struct net_device *netdev,
bee427b8
AZ
3212 enum nl80211_cqm_rssi_threshold_event rssi_event,
3213 s32 rssi_level),
3214 TP_ARGS(netdev, rssi_event, rssi_level),
4ee3e063
BL
3215 TP_STRUCT__entry(
3216 NETDEV_ENTRY
3217 __field(enum nl80211_cqm_rssi_threshold_event, rssi_event)
bee427b8 3218 __field(s32, rssi_level)
4ee3e063
BL
3219 ),
3220 TP_fast_assign(
3221 NETDEV_ASSIGN;
3222 __entry->rssi_event = rssi_event;
bee427b8 3223 __entry->rssi_level = rssi_level;
4ee3e063 3224 ),
bee427b8
AZ
3225 TP_printk(NETDEV_PR_FMT ", rssi event: %d, level: %d",
3226 NETDEV_PR_ARG, __entry->rssi_event, __entry->rssi_level)
4ee3e063
BL
3227);
3228
683b6d3b 3229TRACE_EVENT(cfg80211_reg_can_beacon,
174e0cd2 3230 TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef,
923b352f
AN
3231 enum nl80211_iftype iftype, bool check_no_ir),
3232 TP_ARGS(wiphy, chandef, iftype, check_no_ir),
4ee3e063
BL
3233 TP_STRUCT__entry(
3234 WIPHY_ENTRY
683b6d3b 3235 CHAN_DEF_ENTRY
174e0cd2 3236 __field(enum nl80211_iftype, iftype)
923b352f 3237 __field(bool, check_no_ir)
4ee3e063
BL
3238 ),
3239 TP_fast_assign(
3240 WIPHY_ASSIGN;
683b6d3b 3241 CHAN_DEF_ASSIGN(chandef);
174e0cd2 3242 __entry->iftype = iftype;
923b352f 3243 __entry->check_no_ir = check_no_ir;
4ee3e063 3244 ),
923b352f
AN
3245 TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", iftype=%d check_no_ir=%s",
3246 WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->iftype,
3247 BOOL_TO_STR(__entry->check_no_ir))
4ee3e063
BL
3248);
3249
04f39047
SW
3250TRACE_EVENT(cfg80211_chandef_dfs_required,
3251 TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef),
3252 TP_ARGS(wiphy, chandef),
3253 TP_STRUCT__entry(
3254 WIPHY_ENTRY
3255 CHAN_DEF_ENTRY
3256 ),
3257 TP_fast_assign(
3258 WIPHY_ASSIGN;
3259 CHAN_DEF_ASSIGN(chandef);
3260 ),
3261 TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT,
3262 WIPHY_PR_ARG, CHAN_DEF_PR_ARG)
3263);
3264
4ee3e063 3265TRACE_EVENT(cfg80211_ch_switch_notify,
683b6d3b 3266 TP_PROTO(struct net_device *netdev,
7b0a0e3c 3267 struct cfg80211_chan_def *chandef,
b345f063
AD
3268 unsigned int link_id,
3269 u16 punct_bitmap),
3270 TP_ARGS(netdev, chandef, link_id, punct_bitmap),
4ee3e063
BL
3271 TP_STRUCT__entry(
3272 NETDEV_ENTRY
683b6d3b 3273 CHAN_DEF_ENTRY
7b0a0e3c 3274 __field(unsigned int, link_id)
b345f063 3275 __field(u16, punct_bitmap)
4ee3e063
BL
3276 ),
3277 TP_fast_assign(
3278 NETDEV_ASSIGN;
683b6d3b 3279 CHAN_DEF_ASSIGN(chandef);
7b0a0e3c 3280 __entry->link_id = link_id;
b345f063 3281 __entry->punct_bitmap = punct_bitmap;
4ee3e063 3282 ),
b345f063
AD
3283 TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d, punct_bitmap:%u",
3284 NETDEV_PR_ARG, CHAN_DEF_PR_ARG, __entry->link_id,
3285 __entry->punct_bitmap)
4ee3e063
BL
3286);
3287
f8d7552e
LC
3288TRACE_EVENT(cfg80211_ch_switch_started_notify,
3289 TP_PROTO(struct net_device *netdev,
b8c9024e 3290 struct cfg80211_chan_def *chandef,
b345f063
AD
3291 unsigned int link_id,
3292 u16 punct_bitmap),
3293 TP_ARGS(netdev, chandef, link_id, punct_bitmap),
f8d7552e
LC
3294 TP_STRUCT__entry(
3295 NETDEV_ENTRY
3296 CHAN_DEF_ENTRY
b8c9024e 3297 __field(unsigned int, link_id)
b345f063 3298 __field(u16, punct_bitmap)
f8d7552e
LC
3299 ),
3300 TP_fast_assign(
3301 NETDEV_ASSIGN;
3302 CHAN_DEF_ASSIGN(chandef);
b8c9024e 3303 __entry->link_id = link_id;
b345f063 3304 __entry->punct_bitmap = punct_bitmap;
f8d7552e 3305 ),
b345f063
AD
3306 TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d, punct_bitmap:%u",
3307 NETDEV_PR_ARG, CHAN_DEF_PR_ARG, __entry->link_id,
3308 __entry->punct_bitmap)
f8d7552e
LC
3309);
3310
04f39047 3311TRACE_EVENT(cfg80211_radar_event,
c47240cb
LB
3312 TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef,
3313 bool offchan),
3314 TP_ARGS(wiphy, chandef, offchan),
04f39047
SW
3315 TP_STRUCT__entry(
3316 WIPHY_ENTRY
3317 CHAN_DEF_ENTRY
c47240cb 3318 __field(bool, offchan)
04f39047
SW
3319 ),
3320 TP_fast_assign(
3321 WIPHY_ASSIGN;
3322 CHAN_DEF_ASSIGN(chandef);
c47240cb 3323 __entry->offchan = offchan;
04f39047 3324 ),
c47240cb
LB
3325 TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", offchan %d",
3326 WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->offchan)
04f39047
SW
3327);
3328
3329TRACE_EVENT(cfg80211_cac_event,
3330 TP_PROTO(struct net_device *netdev, enum nl80211_radar_event evt),
3331 TP_ARGS(netdev, evt),
3332 TP_STRUCT__entry(
3333 NETDEV_ENTRY
3334 __field(enum nl80211_radar_event, evt)
3335 ),
3336 TP_fast_assign(
3337 NETDEV_ASSIGN;
3338 __entry->evt = evt;
3339 ),
3340 TP_printk(NETDEV_PR_FMT ", event: %d",
3341 NETDEV_PR_ARG, __entry->evt)
3342);
3343
4ee3e063
BL
3344DECLARE_EVENT_CLASS(cfg80211_rx_evt,
3345 TP_PROTO(struct net_device *netdev, const u8 *addr),
3346 TP_ARGS(netdev, addr),
3347 TP_STRUCT__entry(
3348 NETDEV_ENTRY
3349 MAC_ENTRY(addr)
3350 ),
3351 TP_fast_assign(
3352 NETDEV_ASSIGN;
3353 MAC_ASSIGN(addr, addr);
3354 ),
3d9c3617 3355 TP_printk(NETDEV_PR_FMT ", %pM", NETDEV_PR_ARG, __entry->addr)
4ee3e063
BL
3356);
3357
4ee3e063
BL
3358DEFINE_EVENT(cfg80211_rx_evt, cfg80211_rx_spurious_frame,
3359 TP_PROTO(struct net_device *netdev, const u8 *addr),
3360 TP_ARGS(netdev, addr)
3361);
3362
3363DEFINE_EVENT(cfg80211_rx_evt, cfg80211_rx_unexpected_4addr_frame,
3364 TP_PROTO(struct net_device *netdev, const u8 *addr),
3365 TP_ARGS(netdev, addr)
3366);
3367
fe94f3a4
AQ
3368TRACE_EVENT(cfg80211_ibss_joined,
3369 TP_PROTO(struct net_device *netdev, const u8 *bssid,
3370 struct ieee80211_channel *channel),
3371 TP_ARGS(netdev, bssid, channel),
3372 TP_STRUCT__entry(
3373 NETDEV_ENTRY
3374 MAC_ENTRY(bssid)
3375 CHAN_ENTRY
3376 ),
3377 TP_fast_assign(
3378 NETDEV_ASSIGN;
3379 MAC_ASSIGN(bssid, bssid);
3380 CHAN_ASSIGN(channel);
3381 ),
3d9c3617
JB
3382 TP_printk(NETDEV_PR_FMT ", bssid: %pM, " CHAN_PR_FMT,
3383 NETDEV_PR_ARG, __entry->bssid, CHAN_PR_ARG)
fe94f3a4
AQ
3384);
3385
4ee3e063
BL
3386TRACE_EVENT(cfg80211_probe_status,
3387 TP_PROTO(struct net_device *netdev, const u8 *addr, u64 cookie,
3388 bool acked),
3389 TP_ARGS(netdev, addr, cookie, acked),
3390 TP_STRUCT__entry(
3391 NETDEV_ENTRY
3392 MAC_ENTRY(addr)
3393 __field(u64, cookie)
3394 __field(bool, acked)
3395 ),
3396 TP_fast_assign(
3397 NETDEV_ASSIGN;
3398 MAC_ASSIGN(addr, addr);
3399 __entry->cookie = cookie;
3400 __entry->acked = acked;
3401 ),
3d9c3617
JB
3402 TP_printk(NETDEV_PR_FMT " addr:%pM, cookie: %llu, acked: %s",
3403 NETDEV_PR_ARG, __entry->addr, __entry->cookie,
4ee3e063
BL
3404 BOOL_TO_STR(__entry->acked))
3405);
3406
3407TRACE_EVENT(cfg80211_cqm_pktloss_notify,
3408 TP_PROTO(struct net_device *netdev, const u8 *peer, u32 num_packets),
3409 TP_ARGS(netdev, peer, num_packets),
3410 TP_STRUCT__entry(
3411 NETDEV_ENTRY
3412 MAC_ENTRY(peer)
3413 __field(u32, num_packets)
3414 ),
3415 TP_fast_assign(
3416 NETDEV_ASSIGN;
3417 MAC_ASSIGN(peer, peer);
3418 __entry->num_packets = num_packets;
3419 ),
3d9c3617
JB
3420 TP_printk(NETDEV_PR_FMT ", peer: %pM, num of lost packets: %u",
3421 NETDEV_PR_ARG, __entry->peer, __entry->num_packets)
4ee3e063
BL
3422);
3423
3424DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_gtk_rekey_notify,
3425 TP_PROTO(struct net_device *netdev, const u8 *macaddr),
3426 TP_ARGS(netdev, macaddr)
3427);
3428
3429TRACE_EVENT(cfg80211_pmksa_candidate_notify,
3430 TP_PROTO(struct net_device *netdev, int index, const u8 *bssid,
3431 bool preauth),
3432 TP_ARGS(netdev, index, bssid, preauth),
3433 TP_STRUCT__entry(
3434 NETDEV_ENTRY
3435 __field(int, index)
3436 MAC_ENTRY(bssid)
3437 __field(bool, preauth)
3438 ),
3439 TP_fast_assign(
3440 NETDEV_ASSIGN;
3441 __entry->index = index;
3442 MAC_ASSIGN(bssid, bssid);
3443 __entry->preauth = preauth;
3444 ),
3d9c3617
JB
3445 TP_printk(NETDEV_PR_FMT ", index:%d, bssid: %pM, pre auth: %s",
3446 NETDEV_PR_ARG, __entry->index, __entry->bssid,
4ee3e063
BL
3447 BOOL_TO_STR(__entry->preauth))
3448);
3449
3450TRACE_EVENT(cfg80211_report_obss_beacon,
3451 TP_PROTO(struct wiphy *wiphy, const u8 *frame, size_t len,
3452 int freq, int sig_dbm),
3453 TP_ARGS(wiphy, frame, len, freq, sig_dbm),
3454 TP_STRUCT__entry(
3455 WIPHY_ENTRY
3456 __field(int, freq)
3457 __field(int, sig_dbm)
3458 ),
3459 TP_fast_assign(
3460 WIPHY_ASSIGN;
3461 __entry->freq = freq;
3462 __entry->sig_dbm = sig_dbm;
3463 ),
e76fede8
TP
3464 TP_printk(WIPHY_PR_FMT ", freq: "KHZ_F", sig_dbm: %d",
3465 WIPHY_PR_ARG, PR_KHZ(__entry->freq), __entry->sig_dbm)
4ee3e063
BL
3466);
3467
3475b094
JM
3468TRACE_EVENT(cfg80211_tdls_oper_request,
3469 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *peer,
3470 enum nl80211_tdls_operation oper, u16 reason_code),
3471 TP_ARGS(wiphy, netdev, peer, oper, reason_code),
3472 TP_STRUCT__entry(
3473 WIPHY_ENTRY
3474 NETDEV_ENTRY
3475 MAC_ENTRY(peer)
3476 __field(enum nl80211_tdls_operation, oper)
3477 __field(u16, reason_code)
3478 ),
3479 TP_fast_assign(
3480 WIPHY_ASSIGN;
3481 NETDEV_ASSIGN;
3482 MAC_ASSIGN(peer, peer);
3483 __entry->oper = oper;
3484 __entry->reason_code = reason_code;
3485 ),
3d9c3617
JB
3486 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM, oper: %d, reason_code %u",
3487 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, __entry->oper,
3475b094
JM
3488 __entry->reason_code)
3489 );
3490
4ee3e063 3491TRACE_EVENT(cfg80211_scan_done,
1d76250b
AS
3492 TP_PROTO(struct cfg80211_scan_request *request,
3493 struct cfg80211_scan_info *info),
3494 TP_ARGS(request, info),
4ee3e063
BL
3495 TP_STRUCT__entry(
3496 __field(u32, n_channels)
3497 __dynamic_array(u8, ie, request ? request->ie_len : 0)
57fbcce3 3498 __array(u32, rates, NUM_NL80211_BANDS)
4ee3e063
BL
3499 __field(u32, wdev_id)
3500 MAC_ENTRY(wiphy_mac)
3501 __field(bool, no_cck)
3502 __field(bool, aborted)
1d76250b
AS
3503 __field(u64, scan_start_tsf)
3504 MAC_ENTRY(tsf_bssid)
4ee3e063
BL
3505 ),
3506 TP_fast_assign(
3507 if (request) {
3508 memcpy(__get_dynamic_array(ie), request->ie,
3509 request->ie_len);
3510 memcpy(__entry->rates, request->rates,
57fbcce3 3511 NUM_NL80211_BANDS);
4ee3e063
BL
3512 __entry->wdev_id = request->wdev ?
3513 request->wdev->identifier : 0;
3514 if (request->wiphy)
3515 MAC_ASSIGN(wiphy_mac,
3516 request->wiphy->perm_addr);
3517 __entry->no_cck = request->no_cck;
3518 }
1d76250b
AS
3519 if (info) {
3520 __entry->aborted = info->aborted;
3521 __entry->scan_start_tsf = info->scan_start_tsf;
3522 MAC_ASSIGN(tsf_bssid, info->tsf_bssid);
3523 }
4ee3e063 3524 ),
3d9c3617 3525 TP_printk("aborted: %s, scan start (TSF): %llu, tsf_bssid: %pM",
1d76250b
AS
3526 BOOL_TO_STR(__entry->aborted),
3527 (unsigned long long)__entry->scan_start_tsf,
3d9c3617 3528 __entry->tsf_bssid)
4ee3e063
BL
3529);
3530
b34939b9
AVS
3531DECLARE_EVENT_CLASS(wiphy_id_evt,
3532 TP_PROTO(struct wiphy *wiphy, u64 id),
3533 TP_ARGS(wiphy, id),
3534 TP_STRUCT__entry(
3535 WIPHY_ENTRY
3536 __field(u64, id)
3537 ),
3538 TP_fast_assign(
3539 WIPHY_ASSIGN;
3540 __entry->id = id;
3541 ),
3542 TP_printk(WIPHY_PR_FMT ", id: %llu", WIPHY_PR_ARG, __entry->id)
4ee3e063
BL
3543);
3544
b34939b9
AVS
3545DEFINE_EVENT(wiphy_id_evt, cfg80211_sched_scan_stopped,
3546 TP_PROTO(struct wiphy *wiphy, u64 id),
3547 TP_ARGS(wiphy, id)
3548);
3549
3550DEFINE_EVENT(wiphy_id_evt, cfg80211_sched_scan_results,
3551 TP_PROTO(struct wiphy *wiphy, u64 id),
3552 TP_ARGS(wiphy, id)
4ee3e063
BL
3553);
3554
3555TRACE_EVENT(cfg80211_get_bss,
3556 TP_PROTO(struct wiphy *wiphy, struct ieee80211_channel *channel,
3557 const u8 *bssid, const u8 *ssid, size_t ssid_len,
6eb18137
DL
3558 enum ieee80211_bss_type bss_type,
3559 enum ieee80211_privacy privacy),
3560 TP_ARGS(wiphy, channel, bssid, ssid, ssid_len, bss_type, privacy),
4ee3e063
BL
3561 TP_STRUCT__entry(
3562 WIPHY_ENTRY
3563 CHAN_ENTRY
3564 MAC_ENTRY(bssid)
3565 __dynamic_array(u8, ssid, ssid_len)
6eb18137
DL
3566 __field(enum ieee80211_bss_type, bss_type)
3567 __field(enum ieee80211_privacy, privacy)
4ee3e063
BL
3568 ),
3569 TP_fast_assign(
3570 WIPHY_ASSIGN;
3571 CHAN_ASSIGN(channel);
3572 MAC_ASSIGN(bssid, bssid);
3573 memcpy(__get_dynamic_array(ssid), ssid, ssid_len);
6eb18137
DL
3574 __entry->bss_type = bss_type;
3575 __entry->privacy = privacy;
3576 ),
3d9c3617 3577 TP_printk(WIPHY_PR_FMT ", " CHAN_PR_FMT ", %pM"
6eb18137 3578 ", buf: %#.2x, bss_type: %d, privacy: %d",
3d9c3617 3579 WIPHY_PR_ARG, CHAN_PR_ARG, __entry->bssid,
6eb18137
DL
3580 ((u8 *)__get_dynamic_array(ssid))[0], __entry->bss_type,
3581 __entry->privacy)
4ee3e063
BL
3582);
3583
6e19bc4b
DS
3584TRACE_EVENT(cfg80211_inform_bss_frame,
3585 TP_PROTO(struct wiphy *wiphy, struct cfg80211_inform_bss *data,
3586 struct ieee80211_mgmt *mgmt, size_t len),
3587 TP_ARGS(wiphy, data, mgmt, len),
4ee3e063
BL
3588 TP_STRUCT__entry(
3589 WIPHY_ENTRY
3590 CHAN_ENTRY
3591 __dynamic_array(u8, mgmt, len)
3592 __field(s32, signal)
6e19bc4b 3593 __field(u64, ts_boottime)
1d76250b
AS
3594 __field(u64, parent_tsf)
3595 MAC_ENTRY(parent_bssid)
4ee3e063
BL
3596 ),
3597 TP_fast_assign(
3598 WIPHY_ASSIGN;
6e19bc4b 3599 CHAN_ASSIGN(data->chan);
4ee3e063
BL
3600 if (mgmt)
3601 memcpy(__get_dynamic_array(mgmt), mgmt, len);
6e19bc4b
DS
3602 __entry->signal = data->signal;
3603 __entry->ts_boottime = data->boottime_ns;
1d76250b
AS
3604 __entry->parent_tsf = data->parent_tsf;
3605 MAC_ASSIGN(parent_bssid, data->parent_bssid);
3606 ),
3607 TP_printk(WIPHY_PR_FMT ", " CHAN_PR_FMT
5add321c
JB
3608 "signal: %d, tsb:%llu, detect_tsf:%llu, tsf_bssid: %pM",
3609 WIPHY_PR_ARG, CHAN_PR_ARG,
1d76250b
AS
3610 __entry->signal, (unsigned long long)__entry->ts_boottime,
3611 (unsigned long long)__entry->parent_tsf,
3d9c3617 3612 __entry->parent_bssid)
4ee3e063
BL
3613);
3614
3615DECLARE_EVENT_CLASS(cfg80211_bss_evt,
3616 TP_PROTO(struct cfg80211_bss *pub),
3617 TP_ARGS(pub),
3618 TP_STRUCT__entry(
3619 MAC_ENTRY(bssid)
3620 CHAN_ENTRY
3621 ),
3622 TP_fast_assign(
3623 MAC_ASSIGN(bssid, pub->bssid);
3624 CHAN_ASSIGN(pub->channel);
3625 ),
3d9c3617 3626 TP_printk("%pM, " CHAN_PR_FMT, __entry->bssid, CHAN_PR_ARG)
4ee3e063
BL
3627);
3628
3629DEFINE_EVENT(cfg80211_bss_evt, cfg80211_return_bss,
3630 TP_PROTO(struct cfg80211_bss *pub),
3631 TP_ARGS(pub)
3632);
3633
3634TRACE_EVENT(cfg80211_return_uint,
3635 TP_PROTO(unsigned int ret),
3636 TP_ARGS(ret),
3637 TP_STRUCT__entry(
3638 __field(unsigned int, ret)
3639 ),
3640 TP_fast_assign(
3641 __entry->ret = ret;
3642 ),
3643 TP_printk("ret: %d", __entry->ret)
3644);
3645
3646TRACE_EVENT(cfg80211_return_u32,
3647 TP_PROTO(u32 ret),
3648 TP_ARGS(ret),
3649 TP_STRUCT__entry(
3650 __field(u32, ret)
3651 ),
3652 TP_fast_assign(
3653 __entry->ret = ret;
3654 ),
3655 TP_printk("ret: %u", __entry->ret)
3656);
3657
cd8f7cb4
JB
3658TRACE_EVENT(cfg80211_report_wowlan_wakeup,
3659 TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
3660 struct cfg80211_wowlan_wakeup *wakeup),
3661 TP_ARGS(wiphy, wdev, wakeup),
3662 TP_STRUCT__entry(
3663 WIPHY_ENTRY
3664 WDEV_ENTRY
a92eecbb 3665 __field(bool, non_wireless)
cd8f7cb4
JB
3666 __field(bool, disconnect)
3667 __field(bool, magic_pkt)
3668 __field(bool, gtk_rekey_failure)
3669 __field(bool, eap_identity_req)
3670 __field(bool, four_way_handshake)
3671 __field(bool, rfkill_release)
3672 __field(s32, pattern_idx)
3673 __field(u32, packet_len)
a92eecbb
JB
3674 __dynamic_array(u8, packet,
3675 wakeup ? wakeup->packet_present_len : 0)
cd8f7cb4
JB
3676 ),
3677 TP_fast_assign(
3678 WIPHY_ASSIGN;
3679 WDEV_ASSIGN;
a92eecbb
JB
3680 __entry->non_wireless = !wakeup;
3681 __entry->disconnect = wakeup ? wakeup->disconnect : false;
3682 __entry->magic_pkt = wakeup ? wakeup->magic_pkt : false;
3683 __entry->gtk_rekey_failure = wakeup ? wakeup->gtk_rekey_failure : false;
3684 __entry->eap_identity_req = wakeup ? wakeup->eap_identity_req : false;
3685 __entry->four_way_handshake = wakeup ? wakeup->four_way_handshake : false;
3686 __entry->rfkill_release = wakeup ? wakeup->rfkill_release : false;
3687 __entry->pattern_idx = wakeup ? wakeup->pattern_idx : false;
3688 __entry->packet_len = wakeup ? wakeup->packet_len : false;
3689 if (wakeup && wakeup->packet && wakeup->packet_present_len)
cd8f7cb4
JB
3690 memcpy(__get_dynamic_array(packet), wakeup->packet,
3691 wakeup->packet_present_len);
3692 ),
3693 TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, WIPHY_PR_ARG, WDEV_PR_ARG)
3694);
3695
355199e0
JM
3696TRACE_EVENT(cfg80211_ft_event,
3697 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
3698 struct cfg80211_ft_event_params *ft_event),
3699 TP_ARGS(wiphy, netdev, ft_event),
3700 TP_STRUCT__entry(
3701 WIPHY_ENTRY
3702 NETDEV_ENTRY
3703 __dynamic_array(u8, ies, ft_event->ies_len)
3704 MAC_ENTRY(target_ap)
3705 __dynamic_array(u8, ric_ies, ft_event->ric_ies_len)
3706 ),
3707 TP_fast_assign(
3708 WIPHY_ASSIGN;
3709 NETDEV_ASSIGN;
3710 if (ft_event->ies)
3711 memcpy(__get_dynamic_array(ies), ft_event->ies,
3712 ft_event->ies_len);
3713 MAC_ASSIGN(target_ap, ft_event->target_ap);
3714 if (ft_event->ric_ies)
3715 memcpy(__get_dynamic_array(ric_ies), ft_event->ric_ies,
3716 ft_event->ric_ies_len);
3717 ),
3d9c3617
JB
3718 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", target_ap: %pM",
3719 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->target_ap)
355199e0
JM
3720);
3721
f04c2203
MK
3722TRACE_EVENT(cfg80211_stop_iface,
3723 TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev),
3724 TP_ARGS(wiphy, wdev),
3725 TP_STRUCT__entry(
3726 WIPHY_ENTRY
3727 WDEV_ENTRY
3728 ),
3729 TP_fast_assign(
3730 WIPHY_ASSIGN;
3731 WDEV_ASSIGN;
3732 ),
3733 TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT,
3734 WIPHY_PR_ARG, WDEV_PR_ARG)
3735);
9bb7e0f2
JB
3736
3737TRACE_EVENT(cfg80211_pmsr_report,
3738 TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
3739 u64 cookie, const u8 *addr),
3740 TP_ARGS(wiphy, wdev, cookie, addr),
3741 TP_STRUCT__entry(
3742 WIPHY_ENTRY
3743 WDEV_ENTRY
3744 __field(u64, cookie)
3745 MAC_ENTRY(addr)
3746 ),
3747 TP_fast_assign(
3748 WIPHY_ASSIGN;
3749 WDEV_ASSIGN;
3750 __entry->cookie = cookie;
3751 MAC_ASSIGN(addr, addr);
3752 ),
3d9c3617 3753 TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie:%lld, %pM",
9bb7e0f2
JB
3754 WIPHY_PR_ARG, WDEV_PR_ARG,
3755 (unsigned long long)__entry->cookie,
3d9c3617 3756 __entry->addr)
9bb7e0f2
JB
3757);
3758
3759TRACE_EVENT(cfg80211_pmsr_complete,
3760 TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie),
3761 TP_ARGS(wiphy, wdev, cookie),
3762 TP_STRUCT__entry(
3763 WIPHY_ENTRY
3764 WDEV_ENTRY
3765 __field(u64, cookie)
3766 ),
3767 TP_fast_assign(
3768 WIPHY_ASSIGN;
3769 WDEV_ASSIGN;
3770 __entry->cookie = cookie;
3771 ),
3772 TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie:%lld",
3773 WIPHY_PR_ARG, WDEV_PR_ARG,
3774 (unsigned long long)__entry->cookie)
3775);
cb74e977 3776
cb74e977 3777TRACE_EVENT(cfg80211_update_owe_info_event,
8bb588d9
VJ
3778 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
3779 struct cfg80211_update_owe_info *owe_info),
3780 TP_ARGS(wiphy, netdev, owe_info),
3781 TP_STRUCT__entry(
3782 WIPHY_ENTRY
3783 NETDEV_ENTRY
3784 MAC_ENTRY(peer)
3785 __dynamic_array(u8, ie, owe_info->ie_len)
3786 __field(int, assoc_link_id)
3787 MAC_ENTRY(peer_mld_addr)
3788 ),
3789 TP_fast_assign(
3790 WIPHY_ASSIGN;
3791 NETDEV_ASSIGN;
3792 MAC_ASSIGN(peer, owe_info->peer);
3793 memcpy(__get_dynamic_array(ie), owe_info->ie,
3794 owe_info->ie_len);
3795 __entry->assoc_link_id = owe_info->assoc_link_id;
3796 MAC_ASSIGN(peer_mld_addr, owe_info->peer_mld_addr);
3797 ),
3798 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM,"
3799 " assoc_link_id: %d, peer_mld_addr: %pM",
3800 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer,
3801 __entry->assoc_link_id, __entry->peer_mld_addr)
cb74e977
SD
3802);
3803
0d2ab3ae
JC
3804TRACE_EVENT(cfg80211_bss_color_notify,
3805 TP_PROTO(struct net_device *netdev,
3806 enum nl80211_commands cmd,
3807 u8 count, u64 color_bitmap),
3808 TP_ARGS(netdev, cmd, count, color_bitmap),
3809 TP_STRUCT__entry(
3810 NETDEV_ENTRY
c448f0fd 3811 __field(u32, cmd)
0d2ab3ae
JC
3812 __field(u8, count)
3813 __field(u64, color_bitmap)
3814 ),
3815 TP_fast_assign(
3816 NETDEV_ASSIGN;
3817 __entry->cmd = cmd;
3818 __entry->count = count;
3819 __entry->color_bitmap = color_bitmap;
3820 ),
3821 TP_printk(NETDEV_PR_FMT ", cmd: %x, count: %u, bitmap: %llx",
3822 NETDEV_PR_ARG, __entry->cmd, __entry->count,
3823 __entry->color_bitmap)
3824);
3825
a083ee8a 3826TRACE_EVENT(cfg80211_assoc_comeback,
e69dac88
JB
3827 TP_PROTO(struct wireless_dev *wdev, const u8 *ap_addr, u32 timeout),
3828 TP_ARGS(wdev, ap_addr, timeout),
a083ee8a
IP
3829 TP_STRUCT__entry(
3830 WDEV_ENTRY
e69dac88 3831 MAC_ENTRY(ap_addr)
a083ee8a
IP
3832 __field(u32, timeout)
3833 ),
3834 TP_fast_assign(
3835 WDEV_ASSIGN;
e69dac88 3836 MAC_ASSIGN(ap_addr, ap_addr);
a083ee8a
IP
3837 __entry->timeout = timeout;
3838 ),
3d9c3617
JB
3839 TP_printk(WDEV_PR_FMT ", %pM, timeout: %u TUs",
3840 WDEV_PR_ARG, __entry->ap_addr, __entry->timeout)
a083ee8a
IP
3841);
3842
577e5b8c
ST
3843DECLARE_EVENT_CLASS(link_station_add_mod,
3844 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
3845 struct link_station_parameters *params),
3846 TP_ARGS(wiphy, netdev, params),
3847 TP_STRUCT__entry(
3848 WIPHY_ENTRY
3849 NETDEV_ENTRY
3850 __array(u8, mld_mac, 6)
3851 __array(u8, link_mac, 6)
3852 __field(u32, link_id)
3853 __dynamic_array(u8, supported_rates,
3854 params->supported_rates_len)
3855 __array(u8, ht_capa, (int)sizeof(struct ieee80211_ht_cap))
3856 __array(u8, vht_capa, (int)sizeof(struct ieee80211_vht_cap))
3857 __field(u8, opmode_notif)
3858 __field(bool, opmode_notif_used)
3859 __dynamic_array(u8, he_capa, params->he_capa_len)
3860 __array(u8, he_6ghz_capa, (int)sizeof(struct ieee80211_he_6ghz_capa))
3861 __dynamic_array(u8, eht_capa, params->eht_capa_len)
3862 ),
3863 TP_fast_assign(
3864 WIPHY_ASSIGN;
3865 NETDEV_ASSIGN;
3866 memset(__entry->mld_mac, 0, 6);
3867 memset(__entry->link_mac, 0, 6);
3868 if (params->mld_mac)
3869 memcpy(__entry->mld_mac, params->mld_mac, 6);
3870 if (params->link_mac)
3871 memcpy(__entry->link_mac, params->link_mac, 6);
3872 __entry->link_id = params->link_id;
3873 if (params->supported_rates && params->supported_rates_len)
3874 memcpy(__get_dynamic_array(supported_rates),
3875 params->supported_rates,
3876 params->supported_rates_len);
3877 memset(__entry->ht_capa, 0, sizeof(struct ieee80211_ht_cap));
3878 if (params->ht_capa)
3879 memcpy(__entry->ht_capa, params->ht_capa,
3880 sizeof(struct ieee80211_ht_cap));
3881 memset(__entry->vht_capa, 0, sizeof(struct ieee80211_vht_cap));
3882 if (params->vht_capa)
3883 memcpy(__entry->vht_capa, params->vht_capa,
3884 sizeof(struct ieee80211_vht_cap));
3885 __entry->opmode_notif = params->opmode_notif;
3886 __entry->opmode_notif_used = params->opmode_notif_used;
3887 if (params->he_capa && params->he_capa_len)
3888 memcpy(__get_dynamic_array(he_capa), params->he_capa,
3889 params->he_capa_len);
3890 memset(__entry->he_6ghz_capa, 0, sizeof(struct ieee80211_he_6ghz_capa));
3891 if (params->he_6ghz_capa)
3892 memcpy(__entry->he_6ghz_capa, params->he_6ghz_capa,
3893 sizeof(struct ieee80211_he_6ghz_capa));
3894 if (params->eht_capa && params->eht_capa_len)
3895 memcpy(__get_dynamic_array(eht_capa), params->eht_capa,
3896 params->eht_capa_len);
3897 ),
3d9c3617
JB
3898 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM"
3899 ", link mac: %pM, link id: %u",
3900 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->mld_mac,
3901 __entry->link_mac, __entry->link_id)
577e5b8c
ST
3902);
3903
3904DEFINE_EVENT(link_station_add_mod, rdev_add_link_station,
3905 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
3906 struct link_station_parameters *params),
3907 TP_ARGS(wiphy, netdev, params)
3908);
3909
3910DEFINE_EVENT(link_station_add_mod, rdev_mod_link_station,
3911 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
3912 struct link_station_parameters *params),
3913 TP_ARGS(wiphy, netdev, params)
3914);
3915
3916TRACE_EVENT(rdev_del_link_station,
3917 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
3918 struct link_station_del_parameters *params),
3919 TP_ARGS(wiphy, netdev, params),
3920 TP_STRUCT__entry(
3921 WIPHY_ENTRY
3922 NETDEV_ENTRY
3923 __array(u8, mld_mac, 6)
3924 __field(u32, link_id)
3925 ),
3926 TP_fast_assign(
3927 WIPHY_ASSIGN;
3928 NETDEV_ASSIGN;
3929 memset(__entry->mld_mac, 0, 6);
3930 if (params->mld_mac)
3931 memcpy(__entry->mld_mac, params->mld_mac, 6);
3932 __entry->link_id = params->link_id;
3933 ),
3d9c3617 3934 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM"
577e5b8c 3935 ", link id: %u",
3d9c3617 3936 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->mld_mac,
577e5b8c
ST
3937 __entry->link_id)
3938);
3939
cbbaf2bb
AS
3940TRACE_EVENT(rdev_set_hw_timestamp,
3941 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
3942 struct cfg80211_set_hw_timestamp *hwts),
3943
3944 TP_ARGS(wiphy, netdev, hwts),
3945
3946 TP_STRUCT__entry(
3947 WIPHY_ENTRY
3948 NETDEV_ENTRY
3949 MAC_ENTRY(macaddr)
3950 __field(bool, enable)
3951 ),
3952
3953 TP_fast_assign(
3954 WIPHY_ASSIGN;
3955 NETDEV_ASSIGN;
3956 MAC_ASSIGN(macaddr, hwts->macaddr);
3957 __entry->enable = hwts->enable;
3958 ),
3959
3960 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", mac %pM, enable: %u",
3961 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->macaddr,
3962 __entry->enable)
3963);
3964
065563b2
VJ
3965TRACE_EVENT(cfg80211_links_removed,
3966 TP_PROTO(struct net_device *netdev, u16 link_mask),
3967 TP_ARGS(netdev, link_mask),
3968 TP_STRUCT__entry(
3969 NETDEV_ENTRY
3970 __field(u16, link_mask)
3971 ),
3972 TP_fast_assign(
3973 NETDEV_ASSIGN;
3974 __entry->link_mask = link_mask;
3975 ),
3976 TP_printk(NETDEV_PR_FMT ", link_mask:%u", NETDEV_PR_ARG,
3977 __entry->link_mask)
3978);
3979
14e8a3c4
BL
3980#endif /* !__RDEV_OPS_TRACE || TRACE_HEADER_MULTI_READ */
3981
3982#undef TRACE_INCLUDE_PATH
3983#define TRACE_INCLUDE_PATH .
3984#undef TRACE_INCLUDE_FILE
3985#define TRACE_INCLUDE_FILE trace
3986#include <trace/define_trace.h>