1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 214e8a3c4SBeni Lev #undef TRACE_SYSTEM 314e8a3c4SBeni Lev #define TRACE_SYSTEM cfg80211 414e8a3c4SBeni Lev 514e8a3c4SBeni Lev #if !defined(__RDEV_OPS_TRACE) || defined(TRACE_HEADER_MULTI_READ) 614e8a3c4SBeni Lev #define __RDEV_OPS_TRACE 714e8a3c4SBeni Lev 814e8a3c4SBeni Lev #include <linux/tracepoint.h> 914e8a3c4SBeni Lev 1014e8a3c4SBeni Lev #include <linux/rtnetlink.h> 11d2beae10SJoe Perches #include <linux/etherdevice.h> 1214e8a3c4SBeni Lev #include <net/cfg80211.h> 1314e8a3c4SBeni Lev #include "core.h" 1414e8a3c4SBeni Lev 1514e8a3c4SBeni Lev #define MAC_ENTRY(entry_mac) __array(u8, entry_mac, ETH_ALEN) 1614e8a3c4SBeni Lev #define MAC_ASSIGN(entry_mac, given_mac) do { \ 1714e8a3c4SBeni Lev if (given_mac) \ 1814e8a3c4SBeni Lev memcpy(__entry->entry_mac, given_mac, ETH_ALEN); \ 1914e8a3c4SBeni Lev else \ 20d2beae10SJoe Perches eth_zero_addr(__entry->entry_mac); \ 2114e8a3c4SBeni Lev } while (0) 2214e8a3c4SBeni Lev #define MAC_PR_FMT "%pM" 2314e8a3c4SBeni Lev #define MAC_PR_ARG(entry_mac) (__entry->entry_mac) 2414e8a3c4SBeni Lev 25ec816087SJohannes Berg #define MAXNAME 32 26ec816087SJohannes Berg #define WIPHY_ENTRY __array(char, wiphy_name, 32) 27ec816087SJohannes Berg #define WIPHY_ASSIGN strlcpy(__entry->wiphy_name, wiphy_name(wiphy), MAXNAME) 28ec816087SJohannes Berg #define WIPHY_PR_FMT "%s" 29ec816087SJohannes Berg #define WIPHY_PR_ARG __entry->wiphy_name 3014e8a3c4SBeni Lev 3114e8a3c4SBeni Lev #define WDEV_ENTRY __field(u32, id) 32ce1eaddaSJohannes Berg #define WDEV_ASSIGN (__entry->id) = (!IS_ERR_OR_NULL(wdev) \ 33ce1eaddaSJohannes Berg ? wdev->identifier : 0) 34ec816087SJohannes Berg #define WDEV_PR_FMT "wdev(%u)" 3514e8a3c4SBeni Lev #define WDEV_PR_ARG (__entry->id) 3614e8a3c4SBeni Lev 3714e8a3c4SBeni Lev #define NETDEV_ENTRY __array(char, name, IFNAMSIZ) \ 3814e8a3c4SBeni Lev __field(int, ifindex) 3914e8a3c4SBeni Lev #define NETDEV_ASSIGN \ 4014e8a3c4SBeni Lev do { \ 4114e8a3c4SBeni Lev memcpy(__entry->name, netdev->name, IFNAMSIZ); \ 4214e8a3c4SBeni Lev (__entry->ifindex) = (netdev->ifindex); \ 4314e8a3c4SBeni Lev } while (0) 44ec816087SJohannes Berg #define NETDEV_PR_FMT "netdev:%s(%d)" 45ec816087SJohannes Berg #define NETDEV_PR_ARG __entry->name, __entry->ifindex 4614e8a3c4SBeni Lev 4714e8a3c4SBeni Lev #define MESH_CFG_ENTRY __field(u16, dot11MeshRetryTimeout) \ 4814e8a3c4SBeni Lev __field(u16, dot11MeshConfirmTimeout) \ 4914e8a3c4SBeni Lev __field(u16, dot11MeshHoldingTimeout) \ 5014e8a3c4SBeni Lev __field(u16, dot11MeshMaxPeerLinks) \ 5114e8a3c4SBeni Lev __field(u8, dot11MeshMaxRetries) \ 5214e8a3c4SBeni Lev __field(u8, dot11MeshTTL) \ 5314e8a3c4SBeni Lev __field(u8, element_ttl) \ 5414e8a3c4SBeni Lev __field(bool, auto_open_plinks) \ 5514e8a3c4SBeni Lev __field(u32, dot11MeshNbrOffsetMaxNeighbor) \ 5614e8a3c4SBeni Lev __field(u8, dot11MeshHWMPmaxPREQretries) \ 5714e8a3c4SBeni Lev __field(u32, path_refresh_time) \ 5814e8a3c4SBeni Lev __field(u32, dot11MeshHWMPactivePathTimeout) \ 5914e8a3c4SBeni Lev __field(u16, min_discovery_timeout) \ 6014e8a3c4SBeni Lev __field(u16, dot11MeshHWMPpreqMinInterval) \ 6114e8a3c4SBeni Lev __field(u16, dot11MeshHWMPperrMinInterval) \ 6214e8a3c4SBeni Lev __field(u16, dot11MeshHWMPnetDiameterTraversalTime) \ 6314e8a3c4SBeni Lev __field(u8, dot11MeshHWMPRootMode) \ 6414e8a3c4SBeni Lev __field(u16, dot11MeshHWMPRannInterval) \ 6514e8a3c4SBeni Lev __field(bool, dot11MeshGateAnnouncementProtocol) \ 6614e8a3c4SBeni Lev __field(bool, dot11MeshForwarding) \ 6714e8a3c4SBeni Lev __field(s32, rssi_threshold) \ 6814e8a3c4SBeni Lev __field(u16, ht_opmode) \ 6914e8a3c4SBeni Lev __field(u32, dot11MeshHWMPactivePathToRootTimeout) \ 7014e8a3c4SBeni Lev __field(u16, dot11MeshHWMProotInterval) \ 71e3718a61SLinus Lüssing __field(u16, dot11MeshHWMPconfirmationInterval) \ 72e3718a61SLinus Lüssing __field(bool, dot11MeshNolearn) 7314e8a3c4SBeni Lev #define MESH_CFG_ASSIGN \ 7414e8a3c4SBeni Lev do { \ 7514e8a3c4SBeni Lev __entry->dot11MeshRetryTimeout = conf->dot11MeshRetryTimeout; \ 7614e8a3c4SBeni Lev __entry->dot11MeshConfirmTimeout = \ 7714e8a3c4SBeni Lev conf->dot11MeshConfirmTimeout; \ 7814e8a3c4SBeni Lev __entry->dot11MeshHoldingTimeout = \ 7914e8a3c4SBeni Lev conf->dot11MeshHoldingTimeout; \ 8014e8a3c4SBeni Lev __entry->dot11MeshMaxPeerLinks = conf->dot11MeshMaxPeerLinks; \ 8114e8a3c4SBeni Lev __entry->dot11MeshMaxRetries = conf->dot11MeshMaxRetries; \ 8214e8a3c4SBeni Lev __entry->dot11MeshTTL = conf->dot11MeshTTL; \ 8314e8a3c4SBeni Lev __entry->element_ttl = conf->element_ttl; \ 8414e8a3c4SBeni Lev __entry->auto_open_plinks = conf->auto_open_plinks; \ 8514e8a3c4SBeni Lev __entry->dot11MeshNbrOffsetMaxNeighbor = \ 8614e8a3c4SBeni Lev conf->dot11MeshNbrOffsetMaxNeighbor; \ 8714e8a3c4SBeni Lev __entry->dot11MeshHWMPmaxPREQretries = \ 8814e8a3c4SBeni Lev conf->dot11MeshHWMPmaxPREQretries; \ 8914e8a3c4SBeni Lev __entry->path_refresh_time = conf->path_refresh_time; \ 9014e8a3c4SBeni Lev __entry->dot11MeshHWMPactivePathTimeout = \ 9114e8a3c4SBeni Lev conf->dot11MeshHWMPactivePathTimeout; \ 9214e8a3c4SBeni Lev __entry->min_discovery_timeout = conf->min_discovery_timeout; \ 9314e8a3c4SBeni Lev __entry->dot11MeshHWMPpreqMinInterval = \ 9414e8a3c4SBeni Lev conf->dot11MeshHWMPpreqMinInterval; \ 9514e8a3c4SBeni Lev __entry->dot11MeshHWMPperrMinInterval = \ 9614e8a3c4SBeni Lev conf->dot11MeshHWMPperrMinInterval; \ 9714e8a3c4SBeni Lev __entry->dot11MeshHWMPnetDiameterTraversalTime = \ 9814e8a3c4SBeni Lev conf->dot11MeshHWMPnetDiameterTraversalTime; \ 9914e8a3c4SBeni Lev __entry->dot11MeshHWMPRootMode = conf->dot11MeshHWMPRootMode; \ 10014e8a3c4SBeni Lev __entry->dot11MeshHWMPRannInterval = \ 10114e8a3c4SBeni Lev conf->dot11MeshHWMPRannInterval; \ 10214e8a3c4SBeni Lev __entry->dot11MeshGateAnnouncementProtocol = \ 10314e8a3c4SBeni Lev conf->dot11MeshGateAnnouncementProtocol; \ 10414e8a3c4SBeni Lev __entry->dot11MeshForwarding = conf->dot11MeshForwarding; \ 10514e8a3c4SBeni Lev __entry->rssi_threshold = conf->rssi_threshold; \ 10614e8a3c4SBeni Lev __entry->ht_opmode = conf->ht_opmode; \ 10714e8a3c4SBeni Lev __entry->dot11MeshHWMPactivePathToRootTimeout = \ 10814e8a3c4SBeni Lev conf->dot11MeshHWMPactivePathToRootTimeout; \ 10914e8a3c4SBeni Lev __entry->dot11MeshHWMProotInterval = \ 11014e8a3c4SBeni Lev conf->dot11MeshHWMProotInterval; \ 11114e8a3c4SBeni Lev __entry->dot11MeshHWMPconfirmationInterval = \ 11214e8a3c4SBeni Lev conf->dot11MeshHWMPconfirmationInterval; \ 113e3718a61SLinus Lüssing __entry->dot11MeshNolearn = conf->dot11MeshNolearn; \ 11414e8a3c4SBeni Lev } while (0) 11514e8a3c4SBeni Lev 11657fbcce3SJohannes Berg #define CHAN_ENTRY __field(enum nl80211_band, band) \ 117934f4c7dSThomas Pedersen __field(u32, center_freq) \ 118934f4c7dSThomas Pedersen __field(u16, freq_offset) 11914e8a3c4SBeni Lev #define CHAN_ASSIGN(chan) \ 12014e8a3c4SBeni Lev do { \ 12114e8a3c4SBeni Lev if (chan) { \ 12214e8a3c4SBeni Lev __entry->band = chan->band; \ 12314e8a3c4SBeni Lev __entry->center_freq = chan->center_freq; \ 124934f4c7dSThomas Pedersen __entry->freq_offset = chan->freq_offset; \ 12514e8a3c4SBeni Lev } else { \ 12614e8a3c4SBeni Lev __entry->band = 0; \ 12714e8a3c4SBeni Lev __entry->center_freq = 0; \ 128934f4c7dSThomas Pedersen __entry->freq_offset = 0; \ 12914e8a3c4SBeni Lev } \ 13014e8a3c4SBeni Lev } while (0) 131934f4c7dSThomas Pedersen #define CHAN_PR_FMT "band: %d, freq: %u.%03u" 132934f4c7dSThomas Pedersen #define CHAN_PR_ARG __entry->band, __entry->center_freq, __entry->freq_offset 13314e8a3c4SBeni Lev 13457fbcce3SJohannes Berg #define CHAN_DEF_ENTRY __field(enum nl80211_band, band) \ 1353d9d1d66SJohannes Berg __field(u32, control_freq) \ 136934f4c7dSThomas Pedersen __field(u32, freq_offset) \ 1373d9d1d66SJohannes Berg __field(u32, width) \ 1383d9d1d66SJohannes Berg __field(u32, center_freq1) \ 139934f4c7dSThomas Pedersen __field(u32, freq1_offset) \ 1403d9d1d66SJohannes Berg __field(u32, center_freq2) 141683b6d3bSJohannes Berg #define CHAN_DEF_ASSIGN(chandef) \ 142683b6d3bSJohannes Berg do { \ 143683b6d3bSJohannes Berg if ((chandef) && (chandef)->chan) { \ 144683b6d3bSJohannes Berg __entry->band = (chandef)->chan->band; \ 1453d9d1d66SJohannes Berg __entry->control_freq = \ 146683b6d3bSJohannes Berg (chandef)->chan->center_freq; \ 147934f4c7dSThomas Pedersen __entry->freq_offset = \ 148934f4c7dSThomas Pedersen (chandef)->chan->freq_offset; \ 1493d9d1d66SJohannes Berg __entry->width = (chandef)->width; \ 1503d9d1d66SJohannes Berg __entry->center_freq1 = (chandef)->center_freq1;\ 151934f4c7dSThomas Pedersen __entry->freq1_offset = (chandef)->freq1_offset;\ 1523d9d1d66SJohannes Berg __entry->center_freq2 = (chandef)->center_freq2;\ 153683b6d3bSJohannes Berg } else { \ 154683b6d3bSJohannes Berg __entry->band = 0; \ 1553d9d1d66SJohannes Berg __entry->control_freq = 0; \ 156934f4c7dSThomas Pedersen __entry->freq_offset = 0; \ 1573d9d1d66SJohannes Berg __entry->width = 0; \ 1583d9d1d66SJohannes Berg __entry->center_freq1 = 0; \ 159934f4c7dSThomas Pedersen __entry->freq1_offset = 0; \ 1603d9d1d66SJohannes Berg __entry->center_freq2 = 0; \ 161683b6d3bSJohannes Berg } \ 162683b6d3bSJohannes Berg } while (0) 1633d9d1d66SJohannes Berg #define CHAN_DEF_PR_FMT \ 164934f4c7dSThomas Pedersen "band: %d, control freq: %u.%03u, width: %d, cf1: %u.%03u, cf2: %u" 1653d9d1d66SJohannes Berg #define CHAN_DEF_PR_ARG __entry->band, __entry->control_freq, \ 166934f4c7dSThomas Pedersen __entry->freq_offset, __entry->width, \ 167934f4c7dSThomas Pedersen __entry->center_freq1, __entry->freq1_offset, \ 1683d9d1d66SJohannes Berg __entry->center_freq2 169683b6d3bSJohannes Berg 170e306784aSSubrat Mishra #define FILS_AAD_ASSIGN(fa) \ 171e306784aSSubrat Mishra do { \ 172e306784aSSubrat Mishra if (fa) { \ 173e306784aSSubrat Mishra ether_addr_copy(__entry->macaddr, fa->macaddr); \ 174e306784aSSubrat Mishra __entry->kek_len = fa->kek_len; \ 175e306784aSSubrat Mishra } else { \ 176e306784aSSubrat Mishra eth_zero_addr(__entry->macaddr); \ 177e306784aSSubrat Mishra __entry->kek_len = 0; \ 178e306784aSSubrat Mishra } \ 179e306784aSSubrat Mishra } while (0) 180e306784aSSubrat Mishra #define FILS_AAD_PR_FMT \ 181e306784aSSubrat Mishra "macaddr: %pM, kek_len: %d" 182e306784aSSubrat Mishra 18314e8a3c4SBeni Lev #define SINFO_ENTRY __field(int, generation) \ 18414e8a3c4SBeni Lev __field(u32, connected_time) \ 18514e8a3c4SBeni Lev __field(u32, inactive_time) \ 18614e8a3c4SBeni Lev __field(u32, rx_bytes) \ 18714e8a3c4SBeni Lev __field(u32, tx_bytes) \ 18814e8a3c4SBeni Lev __field(u32, rx_packets) \ 18914e8a3c4SBeni Lev __field(u32, tx_packets) \ 19014e8a3c4SBeni Lev __field(u32, tx_retries) \ 19114e8a3c4SBeni Lev __field(u32, tx_failed) \ 19214e8a3c4SBeni Lev __field(u32, rx_dropped_misc) \ 19314e8a3c4SBeni Lev __field(u32, beacon_loss_count) \ 19414e8a3c4SBeni Lev __field(u16, llid) \ 19514e8a3c4SBeni Lev __field(u16, plid) \ 19614e8a3c4SBeni Lev __field(u8, plink_state) 19714e8a3c4SBeni Lev #define SINFO_ASSIGN \ 19814e8a3c4SBeni Lev do { \ 19914e8a3c4SBeni Lev __entry->generation = sinfo->generation; \ 20014e8a3c4SBeni Lev __entry->connected_time = sinfo->connected_time; \ 20114e8a3c4SBeni Lev __entry->inactive_time = sinfo->inactive_time; \ 20214e8a3c4SBeni Lev __entry->rx_bytes = sinfo->rx_bytes; \ 20314e8a3c4SBeni Lev __entry->tx_bytes = sinfo->tx_bytes; \ 20414e8a3c4SBeni Lev __entry->rx_packets = sinfo->rx_packets; \ 20514e8a3c4SBeni Lev __entry->tx_packets = sinfo->tx_packets; \ 20614e8a3c4SBeni Lev __entry->tx_retries = sinfo->tx_retries; \ 20714e8a3c4SBeni Lev __entry->tx_failed = sinfo->tx_failed; \ 20814e8a3c4SBeni Lev __entry->rx_dropped_misc = sinfo->rx_dropped_misc; \ 20914e8a3c4SBeni Lev __entry->beacon_loss_count = sinfo->beacon_loss_count; \ 21014e8a3c4SBeni Lev __entry->llid = sinfo->llid; \ 21114e8a3c4SBeni Lev __entry->plid = sinfo->plid; \ 21214e8a3c4SBeni Lev __entry->plink_state = sinfo->plink_state; \ 21314e8a3c4SBeni Lev } while (0) 21414e8a3c4SBeni Lev 21514e8a3c4SBeni Lev #define BOOL_TO_STR(bo) (bo) ? "true" : "false" 21614e8a3c4SBeni Lev 217fa9ffc74SKyeyoon Park #define QOS_MAP_ENTRY __field(u8, num_des) \ 218fa9ffc74SKyeyoon Park __array(u8, dscp_exception, \ 219fa9ffc74SKyeyoon Park 2 * IEEE80211_QOS_MAP_MAX_EX) \ 220fa9ffc74SKyeyoon Park __array(u8, up, IEEE80211_QOS_MAP_LEN_MIN) 221fa9ffc74SKyeyoon Park #define QOS_MAP_ASSIGN(qos_map) \ 222fa9ffc74SKyeyoon Park do { \ 223fa9ffc74SKyeyoon Park if ((qos_map)) { \ 224fa9ffc74SKyeyoon Park __entry->num_des = (qos_map)->num_des; \ 225fa9ffc74SKyeyoon Park memcpy(__entry->dscp_exception, \ 226fa9ffc74SKyeyoon Park &(qos_map)->dscp_exception, \ 227fa9ffc74SKyeyoon Park 2 * IEEE80211_QOS_MAP_MAX_EX); \ 228fa9ffc74SKyeyoon Park memcpy(__entry->up, &(qos_map)->up, \ 229fa9ffc74SKyeyoon Park IEEE80211_QOS_MAP_LEN_MIN); \ 230fa9ffc74SKyeyoon Park } else { \ 231fa9ffc74SKyeyoon Park __entry->num_des = 0; \ 232fa9ffc74SKyeyoon Park memset(__entry->dscp_exception, 0, \ 233fa9ffc74SKyeyoon Park 2 * IEEE80211_QOS_MAP_MAX_EX); \ 234fa9ffc74SKyeyoon Park memset(__entry->up, 0, \ 235fa9ffc74SKyeyoon Park IEEE80211_QOS_MAP_LEN_MIN); \ 236fa9ffc74SKyeyoon Park } \ 237fa9ffc74SKyeyoon Park } while (0) 238fa9ffc74SKyeyoon Park 23914e8a3c4SBeni Lev /************************************************************* 24014e8a3c4SBeni Lev * rdev->ops traces * 24114e8a3c4SBeni Lev *************************************************************/ 24214e8a3c4SBeni Lev 24314e8a3c4SBeni Lev TRACE_EVENT(rdev_suspend, 24414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct cfg80211_wowlan *wow), 24514e8a3c4SBeni Lev TP_ARGS(wiphy, wow), 24614e8a3c4SBeni Lev TP_STRUCT__entry( 24714e8a3c4SBeni Lev WIPHY_ENTRY 24814e8a3c4SBeni Lev __field(bool, any) 24914e8a3c4SBeni Lev __field(bool, disconnect) 25014e8a3c4SBeni Lev __field(bool, magic_pkt) 25114e8a3c4SBeni Lev __field(bool, gtk_rekey_failure) 25214e8a3c4SBeni Lev __field(bool, eap_identity_req) 25314e8a3c4SBeni Lev __field(bool, four_way_handshake) 25414e8a3c4SBeni Lev __field(bool, rfkill_release) 25514e8a3c4SBeni Lev __field(bool, valid_wow) 25614e8a3c4SBeni Lev ), 25714e8a3c4SBeni Lev TP_fast_assign( 25814e8a3c4SBeni Lev WIPHY_ASSIGN; 25914e8a3c4SBeni Lev if (wow) { 26014e8a3c4SBeni Lev __entry->any = wow->any; 26114e8a3c4SBeni Lev __entry->disconnect = wow->disconnect; 26214e8a3c4SBeni Lev __entry->magic_pkt = wow->magic_pkt; 26314e8a3c4SBeni Lev __entry->gtk_rekey_failure = wow->gtk_rekey_failure; 26414e8a3c4SBeni Lev __entry->eap_identity_req = wow->eap_identity_req; 26514e8a3c4SBeni Lev __entry->four_way_handshake = wow->four_way_handshake; 26614e8a3c4SBeni Lev __entry->rfkill_release = wow->rfkill_release; 26714e8a3c4SBeni Lev __entry->valid_wow = true; 26814e8a3c4SBeni Lev } else { 26914e8a3c4SBeni Lev __entry->valid_wow = false; 27014e8a3c4SBeni Lev } 27114e8a3c4SBeni Lev ), 27214e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", wow%s - any: %d, disconnect: %d, " 27314e8a3c4SBeni Lev "magic pkt: %d, gtk rekey failure: %d, eap identify req: %d, " 27414e8a3c4SBeni Lev "four way handshake: %d, rfkill release: %d.", 27514e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->valid_wow ? "" : "(Not configured!)", 27614e8a3c4SBeni Lev __entry->any, __entry->disconnect, __entry->magic_pkt, 27714e8a3c4SBeni Lev __entry->gtk_rekey_failure, __entry->eap_identity_req, 27814e8a3c4SBeni Lev __entry->four_way_handshake, __entry->rfkill_release) 27914e8a3c4SBeni Lev ); 28014e8a3c4SBeni Lev 28114e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int, 28214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret), 28314e8a3c4SBeni Lev TP_ARGS(wiphy, ret), 28414e8a3c4SBeni Lev TP_STRUCT__entry( 28514e8a3c4SBeni Lev WIPHY_ENTRY 28614e8a3c4SBeni Lev __field(int, ret) 28714e8a3c4SBeni Lev ), 28814e8a3c4SBeni Lev TP_fast_assign( 28914e8a3c4SBeni Lev WIPHY_ASSIGN; 29014e8a3c4SBeni Lev __entry->ret = ret; 29114e8a3c4SBeni Lev ), 29214e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned: %d", WIPHY_PR_ARG, __entry->ret) 29314e8a3c4SBeni Lev ); 29414e8a3c4SBeni Lev 29514e8a3c4SBeni Lev TRACE_EVENT(rdev_scan, 29614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct cfg80211_scan_request *request), 29714e8a3c4SBeni Lev TP_ARGS(wiphy, request), 29814e8a3c4SBeni Lev TP_STRUCT__entry( 29914e8a3c4SBeni Lev WIPHY_ENTRY 30014e8a3c4SBeni Lev ), 30114e8a3c4SBeni Lev TP_fast_assign( 30214e8a3c4SBeni Lev WIPHY_ASSIGN; 30314e8a3c4SBeni Lev ), 30414e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT, WIPHY_PR_ARG) 30514e8a3c4SBeni Lev ); 30614e8a3c4SBeni Lev 30714e8a3c4SBeni Lev DECLARE_EVENT_CLASS(wiphy_only_evt, 30814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 30914e8a3c4SBeni Lev TP_ARGS(wiphy), 31014e8a3c4SBeni Lev TP_STRUCT__entry( 31114e8a3c4SBeni Lev WIPHY_ENTRY 31214e8a3c4SBeni Lev ), 31314e8a3c4SBeni Lev TP_fast_assign( 31414e8a3c4SBeni Lev WIPHY_ASSIGN; 31514e8a3c4SBeni Lev ), 31614e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT, WIPHY_PR_ARG) 31714e8a3c4SBeni Lev ); 31814e8a3c4SBeni Lev 31914e8a3c4SBeni Lev DEFINE_EVENT(wiphy_only_evt, rdev_resume, 32014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 32114e8a3c4SBeni Lev TP_ARGS(wiphy) 32214e8a3c4SBeni Lev ); 32314e8a3c4SBeni Lev 32414e8a3c4SBeni Lev DEFINE_EVENT(wiphy_only_evt, rdev_return_void, 32514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 32614e8a3c4SBeni Lev TP_ARGS(wiphy) 32714e8a3c4SBeni Lev ); 32814e8a3c4SBeni Lev 32914e8a3c4SBeni Lev DEFINE_EVENT(wiphy_only_evt, rdev_get_antenna, 33014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 33114e8a3c4SBeni Lev TP_ARGS(wiphy) 33214e8a3c4SBeni Lev ); 33314e8a3c4SBeni Lev 33414e8a3c4SBeni Lev DEFINE_EVENT(wiphy_only_evt, rdev_rfkill_poll, 33514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 33614e8a3c4SBeni Lev TP_ARGS(wiphy) 33714e8a3c4SBeni Lev ); 33814e8a3c4SBeni Lev 33914e8a3c4SBeni Lev DECLARE_EVENT_CLASS(wiphy_enabled_evt, 34014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, bool enabled), 34114e8a3c4SBeni Lev TP_ARGS(wiphy, enabled), 34214e8a3c4SBeni Lev TP_STRUCT__entry( 34314e8a3c4SBeni Lev WIPHY_ENTRY 34414e8a3c4SBeni Lev __field(bool, enabled) 34514e8a3c4SBeni Lev ), 34614e8a3c4SBeni Lev TP_fast_assign( 34714e8a3c4SBeni Lev WIPHY_ASSIGN; 34814e8a3c4SBeni Lev __entry->enabled = enabled; 34914e8a3c4SBeni Lev ), 35014e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", %senabled ", 35114e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->enabled ? "" : "not ") 35214e8a3c4SBeni Lev ); 35314e8a3c4SBeni Lev 35414e8a3c4SBeni Lev DEFINE_EVENT(wiphy_enabled_evt, rdev_set_wakeup, 35514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, bool enabled), 35614e8a3c4SBeni Lev TP_ARGS(wiphy, enabled) 35714e8a3c4SBeni Lev ); 35814e8a3c4SBeni Lev 35914e8a3c4SBeni Lev TRACE_EVENT(rdev_add_virtual_intf, 36014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, char *name, enum nl80211_iftype type), 36114e8a3c4SBeni Lev TP_ARGS(wiphy, name, type), 36214e8a3c4SBeni Lev TP_STRUCT__entry( 36314e8a3c4SBeni Lev WIPHY_ENTRY 36414e8a3c4SBeni Lev __string(vir_intf_name, name ? name : "<noname>") 36514e8a3c4SBeni Lev __field(enum nl80211_iftype, type) 36614e8a3c4SBeni Lev ), 36714e8a3c4SBeni Lev TP_fast_assign( 36814e8a3c4SBeni Lev WIPHY_ASSIGN; 36914e8a3c4SBeni Lev __assign_str(vir_intf_name, name ? name : "<noname>"); 37014e8a3c4SBeni Lev __entry->type = type; 37114e8a3c4SBeni Lev ), 37214e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", virtual intf name: %s, type: %d", 37314e8a3c4SBeni Lev WIPHY_PR_ARG, __get_str(vir_intf_name), __entry->type) 37414e8a3c4SBeni Lev ); 37514e8a3c4SBeni Lev 37614e8a3c4SBeni Lev DECLARE_EVENT_CLASS(wiphy_wdev_evt, 37714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 37814e8a3c4SBeni Lev TP_ARGS(wiphy, wdev), 37914e8a3c4SBeni Lev TP_STRUCT__entry( 38014e8a3c4SBeni Lev WIPHY_ENTRY 38114e8a3c4SBeni Lev WDEV_ENTRY 38214e8a3c4SBeni Lev ), 38314e8a3c4SBeni Lev TP_fast_assign( 38414e8a3c4SBeni Lev WIPHY_ASSIGN; 38514e8a3c4SBeni Lev WDEV_ASSIGN; 38614e8a3c4SBeni Lev ), 387ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, WIPHY_PR_ARG, WDEV_PR_ARG) 38814e8a3c4SBeni Lev ); 38914e8a3c4SBeni Lev 3909bb7e0f2SJohannes Berg DECLARE_EVENT_CLASS(wiphy_wdev_cookie_evt, 3919bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 3929bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie), 3939bb7e0f2SJohannes Berg TP_STRUCT__entry( 3949bb7e0f2SJohannes Berg WIPHY_ENTRY 3959bb7e0f2SJohannes Berg WDEV_ENTRY 3969bb7e0f2SJohannes Berg __field(u64, cookie) 3979bb7e0f2SJohannes Berg ), 3989bb7e0f2SJohannes Berg TP_fast_assign( 3999bb7e0f2SJohannes Berg WIPHY_ASSIGN; 4009bb7e0f2SJohannes Berg WDEV_ASSIGN; 4019bb7e0f2SJohannes Berg __entry->cookie = cookie; 4029bb7e0f2SJohannes Berg ), 4039bb7e0f2SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie: %lld", 4049bb7e0f2SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, 4059bb7e0f2SJohannes Berg (unsigned long long)__entry->cookie) 4069bb7e0f2SJohannes Berg ); 4079bb7e0f2SJohannes Berg 40814e8a3c4SBeni Lev DEFINE_EVENT(wiphy_wdev_evt, rdev_return_wdev, 40914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 41014e8a3c4SBeni Lev TP_ARGS(wiphy, wdev) 41114e8a3c4SBeni Lev ); 41214e8a3c4SBeni Lev 41314e8a3c4SBeni Lev DEFINE_EVENT(wiphy_wdev_evt, rdev_del_virtual_intf, 41414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 41514e8a3c4SBeni Lev TP_ARGS(wiphy, wdev) 41614e8a3c4SBeni Lev ); 41714e8a3c4SBeni Lev 41814e8a3c4SBeni Lev TRACE_EVENT(rdev_change_virtual_intf, 41914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 42014e8a3c4SBeni Lev enum nl80211_iftype type), 42114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, type), 42214e8a3c4SBeni Lev TP_STRUCT__entry( 42314e8a3c4SBeni Lev WIPHY_ENTRY 42414e8a3c4SBeni Lev NETDEV_ENTRY 42514e8a3c4SBeni Lev __field(enum nl80211_iftype, type) 42614e8a3c4SBeni Lev ), 42714e8a3c4SBeni Lev TP_fast_assign( 42814e8a3c4SBeni Lev WIPHY_ASSIGN; 42914e8a3c4SBeni Lev NETDEV_ASSIGN; 43014e8a3c4SBeni Lev __entry->type = type; 43114e8a3c4SBeni Lev ), 432ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", type: %d", 43314e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->type) 43414e8a3c4SBeni Lev ); 43514e8a3c4SBeni Lev 43614e8a3c4SBeni Lev DECLARE_EVENT_CLASS(key_handle, 43714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, 43814e8a3c4SBeni Lev bool pairwise, const u8 *mac_addr), 43914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, key_index, pairwise, mac_addr), 44014e8a3c4SBeni Lev TP_STRUCT__entry( 44114e8a3c4SBeni Lev WIPHY_ENTRY 44214e8a3c4SBeni Lev NETDEV_ENTRY 44314e8a3c4SBeni Lev MAC_ENTRY(mac_addr) 44414e8a3c4SBeni Lev __field(u8, key_index) 44514e8a3c4SBeni Lev __field(bool, pairwise) 44614e8a3c4SBeni Lev ), 44714e8a3c4SBeni Lev TP_fast_assign( 44814e8a3c4SBeni Lev WIPHY_ASSIGN; 44914e8a3c4SBeni Lev NETDEV_ASSIGN; 45014e8a3c4SBeni Lev MAC_ASSIGN(mac_addr, mac_addr); 45114e8a3c4SBeni Lev __entry->key_index = key_index; 45214e8a3c4SBeni Lev __entry->pairwise = pairwise; 45314e8a3c4SBeni Lev ), 454ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", key_index: %u, pairwise: %s, mac addr: " MAC_PR_FMT, 45514e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->key_index, 45614e8a3c4SBeni Lev BOOL_TO_STR(__entry->pairwise), MAC_PR_ARG(mac_addr)) 45714e8a3c4SBeni Lev ); 45814e8a3c4SBeni Lev 45914e8a3c4SBeni Lev DEFINE_EVENT(key_handle, rdev_get_key, 46014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, 46114e8a3c4SBeni Lev bool pairwise, const u8 *mac_addr), 46214e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, key_index, pairwise, mac_addr) 46314e8a3c4SBeni Lev ); 46414e8a3c4SBeni Lev 46514e8a3c4SBeni Lev DEFINE_EVENT(key_handle, rdev_del_key, 46614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, 46714e8a3c4SBeni Lev bool pairwise, const u8 *mac_addr), 46814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, key_index, pairwise, mac_addr) 46914e8a3c4SBeni Lev ); 47014e8a3c4SBeni Lev 4716cdd3979SAlexander Wetzel TRACE_EVENT(rdev_add_key, 4726cdd3979SAlexander Wetzel TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, 4736cdd3979SAlexander Wetzel bool pairwise, const u8 *mac_addr, u8 mode), 4746cdd3979SAlexander Wetzel TP_ARGS(wiphy, netdev, key_index, pairwise, mac_addr, mode), 4756cdd3979SAlexander Wetzel TP_STRUCT__entry( 4766cdd3979SAlexander Wetzel WIPHY_ENTRY 4776cdd3979SAlexander Wetzel NETDEV_ENTRY 4786cdd3979SAlexander Wetzel MAC_ENTRY(mac_addr) 4796cdd3979SAlexander Wetzel __field(u8, key_index) 4806cdd3979SAlexander Wetzel __field(bool, pairwise) 4816cdd3979SAlexander Wetzel __field(u8, mode) 4826cdd3979SAlexander Wetzel ), 4836cdd3979SAlexander Wetzel TP_fast_assign( 4846cdd3979SAlexander Wetzel WIPHY_ASSIGN; 4856cdd3979SAlexander Wetzel NETDEV_ASSIGN; 4866cdd3979SAlexander Wetzel MAC_ASSIGN(mac_addr, mac_addr); 4876cdd3979SAlexander Wetzel __entry->key_index = key_index; 4886cdd3979SAlexander Wetzel __entry->pairwise = pairwise; 4896cdd3979SAlexander Wetzel __entry->mode = mode; 4906cdd3979SAlexander Wetzel ), 4916cdd3979SAlexander Wetzel TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", key_index: %u, " 4926cdd3979SAlexander Wetzel "mode: %u, pairwise: %s, mac addr: " MAC_PR_FMT, 4936cdd3979SAlexander Wetzel WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->key_index, 4946cdd3979SAlexander Wetzel __entry->mode, BOOL_TO_STR(__entry->pairwise), 4956cdd3979SAlexander Wetzel MAC_PR_ARG(mac_addr)) 4966cdd3979SAlexander Wetzel ); 4976cdd3979SAlexander Wetzel 49814e8a3c4SBeni Lev TRACE_EVENT(rdev_set_default_key, 49914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, 50014e8a3c4SBeni Lev bool unicast, bool multicast), 50114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, key_index, unicast, multicast), 50214e8a3c4SBeni Lev TP_STRUCT__entry( 50314e8a3c4SBeni Lev WIPHY_ENTRY 50414e8a3c4SBeni Lev NETDEV_ENTRY 50514e8a3c4SBeni Lev __field(u8, key_index) 50614e8a3c4SBeni Lev __field(bool, unicast) 50714e8a3c4SBeni Lev __field(bool, multicast) 50814e8a3c4SBeni Lev ), 50914e8a3c4SBeni Lev TP_fast_assign( 51014e8a3c4SBeni Lev WIPHY_ASSIGN; 51114e8a3c4SBeni Lev NETDEV_ASSIGN; 51214e8a3c4SBeni Lev __entry->key_index = key_index; 51314e8a3c4SBeni Lev __entry->unicast = unicast; 51414e8a3c4SBeni Lev __entry->multicast = multicast; 51514e8a3c4SBeni Lev ), 516ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", key index: %u, unicast: %s, multicast: %s", 51714e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->key_index, 51814e8a3c4SBeni Lev BOOL_TO_STR(__entry->unicast), 51914e8a3c4SBeni Lev BOOL_TO_STR(__entry->multicast)) 52014e8a3c4SBeni Lev ); 52114e8a3c4SBeni Lev 52214e8a3c4SBeni Lev TRACE_EVENT(rdev_set_default_mgmt_key, 52314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 key_index), 52414e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, key_index), 52514e8a3c4SBeni Lev TP_STRUCT__entry( 52614e8a3c4SBeni Lev WIPHY_ENTRY 52714e8a3c4SBeni Lev NETDEV_ENTRY 52814e8a3c4SBeni Lev __field(u8, key_index) 52914e8a3c4SBeni Lev ), 53014e8a3c4SBeni Lev TP_fast_assign( 53114e8a3c4SBeni Lev WIPHY_ASSIGN; 53214e8a3c4SBeni Lev NETDEV_ASSIGN; 53314e8a3c4SBeni Lev __entry->key_index = key_index; 53414e8a3c4SBeni Lev ), 535ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", key index: %u", 53614e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->key_index) 53714e8a3c4SBeni Lev ); 53814e8a3c4SBeni Lev 53956be393fSJouni Malinen TRACE_EVENT(rdev_set_default_beacon_key, 54056be393fSJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 key_index), 54156be393fSJouni Malinen TP_ARGS(wiphy, netdev, key_index), 54256be393fSJouni Malinen TP_STRUCT__entry( 54356be393fSJouni Malinen WIPHY_ENTRY 54456be393fSJouni Malinen NETDEV_ENTRY 54556be393fSJouni Malinen __field(u8, key_index) 54656be393fSJouni Malinen ), 54756be393fSJouni Malinen TP_fast_assign( 54856be393fSJouni Malinen WIPHY_ASSIGN; 54956be393fSJouni Malinen NETDEV_ASSIGN; 55056be393fSJouni Malinen __entry->key_index = key_index; 55156be393fSJouni Malinen ), 55256be393fSJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", key index: %u", 55356be393fSJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->key_index) 55456be393fSJouni Malinen ); 55556be393fSJouni Malinen 55614e8a3c4SBeni Lev TRACE_EVENT(rdev_start_ap, 55714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 55814e8a3c4SBeni Lev struct cfg80211_ap_settings *settings), 55914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, settings), 56014e8a3c4SBeni Lev TP_STRUCT__entry( 56114e8a3c4SBeni Lev WIPHY_ENTRY 56214e8a3c4SBeni Lev NETDEV_ENTRY 563683b6d3bSJohannes Berg CHAN_DEF_ENTRY 56414e8a3c4SBeni Lev __field(int, beacon_interval) 56514e8a3c4SBeni Lev __field(int, dtim_period) 56614e8a3c4SBeni Lev __array(char, ssid, IEEE80211_MAX_SSID_LEN + 1) 56714e8a3c4SBeni Lev __field(enum nl80211_hidden_ssid, hidden_ssid) 56814e8a3c4SBeni Lev __field(u32, wpa_ver) 56914e8a3c4SBeni Lev __field(bool, privacy) 57014e8a3c4SBeni Lev __field(enum nl80211_auth_type, auth_type) 57114e8a3c4SBeni Lev __field(int, inactivity_timeout) 57214e8a3c4SBeni Lev ), 57314e8a3c4SBeni Lev TP_fast_assign( 57414e8a3c4SBeni Lev WIPHY_ASSIGN; 57514e8a3c4SBeni Lev NETDEV_ASSIGN; 576683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(&settings->chandef); 57714e8a3c4SBeni Lev __entry->beacon_interval = settings->beacon_interval; 57814e8a3c4SBeni Lev __entry->dtim_period = settings->dtim_period; 57914e8a3c4SBeni Lev __entry->hidden_ssid = settings->hidden_ssid; 58014e8a3c4SBeni Lev __entry->wpa_ver = settings->crypto.wpa_versions; 58114e8a3c4SBeni Lev __entry->privacy = settings->privacy; 58214e8a3c4SBeni Lev __entry->auth_type = settings->auth_type; 58314e8a3c4SBeni Lev __entry->inactivity_timeout = settings->inactivity_timeout; 58414e8a3c4SBeni Lev memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); 58514e8a3c4SBeni Lev memcpy(__entry->ssid, settings->ssid, settings->ssid_len); 58614e8a3c4SBeni Lev ), 587ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", AP settings - ssid: %s, " 588683b6d3bSJohannes Berg CHAN_DEF_PR_FMT ", beacon interval: %d, dtim period: %d, " 58914e8a3c4SBeni Lev "hidden ssid: %d, wpa versions: %u, privacy: %s, " 59014e8a3c4SBeni Lev "auth type: %d, inactivity timeout: %d", 591683b6d3bSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->ssid, CHAN_DEF_PR_ARG, 59214e8a3c4SBeni Lev __entry->beacon_interval, __entry->dtim_period, 59314e8a3c4SBeni Lev __entry->hidden_ssid, __entry->wpa_ver, 59414e8a3c4SBeni Lev BOOL_TO_STR(__entry->privacy), __entry->auth_type, 59514e8a3c4SBeni Lev __entry->inactivity_timeout) 59614e8a3c4SBeni Lev ); 59714e8a3c4SBeni Lev 59814e8a3c4SBeni Lev TRACE_EVENT(rdev_change_beacon, 59914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 60014e8a3c4SBeni Lev struct cfg80211_beacon_data *info), 60114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, info), 60214e8a3c4SBeni Lev TP_STRUCT__entry( 60314e8a3c4SBeni Lev WIPHY_ENTRY 60414e8a3c4SBeni Lev NETDEV_ENTRY 60514e8a3c4SBeni Lev __dynamic_array(u8, head, info ? info->head_len : 0) 60614e8a3c4SBeni Lev __dynamic_array(u8, tail, info ? info->tail_len : 0) 60714e8a3c4SBeni Lev __dynamic_array(u8, beacon_ies, info ? info->beacon_ies_len : 0) 60814e8a3c4SBeni Lev __dynamic_array(u8, proberesp_ies, 60914e8a3c4SBeni Lev info ? info->proberesp_ies_len : 0) 61014e8a3c4SBeni Lev __dynamic_array(u8, assocresp_ies, 61114e8a3c4SBeni Lev info ? info->assocresp_ies_len : 0) 61214e8a3c4SBeni Lev __dynamic_array(u8, probe_resp, info ? info->probe_resp_len : 0) 61314e8a3c4SBeni Lev ), 61414e8a3c4SBeni Lev TP_fast_assign( 61514e8a3c4SBeni Lev WIPHY_ASSIGN; 61614e8a3c4SBeni Lev NETDEV_ASSIGN; 61714e8a3c4SBeni Lev if (info) { 61814e8a3c4SBeni Lev if (info->head) 61914e8a3c4SBeni Lev memcpy(__get_dynamic_array(head), info->head, 62014e8a3c4SBeni Lev info->head_len); 62114e8a3c4SBeni Lev if (info->tail) 62214e8a3c4SBeni Lev memcpy(__get_dynamic_array(tail), info->tail, 62314e8a3c4SBeni Lev info->tail_len); 62414e8a3c4SBeni Lev if (info->beacon_ies) 62514e8a3c4SBeni Lev memcpy(__get_dynamic_array(beacon_ies), 62614e8a3c4SBeni Lev info->beacon_ies, info->beacon_ies_len); 62714e8a3c4SBeni Lev if (info->proberesp_ies) 62814e8a3c4SBeni Lev memcpy(__get_dynamic_array(proberesp_ies), 62914e8a3c4SBeni Lev info->proberesp_ies, 63014e8a3c4SBeni Lev info->proberesp_ies_len); 63114e8a3c4SBeni Lev if (info->assocresp_ies) 63214e8a3c4SBeni Lev memcpy(__get_dynamic_array(assocresp_ies), 63314e8a3c4SBeni Lev info->assocresp_ies, 63414e8a3c4SBeni Lev info->assocresp_ies_len); 63514e8a3c4SBeni Lev if (info->probe_resp) 63614e8a3c4SBeni Lev memcpy(__get_dynamic_array(probe_resp), 63714e8a3c4SBeni Lev info->probe_resp, info->probe_resp_len); 63814e8a3c4SBeni Lev } 63914e8a3c4SBeni Lev ), 640ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, WIPHY_PR_ARG, NETDEV_PR_ARG) 64114e8a3c4SBeni Lev ); 64214e8a3c4SBeni Lev 64314e8a3c4SBeni Lev DECLARE_EVENT_CLASS(wiphy_netdev_evt, 64414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 64514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev), 64614e8a3c4SBeni Lev TP_STRUCT__entry( 64714e8a3c4SBeni Lev WIPHY_ENTRY 64814e8a3c4SBeni Lev NETDEV_ENTRY 64914e8a3c4SBeni Lev ), 65014e8a3c4SBeni Lev TP_fast_assign( 65114e8a3c4SBeni Lev WIPHY_ASSIGN; 65214e8a3c4SBeni Lev NETDEV_ASSIGN; 65314e8a3c4SBeni Lev ), 654ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, WIPHY_PR_ARG, NETDEV_PR_ARG) 65514e8a3c4SBeni Lev ); 65614e8a3c4SBeni Lev 65714e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_stop_ap, 65814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 65914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 66014e8a3c4SBeni Lev ); 66114e8a3c4SBeni Lev 66214e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_set_rekey_data, 66314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 66414e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 66514e8a3c4SBeni Lev ); 66614e8a3c4SBeni Lev 66714e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_get_mesh_config, 66814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 66914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 67014e8a3c4SBeni Lev ); 67114e8a3c4SBeni Lev 67214e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_leave_mesh, 67314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 67414e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 67514e8a3c4SBeni Lev ); 67614e8a3c4SBeni Lev 67714e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_leave_ibss, 67814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 67914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 68014e8a3c4SBeni Lev ); 68114e8a3c4SBeni Lev 6826e0bd6c3SRostislav Lisovy DEFINE_EVENT(wiphy_netdev_evt, rdev_leave_ocb, 6836e0bd6c3SRostislav Lisovy TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 6846e0bd6c3SRostislav Lisovy TP_ARGS(wiphy, netdev) 6856e0bd6c3SRostislav Lisovy ); 6866e0bd6c3SRostislav Lisovy 68714e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_flush_pmksa, 68814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 68914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 69014e8a3c4SBeni Lev ); 69114e8a3c4SBeni Lev 69226ec17a1SOrr Mazor DEFINE_EVENT(wiphy_netdev_evt, rdev_end_cac, 69326ec17a1SOrr Mazor TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 69426ec17a1SOrr Mazor TP_ARGS(wiphy, netdev) 69526ec17a1SOrr Mazor ); 69626ec17a1SOrr Mazor 69714e8a3c4SBeni Lev DECLARE_EVENT_CLASS(station_add_change, 69814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *mac, 69914e8a3c4SBeni Lev struct station_parameters *params), 70014e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac, params), 70114e8a3c4SBeni Lev TP_STRUCT__entry( 70214e8a3c4SBeni Lev WIPHY_ENTRY 70314e8a3c4SBeni Lev NETDEV_ENTRY 70414e8a3c4SBeni Lev MAC_ENTRY(sta_mac) 70514e8a3c4SBeni Lev __field(u32, sta_flags_mask) 70614e8a3c4SBeni Lev __field(u32, sta_flags_set) 70714e8a3c4SBeni Lev __field(u32, sta_modify_mask) 70814e8a3c4SBeni Lev __field(int, listen_interval) 7096e045905SJohannes Berg __field(u16, capability) 71014e8a3c4SBeni Lev __field(u16, aid) 71114e8a3c4SBeni Lev __field(u8, plink_action) 71214e8a3c4SBeni Lev __field(u8, plink_state) 71314e8a3c4SBeni Lev __field(u8, uapsd_queues) 7146e045905SJohannes Berg __field(u8, max_sp) 7156e045905SJohannes Berg __field(u8, opmode_notif) 7166e045905SJohannes Berg __field(bool, opmode_notif_used) 71714e8a3c4SBeni Lev __array(u8, ht_capa, (int)sizeof(struct ieee80211_ht_cap)) 7186e045905SJohannes Berg __array(u8, vht_capa, (int)sizeof(struct ieee80211_vht_cap)) 7195d8325ecSJohannes Berg __array(char, vlan, IFNAMSIZ) 7206e045905SJohannes Berg __dynamic_array(u8, supported_rates, 7216e045905SJohannes Berg params->supported_rates_len) 7226e045905SJohannes Berg __dynamic_array(u8, ext_capab, params->ext_capab_len) 7236e045905SJohannes Berg __dynamic_array(u8, supported_channels, 7246e045905SJohannes Berg params->supported_channels_len) 7256e045905SJohannes Berg __dynamic_array(u8, supported_oper_classes, 7266e045905SJohannes Berg params->supported_oper_classes_len) 72714e8a3c4SBeni Lev ), 72814e8a3c4SBeni Lev TP_fast_assign( 72914e8a3c4SBeni Lev WIPHY_ASSIGN; 73014e8a3c4SBeni Lev NETDEV_ASSIGN; 73114e8a3c4SBeni Lev MAC_ASSIGN(sta_mac, mac); 73214e8a3c4SBeni Lev __entry->sta_flags_mask = params->sta_flags_mask; 73314e8a3c4SBeni Lev __entry->sta_flags_set = params->sta_flags_set; 73414e8a3c4SBeni Lev __entry->sta_modify_mask = params->sta_modify_mask; 73514e8a3c4SBeni Lev __entry->listen_interval = params->listen_interval; 73614e8a3c4SBeni Lev __entry->aid = params->aid; 73714e8a3c4SBeni Lev __entry->plink_action = params->plink_action; 73814e8a3c4SBeni Lev __entry->plink_state = params->plink_state; 73914e8a3c4SBeni Lev __entry->uapsd_queues = params->uapsd_queues; 74014e8a3c4SBeni Lev memset(__entry->ht_capa, 0, sizeof(struct ieee80211_ht_cap)); 74114e8a3c4SBeni Lev if (params->ht_capa) 74214e8a3c4SBeni Lev memcpy(__entry->ht_capa, params->ht_capa, 74314e8a3c4SBeni Lev sizeof(struct ieee80211_ht_cap)); 7446e045905SJohannes Berg memset(__entry->vht_capa, 0, sizeof(struct ieee80211_vht_cap)); 7456e045905SJohannes Berg if (params->vht_capa) 7466e045905SJohannes Berg memcpy(__entry->vht_capa, params->vht_capa, 7476e045905SJohannes Berg sizeof(struct ieee80211_vht_cap)); 7485d8325ecSJohannes Berg memset(__entry->vlan, 0, sizeof(__entry->vlan)); 7495d8325ecSJohannes Berg if (params->vlan) 7505d8325ecSJohannes Berg memcpy(__entry->vlan, params->vlan->name, IFNAMSIZ); 7516e045905SJohannes Berg if (params->supported_rates && params->supported_rates_len) 7526e045905SJohannes Berg memcpy(__get_dynamic_array(supported_rates), 7536e045905SJohannes Berg params->supported_rates, 7546e045905SJohannes Berg params->supported_rates_len); 7556e045905SJohannes Berg if (params->ext_capab && params->ext_capab_len) 7566e045905SJohannes Berg memcpy(__get_dynamic_array(ext_capab), 7576e045905SJohannes Berg params->ext_capab, 7586e045905SJohannes Berg params->ext_capab_len); 7596e045905SJohannes Berg if (params->supported_channels && 7606e045905SJohannes Berg params->supported_channels_len) 7616e045905SJohannes Berg memcpy(__get_dynamic_array(supported_channels), 7626e045905SJohannes Berg params->supported_channels, 7636e045905SJohannes Berg params->supported_channels_len); 7646e045905SJohannes Berg if (params->supported_oper_classes && 7656e045905SJohannes Berg params->supported_oper_classes_len) 7666e045905SJohannes Berg memcpy(__get_dynamic_array(supported_oper_classes), 7676e045905SJohannes Berg params->supported_oper_classes, 7686e045905SJohannes Berg params->supported_oper_classes_len); 7696e045905SJohannes Berg __entry->max_sp = params->max_sp; 7706e045905SJohannes Berg __entry->capability = params->capability; 7716e045905SJohannes Berg __entry->opmode_notif = params->opmode_notif; 7726e045905SJohannes Berg __entry->opmode_notif_used = params->opmode_notif_used; 77314e8a3c4SBeni Lev ), 774ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT 77514e8a3c4SBeni Lev ", station flags mask: %u, station flags set: %u, " 77614e8a3c4SBeni Lev "station modify mask: %u, listen interval: %d, aid: %u, " 7775d8325ecSJohannes Berg "plink action: %u, plink state: %u, uapsd queues: %u, vlan:%s", 77814e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac), 77914e8a3c4SBeni Lev __entry->sta_flags_mask, __entry->sta_flags_set, 78014e8a3c4SBeni Lev __entry->sta_modify_mask, __entry->listen_interval, 78114e8a3c4SBeni Lev __entry->aid, __entry->plink_action, __entry->plink_state, 7825d8325ecSJohannes Berg __entry->uapsd_queues, __entry->vlan) 78314e8a3c4SBeni Lev ); 78414e8a3c4SBeni Lev 78514e8a3c4SBeni Lev DEFINE_EVENT(station_add_change, rdev_add_station, 78614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *mac, 78714e8a3c4SBeni Lev struct station_parameters *params), 78814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac, params) 78914e8a3c4SBeni Lev ); 79014e8a3c4SBeni Lev 79114e8a3c4SBeni Lev DEFINE_EVENT(station_add_change, rdev_change_station, 79214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *mac, 79314e8a3c4SBeni Lev struct station_parameters *params), 79414e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac, params) 79514e8a3c4SBeni Lev ); 79614e8a3c4SBeni Lev 79714e8a3c4SBeni Lev DECLARE_EVENT_CLASS(wiphy_netdev_mac_evt, 79814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *mac), 79914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac), 80014e8a3c4SBeni Lev TP_STRUCT__entry( 80114e8a3c4SBeni Lev WIPHY_ENTRY 80214e8a3c4SBeni Lev NETDEV_ENTRY 80314e8a3c4SBeni Lev MAC_ENTRY(sta_mac) 80414e8a3c4SBeni Lev ), 80514e8a3c4SBeni Lev TP_fast_assign( 80614e8a3c4SBeni Lev WIPHY_ASSIGN; 80714e8a3c4SBeni Lev NETDEV_ASSIGN; 80814e8a3c4SBeni Lev MAC_ASSIGN(sta_mac, mac); 80914e8a3c4SBeni Lev ), 810ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", mac: " MAC_PR_FMT, 81114e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac)) 81214e8a3c4SBeni Lev ); 81314e8a3c4SBeni Lev 81489c771e5SJouni Malinen DECLARE_EVENT_CLASS(station_del, 81589c771e5SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 81689c771e5SJouni Malinen struct station_del_parameters *params), 81789c771e5SJouni Malinen TP_ARGS(wiphy, netdev, params), 81889c771e5SJouni Malinen TP_STRUCT__entry( 81989c771e5SJouni Malinen WIPHY_ENTRY 82089c771e5SJouni Malinen NETDEV_ENTRY 82189c771e5SJouni Malinen MAC_ENTRY(sta_mac) 82298856866SJouni Malinen __field(u8, subtype) 82398856866SJouni Malinen __field(u16, reason_code) 82489c771e5SJouni Malinen ), 82589c771e5SJouni Malinen TP_fast_assign( 82689c771e5SJouni Malinen WIPHY_ASSIGN; 82789c771e5SJouni Malinen NETDEV_ASSIGN; 82889c771e5SJouni Malinen MAC_ASSIGN(sta_mac, params->mac); 82998856866SJouni Malinen __entry->subtype = params->subtype; 83098856866SJouni Malinen __entry->reason_code = params->reason_code; 83189c771e5SJouni Malinen ), 83298856866SJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT 83398856866SJouni Malinen ", subtype: %u, reason_code: %u", 83498856866SJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac), 83598856866SJouni Malinen __entry->subtype, __entry->reason_code) 83689c771e5SJouni Malinen ); 83789c771e5SJouni Malinen 83889c771e5SJouni Malinen DEFINE_EVENT(station_del, rdev_del_station, 83989c771e5SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 84089c771e5SJouni Malinen struct station_del_parameters *params), 84189c771e5SJouni Malinen TP_ARGS(wiphy, netdev, params) 84214e8a3c4SBeni Lev ); 84314e8a3c4SBeni Lev 84414e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_mac_evt, rdev_get_station, 84514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *mac), 84614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac) 84714e8a3c4SBeni Lev ); 84814e8a3c4SBeni Lev 84914e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_mac_evt, rdev_del_mpath, 85014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *mac), 85114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac) 85214e8a3c4SBeni Lev ); 85314e8a3c4SBeni Lev 85414e8a3c4SBeni Lev TRACE_EVENT(rdev_dump_station, 855aaaa10e0SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int _idx, 85614e8a3c4SBeni Lev u8 *mac), 857aaaa10e0SJohannes Berg TP_ARGS(wiphy, netdev, _idx, mac), 85814e8a3c4SBeni Lev TP_STRUCT__entry( 85914e8a3c4SBeni Lev WIPHY_ENTRY 86014e8a3c4SBeni Lev NETDEV_ENTRY 86114e8a3c4SBeni Lev MAC_ENTRY(sta_mac) 86214e8a3c4SBeni Lev __field(int, idx) 86314e8a3c4SBeni Lev ), 86414e8a3c4SBeni Lev TP_fast_assign( 86514e8a3c4SBeni Lev WIPHY_ASSIGN; 86614e8a3c4SBeni Lev NETDEV_ASSIGN; 86714e8a3c4SBeni Lev MAC_ASSIGN(sta_mac, mac); 868aaaa10e0SJohannes Berg __entry->idx = _idx; 86914e8a3c4SBeni Lev ), 870ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT ", idx: %d", 87114e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac), 87214e8a3c4SBeni Lev __entry->idx) 87314e8a3c4SBeni Lev ); 87414e8a3c4SBeni Lev 87514e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_station_info, 87614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, struct station_info *sinfo), 87714e8a3c4SBeni Lev TP_ARGS(wiphy, ret, sinfo), 87814e8a3c4SBeni Lev TP_STRUCT__entry( 87914e8a3c4SBeni Lev WIPHY_ENTRY 88014e8a3c4SBeni Lev __field(int, ret) 88114e8a3c4SBeni Lev SINFO_ENTRY 88214e8a3c4SBeni Lev ), 88314e8a3c4SBeni Lev TP_fast_assign( 88414e8a3c4SBeni Lev WIPHY_ASSIGN; 88514e8a3c4SBeni Lev __entry->ret = ret; 88614e8a3c4SBeni Lev SINFO_ASSIGN; 88714e8a3c4SBeni Lev ), 88814e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned %d" , 88914e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret) 89014e8a3c4SBeni Lev ); 89114e8a3c4SBeni Lev 89214e8a3c4SBeni Lev DECLARE_EVENT_CLASS(mpath_evt, 89314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst, 89414e8a3c4SBeni Lev u8 *next_hop), 89514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, dst, next_hop), 89614e8a3c4SBeni Lev TP_STRUCT__entry( 89714e8a3c4SBeni Lev WIPHY_ENTRY 89814e8a3c4SBeni Lev NETDEV_ENTRY 89914e8a3c4SBeni Lev MAC_ENTRY(dst) 90014e8a3c4SBeni Lev MAC_ENTRY(next_hop) 90114e8a3c4SBeni Lev ), 90214e8a3c4SBeni Lev TP_fast_assign( 90314e8a3c4SBeni Lev WIPHY_ASSIGN; 90414e8a3c4SBeni Lev NETDEV_ASSIGN; 90514e8a3c4SBeni Lev MAC_ASSIGN(dst, dst); 90614e8a3c4SBeni Lev MAC_ASSIGN(next_hop, next_hop); 90714e8a3c4SBeni Lev ), 908ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", destination: " MAC_PR_FMT ", next hop: " MAC_PR_FMT, 90914e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(dst), 91014e8a3c4SBeni Lev MAC_PR_ARG(next_hop)) 91114e8a3c4SBeni Lev ); 91214e8a3c4SBeni Lev 91314e8a3c4SBeni Lev DEFINE_EVENT(mpath_evt, rdev_add_mpath, 91414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst, 91514e8a3c4SBeni Lev u8 *next_hop), 91614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, dst, next_hop) 91714e8a3c4SBeni Lev ); 91814e8a3c4SBeni Lev 91914e8a3c4SBeni Lev DEFINE_EVENT(mpath_evt, rdev_change_mpath, 92014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst, 92114e8a3c4SBeni Lev u8 *next_hop), 92214e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, dst, next_hop) 92314e8a3c4SBeni Lev ); 92414e8a3c4SBeni Lev 92514e8a3c4SBeni Lev DEFINE_EVENT(mpath_evt, rdev_get_mpath, 92614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst, 92714e8a3c4SBeni Lev u8 *next_hop), 92814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, dst, next_hop) 92914e8a3c4SBeni Lev ); 93014e8a3c4SBeni Lev 93114e8a3c4SBeni Lev TRACE_EVENT(rdev_dump_mpath, 932aaaa10e0SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int _idx, 93314e8a3c4SBeni Lev u8 *dst, u8 *next_hop), 934aaaa10e0SJohannes Berg TP_ARGS(wiphy, netdev, _idx, dst, next_hop), 93514e8a3c4SBeni Lev TP_STRUCT__entry( 93614e8a3c4SBeni Lev WIPHY_ENTRY 93714e8a3c4SBeni Lev NETDEV_ENTRY 93814e8a3c4SBeni Lev MAC_ENTRY(dst) 93914e8a3c4SBeni Lev MAC_ENTRY(next_hop) 94014e8a3c4SBeni Lev __field(int, idx) 94114e8a3c4SBeni Lev ), 94214e8a3c4SBeni Lev TP_fast_assign( 94314e8a3c4SBeni Lev WIPHY_ASSIGN; 94414e8a3c4SBeni Lev NETDEV_ASSIGN; 94514e8a3c4SBeni Lev MAC_ASSIGN(dst, dst); 94614e8a3c4SBeni Lev MAC_ASSIGN(next_hop, next_hop); 947aaaa10e0SJohannes Berg __entry->idx = _idx; 94814e8a3c4SBeni Lev ), 949ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d, destination: " 95014e8a3c4SBeni Lev MAC_PR_FMT ", next hop: " MAC_PR_FMT, 95114e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx, MAC_PR_ARG(dst), 95214e8a3c4SBeni Lev MAC_PR_ARG(next_hop)) 95314e8a3c4SBeni Lev ); 95414e8a3c4SBeni Lev 95566be7d2bSHenning Rogge TRACE_EVENT(rdev_get_mpp, 95666be7d2bSHenning Rogge TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 95766be7d2bSHenning Rogge u8 *dst, u8 *mpp), 95866be7d2bSHenning Rogge TP_ARGS(wiphy, netdev, dst, mpp), 95966be7d2bSHenning Rogge TP_STRUCT__entry( 96066be7d2bSHenning Rogge WIPHY_ENTRY 96166be7d2bSHenning Rogge NETDEV_ENTRY 96266be7d2bSHenning Rogge MAC_ENTRY(dst) 96366be7d2bSHenning Rogge MAC_ENTRY(mpp) 96466be7d2bSHenning Rogge ), 96566be7d2bSHenning Rogge TP_fast_assign( 96666be7d2bSHenning Rogge WIPHY_ASSIGN; 96766be7d2bSHenning Rogge NETDEV_ASSIGN; 96866be7d2bSHenning Rogge MAC_ASSIGN(dst, dst); 96966be7d2bSHenning Rogge MAC_ASSIGN(mpp, mpp); 97066be7d2bSHenning Rogge ), 97166be7d2bSHenning Rogge TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", destination: " MAC_PR_FMT 97266be7d2bSHenning Rogge ", mpp: " MAC_PR_FMT, WIPHY_PR_ARG, NETDEV_PR_ARG, 97366be7d2bSHenning Rogge MAC_PR_ARG(dst), MAC_PR_ARG(mpp)) 97466be7d2bSHenning Rogge ); 97566be7d2bSHenning Rogge 97666be7d2bSHenning Rogge TRACE_EVENT(rdev_dump_mpp, 977aaaa10e0SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int _idx, 97866be7d2bSHenning Rogge u8 *dst, u8 *mpp), 979aaaa10e0SJohannes Berg TP_ARGS(wiphy, netdev, _idx, mpp, dst), 98066be7d2bSHenning Rogge TP_STRUCT__entry( 98166be7d2bSHenning Rogge WIPHY_ENTRY 98266be7d2bSHenning Rogge NETDEV_ENTRY 98366be7d2bSHenning Rogge MAC_ENTRY(dst) 98466be7d2bSHenning Rogge MAC_ENTRY(mpp) 98566be7d2bSHenning Rogge __field(int, idx) 98666be7d2bSHenning Rogge ), 98766be7d2bSHenning Rogge TP_fast_assign( 98866be7d2bSHenning Rogge WIPHY_ASSIGN; 98966be7d2bSHenning Rogge NETDEV_ASSIGN; 99066be7d2bSHenning Rogge MAC_ASSIGN(dst, dst); 99166be7d2bSHenning Rogge MAC_ASSIGN(mpp, mpp); 992aaaa10e0SJohannes Berg __entry->idx = _idx; 99366be7d2bSHenning Rogge ), 99466be7d2bSHenning Rogge TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d, destination: " 99566be7d2bSHenning Rogge MAC_PR_FMT ", mpp: " MAC_PR_FMT, 99666be7d2bSHenning Rogge WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx, MAC_PR_ARG(dst), 99766be7d2bSHenning Rogge MAC_PR_ARG(mpp)) 99866be7d2bSHenning Rogge ); 99966be7d2bSHenning Rogge 100014e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_mpath_info, 100114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, struct mpath_info *pinfo), 100214e8a3c4SBeni Lev TP_ARGS(wiphy, ret, pinfo), 100314e8a3c4SBeni Lev TP_STRUCT__entry( 100414e8a3c4SBeni Lev WIPHY_ENTRY 100514e8a3c4SBeni Lev __field(int, ret) 100614e8a3c4SBeni Lev __field(int, generation) 100714e8a3c4SBeni Lev __field(u32, filled) 100814e8a3c4SBeni Lev __field(u32, frame_qlen) 100914e8a3c4SBeni Lev __field(u32, sn) 101014e8a3c4SBeni Lev __field(u32, metric) 101114e8a3c4SBeni Lev __field(u32, exptime) 101214e8a3c4SBeni Lev __field(u32, discovery_timeout) 101314e8a3c4SBeni Lev __field(u8, discovery_retries) 101414e8a3c4SBeni Lev __field(u8, flags) 101514e8a3c4SBeni Lev ), 101614e8a3c4SBeni Lev TP_fast_assign( 101714e8a3c4SBeni Lev WIPHY_ASSIGN; 101814e8a3c4SBeni Lev __entry->ret = ret; 101914e8a3c4SBeni Lev __entry->generation = pinfo->generation; 102014e8a3c4SBeni Lev __entry->filled = pinfo->filled; 102114e8a3c4SBeni Lev __entry->frame_qlen = pinfo->frame_qlen; 102214e8a3c4SBeni Lev __entry->sn = pinfo->sn; 102314e8a3c4SBeni Lev __entry->metric = pinfo->metric; 102414e8a3c4SBeni Lev __entry->exptime = pinfo->exptime; 102514e8a3c4SBeni Lev __entry->discovery_timeout = pinfo->discovery_timeout; 102614e8a3c4SBeni Lev __entry->discovery_retries = pinfo->discovery_retries; 102714e8a3c4SBeni Lev __entry->flags = pinfo->flags; 102814e8a3c4SBeni Lev ), 102914e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned %d. mpath info - generation: %d, " 103014e8a3c4SBeni Lev "filled: %u, frame qlen: %u, sn: %u, metric: %u, exptime: %u," 103114e8a3c4SBeni Lev " discovery timeout: %u, discovery retries: %u, flags: %u", 103214e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, __entry->generation, 103314e8a3c4SBeni Lev __entry->filled, __entry->frame_qlen, __entry->sn, 103414e8a3c4SBeni Lev __entry->metric, __entry->exptime, __entry->discovery_timeout, 103514e8a3c4SBeni Lev __entry->discovery_retries, __entry->flags) 103614e8a3c4SBeni Lev ); 103714e8a3c4SBeni Lev 103814e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_mesh_config, 103914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, struct mesh_config *conf), 104014e8a3c4SBeni Lev TP_ARGS(wiphy, ret, conf), 104114e8a3c4SBeni Lev TP_STRUCT__entry( 104214e8a3c4SBeni Lev WIPHY_ENTRY 104314e8a3c4SBeni Lev MESH_CFG_ENTRY 104414e8a3c4SBeni Lev __field(int, ret) 104514e8a3c4SBeni Lev ), 104614e8a3c4SBeni Lev TP_fast_assign( 104714e8a3c4SBeni Lev WIPHY_ASSIGN; 104814e8a3c4SBeni Lev MESH_CFG_ASSIGN; 104914e8a3c4SBeni Lev __entry->ret = ret; 105014e8a3c4SBeni Lev ), 105114e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned: %d", 105214e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret) 105314e8a3c4SBeni Lev ); 105414e8a3c4SBeni Lev 105514e8a3c4SBeni Lev TRACE_EVENT(rdev_update_mesh_config, 105614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u32 mask, 105714e8a3c4SBeni Lev const struct mesh_config *conf), 105814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mask, conf), 105914e8a3c4SBeni Lev TP_STRUCT__entry( 106014e8a3c4SBeni Lev WIPHY_ENTRY 106114e8a3c4SBeni Lev NETDEV_ENTRY 106214e8a3c4SBeni Lev MESH_CFG_ENTRY 106314e8a3c4SBeni Lev __field(u32, mask) 106414e8a3c4SBeni Lev ), 106514e8a3c4SBeni Lev TP_fast_assign( 106614e8a3c4SBeni Lev WIPHY_ASSIGN; 106714e8a3c4SBeni Lev NETDEV_ASSIGN; 106814e8a3c4SBeni Lev MESH_CFG_ASSIGN; 106914e8a3c4SBeni Lev __entry->mask = mask; 107014e8a3c4SBeni Lev ), 1071ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", mask: %u", 107214e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->mask) 107314e8a3c4SBeni Lev ); 107414e8a3c4SBeni Lev 107514e8a3c4SBeni Lev TRACE_EVENT(rdev_join_mesh, 107614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 107714e8a3c4SBeni Lev const struct mesh_config *conf, 107814e8a3c4SBeni Lev const struct mesh_setup *setup), 107914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, conf, setup), 108014e8a3c4SBeni Lev TP_STRUCT__entry( 108114e8a3c4SBeni Lev WIPHY_ENTRY 108214e8a3c4SBeni Lev NETDEV_ENTRY 108314e8a3c4SBeni Lev MESH_CFG_ENTRY 108414e8a3c4SBeni Lev ), 108514e8a3c4SBeni Lev TP_fast_assign( 108614e8a3c4SBeni Lev WIPHY_ASSIGN; 108714e8a3c4SBeni Lev NETDEV_ASSIGN; 108814e8a3c4SBeni Lev MESH_CFG_ASSIGN; 108914e8a3c4SBeni Lev ), 1090ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, 109114e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG) 109214e8a3c4SBeni Lev ); 109314e8a3c4SBeni Lev 109414e8a3c4SBeni Lev TRACE_EVENT(rdev_change_bss, 109514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 109614e8a3c4SBeni Lev struct bss_parameters *params), 109714e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, params), 109814e8a3c4SBeni Lev TP_STRUCT__entry( 109914e8a3c4SBeni Lev WIPHY_ENTRY 110014e8a3c4SBeni Lev NETDEV_ENTRY 110114e8a3c4SBeni Lev __field(int, use_cts_prot) 110214e8a3c4SBeni Lev __field(int, use_short_preamble) 110314e8a3c4SBeni Lev __field(int, use_short_slot_time) 110414e8a3c4SBeni Lev __field(int, ap_isolate) 110514e8a3c4SBeni Lev __field(int, ht_opmode) 110614e8a3c4SBeni Lev ), 110714e8a3c4SBeni Lev TP_fast_assign( 110814e8a3c4SBeni Lev WIPHY_ASSIGN; 110914e8a3c4SBeni Lev NETDEV_ASSIGN; 111014e8a3c4SBeni Lev __entry->use_cts_prot = params->use_cts_prot; 111114e8a3c4SBeni Lev __entry->use_short_preamble = params->use_short_preamble; 111214e8a3c4SBeni Lev __entry->use_short_slot_time = params->use_short_slot_time; 111314e8a3c4SBeni Lev __entry->ap_isolate = params->ap_isolate; 111414e8a3c4SBeni Lev __entry->ht_opmode = params->ht_opmode; 111514e8a3c4SBeni Lev ), 1116ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", use cts prot: %d, " 111714e8a3c4SBeni Lev "use short preamble: %d, use short slot time: %d, " 111814e8a3c4SBeni Lev "ap isolate: %d, ht opmode: %d", 111914e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->use_cts_prot, 112014e8a3c4SBeni Lev __entry->use_short_preamble, __entry->use_short_slot_time, 112114e8a3c4SBeni Lev __entry->ap_isolate, __entry->ht_opmode) 112214e8a3c4SBeni Lev ); 112314e8a3c4SBeni Lev 112414e8a3c4SBeni Lev TRACE_EVENT(rdev_set_txq_params, 112514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 112614e8a3c4SBeni Lev struct ieee80211_txq_params *params), 112714e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, params), 112814e8a3c4SBeni Lev TP_STRUCT__entry( 112914e8a3c4SBeni Lev WIPHY_ENTRY 113014e8a3c4SBeni Lev NETDEV_ENTRY 113114e8a3c4SBeni Lev __field(enum nl80211_ac, ac) 113214e8a3c4SBeni Lev __field(u16, txop) 113314e8a3c4SBeni Lev __field(u16, cwmin) 113414e8a3c4SBeni Lev __field(u16, cwmax) 113514e8a3c4SBeni Lev __field(u8, aifs) 113614e8a3c4SBeni Lev ), 113714e8a3c4SBeni Lev TP_fast_assign( 113814e8a3c4SBeni Lev WIPHY_ASSIGN; 113914e8a3c4SBeni Lev NETDEV_ASSIGN; 114014e8a3c4SBeni Lev __entry->ac = params->ac; 114114e8a3c4SBeni Lev __entry->txop = params->txop; 114214e8a3c4SBeni Lev __entry->cwmin = params->cwmin; 114314e8a3c4SBeni Lev __entry->cwmax = params->cwmax; 114414e8a3c4SBeni Lev __entry->aifs = params->aifs; 114514e8a3c4SBeni Lev ), 1146ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", ac: %d, txop: %u, cwmin: %u, cwmax: %u, aifs: %u", 114714e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->ac, __entry->txop, 114814e8a3c4SBeni Lev __entry->cwmin, __entry->cwmax, __entry->aifs) 114914e8a3c4SBeni Lev ); 115014e8a3c4SBeni Lev 115114e8a3c4SBeni Lev TRACE_EVENT(rdev_libertas_set_mesh_channel, 115214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 115314e8a3c4SBeni Lev struct ieee80211_channel *chan), 115414e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, chan), 115514e8a3c4SBeni Lev TP_STRUCT__entry( 115614e8a3c4SBeni Lev WIPHY_ENTRY 115714e8a3c4SBeni Lev NETDEV_ENTRY 115814e8a3c4SBeni Lev CHAN_ENTRY 115914e8a3c4SBeni Lev ), 116014e8a3c4SBeni Lev TP_fast_assign( 116114e8a3c4SBeni Lev WIPHY_ASSIGN; 116214e8a3c4SBeni Lev NETDEV_ASSIGN; 116314e8a3c4SBeni Lev CHAN_ASSIGN(chan); 116414e8a3c4SBeni Lev ), 1165ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_PR_FMT, WIPHY_PR_ARG, 116614e8a3c4SBeni Lev NETDEV_PR_ARG, CHAN_PR_ARG) 116714e8a3c4SBeni Lev ); 116814e8a3c4SBeni Lev 116914e8a3c4SBeni Lev TRACE_EVENT(rdev_set_monitor_channel, 1170683b6d3bSJohannes Berg TP_PROTO(struct wiphy *wiphy, 1171683b6d3bSJohannes Berg struct cfg80211_chan_def *chandef), 1172683b6d3bSJohannes Berg TP_ARGS(wiphy, chandef), 117314e8a3c4SBeni Lev TP_STRUCT__entry( 117414e8a3c4SBeni Lev WIPHY_ENTRY 1175683b6d3bSJohannes Berg CHAN_DEF_ENTRY 117614e8a3c4SBeni Lev ), 117714e8a3c4SBeni Lev TP_fast_assign( 117814e8a3c4SBeni Lev WIPHY_ASSIGN; 1179683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 118014e8a3c4SBeni Lev ), 1181ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT, 1182683b6d3bSJohannes Berg WIPHY_PR_ARG, CHAN_DEF_PR_ARG) 118314e8a3c4SBeni Lev ); 118414e8a3c4SBeni Lev 118514e8a3c4SBeni Lev TRACE_EVENT(rdev_auth, 118614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 118714e8a3c4SBeni Lev struct cfg80211_auth_request *req), 118814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, req), 118914e8a3c4SBeni Lev TP_STRUCT__entry( 119014e8a3c4SBeni Lev WIPHY_ENTRY 119114e8a3c4SBeni Lev NETDEV_ENTRY 119214e8a3c4SBeni Lev MAC_ENTRY(bssid) 119314e8a3c4SBeni Lev __field(enum nl80211_auth_type, auth_type) 119414e8a3c4SBeni Lev ), 119514e8a3c4SBeni Lev TP_fast_assign( 119614e8a3c4SBeni Lev WIPHY_ASSIGN; 119714e8a3c4SBeni Lev NETDEV_ASSIGN; 119814e8a3c4SBeni Lev if (req->bss) 119914e8a3c4SBeni Lev MAC_ASSIGN(bssid, req->bss->bssid); 120014e8a3c4SBeni Lev else 1201d2beae10SJoe Perches eth_zero_addr(__entry->bssid); 120214e8a3c4SBeni Lev __entry->auth_type = req->auth_type; 120314e8a3c4SBeni Lev ), 1204ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", auth type: %d, bssid: " MAC_PR_FMT, 120514e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->auth_type, 120614e8a3c4SBeni Lev MAC_PR_ARG(bssid)) 120714e8a3c4SBeni Lev ); 120814e8a3c4SBeni Lev 120914e8a3c4SBeni Lev TRACE_EVENT(rdev_assoc, 121014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 121164a87472SJohannes Berg struct cfg80211_assoc_request *req, 121264a87472SJohannes Berg const struct cfg80211_bss_ies *bss_ies), 121364a87472SJohannes Berg TP_ARGS(wiphy, netdev, req, bss_ies), 121414e8a3c4SBeni Lev TP_STRUCT__entry( 121514e8a3c4SBeni Lev WIPHY_ENTRY 121614e8a3c4SBeni Lev NETDEV_ENTRY 121714e8a3c4SBeni Lev MAC_ENTRY(bssid) 121814e8a3c4SBeni Lev MAC_ENTRY(prev_bssid) 121914e8a3c4SBeni Lev __field(bool, use_mfp) 122014e8a3c4SBeni Lev __field(u32, flags) 122164a87472SJohannes Berg __dynamic_array(u8, bss_elements, bss_ies->len) 122264a87472SJohannes Berg __field(bool, bss_elements_bcon) 122364a87472SJohannes Berg __field(u64, bss_elements_tsf) 122464a87472SJohannes Berg __dynamic_array(u8, elements, req->ie_len) 122564a87472SJohannes Berg __array(u8, ht_capa, sizeof(struct ieee80211_ht_cap)) 122664a87472SJohannes Berg __array(u8, ht_capa_mask, sizeof(struct ieee80211_ht_cap)) 122764a87472SJohannes Berg __array(u8, vht_capa, sizeof(struct ieee80211_vht_cap)) 122864a87472SJohannes Berg __array(u8, vht_capa_mask, sizeof(struct ieee80211_vht_cap)) 122964a87472SJohannes Berg __dynamic_array(u8, fils_kek, req->fils_kek_len) 123064a87472SJohannes Berg __dynamic_array(u8, fils_nonces, 123164a87472SJohannes Berg req->fils_nonces ? 2 * FILS_NONCE_LEN : 0) 123214e8a3c4SBeni Lev ), 123314e8a3c4SBeni Lev TP_fast_assign( 123414e8a3c4SBeni Lev WIPHY_ASSIGN; 123514e8a3c4SBeni Lev NETDEV_ASSIGN; 123614e8a3c4SBeni Lev if (req->bss) 123714e8a3c4SBeni Lev MAC_ASSIGN(bssid, req->bss->bssid); 123814e8a3c4SBeni Lev else 1239d2beae10SJoe Perches eth_zero_addr(__entry->bssid); 124014e8a3c4SBeni Lev MAC_ASSIGN(prev_bssid, req->prev_bssid); 124114e8a3c4SBeni Lev __entry->use_mfp = req->use_mfp; 124214e8a3c4SBeni Lev __entry->flags = req->flags; 124364a87472SJohannes Berg if (bss_ies->len) 124464a87472SJohannes Berg memcpy(__get_dynamic_array(bss_elements), 124564a87472SJohannes Berg bss_ies->data, bss_ies->len); 124664a87472SJohannes Berg __entry->bss_elements_bcon = bss_ies->from_beacon; 124764a87472SJohannes Berg __entry->bss_elements_tsf = bss_ies->tsf; 124864a87472SJohannes Berg if (req->ie) 124964a87472SJohannes Berg memcpy(__get_dynamic_array(elements), 125064a87472SJohannes Berg req->ie, req->ie_len); 125164a87472SJohannes Berg memcpy(__entry->ht_capa, &req->ht_capa, sizeof(req->ht_capa)); 125264a87472SJohannes Berg memcpy(__entry->ht_capa_mask, &req->ht_capa_mask, 125364a87472SJohannes Berg sizeof(req->ht_capa_mask)); 125464a87472SJohannes Berg memcpy(__entry->vht_capa, &req->vht_capa, sizeof(req->vht_capa)); 125564a87472SJohannes Berg memcpy(__entry->vht_capa_mask, &req->vht_capa_mask, 125664a87472SJohannes Berg sizeof(req->vht_capa_mask)); 125764a87472SJohannes Berg if (req->fils_kek) 125864a87472SJohannes Berg memcpy(__get_dynamic_array(fils_kek), 125964a87472SJohannes Berg req->fils_kek, req->fils_kek_len); 126064a87472SJohannes Berg if (req->fils_nonces) 126164a87472SJohannes Berg memcpy(__get_dynamic_array(fils_nonces), 126264a87472SJohannes Berg req->fils_nonces, 2 * FILS_NONCE_LEN); 126314e8a3c4SBeni Lev ), 1264ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT 126514e8a3c4SBeni Lev ", previous bssid: " MAC_PR_FMT ", use mfp: %s, flags: %u", 126614e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), 126714e8a3c4SBeni Lev MAC_PR_ARG(prev_bssid), BOOL_TO_STR(__entry->use_mfp), 126814e8a3c4SBeni Lev __entry->flags) 126914e8a3c4SBeni Lev ); 127014e8a3c4SBeni Lev 127114e8a3c4SBeni Lev TRACE_EVENT(rdev_deauth, 127214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 127314e8a3c4SBeni Lev struct cfg80211_deauth_request *req), 127414e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, req), 127514e8a3c4SBeni Lev TP_STRUCT__entry( 127614e8a3c4SBeni Lev WIPHY_ENTRY 127714e8a3c4SBeni Lev NETDEV_ENTRY 127814e8a3c4SBeni Lev MAC_ENTRY(bssid) 127914e8a3c4SBeni Lev __field(u16, reason_code) 128014e8a3c4SBeni Lev ), 128114e8a3c4SBeni Lev TP_fast_assign( 128214e8a3c4SBeni Lev WIPHY_ASSIGN; 128314e8a3c4SBeni Lev NETDEV_ASSIGN; 128414e8a3c4SBeni Lev MAC_ASSIGN(bssid, req->bssid); 128514e8a3c4SBeni Lev __entry->reason_code = req->reason_code; 128614e8a3c4SBeni Lev ), 1287ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT ", reason: %u", 128814e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), 128914e8a3c4SBeni Lev __entry->reason_code) 129014e8a3c4SBeni Lev ); 129114e8a3c4SBeni Lev 129214e8a3c4SBeni Lev TRACE_EVENT(rdev_disassoc, 129314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 129414e8a3c4SBeni Lev struct cfg80211_disassoc_request *req), 129514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, req), 129614e8a3c4SBeni Lev TP_STRUCT__entry( 129714e8a3c4SBeni Lev WIPHY_ENTRY 129814e8a3c4SBeni Lev NETDEV_ENTRY 129914e8a3c4SBeni Lev MAC_ENTRY(bssid) 130014e8a3c4SBeni Lev __field(u16, reason_code) 130114e8a3c4SBeni Lev __field(bool, local_state_change) 130214e8a3c4SBeni Lev ), 130314e8a3c4SBeni Lev TP_fast_assign( 130414e8a3c4SBeni Lev WIPHY_ASSIGN; 130514e8a3c4SBeni Lev NETDEV_ASSIGN; 130614e8a3c4SBeni Lev if (req->bss) 130714e8a3c4SBeni Lev MAC_ASSIGN(bssid, req->bss->bssid); 130814e8a3c4SBeni Lev else 1309d2beae10SJoe Perches eth_zero_addr(__entry->bssid); 131014e8a3c4SBeni Lev __entry->reason_code = req->reason_code; 131114e8a3c4SBeni Lev __entry->local_state_change = req->local_state_change; 131214e8a3c4SBeni Lev ), 1313ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT 131414e8a3c4SBeni Lev ", reason: %u, local state change: %s", 131514e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), 131614e8a3c4SBeni Lev __entry->reason_code, 131714e8a3c4SBeni Lev BOOL_TO_STR(__entry->local_state_change)) 131814e8a3c4SBeni Lev ); 131914e8a3c4SBeni Lev 132014e8a3c4SBeni Lev TRACE_EVENT(rdev_mgmt_tx_cancel_wait, 132114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, 132214e8a3c4SBeni Lev struct wireless_dev *wdev, u64 cookie), 132314e8a3c4SBeni Lev TP_ARGS(wiphy, wdev, cookie), 132414e8a3c4SBeni Lev TP_STRUCT__entry( 132514e8a3c4SBeni Lev WIPHY_ENTRY 132614e8a3c4SBeni Lev WDEV_ENTRY 132714e8a3c4SBeni Lev __field(u64, cookie) 132814e8a3c4SBeni Lev ), 132914e8a3c4SBeni Lev TP_fast_assign( 133014e8a3c4SBeni Lev WIPHY_ASSIGN; 133114e8a3c4SBeni Lev WDEV_ASSIGN; 133214e8a3c4SBeni Lev __entry->cookie = cookie; 133314e8a3c4SBeni Lev ), 1334ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie: %llu ", 133514e8a3c4SBeni Lev WIPHY_PR_ARG, WDEV_PR_ARG, __entry->cookie) 133614e8a3c4SBeni Lev ); 133714e8a3c4SBeni Lev 133814e8a3c4SBeni Lev TRACE_EVENT(rdev_set_power_mgmt, 133914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 134014e8a3c4SBeni Lev bool enabled, int timeout), 134114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, enabled, timeout), 134214e8a3c4SBeni Lev TP_STRUCT__entry( 134314e8a3c4SBeni Lev WIPHY_ENTRY 134414e8a3c4SBeni Lev NETDEV_ENTRY 134514e8a3c4SBeni Lev __field(bool, enabled) 134614e8a3c4SBeni Lev __field(int, timeout) 134714e8a3c4SBeni Lev ), 134814e8a3c4SBeni Lev TP_fast_assign( 134914e8a3c4SBeni Lev WIPHY_ASSIGN; 135014e8a3c4SBeni Lev NETDEV_ASSIGN; 135114e8a3c4SBeni Lev __entry->enabled = enabled; 135214e8a3c4SBeni Lev __entry->timeout = timeout; 135314e8a3c4SBeni Lev ), 1354ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %senabled, timeout: %d ", 135514e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, 135614e8a3c4SBeni Lev __entry->enabled ? "" : "not ", __entry->timeout) 135714e8a3c4SBeni Lev ); 135814e8a3c4SBeni Lev 135914e8a3c4SBeni Lev TRACE_EVENT(rdev_connect, 136014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 136114e8a3c4SBeni Lev struct cfg80211_connect_params *sme), 136214e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, sme), 136314e8a3c4SBeni Lev TP_STRUCT__entry( 136414e8a3c4SBeni Lev WIPHY_ENTRY 136514e8a3c4SBeni Lev NETDEV_ENTRY 136614e8a3c4SBeni Lev MAC_ENTRY(bssid) 136714e8a3c4SBeni Lev __array(char, ssid, IEEE80211_MAX_SSID_LEN + 1) 136814e8a3c4SBeni Lev __field(enum nl80211_auth_type, auth_type) 136914e8a3c4SBeni Lev __field(bool, privacy) 137014e8a3c4SBeni Lev __field(u32, wpa_versions) 137114e8a3c4SBeni Lev __field(u32, flags) 1372ba6fbacfSJouni Malinen MAC_ENTRY(prev_bssid) 137314e8a3c4SBeni Lev ), 137414e8a3c4SBeni Lev TP_fast_assign( 137514e8a3c4SBeni Lev WIPHY_ASSIGN; 137614e8a3c4SBeni Lev NETDEV_ASSIGN; 137714e8a3c4SBeni Lev MAC_ASSIGN(bssid, sme->bssid); 137814e8a3c4SBeni Lev memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); 137914e8a3c4SBeni Lev memcpy(__entry->ssid, sme->ssid, sme->ssid_len); 138014e8a3c4SBeni Lev __entry->auth_type = sme->auth_type; 138114e8a3c4SBeni Lev __entry->privacy = sme->privacy; 138214e8a3c4SBeni Lev __entry->wpa_versions = sme->crypto.wpa_versions; 138314e8a3c4SBeni Lev __entry->flags = sme->flags; 1384ba6fbacfSJouni Malinen MAC_ASSIGN(prev_bssid, sme->prev_bssid); 138514e8a3c4SBeni Lev ), 1386ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT 138714e8a3c4SBeni Lev ", ssid: %s, auth type: %d, privacy: %s, wpa versions: %u, " 1388ba6fbacfSJouni Malinen "flags: %u, previous bssid: " MAC_PR_FMT, 138914e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), __entry->ssid, 139014e8a3c4SBeni Lev __entry->auth_type, BOOL_TO_STR(__entry->privacy), 1391ba6fbacfSJouni Malinen __entry->wpa_versions, __entry->flags, MAC_PR_ARG(prev_bssid)) 139214e8a3c4SBeni Lev ); 139314e8a3c4SBeni Lev 1394088e8df8Svamsi krishna TRACE_EVENT(rdev_update_connect_params, 1395088e8df8Svamsi krishna TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 1396088e8df8Svamsi krishna struct cfg80211_connect_params *sme, u32 changed), 1397088e8df8Svamsi krishna TP_ARGS(wiphy, netdev, sme, changed), 1398088e8df8Svamsi krishna TP_STRUCT__entry( 1399088e8df8Svamsi krishna WIPHY_ENTRY 1400088e8df8Svamsi krishna NETDEV_ENTRY 1401088e8df8Svamsi krishna __field(u32, changed) 1402088e8df8Svamsi krishna ), 1403088e8df8Svamsi krishna TP_fast_assign( 1404088e8df8Svamsi krishna WIPHY_ASSIGN; 1405088e8df8Svamsi krishna NETDEV_ASSIGN; 1406088e8df8Svamsi krishna __entry->changed = changed; 1407088e8df8Svamsi krishna ), 1408088e8df8Svamsi krishna TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", parameters changed: %u", 1409088e8df8Svamsi krishna WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->changed) 1410088e8df8Svamsi krishna ); 1411088e8df8Svamsi krishna 141214e8a3c4SBeni Lev TRACE_EVENT(rdev_set_cqm_rssi_config, 141314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, 141414e8a3c4SBeni Lev struct net_device *netdev, s32 rssi_thold, 141514e8a3c4SBeni Lev u32 rssi_hyst), 141614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, rssi_thold, rssi_hyst), 141714e8a3c4SBeni Lev TP_STRUCT__entry( 141814e8a3c4SBeni Lev WIPHY_ENTRY 141914e8a3c4SBeni Lev NETDEV_ENTRY 142014e8a3c4SBeni Lev __field(s32, rssi_thold) 142114e8a3c4SBeni Lev __field(u32, rssi_hyst) 142214e8a3c4SBeni Lev ), 142314e8a3c4SBeni Lev TP_fast_assign( 142414e8a3c4SBeni Lev WIPHY_ASSIGN; 142514e8a3c4SBeni Lev NETDEV_ASSIGN; 142614e8a3c4SBeni Lev __entry->rssi_thold = rssi_thold; 142714e8a3c4SBeni Lev __entry->rssi_hyst = rssi_hyst; 142814e8a3c4SBeni Lev ), 1429ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT 143014e8a3c4SBeni Lev ", rssi_thold: %d, rssi_hyst: %u ", 143114e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, 143214e8a3c4SBeni Lev __entry->rssi_thold, __entry->rssi_hyst) 143314e8a3c4SBeni Lev ); 143414e8a3c4SBeni Lev 14354a4b8169SAndrew Zaborowski TRACE_EVENT(rdev_set_cqm_rssi_range_config, 14364a4b8169SAndrew Zaborowski TP_PROTO(struct wiphy *wiphy, 14374a4b8169SAndrew Zaborowski struct net_device *netdev, s32 low, s32 high), 14384a4b8169SAndrew Zaborowski TP_ARGS(wiphy, netdev, low, high), 14394a4b8169SAndrew Zaborowski TP_STRUCT__entry( 14404a4b8169SAndrew Zaborowski WIPHY_ENTRY 14414a4b8169SAndrew Zaborowski NETDEV_ENTRY 14424a4b8169SAndrew Zaborowski __field(s32, rssi_low) 14434a4b8169SAndrew Zaborowski __field(s32, rssi_high) 14444a4b8169SAndrew Zaborowski ), 14454a4b8169SAndrew Zaborowski TP_fast_assign( 14464a4b8169SAndrew Zaborowski WIPHY_ASSIGN; 14474a4b8169SAndrew Zaborowski NETDEV_ASSIGN; 14484a4b8169SAndrew Zaborowski __entry->rssi_low = low; 14494a4b8169SAndrew Zaborowski __entry->rssi_high = high; 14504a4b8169SAndrew Zaborowski ), 14514a4b8169SAndrew Zaborowski TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT 14524a4b8169SAndrew Zaborowski ", range: %d - %d ", 14534a4b8169SAndrew Zaborowski WIPHY_PR_ARG, NETDEV_PR_ARG, 14544a4b8169SAndrew Zaborowski __entry->rssi_low, __entry->rssi_high) 14554a4b8169SAndrew Zaborowski ); 14564a4b8169SAndrew Zaborowski 145714e8a3c4SBeni Lev TRACE_EVENT(rdev_set_cqm_txe_config, 145814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u32 rate, 145914e8a3c4SBeni Lev u32 pkts, u32 intvl), 146014e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, rate, pkts, intvl), 146114e8a3c4SBeni Lev TP_STRUCT__entry( 146214e8a3c4SBeni Lev WIPHY_ENTRY 146314e8a3c4SBeni Lev NETDEV_ENTRY 146414e8a3c4SBeni Lev __field(u32, rate) 146514e8a3c4SBeni Lev __field(u32, pkts) 146614e8a3c4SBeni Lev __field(u32, intvl) 146714e8a3c4SBeni Lev ), 146814e8a3c4SBeni Lev TP_fast_assign( 146914e8a3c4SBeni Lev WIPHY_ASSIGN; 147014e8a3c4SBeni Lev NETDEV_ASSIGN; 147114e8a3c4SBeni Lev __entry->rate = rate; 147214e8a3c4SBeni Lev __entry->pkts = pkts; 147314e8a3c4SBeni Lev __entry->intvl = intvl; 147414e8a3c4SBeni Lev ), 1475ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", rate: %u, packets: %u, interval: %u", 147614e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->rate, __entry->pkts, 147714e8a3c4SBeni Lev __entry->intvl) 147814e8a3c4SBeni Lev ); 147914e8a3c4SBeni Lev 148014e8a3c4SBeni Lev TRACE_EVENT(rdev_disconnect, 148114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 148214e8a3c4SBeni Lev u16 reason_code), 148314e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, reason_code), 148414e8a3c4SBeni Lev TP_STRUCT__entry( 148514e8a3c4SBeni Lev WIPHY_ENTRY 148614e8a3c4SBeni Lev NETDEV_ENTRY 148714e8a3c4SBeni Lev __field(u16, reason_code) 148814e8a3c4SBeni Lev ), 148914e8a3c4SBeni Lev TP_fast_assign( 149014e8a3c4SBeni Lev WIPHY_ASSIGN; 149114e8a3c4SBeni Lev NETDEV_ASSIGN; 149214e8a3c4SBeni Lev __entry->reason_code = reason_code; 149314e8a3c4SBeni Lev ), 1494ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", reason code: %u", WIPHY_PR_ARG, 149514e8a3c4SBeni Lev NETDEV_PR_ARG, __entry->reason_code) 149614e8a3c4SBeni Lev ); 149714e8a3c4SBeni Lev 149814e8a3c4SBeni Lev TRACE_EVENT(rdev_join_ibss, 149914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 150014e8a3c4SBeni Lev struct cfg80211_ibss_params *params), 150114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, params), 150214e8a3c4SBeni Lev TP_STRUCT__entry( 150314e8a3c4SBeni Lev WIPHY_ENTRY 150414e8a3c4SBeni Lev NETDEV_ENTRY 150514e8a3c4SBeni Lev MAC_ENTRY(bssid) 150614e8a3c4SBeni Lev __array(char, ssid, IEEE80211_MAX_SSID_LEN + 1) 150714e8a3c4SBeni Lev ), 150814e8a3c4SBeni Lev TP_fast_assign( 150914e8a3c4SBeni Lev WIPHY_ASSIGN; 151014e8a3c4SBeni Lev NETDEV_ASSIGN; 151114e8a3c4SBeni Lev MAC_ASSIGN(bssid, params->bssid); 151214e8a3c4SBeni Lev memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); 151314e8a3c4SBeni Lev memcpy(__entry->ssid, params->ssid, params->ssid_len); 151414e8a3c4SBeni Lev ), 1515ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT ", ssid: %s", 151614e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), __entry->ssid) 151714e8a3c4SBeni Lev ); 151814e8a3c4SBeni Lev 15196e0bd6c3SRostislav Lisovy TRACE_EVENT(rdev_join_ocb, 15206e0bd6c3SRostislav Lisovy TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 15216e0bd6c3SRostislav Lisovy const struct ocb_setup *setup), 15226e0bd6c3SRostislav Lisovy TP_ARGS(wiphy, netdev, setup), 15236e0bd6c3SRostislav Lisovy TP_STRUCT__entry( 15246e0bd6c3SRostislav Lisovy WIPHY_ENTRY 15256e0bd6c3SRostislav Lisovy NETDEV_ENTRY 15266e0bd6c3SRostislav Lisovy ), 15276e0bd6c3SRostislav Lisovy TP_fast_assign( 15286e0bd6c3SRostislav Lisovy WIPHY_ASSIGN; 15296e0bd6c3SRostislav Lisovy NETDEV_ASSIGN; 15306e0bd6c3SRostislav Lisovy ), 15316e0bd6c3SRostislav Lisovy TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, 15326e0bd6c3SRostislav Lisovy WIPHY_PR_ARG, NETDEV_PR_ARG) 15336e0bd6c3SRostislav Lisovy ); 15346e0bd6c3SRostislav Lisovy 153514e8a3c4SBeni Lev TRACE_EVENT(rdev_set_wiphy_params, 153614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 changed), 153714e8a3c4SBeni Lev TP_ARGS(wiphy, changed), 153814e8a3c4SBeni Lev TP_STRUCT__entry( 153914e8a3c4SBeni Lev WIPHY_ENTRY 154014e8a3c4SBeni Lev __field(u32, changed) 154114e8a3c4SBeni Lev ), 154214e8a3c4SBeni Lev TP_fast_assign( 154314e8a3c4SBeni Lev WIPHY_ASSIGN; 154414e8a3c4SBeni Lev __entry->changed = changed; 154514e8a3c4SBeni Lev ), 154614e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", changed: %u", 154714e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->changed) 154814e8a3c4SBeni Lev ); 154914e8a3c4SBeni Lev 1550c8442118SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_get_tx_power, 1551c8442118SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 1552c8442118SJohannes Berg TP_ARGS(wiphy, wdev) 1553c8442118SJohannes Berg ); 1554c8442118SJohannes Berg 155514e8a3c4SBeni Lev TRACE_EVENT(rdev_set_tx_power, 1556c8442118SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 1557c8442118SJohannes Berg enum nl80211_tx_power_setting type, int mbm), 1558c8442118SJohannes Berg TP_ARGS(wiphy, wdev, type, mbm), 155914e8a3c4SBeni Lev TP_STRUCT__entry( 156014e8a3c4SBeni Lev WIPHY_ENTRY 1561c8442118SJohannes Berg WDEV_ENTRY 156214e8a3c4SBeni Lev __field(enum nl80211_tx_power_setting, type) 156314e8a3c4SBeni Lev __field(int, mbm) 156414e8a3c4SBeni Lev ), 156514e8a3c4SBeni Lev TP_fast_assign( 156614e8a3c4SBeni Lev WIPHY_ASSIGN; 1567c8442118SJohannes Berg WDEV_ASSIGN; 156814e8a3c4SBeni Lev __entry->type = type; 156914e8a3c4SBeni Lev __entry->mbm = mbm; 157014e8a3c4SBeni Lev ), 1571ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", type: %u, mbm: %d", 1572c8442118SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG,__entry->type, __entry->mbm) 157314e8a3c4SBeni Lev ); 157414e8a3c4SBeni Lev 157514e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_int, 157614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int func_ret, int func_fill), 157714e8a3c4SBeni Lev TP_ARGS(wiphy, func_ret, func_fill), 157814e8a3c4SBeni Lev TP_STRUCT__entry( 157914e8a3c4SBeni Lev WIPHY_ENTRY 158014e8a3c4SBeni Lev __field(int, func_ret) 158114e8a3c4SBeni Lev __field(int, func_fill) 158214e8a3c4SBeni Lev ), 158314e8a3c4SBeni Lev TP_fast_assign( 158414e8a3c4SBeni Lev WIPHY_ASSIGN; 158514e8a3c4SBeni Lev __entry->func_ret = func_ret; 158614e8a3c4SBeni Lev __entry->func_fill = func_fill; 158714e8a3c4SBeni Lev ), 158814e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", function returns: %d, function filled: %d", 158914e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->func_ret, __entry->func_fill) 159014e8a3c4SBeni Lev ); 159114e8a3c4SBeni Lev 159214e8a3c4SBeni Lev #ifdef CONFIG_NL80211_TESTMODE 159314e8a3c4SBeni Lev TRACE_EVENT(rdev_testmode_cmd, 1594fc73f11fSDavid Spinadel TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 1595fc73f11fSDavid Spinadel TP_ARGS(wiphy, wdev), 159614e8a3c4SBeni Lev TP_STRUCT__entry( 159714e8a3c4SBeni Lev WIPHY_ENTRY 1598fc73f11fSDavid Spinadel WDEV_ENTRY 159914e8a3c4SBeni Lev ), 160014e8a3c4SBeni Lev TP_fast_assign( 160114e8a3c4SBeni Lev WIPHY_ASSIGN; 1602fc73f11fSDavid Spinadel WDEV_ASSIGN; 160314e8a3c4SBeni Lev ), 1604fc73f11fSDavid Spinadel TP_printk(WIPHY_PR_FMT WDEV_PR_FMT, WIPHY_PR_ARG, WDEV_PR_ARG) 160514e8a3c4SBeni Lev ); 160614e8a3c4SBeni Lev 160714e8a3c4SBeni Lev TRACE_EVENT(rdev_testmode_dump, 160814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 160914e8a3c4SBeni Lev TP_ARGS(wiphy), 161014e8a3c4SBeni Lev TP_STRUCT__entry( 161114e8a3c4SBeni Lev WIPHY_ENTRY 161214e8a3c4SBeni Lev ), 161314e8a3c4SBeni Lev TP_fast_assign( 161414e8a3c4SBeni Lev WIPHY_ASSIGN; 161514e8a3c4SBeni Lev ), 161614e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT, WIPHY_PR_ARG) 161714e8a3c4SBeni Lev ); 161814e8a3c4SBeni Lev #endif /* CONFIG_NL80211_TESTMODE */ 161914e8a3c4SBeni Lev 162014e8a3c4SBeni Lev TRACE_EVENT(rdev_set_bitrate_mask, 162114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 162214e8a3c4SBeni Lev const u8 *peer, const struct cfg80211_bitrate_mask *mask), 162314e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, peer, mask), 162414e8a3c4SBeni Lev TP_STRUCT__entry( 162514e8a3c4SBeni Lev WIPHY_ENTRY 162614e8a3c4SBeni Lev NETDEV_ENTRY 162714e8a3c4SBeni Lev MAC_ENTRY(peer) 162814e8a3c4SBeni Lev ), 162914e8a3c4SBeni Lev TP_fast_assign( 163014e8a3c4SBeni Lev WIPHY_ASSIGN; 163114e8a3c4SBeni Lev NETDEV_ASSIGN; 163214e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 163314e8a3c4SBeni Lev ), 1634ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT, 163514e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer)) 163614e8a3c4SBeni Lev ); 163714e8a3c4SBeni Lev 16386cd536feSJohannes Berg TRACE_EVENT(rdev_update_mgmt_frame_registrations, 163914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 16406cd536feSJohannes Berg struct mgmt_frame_regs *upd), 16416cd536feSJohannes Berg TP_ARGS(wiphy, wdev, upd), 164214e8a3c4SBeni Lev TP_STRUCT__entry( 164314e8a3c4SBeni Lev WIPHY_ENTRY 164414e8a3c4SBeni Lev WDEV_ENTRY 16456cd536feSJohannes Berg __field(u16, global_stypes) 16466cd536feSJohannes Berg __field(u16, interface_stypes) 164714e8a3c4SBeni Lev ), 164814e8a3c4SBeni Lev TP_fast_assign( 164914e8a3c4SBeni Lev WIPHY_ASSIGN; 165014e8a3c4SBeni Lev WDEV_ASSIGN; 16516cd536feSJohannes Berg __entry->global_stypes = upd->global_stypes; 16526cd536feSJohannes Berg __entry->interface_stypes = upd->interface_stypes; 165314e8a3c4SBeni Lev ), 16546cd536feSJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", global: 0x%.2x, intf: 0x%.2x", 16556cd536feSJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, 16566cd536feSJohannes Berg __entry->global_stypes, __entry->interface_stypes) 165714e8a3c4SBeni Lev ); 165814e8a3c4SBeni Lev 165914e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_tx_rx, 166014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, u32 tx, u32 rx), 166114e8a3c4SBeni Lev TP_ARGS(wiphy, ret, tx, rx), 166214e8a3c4SBeni Lev TP_STRUCT__entry( 166314e8a3c4SBeni Lev WIPHY_ENTRY 166414e8a3c4SBeni Lev __field(int, ret) 166514e8a3c4SBeni Lev __field(u32, tx) 166614e8a3c4SBeni Lev __field(u32, rx) 166714e8a3c4SBeni Lev ), 166814e8a3c4SBeni Lev TP_fast_assign( 166914e8a3c4SBeni Lev WIPHY_ASSIGN; 167014e8a3c4SBeni Lev __entry->ret = ret; 167114e8a3c4SBeni Lev __entry->tx = tx; 167214e8a3c4SBeni Lev __entry->rx = rx; 167314e8a3c4SBeni Lev ), 167414e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned %d, tx: %u, rx: %u", 167514e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, __entry->tx, __entry->rx) 167614e8a3c4SBeni Lev ); 167714e8a3c4SBeni Lev 167814e8a3c4SBeni Lev TRACE_EVENT(rdev_return_void_tx_rx, 167914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 tx, u32 tx_max, 168014e8a3c4SBeni Lev u32 rx, u32 rx_max), 168114e8a3c4SBeni Lev TP_ARGS(wiphy, tx, tx_max, rx, rx_max), 168214e8a3c4SBeni Lev TP_STRUCT__entry( 168314e8a3c4SBeni Lev WIPHY_ENTRY 168414e8a3c4SBeni Lev __field(u32, tx) 168514e8a3c4SBeni Lev __field(u32, tx_max) 168614e8a3c4SBeni Lev __field(u32, rx) 168714e8a3c4SBeni Lev __field(u32, rx_max) 168814e8a3c4SBeni Lev ), 168914e8a3c4SBeni Lev TP_fast_assign( 169014e8a3c4SBeni Lev WIPHY_ASSIGN; 169114e8a3c4SBeni Lev __entry->tx = tx; 169214e8a3c4SBeni Lev __entry->tx_max = tx_max; 169314e8a3c4SBeni Lev __entry->rx = rx; 169414e8a3c4SBeni Lev __entry->rx_max = rx_max; 169514e8a3c4SBeni Lev ), 169614e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", tx: %u, tx_max: %u, rx: %u, rx_max: %u ", 169714e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->tx, __entry->tx_max, __entry->rx, 169814e8a3c4SBeni Lev __entry->rx_max) 169914e8a3c4SBeni Lev ); 170014e8a3c4SBeni Lev 170114e8a3c4SBeni Lev DECLARE_EVENT_CLASS(tx_rx_evt, 170214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 tx, u32 rx), 170314e8a3c4SBeni Lev TP_ARGS(wiphy, rx, tx), 170414e8a3c4SBeni Lev TP_STRUCT__entry( 170514e8a3c4SBeni Lev WIPHY_ENTRY 170614e8a3c4SBeni Lev __field(u32, tx) 170714e8a3c4SBeni Lev __field(u32, rx) 170814e8a3c4SBeni Lev ), 170914e8a3c4SBeni Lev TP_fast_assign( 171014e8a3c4SBeni Lev WIPHY_ASSIGN; 171114e8a3c4SBeni Lev __entry->tx = tx; 171214e8a3c4SBeni Lev __entry->rx = rx; 171314e8a3c4SBeni Lev ), 171414e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", tx: %u, rx: %u ", 171514e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->tx, __entry->rx) 171614e8a3c4SBeni Lev ); 171714e8a3c4SBeni Lev 171814e8a3c4SBeni Lev DEFINE_EVENT(tx_rx_evt, rdev_set_antenna, 171914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 tx, u32 rx), 172014e8a3c4SBeni Lev TP_ARGS(wiphy, rx, tx) 172114e8a3c4SBeni Lev ); 172214e8a3c4SBeni Lev 1723ca986ad9SArend Van Spriel DECLARE_EVENT_CLASS(wiphy_netdev_id_evt, 1724ca986ad9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u64 id), 1725ca986ad9SArend Van Spriel TP_ARGS(wiphy, netdev, id), 172614e8a3c4SBeni Lev TP_STRUCT__entry( 172714e8a3c4SBeni Lev WIPHY_ENTRY 172814e8a3c4SBeni Lev NETDEV_ENTRY 1729ca986ad9SArend Van Spriel __field(u64, id) 173014e8a3c4SBeni Lev ), 173114e8a3c4SBeni Lev TP_fast_assign( 173214e8a3c4SBeni Lev WIPHY_ASSIGN; 173314e8a3c4SBeni Lev NETDEV_ASSIGN; 1734ca986ad9SArend Van Spriel __entry->id = id; 173514e8a3c4SBeni Lev ), 1736ca986ad9SArend Van Spriel TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", id: %llu", 1737ca986ad9SArend Van Spriel WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->id) 1738ca986ad9SArend Van Spriel ); 1739ca986ad9SArend Van Spriel 1740ca986ad9SArend Van Spriel DEFINE_EVENT(wiphy_netdev_id_evt, rdev_sched_scan_start, 1741ca986ad9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u64 id), 1742ca986ad9SArend Van Spriel TP_ARGS(wiphy, netdev, id) 174314e8a3c4SBeni Lev ); 174414e8a3c4SBeni Lev 17453a3ecf1dSArend Van Spriel DEFINE_EVENT(wiphy_netdev_id_evt, rdev_sched_scan_stop, 17463a3ecf1dSArend Van Spriel TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u64 id), 17473a3ecf1dSArend Van Spriel TP_ARGS(wiphy, netdev, id) 17483a3ecf1dSArend Van Spriel ); 17493a3ecf1dSArend Van Spriel 175014e8a3c4SBeni Lev TRACE_EVENT(rdev_tdls_mgmt, 175114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 175214e8a3c4SBeni Lev u8 *peer, u8 action_code, u8 dialog_token, 1753df942e7bSSunil Dutt Undekari u16 status_code, u32 peer_capability, 175431fa97c5SArik Nemtsov bool initiator, const u8 *buf, size_t len), 175514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, peer, action_code, dialog_token, status_code, 175631fa97c5SArik Nemtsov peer_capability, initiator, buf, len), 175714e8a3c4SBeni Lev TP_STRUCT__entry( 175814e8a3c4SBeni Lev WIPHY_ENTRY 175914e8a3c4SBeni Lev NETDEV_ENTRY 176014e8a3c4SBeni Lev MAC_ENTRY(peer) 176114e8a3c4SBeni Lev __field(u8, action_code) 176214e8a3c4SBeni Lev __field(u8, dialog_token) 176314e8a3c4SBeni Lev __field(u16, status_code) 1764df942e7bSSunil Dutt Undekari __field(u32, peer_capability) 176531fa97c5SArik Nemtsov __field(bool, initiator) 176614e8a3c4SBeni Lev __dynamic_array(u8, buf, len) 176714e8a3c4SBeni Lev ), 176814e8a3c4SBeni Lev TP_fast_assign( 176914e8a3c4SBeni Lev WIPHY_ASSIGN; 177014e8a3c4SBeni Lev NETDEV_ASSIGN; 177114e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 177214e8a3c4SBeni Lev __entry->action_code = action_code; 177314e8a3c4SBeni Lev __entry->dialog_token = dialog_token; 177414e8a3c4SBeni Lev __entry->status_code = status_code; 1775df942e7bSSunil Dutt Undekari __entry->peer_capability = peer_capability; 177631fa97c5SArik Nemtsov __entry->initiator = initiator; 177714e8a3c4SBeni Lev memcpy(__get_dynamic_array(buf), buf, len); 177814e8a3c4SBeni Lev ), 1779ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", action_code: %u, " 178031fa97c5SArik Nemtsov "dialog_token: %u, status_code: %u, peer_capability: %u " 178131fa97c5SArik Nemtsov "initiator: %s buf: %#.2x ", 178214e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), 178314e8a3c4SBeni Lev __entry->action_code, __entry->dialog_token, 1784df942e7bSSunil Dutt Undekari __entry->status_code, __entry->peer_capability, 178531fa97c5SArik Nemtsov BOOL_TO_STR(__entry->initiator), 1786df942e7bSSunil Dutt Undekari ((u8 *)__get_dynamic_array(buf))[0]) 178714e8a3c4SBeni Lev ); 178814e8a3c4SBeni Lev 178914e8a3c4SBeni Lev TRACE_EVENT(rdev_dump_survey, 1790aaaa10e0SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int _idx), 1791aaaa10e0SJohannes Berg TP_ARGS(wiphy, netdev, _idx), 179214e8a3c4SBeni Lev TP_STRUCT__entry( 179314e8a3c4SBeni Lev WIPHY_ENTRY 179414e8a3c4SBeni Lev NETDEV_ENTRY 179514e8a3c4SBeni Lev __field(int, idx) 179614e8a3c4SBeni Lev ), 179714e8a3c4SBeni Lev TP_fast_assign( 179814e8a3c4SBeni Lev WIPHY_ASSIGN; 179914e8a3c4SBeni Lev NETDEV_ASSIGN; 1800aaaa10e0SJohannes Berg __entry->idx = _idx; 180114e8a3c4SBeni Lev ), 1802ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d", 180314e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx) 180414e8a3c4SBeni Lev ); 180514e8a3c4SBeni Lev 180614e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_survey_info, 180714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, struct survey_info *info), 180814e8a3c4SBeni Lev TP_ARGS(wiphy, ret, info), 180914e8a3c4SBeni Lev TP_STRUCT__entry( 181014e8a3c4SBeni Lev WIPHY_ENTRY 181114e8a3c4SBeni Lev CHAN_ENTRY 181214e8a3c4SBeni Lev __field(int, ret) 18134ed20bebSJohannes Berg __field(u64, time) 18144ed20bebSJohannes Berg __field(u64, time_busy) 18154ed20bebSJohannes Berg __field(u64, time_ext_busy) 18164ed20bebSJohannes Berg __field(u64, time_rx) 18174ed20bebSJohannes Berg __field(u64, time_tx) 1818052536abSJohannes Berg __field(u64, time_scan) 181914e8a3c4SBeni Lev __field(u32, filled) 182014e8a3c4SBeni Lev __field(s8, noise) 182114e8a3c4SBeni Lev ), 182214e8a3c4SBeni Lev TP_fast_assign( 182314e8a3c4SBeni Lev WIPHY_ASSIGN; 182414e8a3c4SBeni Lev CHAN_ASSIGN(info->channel); 182514e8a3c4SBeni Lev __entry->ret = ret; 18264ed20bebSJohannes Berg __entry->time = info->time; 18274ed20bebSJohannes Berg __entry->time_busy = info->time_busy; 18284ed20bebSJohannes Berg __entry->time_ext_busy = info->time_ext_busy; 18294ed20bebSJohannes Berg __entry->time_rx = info->time_rx; 18304ed20bebSJohannes Berg __entry->time_tx = info->time_tx; 1831052536abSJohannes Berg __entry->time_scan = info->time_scan; 183214e8a3c4SBeni Lev __entry->filled = info->filled; 183314e8a3c4SBeni Lev __entry->noise = info->noise; 183414e8a3c4SBeni Lev ), 183514e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned: %d, " CHAN_PR_FMT 183614e8a3c4SBeni Lev ", channel time: %llu, channel time busy: %llu, " 183714e8a3c4SBeni Lev "channel time extension busy: %llu, channel time rx: %llu, " 1838052536abSJohannes Berg "channel time tx: %llu, scan time: %llu, filled: %u, noise: %d", 183914e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, CHAN_PR_ARG, 18404ed20bebSJohannes Berg __entry->time, __entry->time_busy, 18414ed20bebSJohannes Berg __entry->time_ext_busy, __entry->time_rx, 1842052536abSJohannes Berg __entry->time_tx, __entry->time_scan, 1843052536abSJohannes Berg __entry->filled, __entry->noise) 184414e8a3c4SBeni Lev ); 184514e8a3c4SBeni Lev 184614e8a3c4SBeni Lev TRACE_EVENT(rdev_tdls_oper, 184714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 184814e8a3c4SBeni Lev u8 *peer, enum nl80211_tdls_operation oper), 184914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, peer, oper), 185014e8a3c4SBeni Lev TP_STRUCT__entry( 185114e8a3c4SBeni Lev WIPHY_ENTRY 185214e8a3c4SBeni Lev NETDEV_ENTRY 185314e8a3c4SBeni Lev MAC_ENTRY(peer) 185414e8a3c4SBeni Lev __field(enum nl80211_tdls_operation, oper) 185514e8a3c4SBeni Lev ), 185614e8a3c4SBeni Lev TP_fast_assign( 185714e8a3c4SBeni Lev WIPHY_ASSIGN; 185814e8a3c4SBeni Lev NETDEV_ASSIGN; 185914e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 186014e8a3c4SBeni Lev __entry->oper = oper; 186114e8a3c4SBeni Lev ), 1862ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", oper: %d", 186314e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->oper) 186414e8a3c4SBeni Lev ); 186514e8a3c4SBeni Lev 186614e8a3c4SBeni Lev DECLARE_EVENT_CLASS(rdev_pmksa, 186714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 186814e8a3c4SBeni Lev struct cfg80211_pmksa *pmksa), 186914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, pmksa), 187014e8a3c4SBeni Lev TP_STRUCT__entry( 187114e8a3c4SBeni Lev WIPHY_ENTRY 187214e8a3c4SBeni Lev NETDEV_ENTRY 187314e8a3c4SBeni Lev MAC_ENTRY(bssid) 187414e8a3c4SBeni Lev ), 187514e8a3c4SBeni Lev TP_fast_assign( 187614e8a3c4SBeni Lev WIPHY_ASSIGN; 187714e8a3c4SBeni Lev NETDEV_ASSIGN; 187814e8a3c4SBeni Lev MAC_ASSIGN(bssid, pmksa->bssid); 187914e8a3c4SBeni Lev ), 1880ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT, 188114e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid)) 188214e8a3c4SBeni Lev ); 188314e8a3c4SBeni Lev 188414e8a3c4SBeni Lev TRACE_EVENT(rdev_probe_client, 188514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 188614e8a3c4SBeni Lev const u8 *peer), 188714e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, peer), 188814e8a3c4SBeni Lev TP_STRUCT__entry( 188914e8a3c4SBeni Lev WIPHY_ENTRY 189014e8a3c4SBeni Lev NETDEV_ENTRY 189114e8a3c4SBeni Lev MAC_ENTRY(peer) 189214e8a3c4SBeni Lev ), 189314e8a3c4SBeni Lev TP_fast_assign( 189414e8a3c4SBeni Lev WIPHY_ASSIGN; 189514e8a3c4SBeni Lev NETDEV_ASSIGN; 189614e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 189714e8a3c4SBeni Lev ), 1898ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT, 189914e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer)) 190014e8a3c4SBeni Lev ); 190114e8a3c4SBeni Lev 190214e8a3c4SBeni Lev DEFINE_EVENT(rdev_pmksa, rdev_set_pmksa, 190314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 190414e8a3c4SBeni Lev struct cfg80211_pmksa *pmksa), 190514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, pmksa) 190614e8a3c4SBeni Lev ); 190714e8a3c4SBeni Lev 190814e8a3c4SBeni Lev DEFINE_EVENT(rdev_pmksa, rdev_del_pmksa, 190914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 191014e8a3c4SBeni Lev struct cfg80211_pmksa *pmksa), 191114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, pmksa) 191214e8a3c4SBeni Lev ); 191314e8a3c4SBeni Lev 191414e8a3c4SBeni Lev TRACE_EVENT(rdev_remain_on_channel, 191514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 191614e8a3c4SBeni Lev struct ieee80211_channel *chan, 191742d97a59SJohannes Berg unsigned int duration), 191842d97a59SJohannes Berg TP_ARGS(wiphy, wdev, chan, duration), 191914e8a3c4SBeni Lev TP_STRUCT__entry( 192014e8a3c4SBeni Lev WIPHY_ENTRY 192114e8a3c4SBeni Lev WDEV_ENTRY 192214e8a3c4SBeni Lev CHAN_ENTRY 192314e8a3c4SBeni Lev __field(unsigned int, duration) 192414e8a3c4SBeni Lev ), 192514e8a3c4SBeni Lev TP_fast_assign( 192614e8a3c4SBeni Lev WIPHY_ASSIGN; 192714e8a3c4SBeni Lev WDEV_ASSIGN; 192814e8a3c4SBeni Lev CHAN_ASSIGN(chan); 192914e8a3c4SBeni Lev __entry->duration = duration; 193014e8a3c4SBeni Lev ), 1931ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", " CHAN_PR_FMT ", duration: %u", 193242d97a59SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, CHAN_PR_ARG, __entry->duration) 193314e8a3c4SBeni Lev ); 193414e8a3c4SBeni Lev 193514e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_cookie, 193614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, u64 cookie), 193714e8a3c4SBeni Lev TP_ARGS(wiphy, ret, cookie), 193814e8a3c4SBeni Lev TP_STRUCT__entry( 193914e8a3c4SBeni Lev WIPHY_ENTRY 194014e8a3c4SBeni Lev __field(int, ret) 194114e8a3c4SBeni Lev __field(u64, cookie) 194214e8a3c4SBeni Lev ), 194314e8a3c4SBeni Lev TP_fast_assign( 194414e8a3c4SBeni Lev WIPHY_ASSIGN; 194514e8a3c4SBeni Lev __entry->ret = ret; 194614e8a3c4SBeni Lev __entry->cookie = cookie; 194714e8a3c4SBeni Lev ), 194814e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned %d, cookie: %llu", 194914e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, __entry->cookie) 195014e8a3c4SBeni Lev ); 195114e8a3c4SBeni Lev 195214e8a3c4SBeni Lev TRACE_EVENT(rdev_cancel_remain_on_channel, 195314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 195414e8a3c4SBeni Lev TP_ARGS(wiphy, wdev, cookie), 195514e8a3c4SBeni Lev TP_STRUCT__entry( 195614e8a3c4SBeni Lev WIPHY_ENTRY 195714e8a3c4SBeni Lev WDEV_ENTRY 195814e8a3c4SBeni Lev __field(u64, cookie) 195914e8a3c4SBeni Lev ), 196014e8a3c4SBeni Lev TP_fast_assign( 196114e8a3c4SBeni Lev WIPHY_ASSIGN; 196214e8a3c4SBeni Lev WDEV_ASSIGN; 196314e8a3c4SBeni Lev __entry->cookie = cookie; 196414e8a3c4SBeni Lev ), 1965ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie: %llu", 196614e8a3c4SBeni Lev WIPHY_PR_ARG, WDEV_PR_ARG, __entry->cookie) 196714e8a3c4SBeni Lev ); 196814e8a3c4SBeni Lev 196914e8a3c4SBeni Lev TRACE_EVENT(rdev_mgmt_tx, 197014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 1971b176e629SAndrei Otcheretianski struct cfg80211_mgmt_tx_params *params), 1972b176e629SAndrei Otcheretianski TP_ARGS(wiphy, wdev, params), 197314e8a3c4SBeni Lev TP_STRUCT__entry( 197414e8a3c4SBeni Lev WIPHY_ENTRY 197514e8a3c4SBeni Lev WDEV_ENTRY 197614e8a3c4SBeni Lev CHAN_ENTRY 197714e8a3c4SBeni Lev __field(bool, offchan) 197814e8a3c4SBeni Lev __field(unsigned int, wait) 197914e8a3c4SBeni Lev __field(bool, no_cck) 198014e8a3c4SBeni Lev __field(bool, dont_wait_for_ack) 198114e8a3c4SBeni Lev ), 198214e8a3c4SBeni Lev TP_fast_assign( 198314e8a3c4SBeni Lev WIPHY_ASSIGN; 198414e8a3c4SBeni Lev WDEV_ASSIGN; 1985b176e629SAndrei Otcheretianski CHAN_ASSIGN(params->chan); 1986b176e629SAndrei Otcheretianski __entry->offchan = params->offchan; 1987b176e629SAndrei Otcheretianski __entry->wait = params->wait; 1988b176e629SAndrei Otcheretianski __entry->no_cck = params->no_cck; 1989b176e629SAndrei Otcheretianski __entry->dont_wait_for_ack = params->dont_wait_for_ack; 199014e8a3c4SBeni Lev ), 1991ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", " CHAN_PR_FMT ", offchan: %s," 199242d97a59SJohannes Berg " wait: %u, no cck: %s, dont wait for ack: %s", 199314e8a3c4SBeni Lev WIPHY_PR_ARG, WDEV_PR_ARG, CHAN_PR_ARG, 199442d97a59SJohannes Berg BOOL_TO_STR(__entry->offchan), __entry->wait, 199514e8a3c4SBeni Lev BOOL_TO_STR(__entry->no_cck), 199614e8a3c4SBeni Lev BOOL_TO_STR(__entry->dont_wait_for_ack)) 199714e8a3c4SBeni Lev ); 199814e8a3c4SBeni Lev 19992576a9acSDenis Kenzior TRACE_EVENT(rdev_tx_control_port, 20002576a9acSDenis Kenzior TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 20018d74a623SJohannes Berg const u8 *buf, size_t len, const u8 *dest, __be16 proto, 20022576a9acSDenis Kenzior bool unencrypted), 20038d74a623SJohannes Berg TP_ARGS(wiphy, netdev, buf, len, dest, proto, unencrypted), 20042576a9acSDenis Kenzior TP_STRUCT__entry( 20052576a9acSDenis Kenzior WIPHY_ENTRY 20062576a9acSDenis Kenzior NETDEV_ENTRY 20072576a9acSDenis Kenzior MAC_ENTRY(dest) 20088d74a623SJohannes Berg __field(__be16, proto) 20092576a9acSDenis Kenzior __field(bool, unencrypted) 20102576a9acSDenis Kenzior ), 20112576a9acSDenis Kenzior TP_fast_assign( 20122576a9acSDenis Kenzior WIPHY_ASSIGN; 20132576a9acSDenis Kenzior NETDEV_ASSIGN; 20142576a9acSDenis Kenzior MAC_ASSIGN(dest, dest); 20158d74a623SJohannes Berg __entry->proto = proto; 20162576a9acSDenis Kenzior __entry->unencrypted = unencrypted; 20172576a9acSDenis Kenzior ), 20188d74a623SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT "," 20198d74a623SJohannes Berg " proto: 0x%x, unencrypted: %s", 20208d74a623SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(dest), 20218d74a623SJohannes Berg be16_to_cpu(__entry->proto), 20222576a9acSDenis Kenzior BOOL_TO_STR(__entry->unencrypted)) 20232576a9acSDenis Kenzior ); 20242576a9acSDenis Kenzior 202514e8a3c4SBeni Lev TRACE_EVENT(rdev_set_noack_map, 202614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 202714e8a3c4SBeni Lev u16 noack_map), 202814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, noack_map), 202914e8a3c4SBeni Lev TP_STRUCT__entry( 203014e8a3c4SBeni Lev WIPHY_ENTRY 203114e8a3c4SBeni Lev NETDEV_ENTRY 203214e8a3c4SBeni Lev __field(u16, noack_map) 203314e8a3c4SBeni Lev ), 203414e8a3c4SBeni Lev TP_fast_assign( 203514e8a3c4SBeni Lev WIPHY_ASSIGN; 203614e8a3c4SBeni Lev NETDEV_ASSIGN; 203714e8a3c4SBeni Lev __entry->noack_map = noack_map; 203814e8a3c4SBeni Lev ), 2039ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", noack_map: %u", 204014e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->noack_map) 204114e8a3c4SBeni Lev ); 204214e8a3c4SBeni Lev 204314e8a3c4SBeni Lev DEFINE_EVENT(wiphy_wdev_evt, rdev_get_channel, 204414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 204514e8a3c4SBeni Lev TP_ARGS(wiphy, wdev) 204614e8a3c4SBeni Lev ); 204714e8a3c4SBeni Lev 2048683b6d3bSJohannes Berg TRACE_EVENT(rdev_return_chandef, 2049683b6d3bSJohannes Berg TP_PROTO(struct wiphy *wiphy, int ret, 2050683b6d3bSJohannes Berg struct cfg80211_chan_def *chandef), 2051683b6d3bSJohannes Berg TP_ARGS(wiphy, ret, chandef), 205214e8a3c4SBeni Lev TP_STRUCT__entry( 205314e8a3c4SBeni Lev WIPHY_ENTRY 2054683b6d3bSJohannes Berg __field(int, ret) 2055683b6d3bSJohannes Berg CHAN_DEF_ENTRY 205614e8a3c4SBeni Lev ), 205714e8a3c4SBeni Lev TP_fast_assign( 205814e8a3c4SBeni Lev WIPHY_ASSIGN; 2059683b6d3bSJohannes Berg if (ret == 0) 2060683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 2061683b6d3bSJohannes Berg else 2062683b6d3bSJohannes Berg CHAN_DEF_ASSIGN((struct cfg80211_chan_def *)NULL); 2063683b6d3bSJohannes Berg __entry->ret = ret; 206414e8a3c4SBeni Lev ), 2065ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", ret: %d", 2066683b6d3bSJohannes Berg WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->ret) 206714e8a3c4SBeni Lev ); 206814e8a3c4SBeni Lev 2069eeb126e9SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_start_p2p_device, 2070eeb126e9SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 2071eeb126e9SJohannes Berg TP_ARGS(wiphy, wdev) 2072eeb126e9SJohannes Berg ); 2073eeb126e9SJohannes Berg 2074eeb126e9SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_stop_p2p_device, 2075eeb126e9SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 2076eeb126e9SJohannes Berg TP_ARGS(wiphy, wdev) 2077eeb126e9SJohannes Berg ); 2078eeb126e9SJohannes Berg 2079cb3b7d87SAyala Beker TRACE_EVENT(rdev_start_nan, 2080cb3b7d87SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2081cb3b7d87SAyala Beker struct cfg80211_nan_conf *conf), 2082cb3b7d87SAyala Beker TP_ARGS(wiphy, wdev, conf), 2083cb3b7d87SAyala Beker TP_STRUCT__entry( 2084cb3b7d87SAyala Beker WIPHY_ENTRY 2085cb3b7d87SAyala Beker WDEV_ENTRY 2086cb3b7d87SAyala Beker __field(u8, master_pref) 208704ae87a5SPeter Zijlstra __field(u8, bands) 2088cb3b7d87SAyala Beker ), 2089cb3b7d87SAyala Beker TP_fast_assign( 2090cb3b7d87SAyala Beker WIPHY_ASSIGN; 2091cb3b7d87SAyala Beker WDEV_ASSIGN; 2092cb3b7d87SAyala Beker __entry->master_pref = conf->master_pref; 20938585989dSLuca Coelho __entry->bands = conf->bands; 2094cb3b7d87SAyala Beker ), 2095cb3b7d87SAyala Beker TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT 20968585989dSLuca Coelho ", master preference: %u, bands: 0x%0x", 2097cb3b7d87SAyala Beker WIPHY_PR_ARG, WDEV_PR_ARG, __entry->master_pref, 20988585989dSLuca Coelho __entry->bands) 2099cb3b7d87SAyala Beker ); 2100cb3b7d87SAyala Beker 2101a5a9dcf2SAyala Beker TRACE_EVENT(rdev_nan_change_conf, 2102a5a9dcf2SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2103a5a9dcf2SAyala Beker struct cfg80211_nan_conf *conf, u32 changes), 2104a5a9dcf2SAyala Beker TP_ARGS(wiphy, wdev, conf, changes), 2105a5a9dcf2SAyala Beker TP_STRUCT__entry( 2106a5a9dcf2SAyala Beker WIPHY_ENTRY 2107a5a9dcf2SAyala Beker WDEV_ENTRY 2108a5a9dcf2SAyala Beker __field(u8, master_pref) 210904ae87a5SPeter Zijlstra __field(u8, bands) 211004ae87a5SPeter Zijlstra __field(u32, changes) 2111a5a9dcf2SAyala Beker ), 2112a5a9dcf2SAyala Beker TP_fast_assign( 2113a5a9dcf2SAyala Beker WIPHY_ASSIGN; 2114a5a9dcf2SAyala Beker WDEV_ASSIGN; 2115a5a9dcf2SAyala Beker __entry->master_pref = conf->master_pref; 21168585989dSLuca Coelho __entry->bands = conf->bands; 2117a5a9dcf2SAyala Beker __entry->changes = changes; 2118a5a9dcf2SAyala Beker ), 2119a5a9dcf2SAyala Beker TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT 21208585989dSLuca Coelho ", master preference: %u, bands: 0x%0x, changes: %x", 2121a5a9dcf2SAyala Beker WIPHY_PR_ARG, WDEV_PR_ARG, __entry->master_pref, 21228585989dSLuca Coelho __entry->bands, __entry->changes) 2123a5a9dcf2SAyala Beker ); 2124a5a9dcf2SAyala Beker 2125cb3b7d87SAyala Beker DEFINE_EVENT(wiphy_wdev_evt, rdev_stop_nan, 2126cb3b7d87SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 2127cb3b7d87SAyala Beker TP_ARGS(wiphy, wdev) 2128cb3b7d87SAyala Beker ); 2129cb3b7d87SAyala Beker 2130a442b761SAyala Beker TRACE_EVENT(rdev_add_nan_func, 2131a442b761SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2132a442b761SAyala Beker const struct cfg80211_nan_func *func), 2133a442b761SAyala Beker TP_ARGS(wiphy, wdev, func), 2134a442b761SAyala Beker TP_STRUCT__entry( 2135a442b761SAyala Beker WIPHY_ENTRY 2136a442b761SAyala Beker WDEV_ENTRY 2137a442b761SAyala Beker __field(u8, func_type) 2138a442b761SAyala Beker __field(u64, cookie) 2139a442b761SAyala Beker ), 2140a442b761SAyala Beker TP_fast_assign( 2141a442b761SAyala Beker WIPHY_ASSIGN; 2142a442b761SAyala Beker WDEV_ASSIGN; 2143a442b761SAyala Beker __entry->func_type = func->type; 2144a442b761SAyala Beker __entry->cookie = func->cookie 2145a442b761SAyala Beker ), 2146a442b761SAyala Beker TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", type=%u, cookie=%llu", 2147a442b761SAyala Beker WIPHY_PR_ARG, WDEV_PR_ARG, __entry->func_type, 2148a442b761SAyala Beker __entry->cookie) 2149a442b761SAyala Beker ); 2150a442b761SAyala Beker 2151a442b761SAyala Beker TRACE_EVENT(rdev_del_nan_func, 2152a442b761SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2153a442b761SAyala Beker u64 cookie), 2154a442b761SAyala Beker TP_ARGS(wiphy, wdev, cookie), 2155a442b761SAyala Beker TP_STRUCT__entry( 2156a442b761SAyala Beker WIPHY_ENTRY 2157a442b761SAyala Beker WDEV_ENTRY 2158a442b761SAyala Beker __field(u64, cookie) 2159a442b761SAyala Beker ), 2160a442b761SAyala Beker TP_fast_assign( 2161a442b761SAyala Beker WIPHY_ASSIGN; 2162a442b761SAyala Beker WDEV_ASSIGN; 2163a442b761SAyala Beker __entry->cookie = cookie; 2164a442b761SAyala Beker ), 2165a442b761SAyala Beker TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie=%llu", 2166a442b761SAyala Beker WIPHY_PR_ARG, WDEV_PR_ARG, __entry->cookie) 2167a442b761SAyala Beker ); 2168a442b761SAyala Beker 216977765eafSVasanthakumar Thiagarajan TRACE_EVENT(rdev_set_mac_acl, 217077765eafSVasanthakumar Thiagarajan TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 217177765eafSVasanthakumar Thiagarajan struct cfg80211_acl_data *params), 217277765eafSVasanthakumar Thiagarajan TP_ARGS(wiphy, netdev, params), 217377765eafSVasanthakumar Thiagarajan TP_STRUCT__entry( 217477765eafSVasanthakumar Thiagarajan WIPHY_ENTRY 217577765eafSVasanthakumar Thiagarajan NETDEV_ENTRY 217677765eafSVasanthakumar Thiagarajan __field(u32, acl_policy) 217777765eafSVasanthakumar Thiagarajan ), 217877765eafSVasanthakumar Thiagarajan TP_fast_assign( 217977765eafSVasanthakumar Thiagarajan WIPHY_ASSIGN; 2180021fcdc1SVladimir Kondratiev NETDEV_ASSIGN; 218177765eafSVasanthakumar Thiagarajan __entry->acl_policy = params->acl_policy; 218277765eafSVasanthakumar Thiagarajan ), 218377765eafSVasanthakumar Thiagarajan TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", acl policy: %d", 218477765eafSVasanthakumar Thiagarajan WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->acl_policy) 218577765eafSVasanthakumar Thiagarajan ); 218677765eafSVasanthakumar Thiagarajan 2187355199e0SJouni Malinen TRACE_EVENT(rdev_update_ft_ies, 2188355199e0SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2189355199e0SJouni Malinen struct cfg80211_update_ft_ies_params *ftie), 2190355199e0SJouni Malinen TP_ARGS(wiphy, netdev, ftie), 2191355199e0SJouni Malinen TP_STRUCT__entry( 2192355199e0SJouni Malinen WIPHY_ENTRY 2193355199e0SJouni Malinen NETDEV_ENTRY 2194355199e0SJouni Malinen __field(u16, md) 2195355199e0SJouni Malinen __dynamic_array(u8, ie, ftie->ie_len) 2196355199e0SJouni Malinen ), 2197355199e0SJouni Malinen TP_fast_assign( 2198355199e0SJouni Malinen WIPHY_ASSIGN; 2199355199e0SJouni Malinen NETDEV_ASSIGN; 2200355199e0SJouni Malinen __entry->md = ftie->md; 2201355199e0SJouni Malinen memcpy(__get_dynamic_array(ie), ftie->ie, ftie->ie_len); 2202355199e0SJouni Malinen ), 2203355199e0SJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", md: 0x%x", 2204355199e0SJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->md) 2205355199e0SJouni Malinen ); 2206355199e0SJouni Malinen 22075de17984SArend van Spriel TRACE_EVENT(rdev_crit_proto_start, 22085de17984SArend van Spriel TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 22095de17984SArend van Spriel enum nl80211_crit_proto_id protocol, u16 duration), 22105de17984SArend van Spriel TP_ARGS(wiphy, wdev, protocol, duration), 22115de17984SArend van Spriel TP_STRUCT__entry( 22125de17984SArend van Spriel WIPHY_ENTRY 22135de17984SArend van Spriel WDEV_ENTRY 22145de17984SArend van Spriel __field(u16, proto) 22155de17984SArend van Spriel __field(u16, duration) 22165de17984SArend van Spriel ), 22175de17984SArend van Spriel TP_fast_assign( 22185de17984SArend van Spriel WIPHY_ASSIGN; 22195de17984SArend van Spriel WDEV_ASSIGN; 22205de17984SArend van Spriel __entry->proto = protocol; 22215de17984SArend van Spriel __entry->duration = duration; 22225de17984SArend van Spriel ), 22235de17984SArend van Spriel TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", proto=%x, duration=%u", 22245de17984SArend van Spriel WIPHY_PR_ARG, WDEV_PR_ARG, __entry->proto, __entry->duration) 22255de17984SArend van Spriel ); 22265de17984SArend van Spriel 22275de17984SArend van Spriel TRACE_EVENT(rdev_crit_proto_stop, 22285de17984SArend van Spriel TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 22295de17984SArend van Spriel TP_ARGS(wiphy, wdev), 22305de17984SArend van Spriel TP_STRUCT__entry( 22315de17984SArend van Spriel WIPHY_ENTRY 22325de17984SArend van Spriel WDEV_ENTRY 22335de17984SArend van Spriel ), 22345de17984SArend van Spriel TP_fast_assign( 22355de17984SArend van Spriel WIPHY_ASSIGN; 22365de17984SArend van Spriel WDEV_ASSIGN; 22375de17984SArend van Spriel ), 22385de17984SArend van Spriel TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, 22395de17984SArend van Spriel WIPHY_PR_ARG, WDEV_PR_ARG) 22405de17984SArend van Spriel ); 22415de17984SArend van Spriel 224216ef1fe2SSimon Wunderlich TRACE_EVENT(rdev_channel_switch, 224316ef1fe2SSimon Wunderlich TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 224416ef1fe2SSimon Wunderlich struct cfg80211_csa_settings *params), 224516ef1fe2SSimon Wunderlich TP_ARGS(wiphy, netdev, params), 224616ef1fe2SSimon Wunderlich TP_STRUCT__entry( 224716ef1fe2SSimon Wunderlich WIPHY_ENTRY 224816ef1fe2SSimon Wunderlich NETDEV_ENTRY 224916ef1fe2SSimon Wunderlich CHAN_DEF_ENTRY 225016ef1fe2SSimon Wunderlich __field(bool, radar_required) 225116ef1fe2SSimon Wunderlich __field(bool, block_tx) 225216ef1fe2SSimon Wunderlich __field(u8, count) 22539a774c78SAndrei Otcheretianski __dynamic_array(u16, bcn_ofs, params->n_counter_offsets_beacon) 22549a774c78SAndrei Otcheretianski __dynamic_array(u16, pres_ofs, params->n_counter_offsets_presp) 225516ef1fe2SSimon Wunderlich ), 225616ef1fe2SSimon Wunderlich TP_fast_assign( 225716ef1fe2SSimon Wunderlich WIPHY_ASSIGN; 225816ef1fe2SSimon Wunderlich NETDEV_ASSIGN; 225916ef1fe2SSimon Wunderlich CHAN_DEF_ASSIGN(¶ms->chandef); 226016ef1fe2SSimon Wunderlich __entry->radar_required = params->radar_required; 226116ef1fe2SSimon Wunderlich __entry->block_tx = params->block_tx; 226216ef1fe2SSimon Wunderlich __entry->count = params->count; 22639a774c78SAndrei Otcheretianski memcpy(__get_dynamic_array(bcn_ofs), 22649a774c78SAndrei Otcheretianski params->counter_offsets_beacon, 22659a774c78SAndrei Otcheretianski params->n_counter_offsets_beacon * sizeof(u16)); 22669a774c78SAndrei Otcheretianski 22679a774c78SAndrei Otcheretianski /* probe response offsets are optional */ 22689a774c78SAndrei Otcheretianski if (params->n_counter_offsets_presp) 22699a774c78SAndrei Otcheretianski memcpy(__get_dynamic_array(pres_ofs), 22709a774c78SAndrei Otcheretianski params->counter_offsets_presp, 22719a774c78SAndrei Otcheretianski params->n_counter_offsets_presp * sizeof(u16)); 227216ef1fe2SSimon Wunderlich ), 227316ef1fe2SSimon Wunderlich TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT 22749a774c78SAndrei Otcheretianski ", block_tx: %d, count: %u, radar_required: %d", 227516ef1fe2SSimon Wunderlich WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG, 22769a774c78SAndrei Otcheretianski __entry->block_tx, __entry->count, __entry->radar_required) 227716ef1fe2SSimon Wunderlich ); 227816ef1fe2SSimon Wunderlich 2279fa9ffc74SKyeyoon Park TRACE_EVENT(rdev_set_qos_map, 2280fa9ffc74SKyeyoon Park TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2281fa9ffc74SKyeyoon Park struct cfg80211_qos_map *qos_map), 2282fa9ffc74SKyeyoon Park TP_ARGS(wiphy, netdev, qos_map), 2283fa9ffc74SKyeyoon Park TP_STRUCT__entry( 2284fa9ffc74SKyeyoon Park WIPHY_ENTRY 2285fa9ffc74SKyeyoon Park NETDEV_ENTRY 2286fa9ffc74SKyeyoon Park QOS_MAP_ENTRY 2287fa9ffc74SKyeyoon Park ), 2288fa9ffc74SKyeyoon Park TP_fast_assign( 2289fa9ffc74SKyeyoon Park WIPHY_ASSIGN; 2290fa9ffc74SKyeyoon Park NETDEV_ASSIGN; 2291fa9ffc74SKyeyoon Park QOS_MAP_ASSIGN(qos_map); 2292fa9ffc74SKyeyoon Park ), 2293fa9ffc74SKyeyoon Park TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", num_des: %u", 2294fa9ffc74SKyeyoon Park WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->num_des) 2295fa9ffc74SKyeyoon Park ); 2296fa9ffc74SKyeyoon Park 2297e16821bcSJouni Malinen TRACE_EVENT(rdev_set_ap_chanwidth, 2298e16821bcSJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2299e16821bcSJouni Malinen struct cfg80211_chan_def *chandef), 2300e16821bcSJouni Malinen TP_ARGS(wiphy, netdev, chandef), 2301e16821bcSJouni Malinen TP_STRUCT__entry( 2302e16821bcSJouni Malinen WIPHY_ENTRY 2303e16821bcSJouni Malinen NETDEV_ENTRY 2304e16821bcSJouni Malinen CHAN_DEF_ENTRY 2305e16821bcSJouni Malinen ), 2306e16821bcSJouni Malinen TP_fast_assign( 2307e16821bcSJouni Malinen WIPHY_ASSIGN; 2308e16821bcSJouni Malinen NETDEV_ASSIGN; 2309e16821bcSJouni Malinen CHAN_DEF_ASSIGN(chandef); 2310e16821bcSJouni Malinen ), 2311e16821bcSJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT, 2312e16821bcSJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG) 2313e16821bcSJouni Malinen ); 2314e16821bcSJouni Malinen 2315960d01acSJohannes Berg TRACE_EVENT(rdev_add_tx_ts, 2316960d01acSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2317960d01acSJohannes Berg u8 tsid, const u8 *peer, u8 user_prio, u16 admitted_time), 2318960d01acSJohannes Berg TP_ARGS(wiphy, netdev, tsid, peer, user_prio, admitted_time), 2319960d01acSJohannes Berg TP_STRUCT__entry( 2320960d01acSJohannes Berg WIPHY_ENTRY 2321960d01acSJohannes Berg NETDEV_ENTRY 2322960d01acSJohannes Berg MAC_ENTRY(peer) 2323960d01acSJohannes Berg __field(u8, tsid) 2324960d01acSJohannes Berg __field(u8, user_prio) 2325960d01acSJohannes Berg __field(u16, admitted_time) 2326960d01acSJohannes Berg ), 2327960d01acSJohannes Berg TP_fast_assign( 2328960d01acSJohannes Berg WIPHY_ASSIGN; 2329960d01acSJohannes Berg NETDEV_ASSIGN; 2330960d01acSJohannes Berg MAC_ASSIGN(peer, peer); 2331960d01acSJohannes Berg __entry->tsid = tsid; 2332960d01acSJohannes Berg __entry->user_prio = user_prio; 2333960d01acSJohannes Berg __entry->admitted_time = admitted_time; 2334960d01acSJohannes Berg ), 2335960d01acSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", TSID %d, UP %d, time %d", 2336960d01acSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), 2337960d01acSJohannes Berg __entry->tsid, __entry->user_prio, __entry->admitted_time) 2338960d01acSJohannes Berg ); 2339960d01acSJohannes Berg 2340960d01acSJohannes Berg TRACE_EVENT(rdev_del_tx_ts, 2341960d01acSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2342960d01acSJohannes Berg u8 tsid, const u8 *peer), 2343960d01acSJohannes Berg TP_ARGS(wiphy, netdev, tsid, peer), 2344960d01acSJohannes Berg TP_STRUCT__entry( 2345960d01acSJohannes Berg WIPHY_ENTRY 2346960d01acSJohannes Berg NETDEV_ENTRY 2347960d01acSJohannes Berg MAC_ENTRY(peer) 2348960d01acSJohannes Berg __field(u8, tsid) 2349960d01acSJohannes Berg ), 2350960d01acSJohannes Berg TP_fast_assign( 2351960d01acSJohannes Berg WIPHY_ASSIGN; 2352960d01acSJohannes Berg NETDEV_ASSIGN; 2353960d01acSJohannes Berg MAC_ASSIGN(peer, peer); 2354960d01acSJohannes Berg __entry->tsid = tsid; 2355960d01acSJohannes Berg ), 2356960d01acSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", TSID %d", 2357960d01acSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->tsid) 2358960d01acSJohannes Berg ); 2359960d01acSJohannes Berg 23601057d35eSArik Nemtsov TRACE_EVENT(rdev_tdls_channel_switch, 23611057d35eSArik Nemtsov TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 23621057d35eSArik Nemtsov const u8 *addr, u8 oper_class, 23631057d35eSArik Nemtsov struct cfg80211_chan_def *chandef), 23641057d35eSArik Nemtsov TP_ARGS(wiphy, netdev, addr, oper_class, chandef), 23651057d35eSArik Nemtsov TP_STRUCT__entry( 23661057d35eSArik Nemtsov WIPHY_ENTRY 23671057d35eSArik Nemtsov NETDEV_ENTRY 23681057d35eSArik Nemtsov MAC_ENTRY(addr) 23691057d35eSArik Nemtsov __field(u8, oper_class) 23701057d35eSArik Nemtsov CHAN_DEF_ENTRY 23711057d35eSArik Nemtsov ), 23721057d35eSArik Nemtsov TP_fast_assign( 23731057d35eSArik Nemtsov WIPHY_ASSIGN; 23741057d35eSArik Nemtsov NETDEV_ASSIGN; 23751057d35eSArik Nemtsov MAC_ASSIGN(addr, addr); 23761057d35eSArik Nemtsov CHAN_DEF_ASSIGN(chandef); 23771057d35eSArik Nemtsov ), 23781057d35eSArik Nemtsov TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT 23791057d35eSArik Nemtsov " oper class %d, " CHAN_DEF_PR_FMT, 23801057d35eSArik Nemtsov WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(addr), 23811057d35eSArik Nemtsov __entry->oper_class, CHAN_DEF_PR_ARG) 23821057d35eSArik Nemtsov ); 23831057d35eSArik Nemtsov 23841057d35eSArik Nemtsov TRACE_EVENT(rdev_tdls_cancel_channel_switch, 23851057d35eSArik Nemtsov TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 23861057d35eSArik Nemtsov const u8 *addr), 23871057d35eSArik Nemtsov TP_ARGS(wiphy, netdev, addr), 23881057d35eSArik Nemtsov TP_STRUCT__entry( 23891057d35eSArik Nemtsov WIPHY_ENTRY 23901057d35eSArik Nemtsov NETDEV_ENTRY 23911057d35eSArik Nemtsov MAC_ENTRY(addr) 23921057d35eSArik Nemtsov ), 23931057d35eSArik Nemtsov TP_fast_assign( 23941057d35eSArik Nemtsov WIPHY_ASSIGN; 23951057d35eSArik Nemtsov NETDEV_ASSIGN; 23961057d35eSArik Nemtsov MAC_ASSIGN(addr, addr); 23971057d35eSArik Nemtsov ), 23981057d35eSArik Nemtsov TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT, 23991057d35eSArik Nemtsov WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(addr)) 24001057d35eSArik Nemtsov ); 24011057d35eSArik Nemtsov 24023a00df57SAvraham Stern TRACE_EVENT(rdev_set_pmk, 24033a00df57SAvraham Stern TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 24043a00df57SAvraham Stern struct cfg80211_pmk_conf *pmk_conf), 24053a00df57SAvraham Stern 24063a00df57SAvraham Stern TP_ARGS(wiphy, netdev, pmk_conf), 24073a00df57SAvraham Stern 24083a00df57SAvraham Stern TP_STRUCT__entry( 24093a00df57SAvraham Stern WIPHY_ENTRY 24103a00df57SAvraham Stern NETDEV_ENTRY 24113a00df57SAvraham Stern MAC_ENTRY(aa) 24123a00df57SAvraham Stern __field(u8, pmk_len) 24133a00df57SAvraham Stern __field(u8, pmk_r0_name_len) 24143a00df57SAvraham Stern __dynamic_array(u8, pmk, pmk_conf->pmk_len) 24153a00df57SAvraham Stern __dynamic_array(u8, pmk_r0_name, WLAN_PMK_NAME_LEN) 24163a00df57SAvraham Stern ), 24173a00df57SAvraham Stern 24183a00df57SAvraham Stern TP_fast_assign( 24193a00df57SAvraham Stern WIPHY_ASSIGN; 24203a00df57SAvraham Stern NETDEV_ASSIGN; 24213a00df57SAvraham Stern MAC_ASSIGN(aa, pmk_conf->aa); 24223a00df57SAvraham Stern __entry->pmk_len = pmk_conf->pmk_len; 24233a00df57SAvraham Stern __entry->pmk_r0_name_len = 24243a00df57SAvraham Stern pmk_conf->pmk_r0_name ? WLAN_PMK_NAME_LEN : 0; 24253a00df57SAvraham Stern memcpy(__get_dynamic_array(pmk), pmk_conf->pmk, 24263a00df57SAvraham Stern pmk_conf->pmk_len); 24273a00df57SAvraham Stern memcpy(__get_dynamic_array(pmk_r0_name), pmk_conf->pmk_r0_name, 24283a00df57SAvraham Stern pmk_conf->pmk_r0_name ? WLAN_PMK_NAME_LEN : 0); 24293a00df57SAvraham Stern ), 24303a00df57SAvraham Stern 24313a00df57SAvraham Stern TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT 24323a00df57SAvraham Stern "pmk_len=%u, pmk: %s pmk_r0_name: %s", WIPHY_PR_ARG, 24333a00df57SAvraham Stern NETDEV_PR_ARG, MAC_PR_ARG(aa), __entry->pmk_len, 24343a00df57SAvraham Stern __print_array(__get_dynamic_array(pmk), 24353a00df57SAvraham Stern __get_dynamic_array_len(pmk), 1), 24363a00df57SAvraham Stern __entry->pmk_r0_name_len ? 24373a00df57SAvraham Stern __print_array(__get_dynamic_array(pmk_r0_name), 24383a00df57SAvraham Stern __get_dynamic_array_len(pmk_r0_name), 1) : "") 24393a00df57SAvraham Stern ); 24403a00df57SAvraham Stern 24413a00df57SAvraham Stern TRACE_EVENT(rdev_del_pmk, 24423a00df57SAvraham Stern TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *aa), 24433a00df57SAvraham Stern 24443a00df57SAvraham Stern TP_ARGS(wiphy, netdev, aa), 24453a00df57SAvraham Stern 24463a00df57SAvraham Stern TP_STRUCT__entry( 24473a00df57SAvraham Stern WIPHY_ENTRY 24483a00df57SAvraham Stern NETDEV_ENTRY 24493a00df57SAvraham Stern MAC_ENTRY(aa) 24503a00df57SAvraham Stern ), 24513a00df57SAvraham Stern 24523a00df57SAvraham Stern TP_fast_assign( 24533a00df57SAvraham Stern WIPHY_ASSIGN; 24543a00df57SAvraham Stern NETDEV_ASSIGN; 24553a00df57SAvraham Stern MAC_ASSIGN(aa, aa); 24563a00df57SAvraham Stern ), 24573a00df57SAvraham Stern 24583a00df57SAvraham Stern TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT, 24593a00df57SAvraham Stern WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(aa)) 24603a00df57SAvraham Stern ); 24613a00df57SAvraham Stern 246240cbfa90SSrinivas Dasari TRACE_EVENT(rdev_external_auth, 246340cbfa90SSrinivas Dasari TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 246440cbfa90SSrinivas Dasari struct cfg80211_external_auth_params *params), 246540cbfa90SSrinivas Dasari TP_ARGS(wiphy, netdev, params), 246640cbfa90SSrinivas Dasari TP_STRUCT__entry(WIPHY_ENTRY 246740cbfa90SSrinivas Dasari NETDEV_ENTRY 246840cbfa90SSrinivas Dasari MAC_ENTRY(bssid) 246940cbfa90SSrinivas Dasari __array(u8, ssid, IEEE80211_MAX_SSID_LEN + 1) 247040cbfa90SSrinivas Dasari __field(u16, status) 247140cbfa90SSrinivas Dasari ), 247240cbfa90SSrinivas Dasari TP_fast_assign(WIPHY_ASSIGN; 247340cbfa90SSrinivas Dasari NETDEV_ASSIGN; 247440cbfa90SSrinivas Dasari MAC_ASSIGN(bssid, params->bssid); 247540cbfa90SSrinivas Dasari memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); 247640cbfa90SSrinivas Dasari memcpy(__entry->ssid, params->ssid.ssid, 247740cbfa90SSrinivas Dasari params->ssid.ssid_len); 247840cbfa90SSrinivas Dasari __entry->status = params->status; 247940cbfa90SSrinivas Dasari ), 248040cbfa90SSrinivas Dasari TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT 248140cbfa90SSrinivas Dasari ", ssid: %s, status: %u", WIPHY_PR_ARG, NETDEV_PR_ARG, 248240cbfa90SSrinivas Dasari __entry->bssid, __entry->ssid, __entry->status) 248340cbfa90SSrinivas Dasari ); 248440cbfa90SSrinivas Dasari 24855207ca55SJohannes Berg TRACE_EVENT(rdev_start_radar_detection, 24865207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 24875207ca55SJohannes Berg struct cfg80211_chan_def *chandef, 24885207ca55SJohannes Berg u32 cac_time_ms), 24895207ca55SJohannes Berg TP_ARGS(wiphy, netdev, chandef, cac_time_ms), 24905207ca55SJohannes Berg TP_STRUCT__entry( 24915207ca55SJohannes Berg WIPHY_ENTRY 24925207ca55SJohannes Berg NETDEV_ENTRY 24935207ca55SJohannes Berg CHAN_DEF_ENTRY 24945207ca55SJohannes Berg __field(u32, cac_time_ms) 24955207ca55SJohannes Berg ), 24965207ca55SJohannes Berg TP_fast_assign( 24975207ca55SJohannes Berg WIPHY_ASSIGN; 24985207ca55SJohannes Berg NETDEV_ASSIGN; 24995207ca55SJohannes Berg CHAN_DEF_ASSIGN(chandef); 25005207ca55SJohannes Berg __entry->cac_time_ms = cac_time_ms; 25015207ca55SJohannes Berg ), 25025207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT 25035207ca55SJohannes Berg ", cac_time_ms=%u", 25045207ca55SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG, 25055207ca55SJohannes Berg __entry->cac_time_ms) 25065207ca55SJohannes Berg ); 25075207ca55SJohannes Berg 25085207ca55SJohannes Berg TRACE_EVENT(rdev_set_mcast_rate, 25095207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 25105207ca55SJohannes Berg int *mcast_rate), 25115207ca55SJohannes Berg TP_ARGS(wiphy, netdev, mcast_rate), 25125207ca55SJohannes Berg TP_STRUCT__entry( 25135207ca55SJohannes Berg WIPHY_ENTRY 25145207ca55SJohannes Berg NETDEV_ENTRY 25155207ca55SJohannes Berg __array(int, mcast_rate, NUM_NL80211_BANDS) 25165207ca55SJohannes Berg ), 25175207ca55SJohannes Berg TP_fast_assign( 25185207ca55SJohannes Berg WIPHY_ASSIGN; 25195207ca55SJohannes Berg NETDEV_ASSIGN; 25205207ca55SJohannes Berg memcpy(__entry->mcast_rate, mcast_rate, 25215207ca55SJohannes Berg sizeof(int) * NUM_NL80211_BANDS); 25225207ca55SJohannes Berg ), 25235207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " 2524e548a1c3SArend van Spriel "mcast_rates [2.4GHz=0x%x, 5.2GHz=0x%x, 6GHz=0x%x, 60GHz=0x%x]", 25255207ca55SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, 25265207ca55SJohannes Berg __entry->mcast_rate[NL80211_BAND_2GHZ], 25275207ca55SJohannes Berg __entry->mcast_rate[NL80211_BAND_5GHZ], 2528e548a1c3SArend van Spriel __entry->mcast_rate[NL80211_BAND_6GHZ], 25295207ca55SJohannes Berg __entry->mcast_rate[NL80211_BAND_60GHZ]) 25305207ca55SJohannes Berg ); 25315207ca55SJohannes Berg 25325207ca55SJohannes Berg TRACE_EVENT(rdev_set_coalesce, 25335207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct cfg80211_coalesce *coalesce), 25345207ca55SJohannes Berg TP_ARGS(wiphy, coalesce), 25355207ca55SJohannes Berg TP_STRUCT__entry( 25365207ca55SJohannes Berg WIPHY_ENTRY 25375207ca55SJohannes Berg __field(int, n_rules) 25385207ca55SJohannes Berg ), 25395207ca55SJohannes Berg TP_fast_assign( 25405207ca55SJohannes Berg WIPHY_ASSIGN; 25415207ca55SJohannes Berg __entry->n_rules = coalesce ? coalesce->n_rules : 0; 25425207ca55SJohannes Berg ), 25435207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT ", n_rules=%d", 25445207ca55SJohannes Berg WIPHY_PR_ARG, __entry->n_rules) 25455207ca55SJohannes Berg ); 25465207ca55SJohannes Berg 25475207ca55SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_abort_scan, 25485207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 25495207ca55SJohannes Berg TP_ARGS(wiphy, wdev) 25505207ca55SJohannes Berg ); 25515207ca55SJohannes Berg 25525207ca55SJohannes Berg TRACE_EVENT(rdev_set_multicast_to_unicast, 25535207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 25545207ca55SJohannes Berg const bool enabled), 25555207ca55SJohannes Berg TP_ARGS(wiphy, netdev, enabled), 25565207ca55SJohannes Berg TP_STRUCT__entry( 25575207ca55SJohannes Berg WIPHY_ENTRY 25585207ca55SJohannes Berg NETDEV_ENTRY 25595207ca55SJohannes Berg __field(bool, enabled) 25605207ca55SJohannes Berg ), 25615207ca55SJohannes Berg TP_fast_assign( 25625207ca55SJohannes Berg WIPHY_ASSIGN; 25635207ca55SJohannes Berg NETDEV_ASSIGN; 25645207ca55SJohannes Berg __entry->enabled = enabled; 25655207ca55SJohannes Berg ), 25665207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", unicast: %s", 25675207ca55SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, 25685207ca55SJohannes Berg BOOL_TO_STR(__entry->enabled)) 25695207ca55SJohannes Berg ); 25705207ca55SJohannes Berg 25715207ca55SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_get_txq_stats, 25725207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 25735207ca55SJohannes Berg TP_ARGS(wiphy, wdev) 25745207ca55SJohannes Berg ); 25755207ca55SJohannes Berg 25765207ca55SJohannes Berg TRACE_EVENT(rdev_get_ftm_responder_stats, 25775207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 25785207ca55SJohannes Berg struct cfg80211_ftm_responder_stats *ftm_stats), 25795207ca55SJohannes Berg 25805207ca55SJohannes Berg TP_ARGS(wiphy, netdev, ftm_stats), 25815207ca55SJohannes Berg 25825207ca55SJohannes Berg TP_STRUCT__entry( 25835207ca55SJohannes Berg WIPHY_ENTRY 25845207ca55SJohannes Berg NETDEV_ENTRY 25855207ca55SJohannes Berg __field(u64, timestamp) 25865207ca55SJohannes Berg __field(u32, success_num) 25875207ca55SJohannes Berg __field(u32, partial_num) 25885207ca55SJohannes Berg __field(u32, failed_num) 25895207ca55SJohannes Berg __field(u32, asap_num) 25905207ca55SJohannes Berg __field(u32, non_asap_num) 25915207ca55SJohannes Berg __field(u64, duration) 25925207ca55SJohannes Berg __field(u32, unknown_triggers) 25935207ca55SJohannes Berg __field(u32, reschedule) 25945207ca55SJohannes Berg __field(u32, out_of_window) 25955207ca55SJohannes Berg ), 25965207ca55SJohannes Berg 25975207ca55SJohannes Berg TP_fast_assign( 25985207ca55SJohannes Berg WIPHY_ASSIGN; 25995207ca55SJohannes Berg NETDEV_ASSIGN; 26005207ca55SJohannes Berg __entry->success_num = ftm_stats->success_num; 26015207ca55SJohannes Berg __entry->partial_num = ftm_stats->partial_num; 26025207ca55SJohannes Berg __entry->failed_num = ftm_stats->failed_num; 26035207ca55SJohannes Berg __entry->asap_num = ftm_stats->asap_num; 26045207ca55SJohannes Berg __entry->non_asap_num = ftm_stats->non_asap_num; 26055207ca55SJohannes Berg __entry->duration = ftm_stats->total_duration_ms; 26065207ca55SJohannes Berg __entry->unknown_triggers = ftm_stats->unknown_triggers_num; 26075207ca55SJohannes Berg __entry->reschedule = ftm_stats->reschedule_requests_num; 26085207ca55SJohannes Berg __entry->out_of_window = ftm_stats->out_of_window_triggers_num; 26095207ca55SJohannes Berg ), 26105207ca55SJohannes Berg 26115207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT "Ftm responder stats: success %u, partial %u, " 26125207ca55SJohannes Berg "failed %u, asap %u, non asap %u, total duration %llu, unknown " 26135207ca55SJohannes Berg "triggers %u, rescheduled %u, out of window %u", WIPHY_PR_ARG, 26145207ca55SJohannes Berg __entry->success_num, __entry->partial_num, __entry->failed_num, 26155207ca55SJohannes Berg __entry->asap_num, __entry->non_asap_num, __entry->duration, 26165207ca55SJohannes Berg __entry->unknown_triggers, __entry->reschedule, 26175207ca55SJohannes Berg __entry->out_of_window) 26185207ca55SJohannes Berg ); 26195207ca55SJohannes Berg 26209bb7e0f2SJohannes Berg DEFINE_EVENT(wiphy_wdev_cookie_evt, rdev_start_pmsr, 26219bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 26229bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie) 26239bb7e0f2SJohannes Berg ); 26249bb7e0f2SJohannes Berg 26259bb7e0f2SJohannes Berg DEFINE_EVENT(wiphy_wdev_cookie_evt, rdev_abort_pmsr, 26269bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 26279bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie) 26289bb7e0f2SJohannes Berg ); 26299bb7e0f2SJohannes Berg 2630e306784aSSubrat Mishra TRACE_EVENT(rdev_set_fils_aad, 2631e306784aSSubrat Mishra TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2632e306784aSSubrat Mishra struct cfg80211_fils_aad *fils_aad), 2633e306784aSSubrat Mishra TP_ARGS(wiphy, netdev, fils_aad), 2634e306784aSSubrat Mishra TP_STRUCT__entry(WIPHY_ENTRY 2635e306784aSSubrat Mishra NETDEV_ENTRY 2636e306784aSSubrat Mishra __array(u8, macaddr, ETH_ALEN) 2637e306784aSSubrat Mishra __field(u8, kek_len) 2638e306784aSSubrat Mishra ), 2639e306784aSSubrat Mishra TP_fast_assign(WIPHY_ASSIGN; 2640e306784aSSubrat Mishra NETDEV_ASSIGN; 2641e306784aSSubrat Mishra FILS_AAD_ASSIGN(fils_aad); 2642e306784aSSubrat Mishra ), 2643e306784aSSubrat Mishra TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " FILS_AAD_PR_FMT, 2644e306784aSSubrat Mishra WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->macaddr, 2645e306784aSSubrat Mishra __entry->kek_len) 2646e306784aSSubrat Mishra ); 2647e306784aSSubrat Mishra 26484ee3e063SBeni Lev /************************************************************* 26494ee3e063SBeni Lev * cfg80211 exported functions traces * 26504ee3e063SBeni Lev *************************************************************/ 26514ee3e063SBeni Lev 26524ee3e063SBeni Lev TRACE_EVENT(cfg80211_return_bool, 26534ee3e063SBeni Lev TP_PROTO(bool ret), 26544ee3e063SBeni Lev TP_ARGS(ret), 26554ee3e063SBeni Lev TP_STRUCT__entry( 26564ee3e063SBeni Lev __field(bool, ret) 26574ee3e063SBeni Lev ), 26584ee3e063SBeni Lev TP_fast_assign( 26594ee3e063SBeni Lev __entry->ret = ret; 26604ee3e063SBeni Lev ), 26614ee3e063SBeni Lev TP_printk("returned %s", BOOL_TO_STR(__entry->ret)) 26624ee3e063SBeni Lev ); 26634ee3e063SBeni Lev 26644ee3e063SBeni Lev DECLARE_EVENT_CLASS(cfg80211_netdev_mac_evt, 26654ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 26664ee3e063SBeni Lev TP_ARGS(netdev, macaddr), 26674ee3e063SBeni Lev TP_STRUCT__entry( 26684ee3e063SBeni Lev NETDEV_ENTRY 26694ee3e063SBeni Lev MAC_ENTRY(macaddr) 26704ee3e063SBeni Lev ), 26714ee3e063SBeni Lev TP_fast_assign( 26724ee3e063SBeni Lev NETDEV_ASSIGN; 26734ee3e063SBeni Lev MAC_ASSIGN(macaddr, macaddr); 26744ee3e063SBeni Lev ), 26754ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", mac: " MAC_PR_FMT, 26764ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(macaddr)) 26774ee3e063SBeni Lev ); 26784ee3e063SBeni Lev 26794ee3e063SBeni Lev DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_notify_new_peer_candidate, 26804ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 26814ee3e063SBeni Lev TP_ARGS(netdev, macaddr) 26824ee3e063SBeni Lev ); 26834ee3e063SBeni Lev 26844ee3e063SBeni Lev DECLARE_EVENT_CLASS(netdev_evt_only, 26854ee3e063SBeni Lev TP_PROTO(struct net_device *netdev), 26864ee3e063SBeni Lev TP_ARGS(netdev), 26874ee3e063SBeni Lev TP_STRUCT__entry( 26884ee3e063SBeni Lev NETDEV_ENTRY 26894ee3e063SBeni Lev ), 26904ee3e063SBeni Lev TP_fast_assign( 26914ee3e063SBeni Lev NETDEV_ASSIGN; 26924ee3e063SBeni Lev ), 26934ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT , NETDEV_PR_ARG) 26944ee3e063SBeni Lev ); 26954ee3e063SBeni Lev 26964ee3e063SBeni Lev DEFINE_EVENT(netdev_evt_only, cfg80211_send_rx_auth, 26974ee3e063SBeni Lev TP_PROTO(struct net_device *netdev), 26984ee3e063SBeni Lev TP_ARGS(netdev) 26994ee3e063SBeni Lev ); 27004ee3e063SBeni Lev 27014ee3e063SBeni Lev TRACE_EVENT(cfg80211_send_rx_assoc, 27024ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, struct cfg80211_bss *bss), 27034ee3e063SBeni Lev TP_ARGS(netdev, bss), 27044ee3e063SBeni Lev TP_STRUCT__entry( 27054ee3e063SBeni Lev NETDEV_ENTRY 27064ee3e063SBeni Lev MAC_ENTRY(bssid) 27074ee3e063SBeni Lev CHAN_ENTRY 27084ee3e063SBeni Lev ), 27094ee3e063SBeni Lev TP_fast_assign( 27104ee3e063SBeni Lev NETDEV_ASSIGN; 27114ee3e063SBeni Lev MAC_ASSIGN(bssid, bss->bssid); 27124ee3e063SBeni Lev CHAN_ASSIGN(bss->channel); 27134ee3e063SBeni Lev ), 2714ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT ", " CHAN_PR_FMT, 27154ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(bssid), CHAN_PR_ARG) 27164ee3e063SBeni Lev ); 27174ee3e063SBeni Lev 27186ff57cf8SJohannes Berg DECLARE_EVENT_CLASS(netdev_frame_event, 27196ff57cf8SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len), 27206ff57cf8SJohannes Berg TP_ARGS(netdev, buf, len), 27216ff57cf8SJohannes Berg TP_STRUCT__entry( 27226ff57cf8SJohannes Berg NETDEV_ENTRY 27236ff57cf8SJohannes Berg __dynamic_array(u8, frame, len) 27246ff57cf8SJohannes Berg ), 27256ff57cf8SJohannes Berg TP_fast_assign( 27266ff57cf8SJohannes Berg NETDEV_ASSIGN; 27276ff57cf8SJohannes Berg memcpy(__get_dynamic_array(frame), buf, len); 27286ff57cf8SJohannes Berg ), 27296ff57cf8SJohannes Berg TP_printk(NETDEV_PR_FMT ", ftype:0x%.2x", 27306ff57cf8SJohannes Berg NETDEV_PR_ARG, 27316ff57cf8SJohannes Berg le16_to_cpup((__le16 *)__get_dynamic_array(frame))) 27324ee3e063SBeni Lev ); 27334ee3e063SBeni Lev 27346ff57cf8SJohannes Berg DEFINE_EVENT(netdev_frame_event, cfg80211_rx_unprot_mlme_mgmt, 27356ff57cf8SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len), 27366ff57cf8SJohannes Berg TP_ARGS(netdev, buf, len) 27374ee3e063SBeni Lev ); 27384ee3e063SBeni Lev 27396ff57cf8SJohannes Berg DEFINE_EVENT(netdev_frame_event, cfg80211_rx_mlme_mgmt, 27406ff57cf8SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len), 27416ff57cf8SJohannes Berg TP_ARGS(netdev, buf, len) 27424ee3e063SBeni Lev ); 27434ee3e063SBeni Lev 27446ff57cf8SJohannes Berg TRACE_EVENT(cfg80211_tx_mlme_mgmt, 27453bb02143SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len, 27463bb02143SJohannes Berg bool reconnect), 27473bb02143SJohannes Berg TP_ARGS(netdev, buf, len, reconnect), 27486ff57cf8SJohannes Berg TP_STRUCT__entry( 27496ff57cf8SJohannes Berg NETDEV_ENTRY 27506ff57cf8SJohannes Berg __dynamic_array(u8, frame, len) 27513bb02143SJohannes Berg __field(int, reconnect) 27526ff57cf8SJohannes Berg ), 27536ff57cf8SJohannes Berg TP_fast_assign( 27546ff57cf8SJohannes Berg NETDEV_ASSIGN; 27556ff57cf8SJohannes Berg memcpy(__get_dynamic_array(frame), buf, len); 27563bb02143SJohannes Berg __entry->reconnect = reconnect; 27576ff57cf8SJohannes Berg ), 27583bb02143SJohannes Berg TP_printk(NETDEV_PR_FMT ", ftype:0x%.2x reconnect:%d", 27596ff57cf8SJohannes Berg NETDEV_PR_ARG, 27603bb02143SJohannes Berg le16_to_cpup((__le16 *)__get_dynamic_array(frame)), 27613bb02143SJohannes Berg __entry->reconnect) 27624ee3e063SBeni Lev ); 27634ee3e063SBeni Lev 27644ee3e063SBeni Lev DECLARE_EVENT_CLASS(netdev_mac_evt, 27654ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac), 27664ee3e063SBeni Lev TP_ARGS(netdev, mac), 27674ee3e063SBeni Lev TP_STRUCT__entry( 27684ee3e063SBeni Lev NETDEV_ENTRY 27694ee3e063SBeni Lev MAC_ENTRY(mac) 27704ee3e063SBeni Lev ), 27714ee3e063SBeni Lev TP_fast_assign( 27724ee3e063SBeni Lev NETDEV_ASSIGN; 27734ee3e063SBeni Lev MAC_ASSIGN(mac, mac) 27744ee3e063SBeni Lev ), 27754ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", mac: " MAC_PR_FMT, 27764ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(mac)) 27774ee3e063SBeni Lev ); 27784ee3e063SBeni Lev 27794ee3e063SBeni Lev DEFINE_EVENT(netdev_mac_evt, cfg80211_send_auth_timeout, 27804ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac), 27814ee3e063SBeni Lev TP_ARGS(netdev, mac) 27824ee3e063SBeni Lev ); 27834ee3e063SBeni Lev 27844ee3e063SBeni Lev DEFINE_EVENT(netdev_mac_evt, cfg80211_send_assoc_timeout, 27854ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac), 27864ee3e063SBeni Lev TP_ARGS(netdev, mac) 27874ee3e063SBeni Lev ); 27884ee3e063SBeni Lev 27894ee3e063SBeni Lev TRACE_EVENT(cfg80211_michael_mic_failure, 27904ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr, 27914ee3e063SBeni Lev enum nl80211_key_type key_type, int key_id, const u8 *tsc), 27924ee3e063SBeni Lev TP_ARGS(netdev, addr, key_type, key_id, tsc), 27934ee3e063SBeni Lev TP_STRUCT__entry( 27944ee3e063SBeni Lev NETDEV_ENTRY 27954ee3e063SBeni Lev MAC_ENTRY(addr) 27964ee3e063SBeni Lev __field(enum nl80211_key_type, key_type) 27974ee3e063SBeni Lev __field(int, key_id) 27984ee3e063SBeni Lev __array(u8, tsc, 6) 27994ee3e063SBeni Lev ), 28004ee3e063SBeni Lev TP_fast_assign( 28014ee3e063SBeni Lev NETDEV_ASSIGN; 28024ee3e063SBeni Lev MAC_ASSIGN(addr, addr); 28034ee3e063SBeni Lev __entry->key_type = key_type; 28044ee3e063SBeni Lev __entry->key_id = key_id; 28058c26d458SEliad Peller if (tsc) 28064ee3e063SBeni Lev memcpy(__entry->tsc, tsc, 6); 28074ee3e063SBeni Lev ), 2808ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT ", key type: %d, key id: %d, tsc: %pm", 28094ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(addr), __entry->key_type, 28104ee3e063SBeni Lev __entry->key_id, __entry->tsc) 28114ee3e063SBeni Lev ); 28124ee3e063SBeni Lev 28134ee3e063SBeni Lev TRACE_EVENT(cfg80211_ready_on_channel, 28144ee3e063SBeni Lev TP_PROTO(struct wireless_dev *wdev, u64 cookie, 28154ee3e063SBeni Lev struct ieee80211_channel *chan, 281642d97a59SJohannes Berg unsigned int duration), 281742d97a59SJohannes Berg TP_ARGS(wdev, cookie, chan, duration), 28184ee3e063SBeni Lev TP_STRUCT__entry( 28194ee3e063SBeni Lev WDEV_ENTRY 28204ee3e063SBeni Lev __field(u64, cookie) 28214ee3e063SBeni Lev CHAN_ENTRY 28224ee3e063SBeni Lev __field(unsigned int, duration) 28234ee3e063SBeni Lev ), 28244ee3e063SBeni Lev TP_fast_assign( 28254ee3e063SBeni Lev WDEV_ASSIGN; 28264ee3e063SBeni Lev __entry->cookie = cookie; 28274ee3e063SBeni Lev CHAN_ASSIGN(chan); 28284ee3e063SBeni Lev __entry->duration = duration; 28294ee3e063SBeni Lev ), 283042d97a59SJohannes Berg TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT ", duration: %u", 28314ee3e063SBeni Lev WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG, 283242d97a59SJohannes Berg __entry->duration) 28334ee3e063SBeni Lev ); 28344ee3e063SBeni Lev 28354ee3e063SBeni Lev TRACE_EVENT(cfg80211_ready_on_channel_expired, 28364ee3e063SBeni Lev TP_PROTO(struct wireless_dev *wdev, u64 cookie, 283742d97a59SJohannes Berg struct ieee80211_channel *chan), 283842d97a59SJohannes Berg TP_ARGS(wdev, cookie, chan), 28394ee3e063SBeni Lev TP_STRUCT__entry( 28404ee3e063SBeni Lev WDEV_ENTRY 28414ee3e063SBeni Lev __field(u64, cookie) 28424ee3e063SBeni Lev CHAN_ENTRY 28434ee3e063SBeni Lev ), 28444ee3e063SBeni Lev TP_fast_assign( 28454ee3e063SBeni Lev WDEV_ASSIGN; 28464ee3e063SBeni Lev __entry->cookie = cookie; 28474ee3e063SBeni Lev CHAN_ASSIGN(chan); 28484ee3e063SBeni Lev ), 284942d97a59SJohannes Berg TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT, 285042d97a59SJohannes Berg WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG) 28514ee3e063SBeni Lev ); 28524ee3e063SBeni Lev 28531c38c7f2SJames Prestwood TRACE_EVENT(cfg80211_tx_mgmt_expired, 28541c38c7f2SJames Prestwood TP_PROTO(struct wireless_dev *wdev, u64 cookie, 28551c38c7f2SJames Prestwood struct ieee80211_channel *chan), 28561c38c7f2SJames Prestwood TP_ARGS(wdev, cookie, chan), 28571c38c7f2SJames Prestwood TP_STRUCT__entry( 28581c38c7f2SJames Prestwood WDEV_ENTRY 28591c38c7f2SJames Prestwood __field(u64, cookie) 28601c38c7f2SJames Prestwood CHAN_ENTRY 28611c38c7f2SJames Prestwood ), 28621c38c7f2SJames Prestwood TP_fast_assign( 28631c38c7f2SJames Prestwood WDEV_ASSIGN; 28641c38c7f2SJames Prestwood __entry->cookie = cookie; 28651c38c7f2SJames Prestwood CHAN_ASSIGN(chan); 28661c38c7f2SJames Prestwood ), 28671c38c7f2SJames Prestwood TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT, 28681c38c7f2SJames Prestwood WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG) 28691c38c7f2SJames Prestwood ); 28701c38c7f2SJames Prestwood 28714ee3e063SBeni Lev TRACE_EVENT(cfg80211_new_sta, 28724ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac_addr, 28734ee3e063SBeni Lev struct station_info *sinfo), 28744ee3e063SBeni Lev TP_ARGS(netdev, mac_addr, sinfo), 28754ee3e063SBeni Lev TP_STRUCT__entry( 28764ee3e063SBeni Lev NETDEV_ENTRY 28774ee3e063SBeni Lev MAC_ENTRY(mac_addr) 28784ee3e063SBeni Lev SINFO_ENTRY 28794ee3e063SBeni Lev ), 28804ee3e063SBeni Lev TP_fast_assign( 28814ee3e063SBeni Lev NETDEV_ASSIGN; 28824ee3e063SBeni Lev MAC_ASSIGN(mac_addr, mac_addr); 28834ee3e063SBeni Lev SINFO_ASSIGN; 28844ee3e063SBeni Lev ), 2885ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT, 28864ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(mac_addr)) 28874ee3e063SBeni Lev ); 28884ee3e063SBeni Lev 28894ee3e063SBeni Lev DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_del_sta, 28904ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 28914ee3e063SBeni Lev TP_ARGS(netdev, macaddr) 28924ee3e063SBeni Lev ); 28934ee3e063SBeni Lev 28944ee3e063SBeni Lev TRACE_EVENT(cfg80211_rx_mgmt, 28956c2fb1e6SSergey Matyukevich TP_PROTO(struct wireless_dev *wdev, int freq, int sig_dbm), 28966c2fb1e6SSergey Matyukevich TP_ARGS(wdev, freq, sig_dbm), 28974ee3e063SBeni Lev TP_STRUCT__entry( 28984ee3e063SBeni Lev WDEV_ENTRY 28994ee3e063SBeni Lev __field(int, freq) 29006c2fb1e6SSergey Matyukevich __field(int, sig_dbm) 29014ee3e063SBeni Lev ), 29024ee3e063SBeni Lev TP_fast_assign( 29034ee3e063SBeni Lev WDEV_ASSIGN; 29044ee3e063SBeni Lev __entry->freq = freq; 29056c2fb1e6SSergey Matyukevich __entry->sig_dbm = sig_dbm; 29064ee3e063SBeni Lev ), 2907e76fede8SThomas Pedersen TP_printk(WDEV_PR_FMT ", freq: "KHZ_F", sig dbm: %d", 2908e76fede8SThomas Pedersen WDEV_PR_ARG, PR_KHZ(__entry->freq), __entry->sig_dbm) 29094ee3e063SBeni Lev ); 29104ee3e063SBeni Lev 29114ee3e063SBeni Lev TRACE_EVENT(cfg80211_mgmt_tx_status, 29124ee3e063SBeni Lev TP_PROTO(struct wireless_dev *wdev, u64 cookie, bool ack), 29134ee3e063SBeni Lev TP_ARGS(wdev, cookie, ack), 29144ee3e063SBeni Lev TP_STRUCT__entry( 29154ee3e063SBeni Lev WDEV_ENTRY 29164ee3e063SBeni Lev __field(u64, cookie) 29174ee3e063SBeni Lev __field(bool, ack) 29184ee3e063SBeni Lev ), 29194ee3e063SBeni Lev TP_fast_assign( 29204ee3e063SBeni Lev WDEV_ASSIGN; 29214ee3e063SBeni Lev __entry->cookie = cookie; 29224ee3e063SBeni Lev __entry->ack = ack; 29234ee3e063SBeni Lev ), 29244ee3e063SBeni Lev TP_printk(WDEV_PR_FMT", cookie: %llu, ack: %s", 29254ee3e063SBeni Lev WDEV_PR_ARG, __entry->cookie, BOOL_TO_STR(__entry->ack)) 29264ee3e063SBeni Lev ); 29274ee3e063SBeni Lev 2928dca9ca2dSMarkus Theil TRACE_EVENT(cfg80211_control_port_tx_status, 2929dca9ca2dSMarkus Theil TP_PROTO(struct wireless_dev *wdev, u64 cookie, bool ack), 2930dca9ca2dSMarkus Theil TP_ARGS(wdev, cookie, ack), 2931dca9ca2dSMarkus Theil TP_STRUCT__entry( 2932dca9ca2dSMarkus Theil WDEV_ENTRY 2933dca9ca2dSMarkus Theil __field(u64, cookie) 2934dca9ca2dSMarkus Theil __field(bool, ack) 2935dca9ca2dSMarkus Theil ), 2936dca9ca2dSMarkus Theil TP_fast_assign( 2937dca9ca2dSMarkus Theil WDEV_ASSIGN; 2938dca9ca2dSMarkus Theil __entry->cookie = cookie; 2939dca9ca2dSMarkus Theil __entry->ack = ack; 2940dca9ca2dSMarkus Theil ), 2941dca9ca2dSMarkus Theil TP_printk(WDEV_PR_FMT", cookie: %llu, ack: %s", 2942dca9ca2dSMarkus Theil WDEV_PR_ARG, __entry->cookie, BOOL_TO_STR(__entry->ack)) 2943dca9ca2dSMarkus Theil ); 2944dca9ca2dSMarkus Theil 29456a671a50SDenis Kenzior TRACE_EVENT(cfg80211_rx_control_port, 2946a948f713SDenis Kenzior TP_PROTO(struct net_device *netdev, struct sk_buff *skb, 2947a948f713SDenis Kenzior bool unencrypted), 2948a948f713SDenis Kenzior TP_ARGS(netdev, skb, unencrypted), 29496a671a50SDenis Kenzior TP_STRUCT__entry( 29506a671a50SDenis Kenzior NETDEV_ENTRY 2951a948f713SDenis Kenzior __field(int, len) 2952a948f713SDenis Kenzior MAC_ENTRY(from) 29536a671a50SDenis Kenzior __field(u16, proto) 29546a671a50SDenis Kenzior __field(bool, unencrypted) 29556a671a50SDenis Kenzior ), 29566a671a50SDenis Kenzior TP_fast_assign( 29576a671a50SDenis Kenzior NETDEV_ASSIGN; 2958a948f713SDenis Kenzior __entry->len = skb->len; 2959a948f713SDenis Kenzior MAC_ASSIGN(from, eth_hdr(skb)->h_source); 2960a948f713SDenis Kenzior __entry->proto = be16_to_cpu(skb->protocol); 29616a671a50SDenis Kenzior __entry->unencrypted = unencrypted; 29626a671a50SDenis Kenzior ), 29638d74a623SJohannes Berg TP_printk(NETDEV_PR_FMT ", len=%d, " MAC_PR_FMT ", proto: 0x%x, unencrypted: %s", 29648d74a623SJohannes Berg NETDEV_PR_ARG, __entry->len, MAC_PR_ARG(from), 29656a671a50SDenis Kenzior __entry->proto, BOOL_TO_STR(__entry->unencrypted)) 29666a671a50SDenis Kenzior ); 29676a671a50SDenis Kenzior 29684ee3e063SBeni Lev TRACE_EVENT(cfg80211_cqm_rssi_notify, 29694ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, 2970bee427b8SAndrzej Zaborowski enum nl80211_cqm_rssi_threshold_event rssi_event, 2971bee427b8SAndrzej Zaborowski s32 rssi_level), 2972bee427b8SAndrzej Zaborowski TP_ARGS(netdev, rssi_event, rssi_level), 29734ee3e063SBeni Lev TP_STRUCT__entry( 29744ee3e063SBeni Lev NETDEV_ENTRY 29754ee3e063SBeni Lev __field(enum nl80211_cqm_rssi_threshold_event, rssi_event) 2976bee427b8SAndrzej Zaborowski __field(s32, rssi_level) 29774ee3e063SBeni Lev ), 29784ee3e063SBeni Lev TP_fast_assign( 29794ee3e063SBeni Lev NETDEV_ASSIGN; 29804ee3e063SBeni Lev __entry->rssi_event = rssi_event; 2981bee427b8SAndrzej Zaborowski __entry->rssi_level = rssi_level; 29824ee3e063SBeni Lev ), 2983bee427b8SAndrzej Zaborowski TP_printk(NETDEV_PR_FMT ", rssi event: %d, level: %d", 2984bee427b8SAndrzej Zaborowski NETDEV_PR_ARG, __entry->rssi_event, __entry->rssi_level) 29854ee3e063SBeni Lev ); 29864ee3e063SBeni Lev 2987683b6d3bSJohannes Berg TRACE_EVENT(cfg80211_reg_can_beacon, 2988174e0cd2SIlan Peer TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef, 2989923b352fSArik Nemtsov enum nl80211_iftype iftype, bool check_no_ir), 2990923b352fSArik Nemtsov TP_ARGS(wiphy, chandef, iftype, check_no_ir), 29914ee3e063SBeni Lev TP_STRUCT__entry( 29924ee3e063SBeni Lev WIPHY_ENTRY 2993683b6d3bSJohannes Berg CHAN_DEF_ENTRY 2994174e0cd2SIlan Peer __field(enum nl80211_iftype, iftype) 2995923b352fSArik Nemtsov __field(bool, check_no_ir) 29964ee3e063SBeni Lev ), 29974ee3e063SBeni Lev TP_fast_assign( 29984ee3e063SBeni Lev WIPHY_ASSIGN; 2999683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 3000174e0cd2SIlan Peer __entry->iftype = iftype; 3001923b352fSArik Nemtsov __entry->check_no_ir = check_no_ir; 30024ee3e063SBeni Lev ), 3003923b352fSArik Nemtsov TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", iftype=%d check_no_ir=%s", 3004923b352fSArik Nemtsov WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->iftype, 3005923b352fSArik Nemtsov BOOL_TO_STR(__entry->check_no_ir)) 30064ee3e063SBeni Lev ); 30074ee3e063SBeni Lev 300804f39047SSimon Wunderlich TRACE_EVENT(cfg80211_chandef_dfs_required, 300904f39047SSimon Wunderlich TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef), 301004f39047SSimon Wunderlich TP_ARGS(wiphy, chandef), 301104f39047SSimon Wunderlich TP_STRUCT__entry( 301204f39047SSimon Wunderlich WIPHY_ENTRY 301304f39047SSimon Wunderlich CHAN_DEF_ENTRY 301404f39047SSimon Wunderlich ), 301504f39047SSimon Wunderlich TP_fast_assign( 301604f39047SSimon Wunderlich WIPHY_ASSIGN; 301704f39047SSimon Wunderlich CHAN_DEF_ASSIGN(chandef); 301804f39047SSimon Wunderlich ), 301904f39047SSimon Wunderlich TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT, 302004f39047SSimon Wunderlich WIPHY_PR_ARG, CHAN_DEF_PR_ARG) 302104f39047SSimon Wunderlich ); 302204f39047SSimon Wunderlich 30234ee3e063SBeni Lev TRACE_EVENT(cfg80211_ch_switch_notify, 3024683b6d3bSJohannes Berg TP_PROTO(struct net_device *netdev, 3025683b6d3bSJohannes Berg struct cfg80211_chan_def *chandef), 3026683b6d3bSJohannes Berg TP_ARGS(netdev, chandef), 30274ee3e063SBeni Lev TP_STRUCT__entry( 30284ee3e063SBeni Lev NETDEV_ENTRY 3029683b6d3bSJohannes Berg CHAN_DEF_ENTRY 30304ee3e063SBeni Lev ), 30314ee3e063SBeni Lev TP_fast_assign( 30324ee3e063SBeni Lev NETDEV_ASSIGN; 3033683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 30344ee3e063SBeni Lev ), 3035ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT, 3036683b6d3bSJohannes Berg NETDEV_PR_ARG, CHAN_DEF_PR_ARG) 30374ee3e063SBeni Lev ); 30384ee3e063SBeni Lev 3039f8d7552eSLuciano Coelho TRACE_EVENT(cfg80211_ch_switch_started_notify, 3040f8d7552eSLuciano Coelho TP_PROTO(struct net_device *netdev, 3041f8d7552eSLuciano Coelho struct cfg80211_chan_def *chandef), 3042f8d7552eSLuciano Coelho TP_ARGS(netdev, chandef), 3043f8d7552eSLuciano Coelho TP_STRUCT__entry( 3044f8d7552eSLuciano Coelho NETDEV_ENTRY 3045f8d7552eSLuciano Coelho CHAN_DEF_ENTRY 3046f8d7552eSLuciano Coelho ), 3047f8d7552eSLuciano Coelho TP_fast_assign( 3048f8d7552eSLuciano Coelho NETDEV_ASSIGN; 3049f8d7552eSLuciano Coelho CHAN_DEF_ASSIGN(chandef); 3050f8d7552eSLuciano Coelho ), 3051f8d7552eSLuciano Coelho TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT, 3052f8d7552eSLuciano Coelho NETDEV_PR_ARG, CHAN_DEF_PR_ARG) 3053f8d7552eSLuciano Coelho ); 3054f8d7552eSLuciano Coelho 305504f39047SSimon Wunderlich TRACE_EVENT(cfg80211_radar_event, 3056*c47240cbSLorenzo Bianconi TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef, 3057*c47240cbSLorenzo Bianconi bool offchan), 3058*c47240cbSLorenzo Bianconi TP_ARGS(wiphy, chandef, offchan), 305904f39047SSimon Wunderlich TP_STRUCT__entry( 306004f39047SSimon Wunderlich WIPHY_ENTRY 306104f39047SSimon Wunderlich CHAN_DEF_ENTRY 3062*c47240cbSLorenzo Bianconi __field(bool, offchan) 306304f39047SSimon Wunderlich ), 306404f39047SSimon Wunderlich TP_fast_assign( 306504f39047SSimon Wunderlich WIPHY_ASSIGN; 306604f39047SSimon Wunderlich CHAN_DEF_ASSIGN(chandef); 3067*c47240cbSLorenzo Bianconi __entry->offchan = offchan; 306804f39047SSimon Wunderlich ), 3069*c47240cbSLorenzo Bianconi TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", offchan %d", 3070*c47240cbSLorenzo Bianconi WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->offchan) 307104f39047SSimon Wunderlich ); 307204f39047SSimon Wunderlich 307304f39047SSimon Wunderlich TRACE_EVENT(cfg80211_cac_event, 307404f39047SSimon Wunderlich TP_PROTO(struct net_device *netdev, enum nl80211_radar_event evt), 307504f39047SSimon Wunderlich TP_ARGS(netdev, evt), 307604f39047SSimon Wunderlich TP_STRUCT__entry( 307704f39047SSimon Wunderlich NETDEV_ENTRY 307804f39047SSimon Wunderlich __field(enum nl80211_radar_event, evt) 307904f39047SSimon Wunderlich ), 308004f39047SSimon Wunderlich TP_fast_assign( 308104f39047SSimon Wunderlich NETDEV_ASSIGN; 308204f39047SSimon Wunderlich __entry->evt = evt; 308304f39047SSimon Wunderlich ), 308404f39047SSimon Wunderlich TP_printk(NETDEV_PR_FMT ", event: %d", 308504f39047SSimon Wunderlich NETDEV_PR_ARG, __entry->evt) 308604f39047SSimon Wunderlich ); 308704f39047SSimon Wunderlich 30884ee3e063SBeni Lev DECLARE_EVENT_CLASS(cfg80211_rx_evt, 30894ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr), 30904ee3e063SBeni Lev TP_ARGS(netdev, addr), 30914ee3e063SBeni Lev TP_STRUCT__entry( 30924ee3e063SBeni Lev NETDEV_ENTRY 30934ee3e063SBeni Lev MAC_ENTRY(addr) 30944ee3e063SBeni Lev ), 30954ee3e063SBeni Lev TP_fast_assign( 30964ee3e063SBeni Lev NETDEV_ASSIGN; 30974ee3e063SBeni Lev MAC_ASSIGN(addr, addr); 30984ee3e063SBeni Lev ), 3099ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT, NETDEV_PR_ARG, MAC_PR_ARG(addr)) 31004ee3e063SBeni Lev ); 31014ee3e063SBeni Lev 31024ee3e063SBeni Lev DEFINE_EVENT(cfg80211_rx_evt, cfg80211_rx_spurious_frame, 31034ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr), 31044ee3e063SBeni Lev TP_ARGS(netdev, addr) 31054ee3e063SBeni Lev ); 31064ee3e063SBeni Lev 31074ee3e063SBeni Lev DEFINE_EVENT(cfg80211_rx_evt, cfg80211_rx_unexpected_4addr_frame, 31084ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr), 31094ee3e063SBeni Lev TP_ARGS(netdev, addr) 31104ee3e063SBeni Lev ); 31114ee3e063SBeni Lev 3112fe94f3a4SAntonio Quartulli TRACE_EVENT(cfg80211_ibss_joined, 3113fe94f3a4SAntonio Quartulli TP_PROTO(struct net_device *netdev, const u8 *bssid, 3114fe94f3a4SAntonio Quartulli struct ieee80211_channel *channel), 3115fe94f3a4SAntonio Quartulli TP_ARGS(netdev, bssid, channel), 3116fe94f3a4SAntonio Quartulli TP_STRUCT__entry( 3117fe94f3a4SAntonio Quartulli NETDEV_ENTRY 3118fe94f3a4SAntonio Quartulli MAC_ENTRY(bssid) 3119fe94f3a4SAntonio Quartulli CHAN_ENTRY 3120fe94f3a4SAntonio Quartulli ), 3121fe94f3a4SAntonio Quartulli TP_fast_assign( 3122fe94f3a4SAntonio Quartulli NETDEV_ASSIGN; 3123fe94f3a4SAntonio Quartulli MAC_ASSIGN(bssid, bssid); 3124fe94f3a4SAntonio Quartulli CHAN_ASSIGN(channel); 3125fe94f3a4SAntonio Quartulli ), 3126fe94f3a4SAntonio Quartulli TP_printk(NETDEV_PR_FMT ", bssid: " MAC_PR_FMT ", " CHAN_PR_FMT, 3127fe94f3a4SAntonio Quartulli NETDEV_PR_ARG, MAC_PR_ARG(bssid), CHAN_PR_ARG) 3128fe94f3a4SAntonio Quartulli ); 3129fe94f3a4SAntonio Quartulli 31304ee3e063SBeni Lev TRACE_EVENT(cfg80211_probe_status, 31314ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr, u64 cookie, 31324ee3e063SBeni Lev bool acked), 31334ee3e063SBeni Lev TP_ARGS(netdev, addr, cookie, acked), 31344ee3e063SBeni Lev TP_STRUCT__entry( 31354ee3e063SBeni Lev NETDEV_ENTRY 31364ee3e063SBeni Lev MAC_ENTRY(addr) 31374ee3e063SBeni Lev __field(u64, cookie) 31384ee3e063SBeni Lev __field(bool, acked) 31394ee3e063SBeni Lev ), 31404ee3e063SBeni Lev TP_fast_assign( 31414ee3e063SBeni Lev NETDEV_ASSIGN; 31424ee3e063SBeni Lev MAC_ASSIGN(addr, addr); 31434ee3e063SBeni Lev __entry->cookie = cookie; 31444ee3e063SBeni Lev __entry->acked = acked; 31454ee3e063SBeni Lev ), 3146ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT " addr:" MAC_PR_FMT ", cookie: %llu, acked: %s", 31474ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(addr), __entry->cookie, 31484ee3e063SBeni Lev BOOL_TO_STR(__entry->acked)) 31494ee3e063SBeni Lev ); 31504ee3e063SBeni Lev 31514ee3e063SBeni Lev TRACE_EVENT(cfg80211_cqm_pktloss_notify, 31524ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *peer, u32 num_packets), 31534ee3e063SBeni Lev TP_ARGS(netdev, peer, num_packets), 31544ee3e063SBeni Lev TP_STRUCT__entry( 31554ee3e063SBeni Lev NETDEV_ENTRY 31564ee3e063SBeni Lev MAC_ENTRY(peer) 31574ee3e063SBeni Lev __field(u32, num_packets) 31584ee3e063SBeni Lev ), 31594ee3e063SBeni Lev TP_fast_assign( 31604ee3e063SBeni Lev NETDEV_ASSIGN; 31614ee3e063SBeni Lev MAC_ASSIGN(peer, peer); 31624ee3e063SBeni Lev __entry->num_packets = num_packets; 31634ee3e063SBeni Lev ), 31644ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", peer: " MAC_PR_FMT ", num of lost packets: %u", 31654ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->num_packets) 31664ee3e063SBeni Lev ); 31674ee3e063SBeni Lev 31684ee3e063SBeni Lev DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_gtk_rekey_notify, 31694ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 31704ee3e063SBeni Lev TP_ARGS(netdev, macaddr) 31714ee3e063SBeni Lev ); 31724ee3e063SBeni Lev 31734ee3e063SBeni Lev TRACE_EVENT(cfg80211_pmksa_candidate_notify, 31744ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, int index, const u8 *bssid, 31754ee3e063SBeni Lev bool preauth), 31764ee3e063SBeni Lev TP_ARGS(netdev, index, bssid, preauth), 31774ee3e063SBeni Lev TP_STRUCT__entry( 31784ee3e063SBeni Lev NETDEV_ENTRY 31794ee3e063SBeni Lev __field(int, index) 31804ee3e063SBeni Lev MAC_ENTRY(bssid) 31814ee3e063SBeni Lev __field(bool, preauth) 31824ee3e063SBeni Lev ), 31834ee3e063SBeni Lev TP_fast_assign( 31844ee3e063SBeni Lev NETDEV_ASSIGN; 31854ee3e063SBeni Lev __entry->index = index; 31864ee3e063SBeni Lev MAC_ASSIGN(bssid, bssid); 31874ee3e063SBeni Lev __entry->preauth = preauth; 31884ee3e063SBeni Lev ), 31894ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", index:%d, bssid: " MAC_PR_FMT ", pre auth: %s", 31904ee3e063SBeni Lev NETDEV_PR_ARG, __entry->index, MAC_PR_ARG(bssid), 31914ee3e063SBeni Lev BOOL_TO_STR(__entry->preauth)) 31924ee3e063SBeni Lev ); 31934ee3e063SBeni Lev 31944ee3e063SBeni Lev TRACE_EVENT(cfg80211_report_obss_beacon, 31954ee3e063SBeni Lev TP_PROTO(struct wiphy *wiphy, const u8 *frame, size_t len, 31964ee3e063SBeni Lev int freq, int sig_dbm), 31974ee3e063SBeni Lev TP_ARGS(wiphy, frame, len, freq, sig_dbm), 31984ee3e063SBeni Lev TP_STRUCT__entry( 31994ee3e063SBeni Lev WIPHY_ENTRY 32004ee3e063SBeni Lev __field(int, freq) 32014ee3e063SBeni Lev __field(int, sig_dbm) 32024ee3e063SBeni Lev ), 32034ee3e063SBeni Lev TP_fast_assign( 32044ee3e063SBeni Lev WIPHY_ASSIGN; 32054ee3e063SBeni Lev __entry->freq = freq; 32064ee3e063SBeni Lev __entry->sig_dbm = sig_dbm; 32074ee3e063SBeni Lev ), 3208e76fede8SThomas Pedersen TP_printk(WIPHY_PR_FMT ", freq: "KHZ_F", sig_dbm: %d", 3209e76fede8SThomas Pedersen WIPHY_PR_ARG, PR_KHZ(__entry->freq), __entry->sig_dbm) 32104ee3e063SBeni Lev ); 32114ee3e063SBeni Lev 32123475b094SJouni Malinen TRACE_EVENT(cfg80211_tdls_oper_request, 32133475b094SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *peer, 32143475b094SJouni Malinen enum nl80211_tdls_operation oper, u16 reason_code), 32153475b094SJouni Malinen TP_ARGS(wiphy, netdev, peer, oper, reason_code), 32163475b094SJouni Malinen TP_STRUCT__entry( 32173475b094SJouni Malinen WIPHY_ENTRY 32183475b094SJouni Malinen NETDEV_ENTRY 32193475b094SJouni Malinen MAC_ENTRY(peer) 32203475b094SJouni Malinen __field(enum nl80211_tdls_operation, oper) 32213475b094SJouni Malinen __field(u16, reason_code) 32223475b094SJouni Malinen ), 32233475b094SJouni Malinen TP_fast_assign( 32243475b094SJouni Malinen WIPHY_ASSIGN; 32253475b094SJouni Malinen NETDEV_ASSIGN; 32263475b094SJouni Malinen MAC_ASSIGN(peer, peer); 32273475b094SJouni Malinen __entry->oper = oper; 32283475b094SJouni Malinen __entry->reason_code = reason_code; 32293475b094SJouni Malinen ), 32303475b094SJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT ", oper: %d, reason_code %u", 32313475b094SJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->oper, 32323475b094SJouni Malinen __entry->reason_code) 32333475b094SJouni Malinen ); 32343475b094SJouni Malinen 32354ee3e063SBeni Lev TRACE_EVENT(cfg80211_scan_done, 32361d76250bSAvraham Stern TP_PROTO(struct cfg80211_scan_request *request, 32371d76250bSAvraham Stern struct cfg80211_scan_info *info), 32381d76250bSAvraham Stern TP_ARGS(request, info), 32394ee3e063SBeni Lev TP_STRUCT__entry( 32404ee3e063SBeni Lev __field(u32, n_channels) 32414ee3e063SBeni Lev __dynamic_array(u8, ie, request ? request->ie_len : 0) 324257fbcce3SJohannes Berg __array(u32, rates, NUM_NL80211_BANDS) 32434ee3e063SBeni Lev __field(u32, wdev_id) 32444ee3e063SBeni Lev MAC_ENTRY(wiphy_mac) 32454ee3e063SBeni Lev __field(bool, no_cck) 32464ee3e063SBeni Lev __field(bool, aborted) 32471d76250bSAvraham Stern __field(u64, scan_start_tsf) 32481d76250bSAvraham Stern MAC_ENTRY(tsf_bssid) 32494ee3e063SBeni Lev ), 32504ee3e063SBeni Lev TP_fast_assign( 32514ee3e063SBeni Lev if (request) { 32524ee3e063SBeni Lev memcpy(__get_dynamic_array(ie), request->ie, 32534ee3e063SBeni Lev request->ie_len); 32544ee3e063SBeni Lev memcpy(__entry->rates, request->rates, 325557fbcce3SJohannes Berg NUM_NL80211_BANDS); 32564ee3e063SBeni Lev __entry->wdev_id = request->wdev ? 32574ee3e063SBeni Lev request->wdev->identifier : 0; 32584ee3e063SBeni Lev if (request->wiphy) 32594ee3e063SBeni Lev MAC_ASSIGN(wiphy_mac, 32604ee3e063SBeni Lev request->wiphy->perm_addr); 32614ee3e063SBeni Lev __entry->no_cck = request->no_cck; 32624ee3e063SBeni Lev } 32631d76250bSAvraham Stern if (info) { 32641d76250bSAvraham Stern __entry->aborted = info->aborted; 32651d76250bSAvraham Stern __entry->scan_start_tsf = info->scan_start_tsf; 32661d76250bSAvraham Stern MAC_ASSIGN(tsf_bssid, info->tsf_bssid); 32671d76250bSAvraham Stern } 32684ee3e063SBeni Lev ), 32691d76250bSAvraham Stern TP_printk("aborted: %s, scan start (TSF): %llu, tsf_bssid: " MAC_PR_FMT, 32701d76250bSAvraham Stern BOOL_TO_STR(__entry->aborted), 32711d76250bSAvraham Stern (unsigned long long)__entry->scan_start_tsf, 32721d76250bSAvraham Stern MAC_PR_ARG(tsf_bssid)) 32734ee3e063SBeni Lev ); 32744ee3e063SBeni Lev 3275b34939b9SArend Van Spriel DECLARE_EVENT_CLASS(wiphy_id_evt, 3276b34939b9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, u64 id), 3277b34939b9SArend Van Spriel TP_ARGS(wiphy, id), 3278b34939b9SArend Van Spriel TP_STRUCT__entry( 3279b34939b9SArend Van Spriel WIPHY_ENTRY 3280b34939b9SArend Van Spriel __field(u64, id) 3281b34939b9SArend Van Spriel ), 3282b34939b9SArend Van Spriel TP_fast_assign( 3283b34939b9SArend Van Spriel WIPHY_ASSIGN; 3284b34939b9SArend Van Spriel __entry->id = id; 3285b34939b9SArend Van Spriel ), 3286b34939b9SArend Van Spriel TP_printk(WIPHY_PR_FMT ", id: %llu", WIPHY_PR_ARG, __entry->id) 32874ee3e063SBeni Lev ); 32884ee3e063SBeni Lev 3289b34939b9SArend Van Spriel DEFINE_EVENT(wiphy_id_evt, cfg80211_sched_scan_stopped, 3290b34939b9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, u64 id), 3291b34939b9SArend Van Spriel TP_ARGS(wiphy, id) 3292b34939b9SArend Van Spriel ); 3293b34939b9SArend Van Spriel 3294b34939b9SArend Van Spriel DEFINE_EVENT(wiphy_id_evt, cfg80211_sched_scan_results, 3295b34939b9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, u64 id), 3296b34939b9SArend Van Spriel TP_ARGS(wiphy, id) 32974ee3e063SBeni Lev ); 32984ee3e063SBeni Lev 32994ee3e063SBeni Lev TRACE_EVENT(cfg80211_get_bss, 33004ee3e063SBeni Lev TP_PROTO(struct wiphy *wiphy, struct ieee80211_channel *channel, 33014ee3e063SBeni Lev const u8 *bssid, const u8 *ssid, size_t ssid_len, 33026eb18137SDedy Lansky enum ieee80211_bss_type bss_type, 33036eb18137SDedy Lansky enum ieee80211_privacy privacy), 33046eb18137SDedy Lansky TP_ARGS(wiphy, channel, bssid, ssid, ssid_len, bss_type, privacy), 33054ee3e063SBeni Lev TP_STRUCT__entry( 33064ee3e063SBeni Lev WIPHY_ENTRY 33074ee3e063SBeni Lev CHAN_ENTRY 33084ee3e063SBeni Lev MAC_ENTRY(bssid) 33094ee3e063SBeni Lev __dynamic_array(u8, ssid, ssid_len) 33106eb18137SDedy Lansky __field(enum ieee80211_bss_type, bss_type) 33116eb18137SDedy Lansky __field(enum ieee80211_privacy, privacy) 33124ee3e063SBeni Lev ), 33134ee3e063SBeni Lev TP_fast_assign( 33144ee3e063SBeni Lev WIPHY_ASSIGN; 33154ee3e063SBeni Lev CHAN_ASSIGN(channel); 33164ee3e063SBeni Lev MAC_ASSIGN(bssid, bssid); 33174ee3e063SBeni Lev memcpy(__get_dynamic_array(ssid), ssid, ssid_len); 33186eb18137SDedy Lansky __entry->bss_type = bss_type; 33196eb18137SDedy Lansky __entry->privacy = privacy; 33204ee3e063SBeni Lev ), 33216eb18137SDedy Lansky TP_printk(WIPHY_PR_FMT ", " CHAN_PR_FMT ", " MAC_PR_FMT 33226eb18137SDedy Lansky ", buf: %#.2x, bss_type: %d, privacy: %d", 33236eb18137SDedy Lansky WIPHY_PR_ARG, CHAN_PR_ARG, MAC_PR_ARG(bssid), 33246eb18137SDedy Lansky ((u8 *)__get_dynamic_array(ssid))[0], __entry->bss_type, 33256eb18137SDedy Lansky __entry->privacy) 33264ee3e063SBeni Lev ); 33274ee3e063SBeni Lev 33286e19bc4bSDmitry Shmidt TRACE_EVENT(cfg80211_inform_bss_frame, 33296e19bc4bSDmitry Shmidt TP_PROTO(struct wiphy *wiphy, struct cfg80211_inform_bss *data, 33306e19bc4bSDmitry Shmidt struct ieee80211_mgmt *mgmt, size_t len), 33316e19bc4bSDmitry Shmidt TP_ARGS(wiphy, data, mgmt, len), 33324ee3e063SBeni Lev TP_STRUCT__entry( 33334ee3e063SBeni Lev WIPHY_ENTRY 33344ee3e063SBeni Lev CHAN_ENTRY 3335dcd6eac1SSimon Wunderlich __field(enum nl80211_bss_scan_width, scan_width) 33364ee3e063SBeni Lev __dynamic_array(u8, mgmt, len) 33374ee3e063SBeni Lev __field(s32, signal) 33386e19bc4bSDmitry Shmidt __field(u64, ts_boottime) 33391d76250bSAvraham Stern __field(u64, parent_tsf) 33401d76250bSAvraham Stern MAC_ENTRY(parent_bssid) 33414ee3e063SBeni Lev ), 33424ee3e063SBeni Lev TP_fast_assign( 33434ee3e063SBeni Lev WIPHY_ASSIGN; 33446e19bc4bSDmitry Shmidt CHAN_ASSIGN(data->chan); 33456e19bc4bSDmitry Shmidt __entry->scan_width = data->scan_width; 33464ee3e063SBeni Lev if (mgmt) 33474ee3e063SBeni Lev memcpy(__get_dynamic_array(mgmt), mgmt, len); 33486e19bc4bSDmitry Shmidt __entry->signal = data->signal; 33496e19bc4bSDmitry Shmidt __entry->ts_boottime = data->boottime_ns; 33501d76250bSAvraham Stern __entry->parent_tsf = data->parent_tsf; 33511d76250bSAvraham Stern MAC_ASSIGN(parent_bssid, data->parent_bssid); 33524ee3e063SBeni Lev ), 33531d76250bSAvraham Stern TP_printk(WIPHY_PR_FMT ", " CHAN_PR_FMT 33541d76250bSAvraham Stern "(scan_width: %d) signal: %d, tsb:%llu, detect_tsf:%llu, tsf_bssid: " 33551d76250bSAvraham Stern MAC_PR_FMT, WIPHY_PR_ARG, CHAN_PR_ARG, __entry->scan_width, 33561d76250bSAvraham Stern __entry->signal, (unsigned long long)__entry->ts_boottime, 33571d76250bSAvraham Stern (unsigned long long)__entry->parent_tsf, 33581d76250bSAvraham Stern MAC_PR_ARG(parent_bssid)) 33594ee3e063SBeni Lev ); 33604ee3e063SBeni Lev 33614ee3e063SBeni Lev DECLARE_EVENT_CLASS(cfg80211_bss_evt, 33624ee3e063SBeni Lev TP_PROTO(struct cfg80211_bss *pub), 33634ee3e063SBeni Lev TP_ARGS(pub), 33644ee3e063SBeni Lev TP_STRUCT__entry( 33654ee3e063SBeni Lev MAC_ENTRY(bssid) 33664ee3e063SBeni Lev CHAN_ENTRY 33674ee3e063SBeni Lev ), 33684ee3e063SBeni Lev TP_fast_assign( 33694ee3e063SBeni Lev MAC_ASSIGN(bssid, pub->bssid); 33704ee3e063SBeni Lev CHAN_ASSIGN(pub->channel); 33714ee3e063SBeni Lev ), 3372ec816087SJohannes Berg TP_printk(MAC_PR_FMT ", " CHAN_PR_FMT, MAC_PR_ARG(bssid), CHAN_PR_ARG) 33734ee3e063SBeni Lev ); 33744ee3e063SBeni Lev 33754ee3e063SBeni Lev DEFINE_EVENT(cfg80211_bss_evt, cfg80211_return_bss, 33764ee3e063SBeni Lev TP_PROTO(struct cfg80211_bss *pub), 33774ee3e063SBeni Lev TP_ARGS(pub) 33784ee3e063SBeni Lev ); 33794ee3e063SBeni Lev 33804ee3e063SBeni Lev TRACE_EVENT(cfg80211_return_uint, 33814ee3e063SBeni Lev TP_PROTO(unsigned int ret), 33824ee3e063SBeni Lev TP_ARGS(ret), 33834ee3e063SBeni Lev TP_STRUCT__entry( 33844ee3e063SBeni Lev __field(unsigned int, ret) 33854ee3e063SBeni Lev ), 33864ee3e063SBeni Lev TP_fast_assign( 33874ee3e063SBeni Lev __entry->ret = ret; 33884ee3e063SBeni Lev ), 33894ee3e063SBeni Lev TP_printk("ret: %d", __entry->ret) 33904ee3e063SBeni Lev ); 33914ee3e063SBeni Lev 33924ee3e063SBeni Lev TRACE_EVENT(cfg80211_return_u32, 33934ee3e063SBeni Lev TP_PROTO(u32 ret), 33944ee3e063SBeni Lev TP_ARGS(ret), 33954ee3e063SBeni Lev TP_STRUCT__entry( 33964ee3e063SBeni Lev __field(u32, ret) 33974ee3e063SBeni Lev ), 33984ee3e063SBeni Lev TP_fast_assign( 33994ee3e063SBeni Lev __entry->ret = ret; 34004ee3e063SBeni Lev ), 34014ee3e063SBeni Lev TP_printk("ret: %u", __entry->ret) 34024ee3e063SBeni Lev ); 34034ee3e063SBeni Lev 3404cd8f7cb4SJohannes Berg TRACE_EVENT(cfg80211_report_wowlan_wakeup, 3405cd8f7cb4SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 3406cd8f7cb4SJohannes Berg struct cfg80211_wowlan_wakeup *wakeup), 3407cd8f7cb4SJohannes Berg TP_ARGS(wiphy, wdev, wakeup), 3408cd8f7cb4SJohannes Berg TP_STRUCT__entry( 3409cd8f7cb4SJohannes Berg WIPHY_ENTRY 3410cd8f7cb4SJohannes Berg WDEV_ENTRY 3411a92eecbbSJohannes Berg __field(bool, non_wireless) 3412cd8f7cb4SJohannes Berg __field(bool, disconnect) 3413cd8f7cb4SJohannes Berg __field(bool, magic_pkt) 3414cd8f7cb4SJohannes Berg __field(bool, gtk_rekey_failure) 3415cd8f7cb4SJohannes Berg __field(bool, eap_identity_req) 3416cd8f7cb4SJohannes Berg __field(bool, four_way_handshake) 3417cd8f7cb4SJohannes Berg __field(bool, rfkill_release) 3418cd8f7cb4SJohannes Berg __field(s32, pattern_idx) 3419cd8f7cb4SJohannes Berg __field(u32, packet_len) 3420a92eecbbSJohannes Berg __dynamic_array(u8, packet, 3421a92eecbbSJohannes Berg wakeup ? wakeup->packet_present_len : 0) 3422cd8f7cb4SJohannes Berg ), 3423cd8f7cb4SJohannes Berg TP_fast_assign( 3424cd8f7cb4SJohannes Berg WIPHY_ASSIGN; 3425cd8f7cb4SJohannes Berg WDEV_ASSIGN; 3426a92eecbbSJohannes Berg __entry->non_wireless = !wakeup; 3427a92eecbbSJohannes Berg __entry->disconnect = wakeup ? wakeup->disconnect : false; 3428a92eecbbSJohannes Berg __entry->magic_pkt = wakeup ? wakeup->magic_pkt : false; 3429a92eecbbSJohannes Berg __entry->gtk_rekey_failure = wakeup ? wakeup->gtk_rekey_failure : false; 3430a92eecbbSJohannes Berg __entry->eap_identity_req = wakeup ? wakeup->eap_identity_req : false; 3431a92eecbbSJohannes Berg __entry->four_way_handshake = wakeup ? wakeup->four_way_handshake : false; 3432a92eecbbSJohannes Berg __entry->rfkill_release = wakeup ? wakeup->rfkill_release : false; 3433a92eecbbSJohannes Berg __entry->pattern_idx = wakeup ? wakeup->pattern_idx : false; 3434a92eecbbSJohannes Berg __entry->packet_len = wakeup ? wakeup->packet_len : false; 3435a92eecbbSJohannes Berg if (wakeup && wakeup->packet && wakeup->packet_present_len) 3436cd8f7cb4SJohannes Berg memcpy(__get_dynamic_array(packet), wakeup->packet, 3437cd8f7cb4SJohannes Berg wakeup->packet_present_len); 3438cd8f7cb4SJohannes Berg ), 3439cd8f7cb4SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, WIPHY_PR_ARG, WDEV_PR_ARG) 3440cd8f7cb4SJohannes Berg ); 3441cd8f7cb4SJohannes Berg 3442355199e0SJouni Malinen TRACE_EVENT(cfg80211_ft_event, 3443355199e0SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3444355199e0SJouni Malinen struct cfg80211_ft_event_params *ft_event), 3445355199e0SJouni Malinen TP_ARGS(wiphy, netdev, ft_event), 3446355199e0SJouni Malinen TP_STRUCT__entry( 3447355199e0SJouni Malinen WIPHY_ENTRY 3448355199e0SJouni Malinen NETDEV_ENTRY 3449355199e0SJouni Malinen __dynamic_array(u8, ies, ft_event->ies_len) 3450355199e0SJouni Malinen MAC_ENTRY(target_ap) 3451355199e0SJouni Malinen __dynamic_array(u8, ric_ies, ft_event->ric_ies_len) 3452355199e0SJouni Malinen ), 3453355199e0SJouni Malinen TP_fast_assign( 3454355199e0SJouni Malinen WIPHY_ASSIGN; 3455355199e0SJouni Malinen NETDEV_ASSIGN; 3456355199e0SJouni Malinen if (ft_event->ies) 3457355199e0SJouni Malinen memcpy(__get_dynamic_array(ies), ft_event->ies, 3458355199e0SJouni Malinen ft_event->ies_len); 3459355199e0SJouni Malinen MAC_ASSIGN(target_ap, ft_event->target_ap); 3460355199e0SJouni Malinen if (ft_event->ric_ies) 3461355199e0SJouni Malinen memcpy(__get_dynamic_array(ric_ies), ft_event->ric_ies, 3462355199e0SJouni Malinen ft_event->ric_ies_len); 3463355199e0SJouni Malinen ), 3464355199e0SJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", target_ap: " MAC_PR_FMT, 3465355199e0SJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(target_ap)) 3466355199e0SJouni Malinen ); 3467355199e0SJouni Malinen 3468f04c2203SMichal Kazior TRACE_EVENT(cfg80211_stop_iface, 3469f04c2203SMichal Kazior TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 3470f04c2203SMichal Kazior TP_ARGS(wiphy, wdev), 3471f04c2203SMichal Kazior TP_STRUCT__entry( 3472f04c2203SMichal Kazior WIPHY_ENTRY 3473f04c2203SMichal Kazior WDEV_ENTRY 3474f04c2203SMichal Kazior ), 3475f04c2203SMichal Kazior TP_fast_assign( 3476f04c2203SMichal Kazior WIPHY_ASSIGN; 3477f04c2203SMichal Kazior WDEV_ASSIGN; 3478f04c2203SMichal Kazior ), 3479f04c2203SMichal Kazior TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, 3480f04c2203SMichal Kazior WIPHY_PR_ARG, WDEV_PR_ARG) 3481f04c2203SMichal Kazior ); 34829bb7e0f2SJohannes Berg 34839bb7e0f2SJohannes Berg TRACE_EVENT(cfg80211_pmsr_report, 34849bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 34859bb7e0f2SJohannes Berg u64 cookie, const u8 *addr), 34869bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie, addr), 34879bb7e0f2SJohannes Berg TP_STRUCT__entry( 34889bb7e0f2SJohannes Berg WIPHY_ENTRY 34899bb7e0f2SJohannes Berg WDEV_ENTRY 34909bb7e0f2SJohannes Berg __field(u64, cookie) 34919bb7e0f2SJohannes Berg MAC_ENTRY(addr) 34929bb7e0f2SJohannes Berg ), 34939bb7e0f2SJohannes Berg TP_fast_assign( 34949bb7e0f2SJohannes Berg WIPHY_ASSIGN; 34959bb7e0f2SJohannes Berg WDEV_ASSIGN; 34969bb7e0f2SJohannes Berg __entry->cookie = cookie; 34979bb7e0f2SJohannes Berg MAC_ASSIGN(addr, addr); 34989bb7e0f2SJohannes Berg ), 34999bb7e0f2SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie:%lld, " MAC_PR_FMT, 35009bb7e0f2SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, 35019bb7e0f2SJohannes Berg (unsigned long long)__entry->cookie, 35029bb7e0f2SJohannes Berg MAC_PR_ARG(addr)) 35039bb7e0f2SJohannes Berg ); 35049bb7e0f2SJohannes Berg 35059bb7e0f2SJohannes Berg TRACE_EVENT(cfg80211_pmsr_complete, 35069bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 35079bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie), 35089bb7e0f2SJohannes Berg TP_STRUCT__entry( 35099bb7e0f2SJohannes Berg WIPHY_ENTRY 35109bb7e0f2SJohannes Berg WDEV_ENTRY 35119bb7e0f2SJohannes Berg __field(u64, cookie) 35129bb7e0f2SJohannes Berg ), 35139bb7e0f2SJohannes Berg TP_fast_assign( 35149bb7e0f2SJohannes Berg WIPHY_ASSIGN; 35159bb7e0f2SJohannes Berg WDEV_ASSIGN; 35169bb7e0f2SJohannes Berg __entry->cookie = cookie; 35179bb7e0f2SJohannes Berg ), 35189bb7e0f2SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie:%lld", 35199bb7e0f2SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, 35209bb7e0f2SJohannes Berg (unsigned long long)__entry->cookie) 35219bb7e0f2SJohannes Berg ); 3522cb74e977SSunil Dutt 3523cb74e977SSunil Dutt TRACE_EVENT(rdev_update_owe_info, 3524cb74e977SSunil Dutt TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3525cb74e977SSunil Dutt struct cfg80211_update_owe_info *owe_info), 3526cb74e977SSunil Dutt TP_ARGS(wiphy, netdev, owe_info), 3527cb74e977SSunil Dutt TP_STRUCT__entry(WIPHY_ENTRY 3528cb74e977SSunil Dutt NETDEV_ENTRY 3529cb74e977SSunil Dutt MAC_ENTRY(peer) 3530cb74e977SSunil Dutt __field(u16, status) 3531cb74e977SSunil Dutt __dynamic_array(u8, ie, owe_info->ie_len)), 3532cb74e977SSunil Dutt TP_fast_assign(WIPHY_ASSIGN; 3533cb74e977SSunil Dutt NETDEV_ASSIGN; 3534cb74e977SSunil Dutt MAC_ASSIGN(peer, owe_info->peer); 3535cb74e977SSunil Dutt __entry->status = owe_info->status; 3536cb74e977SSunil Dutt memcpy(__get_dynamic_array(ie), 3537cb74e977SSunil Dutt owe_info->ie, owe_info->ie_len);), 3538cb74e977SSunil Dutt TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT 3539cb74e977SSunil Dutt " status %d", WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), 3540cb74e977SSunil Dutt __entry->status) 3541cb74e977SSunil Dutt ); 3542cb74e977SSunil Dutt 3543cb74e977SSunil Dutt TRACE_EVENT(cfg80211_update_owe_info_event, 3544cb74e977SSunil Dutt TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3545cb74e977SSunil Dutt struct cfg80211_update_owe_info *owe_info), 3546cb74e977SSunil Dutt TP_ARGS(wiphy, netdev, owe_info), 3547cb74e977SSunil Dutt TP_STRUCT__entry(WIPHY_ENTRY 3548cb74e977SSunil Dutt NETDEV_ENTRY 3549cb74e977SSunil Dutt MAC_ENTRY(peer) 3550cb74e977SSunil Dutt __dynamic_array(u8, ie, owe_info->ie_len)), 3551cb74e977SSunil Dutt TP_fast_assign(WIPHY_ASSIGN; 3552cb74e977SSunil Dutt NETDEV_ASSIGN; 3553cb74e977SSunil Dutt MAC_ASSIGN(peer, owe_info->peer); 3554cb74e977SSunil Dutt memcpy(__get_dynamic_array(ie), owe_info->ie, 3555cb74e977SSunil Dutt owe_info->ie_len);), 3556cb74e977SSunil Dutt TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT, 3557cb74e977SSunil Dutt WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer)) 3558cb74e977SSunil Dutt ); 3559cb74e977SSunil Dutt 35605ab92e7fSRajkumar Manoharan TRACE_EVENT(rdev_probe_mesh_link, 35615ab92e7fSRajkumar Manoharan TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 35625ab92e7fSRajkumar Manoharan const u8 *dest, const u8 *buf, size_t len), 35635ab92e7fSRajkumar Manoharan TP_ARGS(wiphy, netdev, dest, buf, len), 35645ab92e7fSRajkumar Manoharan TP_STRUCT__entry( 35655ab92e7fSRajkumar Manoharan WIPHY_ENTRY 35665ab92e7fSRajkumar Manoharan NETDEV_ENTRY 35675ab92e7fSRajkumar Manoharan MAC_ENTRY(dest) 35685ab92e7fSRajkumar Manoharan ), 35695ab92e7fSRajkumar Manoharan TP_fast_assign( 35705ab92e7fSRajkumar Manoharan WIPHY_ASSIGN; 35715ab92e7fSRajkumar Manoharan NETDEV_ASSIGN; 35725ab92e7fSRajkumar Manoharan MAC_ASSIGN(dest, dest); 35735ab92e7fSRajkumar Manoharan ), 35745ab92e7fSRajkumar Manoharan TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT, 35755ab92e7fSRajkumar Manoharan WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(dest)) 35765ab92e7fSRajkumar Manoharan ); 35775ab92e7fSRajkumar Manoharan 357877f576deSTamizh chelvam TRACE_EVENT(rdev_set_tid_config, 357977f576deSTamizh chelvam TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 35803710a8a6SJohannes Berg struct cfg80211_tid_config *tid_conf), 358177f576deSTamizh chelvam TP_ARGS(wiphy, netdev, tid_conf), 358277f576deSTamizh chelvam TP_STRUCT__entry( 358377f576deSTamizh chelvam WIPHY_ENTRY 358477f576deSTamizh chelvam NETDEV_ENTRY 358577f576deSTamizh chelvam MAC_ENTRY(peer) 358677f576deSTamizh chelvam ), 358777f576deSTamizh chelvam TP_fast_assign( 358877f576deSTamizh chelvam WIPHY_ASSIGN; 358977f576deSTamizh chelvam NETDEV_ASSIGN; 359077f576deSTamizh chelvam MAC_ASSIGN(peer, tid_conf->peer); 359177f576deSTamizh chelvam ), 359277f576deSTamizh chelvam TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT, 359377f576deSTamizh chelvam WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer)) 359477f576deSTamizh chelvam ); 359577f576deSTamizh chelvam 359677f576deSTamizh chelvam TRACE_EVENT(rdev_reset_tid_config, 359777f576deSTamizh chelvam TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 35983710a8a6SJohannes Berg const u8 *peer, u8 tids), 35993710a8a6SJohannes Berg TP_ARGS(wiphy, netdev, peer, tids), 360077f576deSTamizh chelvam TP_STRUCT__entry( 360177f576deSTamizh chelvam WIPHY_ENTRY 360277f576deSTamizh chelvam NETDEV_ENTRY 360377f576deSTamizh chelvam MAC_ENTRY(peer) 36043710a8a6SJohannes Berg __field(u8, tids) 360577f576deSTamizh chelvam ), 360677f576deSTamizh chelvam TP_fast_assign( 360777f576deSTamizh chelvam WIPHY_ASSIGN; 360877f576deSTamizh chelvam NETDEV_ASSIGN; 360977f576deSTamizh chelvam MAC_ASSIGN(peer, peer); 36103710a8a6SJohannes Berg __entry->tids = tids; 361177f576deSTamizh chelvam ), 36123710a8a6SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT ", tids: 0x%x", 36133710a8a6SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->tids) 361477f576deSTamizh chelvam ); 36156bdb68ceSCarl Huang 36166bdb68ceSCarl Huang TRACE_EVENT(rdev_set_sar_specs, 36176bdb68ceSCarl Huang TP_PROTO(struct wiphy *wiphy, struct cfg80211_sar_specs *sar), 36186bdb68ceSCarl Huang TP_ARGS(wiphy, sar), 36196bdb68ceSCarl Huang TP_STRUCT__entry( 36206bdb68ceSCarl Huang WIPHY_ENTRY 36216bdb68ceSCarl Huang __field(u16, type) 36226bdb68ceSCarl Huang __field(u16, num) 36236bdb68ceSCarl Huang ), 36246bdb68ceSCarl Huang TP_fast_assign( 36256bdb68ceSCarl Huang WIPHY_ASSIGN; 36266bdb68ceSCarl Huang __entry->type = sar->type; 36276bdb68ceSCarl Huang __entry->num = sar->num_sub_specs; 36286bdb68ceSCarl Huang 36296bdb68ceSCarl Huang ), 36306bdb68ceSCarl Huang TP_printk(WIPHY_PR_FMT ", Set type:%d, num_specs:%d", 36316bdb68ceSCarl Huang WIPHY_PR_ARG, __entry->type, __entry->num) 36326bdb68ceSCarl Huang ); 36336bdb68ceSCarl Huang 36340d2ab3aeSJohn Crispin TRACE_EVENT(rdev_color_change, 36350d2ab3aeSJohn Crispin TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 36360d2ab3aeSJohn Crispin struct cfg80211_color_change_settings *params), 36370d2ab3aeSJohn Crispin TP_ARGS(wiphy, netdev, params), 36380d2ab3aeSJohn Crispin TP_STRUCT__entry( 36390d2ab3aeSJohn Crispin WIPHY_ENTRY 36400d2ab3aeSJohn Crispin NETDEV_ENTRY 36410d2ab3aeSJohn Crispin __field(u8, count) 36420d2ab3aeSJohn Crispin __field(u16, bcn_ofs) 36430d2ab3aeSJohn Crispin __field(u16, pres_ofs) 36440d2ab3aeSJohn Crispin ), 36450d2ab3aeSJohn Crispin TP_fast_assign( 36460d2ab3aeSJohn Crispin WIPHY_ASSIGN; 36470d2ab3aeSJohn Crispin NETDEV_ASSIGN; 36480d2ab3aeSJohn Crispin __entry->count = params->count; 36490d2ab3aeSJohn Crispin __entry->bcn_ofs = params->counter_offset_beacon; 36500d2ab3aeSJohn Crispin __entry->pres_ofs = params->counter_offset_presp; 36510d2ab3aeSJohn Crispin ), 36520d2ab3aeSJohn Crispin TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT 36530d2ab3aeSJohn Crispin ", count: %u", 36540d2ab3aeSJohn Crispin WIPHY_PR_ARG, NETDEV_PR_ARG, 36550d2ab3aeSJohn Crispin __entry->count) 36560d2ab3aeSJohn Crispin ); 36570d2ab3aeSJohn Crispin 36580d2ab3aeSJohn Crispin TRACE_EVENT(cfg80211_bss_color_notify, 36590d2ab3aeSJohn Crispin TP_PROTO(struct net_device *netdev, 36600d2ab3aeSJohn Crispin enum nl80211_commands cmd, 36610d2ab3aeSJohn Crispin u8 count, u64 color_bitmap), 36620d2ab3aeSJohn Crispin TP_ARGS(netdev, cmd, count, color_bitmap), 36630d2ab3aeSJohn Crispin TP_STRUCT__entry( 36640d2ab3aeSJohn Crispin NETDEV_ENTRY 3665c448f0fdSJohannes Berg __field(u32, cmd) 36660d2ab3aeSJohn Crispin __field(u8, count) 36670d2ab3aeSJohn Crispin __field(u64, color_bitmap) 36680d2ab3aeSJohn Crispin ), 36690d2ab3aeSJohn Crispin TP_fast_assign( 36700d2ab3aeSJohn Crispin NETDEV_ASSIGN; 36710d2ab3aeSJohn Crispin __entry->cmd = cmd; 36720d2ab3aeSJohn Crispin __entry->count = count; 36730d2ab3aeSJohn Crispin __entry->color_bitmap = color_bitmap; 36740d2ab3aeSJohn Crispin ), 36750d2ab3aeSJohn Crispin TP_printk(NETDEV_PR_FMT ", cmd: %x, count: %u, bitmap: %llx", 36760d2ab3aeSJohn Crispin NETDEV_PR_ARG, __entry->cmd, __entry->count, 36770d2ab3aeSJohn Crispin __entry->color_bitmap) 36780d2ab3aeSJohn Crispin ); 36790d2ab3aeSJohn Crispin 3680bc2dfc02SLorenzo Bianconi TRACE_EVENT(rdev_set_radar_offchan, 3681bc2dfc02SLorenzo Bianconi TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef), 3682bc2dfc02SLorenzo Bianconi 3683bc2dfc02SLorenzo Bianconi TP_ARGS(wiphy, chandef), 3684bc2dfc02SLorenzo Bianconi 3685bc2dfc02SLorenzo Bianconi TP_STRUCT__entry( 3686bc2dfc02SLorenzo Bianconi WIPHY_ENTRY 3687bc2dfc02SLorenzo Bianconi CHAN_DEF_ENTRY 3688bc2dfc02SLorenzo Bianconi ), 3689bc2dfc02SLorenzo Bianconi 3690bc2dfc02SLorenzo Bianconi TP_fast_assign( 3691bc2dfc02SLorenzo Bianconi WIPHY_ASSIGN; 3692bc2dfc02SLorenzo Bianconi CHAN_DEF_ASSIGN(chandef) 3693bc2dfc02SLorenzo Bianconi ), 3694bc2dfc02SLorenzo Bianconi 3695bc2dfc02SLorenzo Bianconi TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT, 3696bc2dfc02SLorenzo Bianconi WIPHY_PR_ARG, CHAN_DEF_PR_ARG) 3697bc2dfc02SLorenzo Bianconi ); 3698bc2dfc02SLorenzo Bianconi 369914e8a3c4SBeni Lev #endif /* !__RDEV_OPS_TRACE || TRACE_HEADER_MULTI_READ */ 370014e8a3c4SBeni Lev 370114e8a3c4SBeni Lev #undef TRACE_INCLUDE_PATH 370214e8a3c4SBeni Lev #define TRACE_INCLUDE_PATH . 370314e8a3c4SBeni Lev #undef TRACE_INCLUDE_FILE 370414e8a3c4SBeni Lev #define TRACE_INCLUDE_FILE trace 370514e8a3c4SBeni Lev #include <trace/define_trace.h> 3706