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